mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-05 21:47:48 +01:00
Compare commits
819 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c84b90634 | ||
|
|
4e138e3d0f | ||
|
|
8b38f12452 | ||
|
|
b3ea7b816d | ||
|
|
1bec7897f0 | ||
|
|
98422a0727 | ||
|
|
57c145c3d2 | ||
|
|
43233cf446 | ||
|
|
187df778bf | ||
|
|
d7dc328cdc | ||
|
|
066995702b | ||
|
|
777c78363d | ||
|
|
6701e3bd77 | ||
|
|
a42c50f1cc | ||
|
|
2fbe4e5f24 | ||
|
|
a0fa6367ca | ||
|
|
8378066bd4 | ||
|
|
db85193bbf | ||
|
|
364c7ce183 | ||
|
|
48180604f9 | ||
|
|
88089a8a11 | ||
|
|
2829f0b649 | ||
|
|
0d5856db1e | ||
|
|
f3ec238a2c | ||
|
|
2ab8e63df2 | ||
|
|
616e8f2553 | ||
|
|
f55ba3b67a | ||
|
|
2a56fd9992 | ||
|
|
74afa06d7c | ||
|
|
ef5b998d41 | ||
|
|
fe4389a883 | ||
|
|
4cb5241e94 | ||
|
|
872237167d | ||
|
|
a90f178ee0 | ||
|
|
489132269e | ||
|
|
9303302ce7 | ||
|
|
9ff977b339 | ||
|
|
a2aab6451c | ||
|
|
1e64cf02cd | ||
|
|
df714c7556 | ||
|
|
868c16620f | ||
|
|
7aab51158d | ||
|
|
e8b99b5bff | ||
|
|
54f34cff26 | ||
|
|
9333af20f5 | ||
|
|
7ec3e5937e | ||
|
|
d25af55533 | ||
|
|
b3d1058a42 | ||
|
|
9353771a4d | ||
|
|
e2393153d7 | ||
|
|
3b07e78bc9 | ||
|
|
212ce266bc | ||
|
|
9557fbad63 | ||
|
|
1ed5d63695 | ||
|
|
ac6aef0c8c | ||
|
|
ec2422e266 | ||
|
|
05ab210363 | ||
|
|
47736b60bf | ||
|
|
608a34053a | ||
|
|
5df6ff01ba | ||
|
|
fc57e9b72a | ||
|
|
0f5ee01032 | ||
|
|
ec58c5995b | ||
|
|
991821c417 | ||
|
|
b54b6e9636 | ||
|
|
94c96d129b | ||
|
|
8c929d5701 | ||
|
|
49ea1df313 | ||
|
|
96a5b533b2 | ||
|
|
4f62f15acf | ||
|
|
7dd33c6ced | ||
|
|
0bb3fc4a34 | ||
|
|
4fa1eee3e9 | ||
|
|
0ab98294cf | ||
|
|
1e43364406 | ||
|
|
1b4efd2321 | ||
|
|
0b79763474 | ||
|
|
5782f83d99 | ||
|
|
96568b14a8 | ||
|
|
8a6144c4c6 | ||
|
|
01e59acecb | ||
|
|
728c98a3cd | ||
|
|
50ee5abe46 | ||
|
|
680a3f6f96 | ||
|
|
b0c971d4af | ||
|
|
6b4535cf29 | ||
|
|
c649c4ef17 | ||
|
|
f830faf8af | ||
|
|
b51af4377f | ||
|
|
f46addf20a | ||
|
|
d4a3ba84e9 | ||
|
|
903ab2c8d4 | ||
|
|
f37d3580b7 | ||
|
|
bffda3240a | ||
|
|
dde188c3c4 | ||
|
|
e549a87719 | ||
|
|
58bb5a2bbf | ||
|
|
bd027868d0 | ||
|
|
f895a6bf23 | ||
|
|
5437da4999 | ||
|
|
d5447f8aa8 | ||
|
|
436a7cb8ea | ||
|
|
1984a2a349 | ||
|
|
9081dcc77c | ||
|
|
d9b0c58896 | ||
|
|
3838c7395c | ||
|
|
fb871f52c3 | ||
|
|
497874a9df | ||
|
|
59783f8edd | ||
|
|
3caa7153a3 | ||
|
|
a03815657f | ||
|
|
58eba72136 | ||
|
|
fefaef3442 | ||
|
|
07152261d8 | ||
|
|
63fe833a2e | ||
|
|
cce31d5d58 | ||
|
|
fadad38f8f | ||
|
|
7912c0603e | ||
|
|
f6685938c0 | ||
|
|
dda3164c72 | ||
|
|
b63a75840f | ||
|
|
e0d872fe38 | ||
|
|
c4832d8fcc | ||
|
|
a464cc3161 | ||
|
|
37ceb2254a | ||
|
|
8ecd936ccd | ||
|
|
01407158a0 | ||
|
|
a0efa9911d | ||
|
|
9927a7a871 | ||
|
|
d17bf1aae5 | ||
|
|
12c9fd5042 | ||
|
|
5a04819950 | ||
|
|
c2f8257684 | ||
|
|
27c740220a | ||
|
|
cdc33a410b | ||
|
|
2e648d0370 | ||
|
|
9541c18f72 | ||
|
|
959e1be01c | ||
|
|
30b29e504f | ||
|
|
7e39341dc0 | ||
|
|
78d8680710 | ||
|
|
4330c6d04c | ||
|
|
9aa41e620b | ||
|
|
a20bc95cd7 | ||
|
|
ef70a7fd42 | ||
|
|
6ef4520234 | ||
|
|
7efffda7ec | ||
|
|
c72bd392f4 | ||
|
|
5bde439500 | ||
|
|
606bcdc835 | ||
|
|
07b896832b | ||
|
|
7d8da29e57 | ||
|
|
5261f74c7c | ||
|
|
5c51683e8c | ||
|
|
dd1a322260 | ||
|
|
c4755e117f | ||
|
|
aefcdd2dc5 | ||
|
|
dde8ec92b0 | ||
|
|
a35b1dc428 | ||
|
|
3165ae5c0c | ||
|
|
4b1f96b86b | ||
|
|
e15ff18abc | ||
|
|
ccd4cee723 | ||
|
|
a6b92b4be5 | ||
|
|
9f166fa737 | ||
|
|
cd5c61d31c | ||
|
|
91da884b73 | ||
|
|
5d83064599 | ||
|
|
e16da44af7 | ||
|
|
c0e6cb0ed8 | ||
|
|
f9859c5ce1 | ||
|
|
48e1375f77 | ||
|
|
aa30102bc0 | ||
|
|
18c89bdb68 | ||
|
|
48db343d14 | ||
|
|
c2e9ffb65c | ||
|
|
1fd015b203 | ||
|
|
3892575350 | ||
|
|
8baa0be5ff | ||
|
|
2e375c2bb5 | ||
|
|
84a3f7155d | ||
|
|
0ca175e75d | ||
|
|
44d4eba975 | ||
|
|
b658d807cb | ||
|
|
06384ce2a7 | ||
|
|
18c923517a | ||
|
|
4b3f44000c | ||
|
|
bb03c7bae7 | ||
|
|
e12baeeb9a | ||
|
|
f149d292bc | ||
|
|
401b35bea9 | ||
|
|
94dc5ad0e5 | ||
|
|
b488d6a13c | ||
|
|
374099b2cc | ||
|
|
5eb0c9b19e | ||
|
|
1f20d5188e | ||
|
|
da81c1de4e | ||
|
|
885c078231 | ||
|
|
aa15612171 | ||
|
|
8f9f0d8181 | ||
|
|
a1dee40ed6 | ||
|
|
4738f1cf54 | ||
|
|
98fef9729f | ||
|
|
6c23f047e0 | ||
|
|
7e0c258a45 | ||
|
|
9d570dc477 | ||
|
|
99b4bd5b5f | ||
|
|
8eee91615f | ||
|
|
c0a064b32b | ||
|
|
0dc8aa2f31 | ||
|
|
fad3d142d2 | ||
|
|
994f2f992e | ||
|
|
20aabbbe7e | ||
|
|
b2baf72399 | ||
|
|
67ea7a7fda | ||
|
|
cce24d7104 | ||
|
|
e9515f0fde | ||
|
|
34c7fe7052 | ||
|
|
740d61d37a | ||
|
|
5242c8855e | ||
|
|
a19b354f25 | ||
|
|
aec0253cf2 | ||
|
|
5772e02646 | ||
|
|
cc422a4078 | ||
|
|
0cd1af5306 | ||
|
|
a956e67da8 | ||
|
|
d6bb006a06 | ||
|
|
71813bc0d9 | ||
|
|
1ec33d0740 | ||
|
|
fbef105685 | ||
|
|
c98ad4066d | ||
|
|
9a4bcf6720 | ||
|
|
cffa0d7489 | ||
|
|
9d64b08c1a | ||
|
|
344bee5378 | ||
|
|
fe860992c0 | ||
|
|
70a15838d5 | ||
|
|
69fcd3f0c8 | ||
|
|
f2f74288f6 | ||
|
|
6901023a0c | ||
|
|
e1a1dbcc82 | ||
|
|
bfc083544a | ||
|
|
d6d5c3cbda | ||
|
|
6cd31f0dd4 | ||
|
|
9240a84ec9 | ||
|
|
71376204a6 | ||
|
|
b75a3a4f41 | ||
|
|
b395839a2f | ||
|
|
6d2022d6eb | ||
|
|
e0532cbc6a | ||
|
|
ff69a8ecd7 | ||
|
|
cdd11a8762 | ||
|
|
cd0bb9df57 | ||
|
|
effc1f190f | ||
|
|
d8408562aa | ||
|
|
d687434b1f | ||
|
|
95560033d2 | ||
|
|
f9db8c4a6b | ||
|
|
363e0a682b | ||
|
|
d6d1c97ee0 | ||
|
|
6f72c4e52d | ||
|
|
3c1f53410e | ||
|
|
bcecded090 | ||
|
|
f6f1384da7 | ||
|
|
8e80868027 | ||
|
|
ec70a71d16 | ||
|
|
4b4138b876 | ||
|
|
90675c6a14 | ||
|
|
8a7bcaf7f7 | ||
|
|
1cf9961ee8 | ||
|
|
415c1bcb09 | ||
|
|
bf032bdc12 | ||
|
|
9dd04020ef | ||
|
|
09401caf7b | ||
|
|
a112b6ddb8 | ||
|
|
16ed4faeee | ||
|
|
7418bb019a | ||
|
|
bff522eb9d | ||
|
|
cea5b4d841 | ||
|
|
d5cd78e0c9 | ||
|
|
3b5fa0ed13 | ||
|
|
eaf7ba608b | ||
|
|
29c7a51b04 | ||
|
|
263801677a | ||
|
|
eaec0f075c | ||
|
|
c00946cdc5 | ||
|
|
78642a36d0 | ||
|
|
fb15f5dbc9 | ||
|
|
c9daea1f22 | ||
|
|
924ba2f2cf | ||
|
|
a55bc357fd | ||
|
|
b8a1b90713 | ||
|
|
c2cdb773dc | ||
|
|
ed2fd3726f | ||
|
|
cab4801211 | ||
|
|
a824cb8ccd | ||
|
|
31470a4459 | ||
|
|
8f2d5b7bf9 | ||
|
|
3d4654d592 | ||
|
|
30f04f75f2 | ||
|
|
26246c5997 | ||
|
|
8c97bf6213 | ||
|
|
6db6c823c4 | ||
|
|
c3185240ff | ||
|
|
8f70ee6d48 | ||
|
|
980b509128 | ||
|
|
ac05b12b60 | ||
|
|
d490a53dd7 | ||
|
|
7dd6be471f | ||
|
|
e7d40d3c95 | ||
|
|
8448ca6bee | ||
|
|
fc87e539a0 | ||
|
|
486d7aa125 | ||
|
|
a23d7cd440 | ||
|
|
1b706d86f0 | ||
|
|
2ae6780346 | ||
|
|
7db6e80173 | ||
|
|
2a45580621 | ||
|
|
e66e87cec6 | ||
|
|
392f725319 | ||
|
|
20f074fa7d | ||
|
|
921f3d7812 | ||
|
|
5c1238c874 | ||
|
|
5e74acbada | ||
|
|
ca726ea953 | ||
|
|
d3ccd072d4 | ||
|
|
9902706073 | ||
|
|
4bf53a6cbd | ||
|
|
1495f2ab11 | ||
|
|
42bca2ff48 | ||
|
|
939b7bc5c7 | ||
|
|
b5b19482f4 | ||
|
|
9cec8a88fe | ||
|
|
fc35de0cb7 | ||
|
|
63200511e0 | ||
|
|
7f9fc716bb | ||
|
|
d66c33b071 | ||
|
|
803a9435d2 | ||
|
|
711dde6741 | ||
|
|
0feb0570c9 | ||
|
|
e1dec3e735 | ||
|
|
29b1805ab5 | ||
|
|
27a2b08c27 | ||
|
|
e11589f52e | ||
|
|
e97fdc17be | ||
|
|
cb554f269c | ||
|
|
91cc6b1b1a | ||
|
|
96e62d86a7 | ||
|
|
7ad91fdaf0 | ||
|
|
b7fe38f362 | ||
|
|
0bca9e5f0c | ||
|
|
c2474a3080 | ||
|
|
311c62df4f | ||
|
|
f48974e7b6 | ||
|
|
8320b23655 | ||
|
|
d26eca4146 | ||
|
|
b4fcdbb2ae | ||
|
|
e1dfacd90b | ||
|
|
8309d5735d | ||
|
|
58d888c149 | ||
|
|
26c70e6bac | ||
|
|
7f849d26a8 | ||
|
|
20a1c0e9e7 | ||
|
|
4afef12acd | ||
|
|
9160947c93 | ||
|
|
a4b06288ca | ||
|
|
9596870d6a | ||
|
|
992d46c54b | ||
|
|
080c9ce17c | ||
|
|
1c65c4c904 | ||
|
|
68dd83e152 | ||
|
|
6cc07dbf69 | ||
|
|
cf11707bd9 | ||
|
|
070a255cb4 | ||
|
|
007051b673 | ||
|
|
1b180bdceb | ||
|
|
b09e526006 | ||
|
|
751fbc4b6e | ||
|
|
8c067616e2 | ||
|
|
3e225fa37c | ||
|
|
20fc755078 | ||
|
|
2800029edc | ||
|
|
65b23b9674 | ||
|
|
3db5435c19 | ||
|
|
c6e76f4e31 | ||
|
|
b36ef0234e | ||
|
|
af2566c237 | ||
|
|
ad66637ff1 | ||
|
|
bf2f527f76 | ||
|
|
009b13817a | ||
|
|
397dfa98a2 | ||
|
|
b46f07244a | ||
|
|
371aec0d98 | ||
|
|
f6aef7e2f9 | ||
|
|
8a1be1e02d | ||
|
|
e2d5f94b04 | ||
|
|
7b455e0c1b | ||
|
|
4aedbe4bdc | ||
|
|
c2ed7feab7 | ||
|
|
0989c02d38 | ||
|
|
dd026c85d9 | ||
|
|
66e45d2594 | ||
|
|
ea578d6185 | ||
|
|
aadb2ecdb3 | ||
|
|
296e80b7d5 | ||
|
|
6f298eb4ee | ||
|
|
644fcdc57b | ||
|
|
f9b963da6b | ||
|
|
56be3474db | ||
|
|
2850111024 | ||
|
|
abe20929c3 | ||
|
|
820eaa67d7 | ||
|
|
3ce25830cc | ||
|
|
6e899c0684 | ||
|
|
40bf9202ec | ||
|
|
92ba57e1e0 | ||
|
|
34ca28b65f | ||
|
|
34ebf27b06 | ||
|
|
3adfaf9e26 | ||
|
|
5bdef9c6a1 | ||
|
|
e5bd5bb423 | ||
|
|
5bc7fc168c | ||
|
|
44c99af690 | ||
|
|
befefd9af6 | ||
|
|
78e92dac22 | ||
|
|
af147c0da0 | ||
|
|
6d5434fa3a | ||
|
|
f418ee6327 | ||
|
|
cbf11e3fb4 | ||
|
|
e9790e5677 | ||
|
|
86383e5dce | ||
|
|
449c23a63d | ||
|
|
829f7e33bc | ||
|
|
9f4237f07d | ||
|
|
7458b9f685 | ||
|
|
9a11cd5f81 | ||
|
|
81aaf5aa56 | ||
|
|
716660318b | ||
|
|
a861971ba6 | ||
|
|
6a7a30b423 | ||
|
|
e60768d156 | ||
|
|
dfa9cf29f9 | ||
|
|
ab576f173b | ||
|
|
10604fc5d2 | ||
|
|
ebc8b745a4 | ||
|
|
f0151a5d57 | ||
|
|
76274a7843 | ||
|
|
20635da031 | ||
|
|
a52f4ed984 | ||
|
|
1f4e89cf10 | ||
|
|
2ae71a27fe | ||
|
|
eb508170f0 | ||
|
|
7ba37c894d | ||
|
|
37d7a94d8a | ||
|
|
98595a84e2 | ||
|
|
509d0a785e | ||
|
|
49e564af8a | ||
|
|
72a65e9a15 | ||
|
|
dcbfd25d04 | ||
|
|
e7e46db9a1 | ||
|
|
4c2cbb180f | ||
|
|
6b56311955 | ||
|
|
7cce64a91a | ||
|
|
aaf4a5855e | ||
|
|
2e83eec155 | ||
|
|
21e9b55b74 | ||
|
|
5976a3c27f | ||
|
|
cb9755d8e6 | ||
|
|
c139fbebd7 | ||
|
|
8ef7b301ec | ||
|
|
102ce2b1fe | ||
|
|
fe494a4ab3 | ||
|
|
8dcb3a27bd | ||
|
|
7740f7e2dd | ||
|
|
99efe2e7aa | ||
|
|
79df42a743 | ||
|
|
555e9463e8 | ||
|
|
a2424ea0bd | ||
|
|
743e9dcbf8 | ||
|
|
350bb1ff25 | ||
|
|
bf50eaff17 | ||
|
|
2594068fd0 | ||
|
|
72f66385ae | ||
|
|
9cae86d88b | ||
|
|
9f5b381b17 | ||
|
|
707bb93ad6 | ||
|
|
dfcd4d8e84 | ||
|
|
3d99302e33 | ||
|
|
a5036a701b | ||
|
|
3aa0fd594c | ||
|
|
67c60b4256 | ||
|
|
42675c2e71 | ||
|
|
35098385c0 | ||
|
|
409204c564 | ||
|
|
7ad59dc85f | ||
|
|
f87d3d4ae3 | ||
|
|
c84fecd981 | ||
|
|
321ede5297 | ||
|
|
6bea32ad83 | ||
|
|
2a73b603c9 | ||
|
|
8203537915 | ||
|
|
c56f48fb42 | ||
|
|
743267ba7b | ||
|
|
218327b4a2 | ||
|
|
7754b8b8f1 | ||
|
|
c0df7db05e | ||
|
|
2c8aea1cd9 | ||
|
|
d0ba6aebbf | ||
|
|
5ed50bbb57 | ||
|
|
311b7b1cea | ||
|
|
101b706cd9 | ||
|
|
bdfb09b1a4 | ||
|
|
65c06adb5a | ||
|
|
8c26da6655 | ||
|
|
c0d58d8206 | ||
|
|
c2136e8353 | ||
|
|
bc26d4f3b3 | ||
|
|
563cc9ce60 | ||
|
|
8f3ae6d674 | ||
|
|
8604418fb1 | ||
|
|
b2d22d7574 | ||
|
|
060d5afcaa | ||
|
|
8e9ce016b1 | ||
|
|
e0f1aae4d5 | ||
|
|
b65f6fca19 | ||
|
|
f8f96645b0 | ||
|
|
81a2e1e692 | ||
|
|
50a9bdbcb8 | ||
|
|
601edb8d6b | ||
|
|
9eafac346b | ||
|
|
767fc1ec39 | ||
|
|
09fa08b037 | ||
|
|
fe204dd0c3 | ||
|
|
93fe847667 | ||
|
|
f474b746d3 | ||
|
|
b69bb94253 | ||
|
|
9df4ba0881 | ||
|
|
b2f26e1a43 | ||
|
|
f9282180db | ||
|
|
794fcaf3c3 | ||
|
|
ea9b7de1c9 | ||
|
|
aef672f1bb | ||
|
|
c0ad65b3b1 | ||
|
|
062dd5b79c | ||
|
|
085e485e7c | ||
|
|
c227b70f32 | ||
|
|
e06a992437 | ||
|
|
f9a96e10d6 | ||
|
|
0c52bf02eb | ||
|
|
ae7a938245 | ||
|
|
1c749bf93e | ||
|
|
72b21b5d0e | ||
|
|
4762177ef2 | ||
|
|
418578c795 | ||
|
|
d2335eb4cc | ||
|
|
520965c7fd | ||
|
|
7b36e071ea | ||
|
|
3ea68caf53 | ||
|
|
e36ab158f7 | ||
|
|
b5dedbdbf1 | ||
|
|
abc44e3fe1 | ||
|
|
32aeae0c41 | ||
|
|
b0c443f982 | ||
|
|
890b9a97cb | ||
|
|
034a30a29c | ||
|
|
b651fb84c4 | ||
|
|
4354698b15 | ||
|
|
01210bcbc9 | ||
|
|
810bae42fc | ||
|
|
bfb8b703dc | ||
|
|
2ab980e658 | ||
|
|
509a4e5460 | ||
|
|
030aec3908 | ||
|
|
26e4216780 | ||
|
|
08d7636165 | ||
|
|
9fcc6cae36 | ||
|
|
893c443f21 | ||
|
|
594f47fa68 | ||
|
|
5def5dd508 | ||
|
|
0e2b474540 | ||
|
|
4855aa762f | ||
|
|
96507e4eba | ||
|
|
08f56b54f5 | ||
|
|
9662c29374 | ||
|
|
14e1a9a4ed | ||
|
|
45946ddfe1 | ||
|
|
651b8d8ef7 | ||
|
|
8e53dff5dc | ||
|
|
c84a75ce77 | ||
|
|
21106e4bbd | ||
|
|
af6f867e41 | ||
|
|
deaa4e5a13 | ||
|
|
fff96b6ab7 | ||
|
|
7648f2d409 | ||
|
|
6461578fc5 | ||
|
|
9d97b6e231 | ||
|
|
71109db50f | ||
|
|
f7294131b7 | ||
|
|
271aee139e | ||
|
|
3d9e739cb4 | ||
|
|
ada39bb876 | ||
|
|
160b936206 | ||
|
|
5874598a36 | ||
|
|
938d03e4ba | ||
|
|
4314013b2e | ||
|
|
acfeaae8c6 | ||
|
|
b70fa0e844 | ||
|
|
b7dcd3e9cd | ||
|
|
f697c9b9dd | ||
|
|
06fa779966 | ||
|
|
6eefa34741 | ||
|
|
4bd2fda6ae | ||
|
|
ec701d9fd7 | ||
|
|
6476094ce4 | ||
|
|
57940c1519 | ||
|
|
4b494efcd1 | ||
|
|
bb8796000c | ||
|
|
e49478085c | ||
|
|
db5a7beb57 | ||
|
|
0b7b1c4c9e | ||
|
|
4a85caca50 | ||
|
|
410054347d | ||
|
|
05b056d18e | ||
|
|
080d684089 | ||
|
|
0666268d91 | ||
|
|
b45d6240ae | ||
|
|
e35a66d3f1 | ||
|
|
2367564041 | ||
|
|
0223e8828f | ||
|
|
408533ee24 | ||
|
|
0c745d6d58 | ||
|
|
35cbe9e69b | ||
|
|
91511edcfb | ||
|
|
df8cf8cb20 | ||
|
|
8c1b95cb0a | ||
|
|
264f2fb84b | ||
|
|
13fe3f6e73 | ||
|
|
c7a927fe7d | ||
|
|
446d06b538 | ||
|
|
a2d88bd30f | ||
|
|
bbde2876e2 | ||
|
|
161dcf70ab | ||
|
|
1544d6cb37 | ||
|
|
b6b716c95f | ||
|
|
f0b32e7d14 | ||
|
|
27eb036996 | ||
|
|
65cee0ec2b | ||
|
|
735cf18dd8 | ||
|
|
a4a0d293cd | ||
|
|
bcc7852e25 | ||
|
|
724fc07610 | ||
|
|
2f0cf218fc | ||
|
|
534b28259f | ||
|
|
61db2fd57d | ||
|
|
0a926a322a | ||
|
|
386df61ed7 | ||
|
|
467f42e0f6 | ||
|
|
5dd4df8a05 | ||
|
|
0a4116425b | ||
|
|
e26e7f8559 | ||
|
|
0b30764b89 | ||
|
|
97669a98a9 | ||
|
|
addf0911a0 | ||
|
|
806b7f3cab | ||
|
|
9b037ce349 | ||
|
|
79d199b321 | ||
|
|
5289476937 | ||
|
|
08f5cd8ef2 | ||
|
|
7634e41652 | ||
|
|
321c7c95f8 | ||
|
|
5697037550 | ||
|
|
bb43d30d81 | ||
|
|
7f0db24203 | ||
|
|
89699cabb1 | ||
|
|
5e51a16959 | ||
|
|
babc73c74e | ||
|
|
a8391db069 | ||
|
|
e9b8b50b24 | ||
|
|
d52d31a2bd | ||
|
|
890d392b29 | ||
|
|
77b5879602 | ||
|
|
1b643d8572 | ||
|
|
d7544e9b9f | ||
|
|
1c71b8872f | ||
|
|
c1865592de | ||
|
|
6d3dc81692 | ||
|
|
95caacce41 | ||
|
|
caf2d2c63b | ||
|
|
7bed5604ca | ||
|
|
5ff206565c | ||
|
|
976bcdd794 | ||
|
|
bdbd570fbc | ||
|
|
1fdcc95ab1 | ||
|
|
b0113908a6 | ||
|
|
b9c823decb | ||
|
|
a23ec1d4f3 | ||
|
|
58b3706d5d | ||
|
|
4d1c01b9f9 | ||
|
|
edb94b7499 | ||
|
|
dd43b02e92 | ||
|
|
daaeedf3e5 | ||
|
|
10f7d9cbfe | ||
|
|
21a4751289 | ||
|
|
ad6eeaaf75 | ||
|
|
5d5ddfec1b | ||
|
|
3d3dcd2a63 | ||
|
|
ede631e487 | ||
|
|
ed96c46fa5 | ||
|
|
5a8b1b587b | ||
|
|
e1176e9e3b | ||
|
|
a25606cfe9 | ||
|
|
ae7a77d247 | ||
|
|
be51be60a2 | ||
|
|
07f7025dde | ||
|
|
bd62195c60 | ||
|
|
2af8f5f36b | ||
|
|
52ab10a17b | ||
|
|
6cec2f0d0d | ||
|
|
d953b52938 | ||
|
|
7d43d23d84 | ||
|
|
34653dd286 | ||
|
|
3d0a53f4ae | ||
|
|
f704acc3b1 | ||
|
|
db4d812a12 | ||
|
|
e8fcb8add2 | ||
|
|
54bfecd59a | ||
|
|
5bf2b816c8 | ||
|
|
8cfa880f5c | ||
|
|
30af03a7ce | ||
|
|
6aaf82418e | ||
|
|
d4b46eb18c | ||
|
|
a5a0a0c510 | ||
|
|
613e40a900 | ||
|
|
248b5759a0 | ||
|
|
5c35aee418 | ||
|
|
2f9cf474dd | ||
|
|
378be50c35 | ||
|
|
49c55e04e9 | ||
|
|
c1250d0ab6 | ||
|
|
b7e9a69345 | ||
|
|
1210add0ff | ||
|
|
e235790d68 | ||
|
|
31a6408583 | ||
|
|
0a5276b12d | ||
|
|
d440126c45 | ||
|
|
6a3f096d44 | ||
|
|
1b5f7ac3e2 | ||
|
|
e56d29febb | ||
|
|
610ad9819a | ||
|
|
2c6b2a1474 | ||
|
|
460983b741 | ||
|
|
c1f22b3e2c | ||
|
|
cd7d7ba729 | ||
|
|
f74275293a | ||
|
|
8a6343dee7 | ||
|
|
d7671149b7 | ||
|
|
db2063a3ee | ||
|
|
ed2e15f8c3 | ||
|
|
69640fea19 | ||
|
|
7b6a0aa86f | ||
|
|
aa3d3ff208 | ||
|
|
a8c3ecb00c | ||
|
|
35b533b3f0 | ||
|
|
e433c195e8 | ||
|
|
c799f1207f | ||
|
|
ab7a73dae6 | ||
|
|
8ec4291753 | ||
|
|
d5c99a9582 | ||
|
|
e729a75975 | ||
|
|
55f3a68b5f | ||
|
|
33a3d9bcff | ||
|
|
b5e8284d7f | ||
|
|
1497e4dbd5 | ||
|
|
615a0c419c | ||
|
|
26b4e8adea | ||
|
|
10d5f11a9c | ||
|
|
e241e4c683 | ||
|
|
049dda86e3 | ||
|
|
78088afb9c | ||
|
|
75e310c19e | ||
|
|
eed83c4a98 | ||
|
|
9d22af1166 | ||
|
|
06761a38c0 | ||
|
|
338d723ffd | ||
|
|
5d57892db4 | ||
|
|
107993821a | ||
|
|
6f6b35d790 | ||
|
|
e362ed129d | ||
|
|
65065fed17 | ||
|
|
ebe58769f6 | ||
|
|
2e54f586a2 | ||
|
|
d07b508990 | ||
|
|
598815ba5c | ||
|
|
6bb94dc185 | ||
|
|
aabd05a0cb | ||
|
|
f558d27e8c | ||
|
|
220f662d10 | ||
|
|
2fb33d048b | ||
|
|
a3d56e2d4b | ||
|
|
caecfaa87d | ||
|
|
7cf92d5a92 | ||
|
|
b619fe95d1 | ||
|
|
e1f0e3814a | ||
|
|
8d7f41388c | ||
|
|
b4cdb03228 | ||
|
|
0de278802b | ||
|
|
64704a1559 | ||
|
|
668df2d773 | ||
|
|
3600e5487d | ||
|
|
f109ffa9bc | ||
|
|
73c8ff7ee6 | ||
|
|
7b474d4cef | ||
|
|
02b0604ad7 | ||
|
|
845c7bbdcc | ||
|
|
1d23cad458 | ||
|
|
babaa0705a | ||
|
|
6a8f0f7814 | ||
|
|
23f3a5f404 | ||
|
|
b2211bcdfd |
@@ -3,7 +3,7 @@
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"args": {
|
||||
"VARIANT": "18-buster"
|
||||
"VARIANT": "18-bullseye"
|
||||
}
|
||||
},
|
||||
"customizations": {
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
name: Feature request
|
||||
description: Suggest an idea for this project
|
||||
title: "[Feature Request] "
|
||||
labels: ["enhancement"]
|
||||
body:
|
||||
11
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
11
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: 🤔 Questions and Help
|
||||
url: https://github.com/benphelps/homepage/discussions
|
||||
about: This issue tracker is for bugs only, not general support questions. Please refer to our Discussions.
|
||||
- name: 💬 Chat
|
||||
url: https://discord.gg/k4ruYNrudu
|
||||
about: Want to discuss homepage with others? Check out our chat.
|
||||
- name: 🚀 Feature Request
|
||||
url: https://github.com/benphelps/homepage/discussions/new?category=feature-requests
|
||||
about: Remember to search for existing feature requests and "up-vote" any you like
|
||||
26
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
26
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
## Proposed change
|
||||
|
||||
<!--
|
||||
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
|
||||
-->
|
||||
|
||||
Closes # (issue)
|
||||
|
||||
## Type of change
|
||||
|
||||
<!--
|
||||
What type of change does your PR introduce to Homepage?
|
||||
-->
|
||||
|
||||
- [ ] New service widget
|
||||
- [ ] Bug fix (non-breaking change which fixes an issue)
|
||||
- [ ] New feature (non-breaking change which adds functionality)
|
||||
- [ ] Other (please explain)
|
||||
|
||||
## 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 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.
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,6 +4,7 @@
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.js
|
||||
.pnpm-store
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
@@ -29,7 +29,7 @@ COPY . .
|
||||
|
||||
SHELL ["/bin/ash", "-xeo", "pipefail", "-c"]
|
||||
RUN npm run telemetry \
|
||||
&& mkdir config && echo '---' > config/settings.yaml \
|
||||
&& mkdir config \
|
||||
&& NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION npm run build
|
||||
|
||||
# Production image, copy all the files and run next
|
||||
|
||||
@@ -37,8 +37,7 @@
|
||||
- **Secure!** Every API request to backend services goes through a proxy server, so your API keys are never exposed to the frontend client.
|
||||
- Images built for AMD64 (x86_64), ARM64, ARMv7 and ARMv6
|
||||
- Supports all Raspberry Pi's, most SBCs & Apple Silicon
|
||||
- Full i18n support with automatic language detection
|
||||
- Translations for Catalan, Chinese, Dutch, Finnish, French, German, Hebrew, Hungarian, Malay, Norwegian Bokmål, Polish, Portuguese, Portuguese (Brazil), Romanian, Russian, Spanish, Swedish and Yue
|
||||
- Full i18n support with translations for Catalan, Chinese, Dutch, Finnish, French, German, Hebrew, Hungarian, Malay, Norwegian Bokmål, Polish, Portuguese, Portuguese (Brazil), Romanian, Russian, Spanish, Swedish and Yue
|
||||
- Want to help translate? [Join the Weblate project](https://hosted.weblate.org/engage/homepage/)
|
||||
- Service & Web Bookmarks
|
||||
- Docker Integration
|
||||
|
||||
@@ -10,6 +10,8 @@ export PGID=${PGID:-0}
|
||||
# while also supporting the lscr.io /config directory
|
||||
[ ! -d "/app/config" ] && ln -s /config /app/config
|
||||
|
||||
export HOMEPAGE_BUILDTIME=$(date +%s)
|
||||
|
||||
# Set privileges for /app but only if pid 1 user is root and we are dropping privileges.
|
||||
# If container is run as an unprivileged user, it means owner already handled ownership setup on their own.
|
||||
# Running chown in that case (as non-root) will cause error
|
||||
|
||||
4989
package-lock.json
generated
4989
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -20,18 +20,18 @@
|
||||
"js-yaml": "^4.1.0",
|
||||
"json-rpc-2.0": "^1.4.1",
|
||||
"memory-cache": "^0.2.0",
|
||||
"minecraft-ping-js": "^1.0.2",
|
||||
"next": "^12.3.1",
|
||||
"next-i18next": "^12.0.1",
|
||||
"node-os-utils": "^1.3.7",
|
||||
"pretty-bytes": "^6.0.0",
|
||||
"raw-body": "^2.5.1",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-i18next": "^11.18.6",
|
||||
"react-icons": "^4.4.0",
|
||||
"rutorrent-promise": "^2.0.0",
|
||||
"shvl": "^3.0.0",
|
||||
"swr": "^1.3.0",
|
||||
"systeminformation": "^5.17.12",
|
||||
"tough-cookie": "^4.1.2",
|
||||
"winston": "^3.8.2",
|
||||
"xml-js": "^1.6.11"
|
||||
@@ -53,5 +53,8 @@
|
||||
"tailwind-scrollbar": "^2.0.1",
|
||||
"tailwindcss": "^3.1.8",
|
||||
"typescript": "^4.8.3"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"osx-temperature-sensor": "^1.0.8"
|
||||
}
|
||||
}
|
||||
|
||||
2294
pnpm-lock.yaml
generated
2294
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -23,7 +23,14 @@
|
||||
"free": "متاح",
|
||||
"used": "مستخدم",
|
||||
"load": "الضغط",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "المستخدمون",
|
||||
@@ -107,13 +114,24 @@
|
||||
"cpu": "المعالج",
|
||||
"offline": "غير متصل",
|
||||
"error": "خطأ",
|
||||
"unknown": "مجهول"
|
||||
"unknown": "مجهول",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "يعمل الآن",
|
||||
"transcoding": "التحويل",
|
||||
"bitrate": "معدل البت",
|
||||
"no_active": "No Active Streams"
|
||||
"no_active": "No Active Streams",
|
||||
"songs": "Songs",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -277,13 +295,19 @@
|
||||
"glances": {
|
||||
"cpu": "معالج",
|
||||
"mem": "الذاكرة",
|
||||
"wait": "الرجاء الإنتظار"
|
||||
"wait": "الرجاء الإنتظار",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "مفضلة",
|
||||
"service": "خدمة",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "نظام",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "تحديث متاح",
|
||||
"up_to_date": "حتى الآن",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"volumeAvailable": "Available",
|
||||
"uptime": "Uptime"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,14 @@
|
||||
"free": "Свободни",
|
||||
"used": "Заети",
|
||||
"load": "Натоварване",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Потребители",
|
||||
@@ -59,13 +66,24 @@
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"partial": "Partial",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Възпроизвежда",
|
||||
"transcoding": "Конвертира",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "Няма активни потоци"
|
||||
"no_active": "Няма активни потоци",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Възпроизвежда",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"rejectedPushes": "Rejected",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"down": "Offline",
|
||||
"grace": "In Grace Period",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,14 @@
|
||||
"used": "Utilitzat",
|
||||
"load": "Càrrega",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "Rebut",
|
||||
@@ -48,13 +55,24 @@
|
||||
"cpu": "Processador",
|
||||
"offline": "Fora de línia",
|
||||
"error": "Error",
|
||||
"unknown": "Desconegut"
|
||||
"unknown": "Desconegut",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Reproduint",
|
||||
"transcoding": "Transcodificant",
|
||||
"bitrate": "Taxa de bits",
|
||||
"no_active": "Sense reproduccions actives"
|
||||
"no_active": "Sense reproduccions actives",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Reproduint",
|
||||
@@ -165,7 +183,7 @@
|
||||
"qbittorrent": {
|
||||
"download": "Descàrrega",
|
||||
"upload": "Pujada",
|
||||
"leech": "Company",
|
||||
"leech": "Companys",
|
||||
"seed": "Llavors"
|
||||
},
|
||||
"mastodon": {
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "Processador",
|
||||
"mem": "Memòria",
|
||||
"wait": "Si us plau, espereu"
|
||||
"wait": "Si us plau, espereu",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total d'observats",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Marcador",
|
||||
"service": "Servei",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistema",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Actualització disponible",
|
||||
"up_to_date": "Actualitzat",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Aprovat",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
"widget": {
|
||||
"missing_type": "Chybí typ widgetu: {{type}}",
|
||||
"api_error": "Chyba API",
|
||||
"status": "Status",
|
||||
"information": "Information",
|
||||
"status": "Stav",
|
||||
"information": "Informace",
|
||||
"url": "URL",
|
||||
"raw_error": "Raw Error",
|
||||
"response_data": "Response Data"
|
||||
"raw_error": "Nevyřešená chyba",
|
||||
"response_data": "Data odezvy"
|
||||
},
|
||||
"weather": {
|
||||
"current": "Aktuální poloha",
|
||||
@@ -35,7 +35,14 @@
|
||||
"free": "Volné",
|
||||
"used": "Využité",
|
||||
"load": "Vytížení",
|
||||
"mem": "MEM"
|
||||
"mem": "RAM",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m",
|
||||
"temp": "TEMP"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Uživatelé",
|
||||
@@ -52,7 +59,7 @@
|
||||
"up": "BĚŽÍ",
|
||||
"down": "NEBĚŽÍ",
|
||||
"wait": "Počkejte prosím",
|
||||
"empty_data": "Subsystem status unknown"
|
||||
"empty_data": "Status podsystému neznámý"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
@@ -60,14 +67,25 @@
|
||||
"mem": "RAM",
|
||||
"cpu": "CPU",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"error": "Chyba",
|
||||
"unknown": "Neznámý",
|
||||
"running": "Běží",
|
||||
"starting": "Startuje",
|
||||
"unhealthy": "Nezdravý",
|
||||
"not_found": "Nenalezen",
|
||||
"exited": "Ukončen",
|
||||
"partial": "Částečný",
|
||||
"healthy": "Zdravý"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Přehrává",
|
||||
"transcoding": "Transkódování",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "Žádný aktivní stream"
|
||||
"no_active": "Žádný aktivní stream",
|
||||
"movies": "Filmy",
|
||||
"series": "Seriály",
|
||||
"episodes": "Epizody",
|
||||
"songs": "Písničky"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Celkem zjištěno",
|
||||
@@ -102,33 +120,33 @@
|
||||
"transmission": {
|
||||
"download": "Stahování",
|
||||
"upload": "Nahrávání",
|
||||
"leech": "Leecher",
|
||||
"seed": "Seeder"
|
||||
"leech": "Leecherů",
|
||||
"seed": "Seedů"
|
||||
},
|
||||
"qbittorrent": {
|
||||
"download": "Stahování",
|
||||
"upload": "Nahrávání",
|
||||
"leech": "Leecher",
|
||||
"seed": "Seeder"
|
||||
"leech": "Leechované",
|
||||
"seed": "Seedované"
|
||||
},
|
||||
"sonarr": {
|
||||
"wanted": "Hledaný",
|
||||
"wanted": "Hledané",
|
||||
"queued": "Ve frontě",
|
||||
"series": "Seriály"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Hledaný",
|
||||
"wanted": "Hledané",
|
||||
"missing": "Chybějící",
|
||||
"queued": "Ve frontě",
|
||||
"movies": "Filmy"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Hledaný",
|
||||
"wanted": "Hledané",
|
||||
"queued": "Ve frontě",
|
||||
"albums": "Alba"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Hledaný",
|
||||
"wanted": "Hledané",
|
||||
"queued": "Ve frontě",
|
||||
"books": "Knihy"
|
||||
},
|
||||
@@ -139,23 +157,23 @@
|
||||
"ombi": {
|
||||
"pending": "Čeká",
|
||||
"approved": "Schváleno",
|
||||
"available": "Dostupný"
|
||||
"available": "Dostupné"
|
||||
},
|
||||
"jellyseerr": {
|
||||
"pending": "Čeká",
|
||||
"approved": "Schváleno",
|
||||
"available": "Dostupný"
|
||||
"available": "Dostupné"
|
||||
},
|
||||
"overseerr": {
|
||||
"pending": "Čeká",
|
||||
"approved": "Schváleno",
|
||||
"available": "Dostupný",
|
||||
"processing": "Processing"
|
||||
"available": "Dostupné",
|
||||
"processing": "Zpracovávání"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Dotazy",
|
||||
"blocked": "Blokováno",
|
||||
"gravity": "Gravitace"
|
||||
"gravity": "Gravity"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Dotazy",
|
||||
@@ -289,21 +307,30 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "RAM",
|
||||
"wait": "Prosím počkejte"
|
||||
"wait": "Prosím počkejte",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Záložka",
|
||||
"service": "Služba",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"search": "Hledat",
|
||||
"custom": "Vlastní",
|
||||
"visit": "Navštivte",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"update_available": "Dostupná aktualizace",
|
||||
"up_to_date": "Aktuální",
|
||||
"update_available": "Dostupná",
|
||||
"up_to_date": "Žádné",
|
||||
"available_update": "Systém",
|
||||
"updates": "Aktualizace",
|
||||
"child_bridges": "Podřadné můstky",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Zapnutý",
|
||||
"pending": "Čeká se",
|
||||
"down": "Vypnutý"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Naskenováno",
|
||||
@@ -317,156 +344,223 @@
|
||||
"indexers": "Indexery"
|
||||
},
|
||||
"navidrome": {
|
||||
"nothing_streaming": "No Active Streams",
|
||||
"please_wait": "Please Wait"
|
||||
"nothing_streaming": "Žádné aktivní streamy",
|
||||
"please_wait": "Čekejte prosím"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Speed",
|
||||
"active": "Active",
|
||||
"queue": "Queue",
|
||||
"total": "Total"
|
||||
"speed": "Rychlost",
|
||||
"active": "Aktivní",
|
||||
"queue": "Fronta",
|
||||
"total": "Celkem"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
"public_ip": "Veřejná IP",
|
||||
"region": "Oblast",
|
||||
"country": "Stát"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"channels": "Kanály",
|
||||
"hd": "HD"
|
||||
},
|
||||
"ping": {
|
||||
"error": "Error",
|
||||
"ping": "Ping"
|
||||
"error": "Chyba",
|
||||
"ping": "Odezva"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
"passed": "Přijato",
|
||||
"failed": "Neúspěšné",
|
||||
"unknown": "Neznámé"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"total": "Total"
|
||||
"inbox": "Doručená pošta",
|
||||
"total": "Celkem"
|
||||
},
|
||||
"deluge": {
|
||||
"upload": "Upload",
|
||||
"upload": "Nahrávání",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed",
|
||||
"download": "Download"
|
||||
"download": "Stahování"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "Stahování",
|
||||
"upload": "Nahrávání",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Queue",
|
||||
"processed": "Processed",
|
||||
"errored": "Errored",
|
||||
"saved": "Saved"
|
||||
"queue": "Fronta",
|
||||
"processed": "Zpracováno",
|
||||
"errored": "Chybné",
|
||||
"saved": "Uložené"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
"read": "Přečteno",
|
||||
"unread": "Nepřečteno"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
"wait": "Počkejte prosím",
|
||||
"no_devices": "Žádná přijatá data zařízení"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
"connectedAp": "Připojené APs",
|
||||
"activeUser": "Aktivní zařízení",
|
||||
"alerts": "Upozornění",
|
||||
"connectedGateway": "Připojené brány",
|
||||
"connectedSwitches": "Připojené přepínače"
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "Stahování",
|
||||
"upload": "Nahrávání",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
"cpuLoad": "Zatížení procesoru",
|
||||
"memoryUsed": "Použitá paměť",
|
||||
"uptime": "Doba provozu",
|
||||
"numberOfLeases": "Pronájmy"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_active": "Active Streams",
|
||||
"streams_xepg": "XEPG Channels"
|
||||
"streams_all": "Všechny proudy",
|
||||
"streams_active": "Aktivní proudy",
|
||||
"streams_xepg": "Kanály XEPG"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
"cpu": "Zatížení procesoru",
|
||||
"memory": "Aktivní paměť",
|
||||
"wanUpload": "Nahrávání WAN",
|
||||
"wanDownload": "WAN Stažení"
|
||||
},
|
||||
"moonraker": {
|
||||
"print_progress": "Progress",
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"layers": "Layers"
|
||||
"print_progress": "Progres",
|
||||
"printer_state": "Stav tiskárny",
|
||||
"print_status": "Stav tisku",
|
||||
"layers": "Vrstvy"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"wanted": "Hledané",
|
||||
"queued": "Fronta",
|
||||
"series": "Série"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
"printer_state": "Stav",
|
||||
"temp_tool": "Teplota nástroje",
|
||||
"temp_bed": "Teplota postele",
|
||||
"job_completion": "Dokončení"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"status": "Status"
|
||||
"origin_ip": "Původní IP",
|
||||
"status": "Stav"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"datastore_usage": "Datové úložiště",
|
||||
"failed_tasks_24h": "Neúspěšné úlohy 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
"memory_usage": "Paměť"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
"users": "Uživatelé",
|
||||
"photos": "Fotografie",
|
||||
"videos": "Videa",
|
||||
"storage": "Úložiště"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"up": "Stránky Up",
|
||||
"down": "Stránky Down",
|
||||
"uptime": "Doba provozu",
|
||||
"incident": "Incident",
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
"libraries": "Knihovny",
|
||||
"series": "Série",
|
||||
"books": "Knihy"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
"series": "Série",
|
||||
"issues": "Problémy",
|
||||
"wanted": "Hledá se"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
"albums": "Alba",
|
||||
"photos": "Fotografie",
|
||||
"videos": "Videa",
|
||||
"people": "Lidé"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"days": "Dni",
|
||||
"uptime": "Doba provozu",
|
||||
"volumeAvailable": "K dispozici"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Fronta",
|
||||
"processing": "Zpracování",
|
||||
"processed": "Zpracováno",
|
||||
"time": "Čas"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Přístrojové panely",
|
||||
"datasources": "Zdroje dat",
|
||||
"totalalerts": "Celkový počet upozornění",
|
||||
"alertstriggered": "Spuštěné výstrahy"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "CPU zatížení",
|
||||
"memoryusage": "Využití paměti",
|
||||
"freespace": "Volný prostor",
|
||||
"activeusers": "Aktivní uživatelé"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Stav",
|
||||
"size": "Velikost",
|
||||
"lastrun": "Poslední spuštění",
|
||||
"nextrun": "Další spuštění",
|
||||
"failed": "Neúspěšné"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Aktivní workers",
|
||||
"total_workers": "Workers celkem",
|
||||
"records_total": "Délka fronty"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "Nové",
|
||||
"up": "Online",
|
||||
"grace": "V období odkladu",
|
||||
"down": "Offline",
|
||||
"paused": "Pozastaveno",
|
||||
"status": "Stav",
|
||||
"last_ping": "Poslední ping",
|
||||
"never": "Zatím žádné pingy"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servery",
|
||||
"nodes": "Uzly"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_down": "Cíle vypnuté",
|
||||
"targets_total": "Cíle celkem",
|
||||
"targets_up": "Cíle zapnuté"
|
||||
},
|
||||
"minecraft": {
|
||||
"up": "Online",
|
||||
"down": "Offline",
|
||||
"players": "Hráči",
|
||||
"version": "Verze",
|
||||
"status": "Stav"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Dnes",
|
||||
"gross_percent_1y": "Jeden rok",
|
||||
"gross_percent_max": "Za celou dobu"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasty",
|
||||
"books": "Knihy",
|
||||
"podcastsDuration": "Trvání",
|
||||
"booksDuration": "Trvání"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,7 +68,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "RAM",
|
||||
"wait": "Vent venligst"
|
||||
"wait": "Vent venligst",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"temp": "TEMP"
|
||||
},
|
||||
"wmo": {
|
||||
"1-day": "Hovedsageligt solrigt",
|
||||
@@ -134,7 +138,10 @@
|
||||
"update_available": "Opdateringer tilgængelige",
|
||||
"up_to_date": "Opdateret",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"widget": {
|
||||
"missing_type": "Manglende Widget Type: {{type}}",
|
||||
@@ -160,7 +167,14 @@
|
||||
"free": "Fri",
|
||||
"used": "Brugt",
|
||||
"load": "Belastning",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"hours": "h",
|
||||
"minutes": "m",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Brugere",
|
||||
@@ -186,13 +200,24 @@
|
||||
"mem": "RAM",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Afspiller",
|
||||
"transcoding": "Transcoder",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "Ingen Aktive Streams"
|
||||
"no_active": "Ingen Aktive Streams",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observeret",
|
||||
@@ -291,7 +316,9 @@
|
||||
"bookmark": "Bogmærker",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scannet",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"grafana": {
|
||||
"totalalerts": "Total Alerts",
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"memoryusage": "Memory Usage",
|
||||
"cpuload": "Cpu Load",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"booksDuration": "Duration",
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
"api_error": "API-Fehler",
|
||||
"status": "Status",
|
||||
"url": "URL",
|
||||
"information": "Information",
|
||||
"raw_error": "Raw Error",
|
||||
"information": "Informationen",
|
||||
"raw_error": "Unbearbeiteter Fehler",
|
||||
"response_data": "Empfangene Daten"
|
||||
},
|
||||
"search": {
|
||||
@@ -17,7 +17,14 @@
|
||||
"used": "Gebraucht",
|
||||
"load": "Last",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "RAM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "Rx",
|
||||
@@ -25,14 +32,25 @@
|
||||
"mem": "Mem",
|
||||
"cpu": "Prozessor",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"error": "Fehler",
|
||||
"unknown": "Unbekannt",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Spielen",
|
||||
"transcoding": "Transcodierung",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "Keine aktiven Streams"
|
||||
"no_active": "Keine aktiven Streams",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Spielen",
|
||||
@@ -106,7 +124,7 @@
|
||||
"pending": "Ausstehend",
|
||||
"approved": "Genehmigt",
|
||||
"available": "Verfügbar",
|
||||
"processing": "Processing"
|
||||
"processing": "Wird verarbeitet"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Geschwindigkeit",
|
||||
@@ -205,7 +223,7 @@
|
||||
"devices": "Geräte",
|
||||
"lan_devices": "LAN-Geräte",
|
||||
"wlan_devices": "WLAN Geräte",
|
||||
"empty_data": "Subsystem status unknown"
|
||||
"empty_data": "Subsystem status unbekannt"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Aktive Streams",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "Prozessor",
|
||||
"mem": "RAM",
|
||||
"wait": "Bitte warten"
|
||||
"wait": "Bitte warten",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Gesamt beobachtet",
|
||||
@@ -282,8 +304,10 @@
|
||||
"quicklaunch": {
|
||||
"bookmark": "Lesezeichen",
|
||||
"service": "Dienst",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"search": "Suchen",
|
||||
"custom": "Benutzerdefiniert",
|
||||
"visit": "Besuchen",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Aktualisierung verfügbar",
|
||||
"up_to_date": "Aktuell",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Genehmigt",
|
||||
@@ -317,36 +344,36 @@
|
||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||
},
|
||||
"navidrome": {
|
||||
"nothing_streaming": "No Active Streams",
|
||||
"please_wait": "Please Wait"
|
||||
"nothing_streaming": "Keine Aktiven Übertragungen",
|
||||
"please_wait": "Bitte warten"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Speed",
|
||||
"active": "Active",
|
||||
"queue": "Queue",
|
||||
"total": "Total"
|
||||
"speed": "Geschwindigkeit",
|
||||
"active": "Aktiv",
|
||||
"queue": "Warteschlange",
|
||||
"total": "Gesamt"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"public_ip": "Öffentliche IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
"country": "Land"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"channels": "Kanäle",
|
||||
"hd": "HD"
|
||||
},
|
||||
"ping": {
|
||||
"ping": "Ping",
|
||||
"error": "Error"
|
||||
"error": "Fehler"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
"passed": "Bestanden",
|
||||
"failed": "Fehlgeschlagen",
|
||||
"unknown": "Unbekannt"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"total": "Total"
|
||||
"inbox": "Eingang",
|
||||
"total": "Gesamt"
|
||||
},
|
||||
"deluge": {
|
||||
"download": "Download",
|
||||
@@ -361,29 +388,29 @@
|
||||
"seed": "Seed"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Queue",
|
||||
"processed": "Processed",
|
||||
"errored": "Errored",
|
||||
"saved": "Saved"
|
||||
"queue": "Warteschlange",
|
||||
"processed": "Verarbeitet",
|
||||
"errored": "Fehlgeschlagen",
|
||||
"saved": "Gespeichert"
|
||||
},
|
||||
"miniflux": {
|
||||
"unread": "Unread",
|
||||
"read": "Read"
|
||||
"unread": "Ungelesen",
|
||||
"read": "Lesen"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
"wait": "Bitte Warten",
|
||||
"no_devices": "Keine Daten empfangen"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
"connectedAp": "Verbundene APs",
|
||||
"activeUser": "Aktive Geräte",
|
||||
"alerts": "Meldungen",
|
||||
"connectedGateway": "Verbundene Gateways",
|
||||
"connectedSwitches": "Verbundene Switches"
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "Download",
|
||||
@@ -392,81 +419,148 @@
|
||||
"seed": "Seed"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"cpuLoad": "CPU Auslastung",
|
||||
"memoryUsed": "RAM Verbrauch",
|
||||
"uptime": "Laufzeit",
|
||||
"numberOfLeases": "Leases"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_active": "Active Streams",
|
||||
"streams_xepg": "XEPG Channels"
|
||||
"streams_all": "Keine Übertragungen",
|
||||
"streams_active": "Aktive Streams",
|
||||
"streams_xepg": "XEPG Kanäle"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"cpu": "CPU Auslastung",
|
||||
"memory": "Aktiver RAM",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
"printer_state": "Drucker Status",
|
||||
"print_status": "Druck Status",
|
||||
"print_progress": "Fortschritt",
|
||||
"layers": "Schichten"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"wanted": "Gesucht",
|
||||
"queued": "Wartend",
|
||||
"series": "Serie"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
"temp_tool": "Düsen Temp",
|
||||
"temp_bed": "Bett Temp",
|
||||
"job_completion": "Fortschritt"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"origin_ip": "Ursprüngliche IP",
|
||||
"status": "Status"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"cpu_usage": "CPU",
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"memory_usage": "Memory"
|
||||
"datastore_usage": "Datenspeicher",
|
||||
"failed_tasks_24h": "Fehlgeschlagene Prozesse 24h",
|
||||
"memory_usage": "RAM"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"users": "Benutzer",
|
||||
"photos": "Fotos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
"storage": "Speicher"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"incident": "Incident",
|
||||
"up": "Seiten verfügbar",
|
||||
"down": "Seiten nicht verfügbar",
|
||||
"uptime": "Laufzeit",
|
||||
"incident": "Vorfall",
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
"libraries": "Bibliotheken",
|
||||
"series": "Serie",
|
||||
"books": "Bücher"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
"series": "Serie",
|
||||
"issues": "Probleme",
|
||||
"wanted": "Gesucht"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"albums": "Alben",
|
||||
"photos": "Fotos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
"people": "Personen"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"days": "Tage",
|
||||
"uptime": "Laufzeit",
|
||||
"volumeAvailable": "Verfügbar"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Warteschlange",
|
||||
"processing": "Wird verarbeitet",
|
||||
"processed": "Verarbeitet",
|
||||
"time": "Zeit"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Datenquellen",
|
||||
"totalalerts": "Gesamte Meldungen",
|
||||
"alertstriggered": "Ausgelöste Alarme"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "CPU Last",
|
||||
"memoryusage": "RAM Verbrauch",
|
||||
"freespace": "Freier Speicher",
|
||||
"activeusers": "Aktive Nutzer"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Größe",
|
||||
"lastrun": "Letzter Durchlauf",
|
||||
"nextrun": "Nächster Durchlauf",
|
||||
"failed": "Fehlgeschlagen"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"grace": "In Grace Period",
|
||||
"new": "Neu",
|
||||
"up": "Online",
|
||||
"down": "Offline",
|
||||
"paused": "Pausiert",
|
||||
"status": "Status",
|
||||
"last_ping": "Letzter Ping",
|
||||
"never": "Noch keine Pings"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Server",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Spieler",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_max": "All time",
|
||||
"gross_percent_today": "Heute",
|
||||
"gross_percent_1y": "Ein Jahr"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
566
public/locales/el/common.json
Normal file
566
public/locales/el/common.json
Normal file
@@ -0,0 +1,566 @@
|
||||
{
|
||||
"resources": {
|
||||
"used": "Used",
|
||||
"load": "Load",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"omada": {
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedAp": "Connected APs",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"wmo": {
|
||||
"0-night": "Clear",
|
||||
"65-day": "Heavy Rain",
|
||||
"65-night": "Heavy Rain",
|
||||
"0-day": "Sunny",
|
||||
"1-day": "Mainly Sunny",
|
||||
"1-night": "Mainly Clear",
|
||||
"2-day": "Partly Cloudy",
|
||||
"2-night": "Partly Cloudy",
|
||||
"3-day": "Cloudy",
|
||||
"3-night": "Cloudy",
|
||||
"45-day": "Foggy",
|
||||
"45-night": "Foggy",
|
||||
"48-day": "Foggy",
|
||||
"48-night": "Foggy",
|
||||
"51-day": "Light Drizzle",
|
||||
"51-night": "Light Drizzle",
|
||||
"53-day": "Drizzle",
|
||||
"53-night": "Drizzle",
|
||||
"55-day": "Heavy Drizzle",
|
||||
"55-night": "Heavy Drizzle",
|
||||
"56-day": "Light Freezing Drizzle",
|
||||
"56-night": "Light Freezing Drizzle",
|
||||
"57-day": "Freezing Drizzle",
|
||||
"57-night": "Freezing Drizzle",
|
||||
"61-day": "Light Rain",
|
||||
"61-night": "Light Rain",
|
||||
"63-day": "Rain",
|
||||
"63-night": "Rain",
|
||||
"66-day": "Freezing Rain",
|
||||
"66-night": "Freezing Rain",
|
||||
"67-day": "Freezing Rain",
|
||||
"67-night": "Freezing Rain",
|
||||
"71-day": "Light Snow",
|
||||
"71-night": "Light Snow",
|
||||
"73-day": "Snow",
|
||||
"73-night": "Snow",
|
||||
"75-day": "Heavy Snow",
|
||||
"75-night": "Heavy Snow",
|
||||
"77-day": "Snow Grains",
|
||||
"77-night": "Snow Grains",
|
||||
"80-day": "Light Showers",
|
||||
"80-night": "Light Showers",
|
||||
"81-day": "Showers",
|
||||
"81-night": "Showers",
|
||||
"82-day": "Heavy Showers",
|
||||
"82-night": "Heavy Showers",
|
||||
"85-day": "Snow Showers",
|
||||
"85-night": "Snow Showers",
|
||||
"86-day": "Snow Showers",
|
||||
"86-night": "Snow Showers",
|
||||
"95-day": "Thunderstorm",
|
||||
"95-night": "Thunderstorm",
|
||||
"96-day": "Thunderstorm With Hail",
|
||||
"96-night": "Thunderstorm With Hail",
|
||||
"99-day": "Thunderstorm With Hail",
|
||||
"99-night": "Thunderstorm With Hail"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||
},
|
||||
"widget": {
|
||||
"missing_type": "Missing Widget Type: {{type}}",
|
||||
"api_error": "API Error",
|
||||
"information": "Information",
|
||||
"status": "Status",
|
||||
"url": "URL",
|
||||
"raw_error": "Raw Error",
|
||||
"response_data": "Response Data"
|
||||
},
|
||||
"weather": {
|
||||
"current": "Current Location",
|
||||
"allow": "Click to allow",
|
||||
"updating": "Updating",
|
||||
"wait": "Please wait"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Search…"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Users",
|
||||
"uptime": "System Uptime",
|
||||
"days": "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",
|
||||
"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",
|
||||
"exited": "Exited",
|
||||
"starting": "Starting",
|
||||
"partial": "Partial",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
"diffsDetected": "Diffs Detected"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Playing",
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "Rate",
|
||||
"remaining": "Remaining",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Active Streams",
|
||||
"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"
|
||||
},
|
||||
"deluge": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"sonarr": {
|
||||
"series": "Series",
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued"
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"books": "Books"
|
||||
},
|
||||
"bazarr": {
|
||||
"missingEpisodes": "Missing Episodes",
|
||||
"missingMovies": "Missing Movies"
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "Pending",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
},
|
||||
"jellyseerr": {
|
||||
"pending": "Pending",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
},
|
||||
"overseerr": {
|
||||
"pending": "Pending",
|
||||
"processing": "Processing",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"filtered": "Filtered",
|
||||
"latency": "Latency"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Upload",
|
||||
"download": "Download",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"portainer": {
|
||||
"running": "Running",
|
||||
"stopped": "Stopped",
|
||||
"total": "Total"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Queue",
|
||||
"processed": "Processed",
|
||||
"errored": "Errored",
|
||||
"saved": "Saved"
|
||||
},
|
||||
"traefik": {
|
||||
"routers": "Routers",
|
||||
"services": "Services",
|
||||
"middleware": "Middleware"
|
||||
},
|
||||
"navidrome": {
|
||||
"nothing_streaming": "No Active Streams",
|
||||
"please_wait": "Please Wait"
|
||||
},
|
||||
"npm": {
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"total": "Total"
|
||||
},
|
||||
"coinmarketcap": {
|
||||
"configure": "Configure one or more crypto currencies to track",
|
||||
"1hour": "1 Hour",
|
||||
"1day": "1 Day",
|
||||
"7days": "7 Days",
|
||||
"30days": "30 Days"
|
||||
},
|
||||
"gotify": {
|
||||
"apps": "Applications",
|
||||
"clients": "Clients",
|
||||
"messages": "Messages"
|
||||
},
|
||||
"prowlarr": {
|
||||
"enableIndexers": "Indexers",
|
||||
"numberOfGrabs": "Grabs",
|
||||
"numberOfQueries": "Queries",
|
||||
"numberOfFailGrabs": "Fail Grabs",
|
||||
"numberOfFailQueries": "Fail Queries"
|
||||
},
|
||||
"strelaysrv": {
|
||||
"numActiveSessions": "Sessions",
|
||||
"numConnections": "Connections",
|
||||
"dataRelayed": "Relayed",
|
||||
"transferRate": "Rate"
|
||||
},
|
||||
"jackett": {
|
||||
"configured": "Configured",
|
||||
"errored": "Errored"
|
||||
},
|
||||
"mastodon": {
|
||||
"user_count": "Users",
|
||||
"status_count": "Posts",
|
||||
"domain_count": "Domains"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"down": "Offline",
|
||||
"status": "Status",
|
||||
"up": "Online"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
},
|
||||
"authentik": {
|
||||
"users": "Users",
|
||||
"loginsLast24H": "Logins (24h)",
|
||||
"failedLoginsLast24H": "Failed Logins (24h)"
|
||||
},
|
||||
"proxmox": {
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"lxc": "LXC",
|
||||
"vms": "VMs"
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
"updates": "Updates",
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
"containers_updated": "Updated",
|
||||
"containers_failed": "Failed"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
"rejectedPushes": "Rejected",
|
||||
"filters": "Filters",
|
||||
"indexers": "Indexers"
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "Queue",
|
||||
"videos": "Videos",
|
||||
"channels": "Channels",
|
||||
"playlists": "Playlists"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "System Load",
|
||||
"uptime": "Uptime",
|
||||
"alerts": "Alerts",
|
||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Speed",
|
||||
"active": "Active",
|
||||
"queue": "Queue",
|
||||
"total": "Total"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"hd": "HD"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"total": "Total"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_active": "Active Streams",
|
||||
"streams_xepg": "XEPG Channels"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"status": "Status"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"incident": "Incident",
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
},
|
||||
"fileflows": {
|
||||
"processed": "Processed",
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"time": "Time"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
108
public/locales/en/common.json
Normal file → Executable file
108
public/locales/en/common.json
Normal file → Executable file
@@ -36,7 +36,14 @@
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used",
|
||||
"load": "Load"
|
||||
"load": "Load",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Users",
|
||||
@@ -60,9 +67,16 @@
|
||||
"tx": "TX",
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"running": "Running",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"healthy": "Healthy",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial"
|
||||
},
|
||||
"ping": {
|
||||
"error": "Error",
|
||||
@@ -72,7 +86,11 @@
|
||||
"playing": "Playing",
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams"
|
||||
"no_active": "No Active Streams",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Download",
|
||||
@@ -262,6 +280,13 @@
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
@@ -280,13 +305,19 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Sunny",
|
||||
@@ -352,7 +383,20 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
@@ -477,5 +521,55 @@
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,14 @@
|
||||
"free": "Libera",
|
||||
"used": "Uzata",
|
||||
"load": "Ŝarĝo",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"months": "mo",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Uzantoj",
|
||||
@@ -49,7 +56,14 @@
|
||||
"cpu": "Ĉefprocesoro",
|
||||
"offline": "Offline",
|
||||
"error": "Eraro",
|
||||
"unknown": "Nekonata"
|
||||
"unknown": "Nekonata",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"ping": {
|
||||
"error": "Eraro",
|
||||
@@ -59,7 +73,11 @@
|
||||
"playing": "Ludante",
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams"
|
||||
"no_active": "No Active Streams",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -233,13 +251,19 @@
|
||||
"glances": {
|
||||
"cpu": "Ĉefprocesoro",
|
||||
"mem": "Memoro",
|
||||
"wait": "Bonvolu atendi"
|
||||
"wait": "Bonvolu atendi",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Servo",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Suna",
|
||||
@@ -305,7 +329,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"activeusers": "Active Users",
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,14 @@
|
||||
"used": "Usado",
|
||||
"load": "Carga",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMPORAL",
|
||||
"max": "Máx.",
|
||||
"uptime": "ARRIBA",
|
||||
"months": "Meses",
|
||||
"days": "Días",
|
||||
"hours": "Horas",
|
||||
"minutes": "Minutos"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "Recibido",
|
||||
@@ -26,13 +33,24 @@
|
||||
"cpu": "Procesador",
|
||||
"offline": "Desconectado",
|
||||
"error": "Fallo",
|
||||
"unknown": "Desconocido"
|
||||
"unknown": "Desconocido",
|
||||
"running": "Ejecutando",
|
||||
"starting": "Comenzando",
|
||||
"unhealthy": "Insalubre",
|
||||
"not_found": "No encontrado",
|
||||
"exited": "Salida",
|
||||
"partial": "Parcial",
|
||||
"healthy": "Saludable"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Reproduciendo",
|
||||
"transcoding": "Transcodificando",
|
||||
"bitrate": "Tasa de bits",
|
||||
"no_active": "Sin transmisiones activas"
|
||||
"no_active": "Sin transmisiones activas",
|
||||
"movies": "Películas",
|
||||
"series": "Serie",
|
||||
"episodes": "Episodios",
|
||||
"songs": "Canciones"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Reproduciendo",
|
||||
@@ -100,7 +118,7 @@
|
||||
"current": "Ubicación actual",
|
||||
"allow": "Clic para permitir",
|
||||
"updating": "Actualizando",
|
||||
"wait": "Espere, por favor"
|
||||
"wait": "Espera, por favor"
|
||||
},
|
||||
"overseerr": {
|
||||
"pending": "Pendiente",
|
||||
@@ -140,7 +158,7 @@
|
||||
"transmission": {
|
||||
"download": "Bajada",
|
||||
"upload": "Subida",
|
||||
"leech": "Leech",
|
||||
"leech": "Sanguijuela",
|
||||
"seed": "Semillas"
|
||||
},
|
||||
"jackett": {
|
||||
@@ -165,7 +183,7 @@
|
||||
"qbittorrent": {
|
||||
"download": "Bajada",
|
||||
"upload": "Subida",
|
||||
"leech": "Depender",
|
||||
"leech": "Compañeros",
|
||||
"seed": "Semillas"
|
||||
},
|
||||
"mastodon": {
|
||||
@@ -210,12 +228,16 @@
|
||||
"plex": {
|
||||
"streams": "Transmisiones activas",
|
||||
"movies": "Películas",
|
||||
"tv": "Programas de TV"
|
||||
"tv": "Series"
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "Procesador",
|
||||
"mem": "Memoria",
|
||||
"wait": "Espere por favor"
|
||||
"wait": "Espere por favor",
|
||||
"temp": "TEMPORAL",
|
||||
"uptime": "ARRIBA",
|
||||
"days": "Días",
|
||||
"hours": "Horas"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observados",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Marcadores",
|
||||
"service": "Servicio",
|
||||
"search": "Buscar",
|
||||
"custom": "Personalizado"
|
||||
"custom": "Personalizado",
|
||||
"visit": "Visita",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistema",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Actualización disponible",
|
||||
"up_to_date": "Actualizado",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Arriba",
|
||||
"pending": "Pendiente",
|
||||
"down": "Abajo"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Aprobado",
|
||||
@@ -398,8 +425,8 @@
|
||||
"numberOfLeases": "Alquileres"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "Todas las corrientes",
|
||||
"streams_active": "Corrientes activas",
|
||||
"streams_all": "Todos los flujos",
|
||||
"streams_active": "Flujos activos",
|
||||
"streams_xepg": "Canales XEPG"
|
||||
},
|
||||
"opnsense": {
|
||||
@@ -420,10 +447,10 @@
|
||||
"series": "Serie"
|
||||
},
|
||||
"octoprint": {
|
||||
"temp_bed": "Bed temp",
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"job_completion": "Completion"
|
||||
"temp_bed": "temperatura de la plataforma",
|
||||
"printer_state": "Estado",
|
||||
"temp_tool": "Temperatura de herramienta",
|
||||
"job_completion": "Finalización"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "IP de origen",
|
||||
@@ -465,8 +492,75 @@
|
||||
"people": "Personas"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"days": "Días",
|
||||
"uptime": "Funcionando",
|
||||
"volumeAvailable": "Disponible"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Cola",
|
||||
"processing": "Procesando",
|
||||
"processed": "Procesado",
|
||||
"time": "Tiempo"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Fuentes de datos",
|
||||
"totalalerts": "Alertas totales",
|
||||
"alertstriggered": "Alertas activadas"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Carga de la CPU",
|
||||
"memoryusage": "Uso de la memoria",
|
||||
"freespace": "Espacio libre",
|
||||
"activeusers": "Usuarios activos"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Estado",
|
||||
"size": "Tamaño",
|
||||
"lastrun": "Última ejecución",
|
||||
"nextrun": "Siguiente ejecución",
|
||||
"failed": "Fallido"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Trabajadores en activo",
|
||||
"total_workers": "Total de trabajadores",
|
||||
"records_total": "Duración de la cola"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "Nuevo",
|
||||
"up": "Conectado",
|
||||
"down": "Desconectado",
|
||||
"grace": "En Periodo de Gracia",
|
||||
"paused": "Pausado",
|
||||
"status": "Estado",
|
||||
"last_ping": "Último Ping",
|
||||
"never": "Aún no hay pings"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servidores",
|
||||
"nodes": "Nodos"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Objetivos arriba",
|
||||
"targets_down": "Objetivos abajo",
|
||||
"targets_total": "Objetivos totales"
|
||||
},
|
||||
"minecraft": {
|
||||
"status": "Estado",
|
||||
"up": "En línea",
|
||||
"players": "Jugadores",
|
||||
"version": "Versión",
|
||||
"down": "Sin conexión"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Hoy",
|
||||
"gross_percent_1y": "Un año",
|
||||
"gross_percent_max": "Todo el tiempo"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Libros",
|
||||
"podcastsDuration": "Duración",
|
||||
"booksDuration": "Duración"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,14 @@
|
||||
"free": "Vapaana",
|
||||
"used": "Käytetty",
|
||||
"load": "Kuorma",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
@@ -32,13 +39,24 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Toistaa",
|
||||
"transcoding": "Transkoodaa",
|
||||
"bitrate": "Bittinopeus",
|
||||
"no_active": "Ei aktiivisia striimejä"
|
||||
"no_active": "Ei aktiivisia striimejä",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Toistaa",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"wait": "Please wait",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,14 @@
|
||||
"used": "Utilisé",
|
||||
"load": "Charge",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MÉM",
|
||||
"max": "Max",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "mn"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "Rx",
|
||||
@@ -26,13 +33,24 @@
|
||||
"cpu": "Cpu",
|
||||
"offline": "Hors ligne",
|
||||
"error": "Erreur",
|
||||
"unknown": "Inconnu"
|
||||
"unknown": "Inconnu",
|
||||
"running": "Démarré",
|
||||
"starting": "Démarrage",
|
||||
"unhealthy": "Dysfonctionnement",
|
||||
"not_found": "Inconnu",
|
||||
"exited": "Arrêté",
|
||||
"partial": "Partiel",
|
||||
"healthy": "Fonctionnel"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "En lecture",
|
||||
"transcoding": "Transcodage",
|
||||
"bitrate": "Débit",
|
||||
"no_active": "Aucun flux actif"
|
||||
"no_active": "Aucun flux actif",
|
||||
"movies": "Films",
|
||||
"series": "Séries TV",
|
||||
"episodes": "Épisodes",
|
||||
"songs": "Musique"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "En lecture",
|
||||
@@ -47,12 +65,12 @@
|
||||
},
|
||||
"sonarr": {
|
||||
"wanted": "Demande",
|
||||
"queued": "En attente",
|
||||
"queued": "Attente",
|
||||
"series": "Séries"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Demande",
|
||||
"queued": "En attente",
|
||||
"queued": "Attente",
|
||||
"movies": "Films",
|
||||
"missing": "Manquant"
|
||||
},
|
||||
@@ -103,14 +121,14 @@
|
||||
"wait": "Veuillez patienter"
|
||||
},
|
||||
"overseerr": {
|
||||
"pending": "En attente",
|
||||
"pending": "Attente",
|
||||
"approved": "Demande",
|
||||
"available": "Disponible",
|
||||
"processing": "En traitement"
|
||||
"processing": "Traitement"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Débit",
|
||||
"queue": "Queue",
|
||||
"queue": "En attente",
|
||||
"timeleft": "Temps restant"
|
||||
},
|
||||
"nzbget": {
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "Cpu",
|
||||
"mem": "Mém",
|
||||
"wait": "Merci de patienter"
|
||||
"wait": "Merci de patienter",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observé",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Signet",
|
||||
"service": "Service",
|
||||
"search": "Recherche",
|
||||
"custom": "Personnalisé"
|
||||
"custom": "Personnalisé",
|
||||
"visit": "Aller vers",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Système",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Mise à jour disponible",
|
||||
"up_to_date": "À jour",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approuvé",
|
||||
@@ -364,7 +391,7 @@
|
||||
"queue": "À traiter",
|
||||
"processed": "Traité",
|
||||
"errored": "En erreur",
|
||||
"saved": "Enregistré"
|
||||
"saved": "Economisé"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Lu",
|
||||
@@ -465,8 +492,75 @@
|
||||
"people": "Personnes"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"days": "Jours",
|
||||
"uptime": "Fonctionnement",
|
||||
"volumeAvailable": "Disponible"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "À traiter",
|
||||
"processing": "Traitement",
|
||||
"processed": "Traité",
|
||||
"time": "Temps"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Tableau de bord",
|
||||
"datasources": "Sources données",
|
||||
"totalalerts": "Total alertes",
|
||||
"alertstriggered": "Alertes déclenchées"
|
||||
},
|
||||
"nextcloud": {
|
||||
"freespace": "Espace Libre",
|
||||
"activeusers": "Utilisateurs Actifs",
|
||||
"cpuload": "Charge Cpu",
|
||||
"memoryusage": "Utilisation Mémoire"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Statut",
|
||||
"size": "Taille",
|
||||
"lastrun": "Dernière exécution",
|
||||
"nextrun": "Prochaine exécution",
|
||||
"failed": "En erreur"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "En cours",
|
||||
"total_workers": "Total",
|
||||
"records_total": "En attente"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "Nouveau",
|
||||
"up": "En ligne",
|
||||
"grace": "En Période de Grâce",
|
||||
"down": "Hors ligne",
|
||||
"paused": "En Pause",
|
||||
"status": "Statut",
|
||||
"last_ping": "Dernier Ping",
|
||||
"never": "Pas de Ping"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Serveurs",
|
||||
"nodes": "Nœuds"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Joueurs",
|
||||
"version": "Version",
|
||||
"status": "Statut",
|
||||
"up": "En ligne",
|
||||
"down": "Hors ligne"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Aujourd'hui",
|
||||
"gross_percent_1y": "Un an",
|
||||
"gross_percent_max": "Depuis le début"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Livres",
|
||||
"podcastsDuration": "Durée",
|
||||
"booksDuration": "Durée"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,14 @@
|
||||
"used": "בשימוש",
|
||||
"load": "עומס",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
@@ -32,13 +39,24 @@
|
||||
"cpu": "מעבד",
|
||||
"offline": "כבוי",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "מנגן",
|
||||
"transcoding": "מקודד",
|
||||
"bitrate": "סיביות",
|
||||
"no_active": "אין הזרמות פעילות"
|
||||
"no_active": "אין הזרמות פעילות",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "מנגן",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,14 @@
|
||||
"free": "Free",
|
||||
"used": "Used",
|
||||
"load": "Load",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Users",
|
||||
@@ -83,13 +90,24 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Playing",
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams"
|
||||
"no_active": "No Active Streams",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -223,13 +241,19 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Sunny",
|
||||
@@ -295,7 +319,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,14 @@
|
||||
"used": "Korišteno",
|
||||
"load": "Opterećenje",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"minutes": "m",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"temp": "TEMP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Stopa",
|
||||
@@ -73,13 +80,24 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Nepovezan",
|
||||
"error": "Greška",
|
||||
"unknown": "Nepoznato"
|
||||
"unknown": "Nepoznato",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Reprodukcija",
|
||||
"transcoding": "Prekodiranje",
|
||||
"bitrate": "Stopa bitova",
|
||||
"no_active": "Nema aktivnih prijenosa"
|
||||
"no_active": "Nema aktivnih prijenosa",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Reprodukcija",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Pričekaj"
|
||||
"wait": "Pričekaj",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Ukupno promatrano",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Straničnik",
|
||||
"service": "Usluga",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sustav",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Dostupna je nova verzija",
|
||||
"up_to_date": "Aktualno",
|
||||
"child_bridges": "Podređeni mosotvi",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"rejectedPushes": "Odbijeno",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"grafana": {
|
||||
"alertstriggered": "Alerts Triggered",
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,14 @@
|
||||
"used": "Használt",
|
||||
"load": "Terhelés",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
@@ -14,7 +21,14 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"unhealthy": "Unhealthy",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"lidarr": {
|
||||
"albums": "Albumok",
|
||||
@@ -52,7 +66,11 @@
|
||||
"playing": "Lejátszás",
|
||||
"transcoding": "Átkódolás",
|
||||
"bitrate": "Bitráta",
|
||||
"no_active": "Nincs aktív lejátszás"
|
||||
"no_active": "Nincs aktív lejátszás",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Lejátszás folyamatban",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,13 +6,24 @@
|
||||
"offline": "Offline",
|
||||
"rx": "RX",
|
||||
"error": "Errore",
|
||||
"unknown": "Sconosciuto"
|
||||
"unknown": "Sconosciuto",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "In riproduzione",
|
||||
"transcoding": "Transcodifica",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "Nessuno Stream Attivo"
|
||||
"no_active": "Nessuno Stream Attivo",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "In riproduzione",
|
||||
@@ -53,7 +64,14 @@
|
||||
"used": "In utilizzo",
|
||||
"load": "Carico",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"rutorrent": {
|
||||
"active": "Attivo",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Attendere prego"
|
||||
"wait": "Attendere prego",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Totale Osservato",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Segnalibro",
|
||||
"service": "Servizio",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistema",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Aggiornamento Disponibile",
|
||||
"up_to_date": "Aggiornato",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approvato",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"memoryusage": "Memory Usage",
|
||||
"cpuload": "Cpu Load",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,11 @@
|
||||
"glances": {
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"autobrr": {
|
||||
"filters": "Filters",
|
||||
@@ -58,7 +62,14 @@
|
||||
"free": "Free",
|
||||
"used": "Used",
|
||||
"load": "Load",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Users",
|
||||
@@ -84,7 +95,14 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"ping": {
|
||||
"error": "Error",
|
||||
@@ -94,7 +112,11 @@
|
||||
"playing": "Playing",
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams"
|
||||
"no_active": "No Active Streams",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Download",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Sunny",
|
||||
@@ -349,7 +373,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"never": "No pings yet",
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_max": "All time",
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
566
public/locales/ko/common.json
Normal file
566
public/locales/ko/common.json
Normal file
@@ -0,0 +1,566 @@
|
||||
{
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||
},
|
||||
"rutorrent": {
|
||||
"download": "다운로드",
|
||||
"active": "활성",
|
||||
"upload": "업로드"
|
||||
},
|
||||
"authentik": {
|
||||
"users": "Users",
|
||||
"loginsLast24H": "Logins (24h)",
|
||||
"failedLoginsLast24H": "Failed Logins (24h)"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"nodes": "Nodes",
|
||||
"servers": "Servers"
|
||||
},
|
||||
"widget": {
|
||||
"missing_type": "Missing Widget Type: {{type}}",
|
||||
"api_error": "API 오류",
|
||||
"information": "정보",
|
||||
"status": "상태",
|
||||
"url": "URL",
|
||||
"raw_error": "Raw 오류",
|
||||
"response_data": "응답 데이터"
|
||||
},
|
||||
"weather": {
|
||||
"current": "현재 위치",
|
||||
"allow": "클릭하여 허용",
|
||||
"updating": "갱신 중",
|
||||
"wait": "잠시만 기다리세요"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "검색…"
|
||||
},
|
||||
"resources": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"total": "총합",
|
||||
"free": "남음",
|
||||
"used": "사용",
|
||||
"load": "부하",
|
||||
"temp": "온도",
|
||||
"max": "최대",
|
||||
"uptime": "가동",
|
||||
"months": "달",
|
||||
"days": "일",
|
||||
"hours": "시간",
|
||||
"minutes": "분"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "사용자",
|
||||
"uptime": "시스템 업타임",
|
||||
"days": "일",
|
||||
"wan": "WAN",
|
||||
"lan": "LAN",
|
||||
"wlan": "WLAN",
|
||||
"devices": "장치",
|
||||
"lan_devices": "LAN 장치",
|
||||
"wlan_devices": "WLAN 장치",
|
||||
"lan_users": "LAN 사용자",
|
||||
"wlan_users": "WLAN 사용자",
|
||||
"up": "UP",
|
||||
"down": "DOWN",
|
||||
"wait": "잠시만 기다리세요",
|
||||
"empty_data": "서브시스템 상태 알 수 없음"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
"tx": "TX",
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"running": "가동 중",
|
||||
"offline": "중지",
|
||||
"error": "오류",
|
||||
"unknown": "알 수 없음",
|
||||
"healthy": "좋음",
|
||||
"starting": "시작 중",
|
||||
"unhealthy": "이상",
|
||||
"not_found": "찾을 수 없음",
|
||||
"exited": "종료됨",
|
||||
"partial": "부분적"
|
||||
},
|
||||
"ping": {
|
||||
"error": "오류",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "재생 중",
|
||||
"transcoding": "트랜스코딩",
|
||||
"bitrate": "비트레이트",
|
||||
"no_active": "활성 스트림 없음",
|
||||
"movies": "영화",
|
||||
"series": "시리즈",
|
||||
"episodes": "에피소드",
|
||||
"songs": "음악"
|
||||
},
|
||||
"flood": {
|
||||
"download": "다운로드",
|
||||
"upload": "업로드",
|
||||
"leech": "리치",
|
||||
"seed": "시드"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
"diffsDetected": "변경 감지됨"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "재생 중",
|
||||
"transcoding": "트랜스코딩",
|
||||
"bitrate": "비트레이트",
|
||||
"no_active": "활성 스트림 없음"
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "연결된 AP",
|
||||
"activeUser": "활성 장치",
|
||||
"alerts": "경고",
|
||||
"connectedGateway": "연결된 게이트웨이",
|
||||
"connectedSwitches": "연결된 스위치"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "비율",
|
||||
"remaining": "남음",
|
||||
"downloaded": "다운로드됨"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "활성 스트림",
|
||||
"movies": "영화",
|
||||
"tv": "TV 쇼"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "비율",
|
||||
"queue": "대기열",
|
||||
"timeleft": "남은 시간"
|
||||
},
|
||||
"transmission": {
|
||||
"download": "다운로드",
|
||||
"upload": "업로드",
|
||||
"leech": "리치",
|
||||
"seed": "시드"
|
||||
},
|
||||
"qbittorrent": {
|
||||
"download": "다운로드",
|
||||
"upload": "업로드",
|
||||
"leech": "리치",
|
||||
"seed": "시드"
|
||||
},
|
||||
"deluge": {
|
||||
"download": "다운로드",
|
||||
"upload": "업로드",
|
||||
"leech": "리치",
|
||||
"seed": "시드"
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "다운로드",
|
||||
"upload": "업로드",
|
||||
"leech": "리치",
|
||||
"seed": "시드"
|
||||
},
|
||||
"sonarr": {
|
||||
"wanted": "요청",
|
||||
"queued": "대기 중",
|
||||
"series": "시리즈"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "요청",
|
||||
"missing": "빠짐",
|
||||
"queued": "대기 중",
|
||||
"movies": "영화"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "요청",
|
||||
"queued": "대기 중",
|
||||
"albums": "앨범"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "요청",
|
||||
"queued": "대기 중",
|
||||
"books": "책"
|
||||
},
|
||||
"bazarr": {
|
||||
"missingEpisodes": "빠진 에피소드",
|
||||
"missingMovies": "빠진 영화"
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "대기 중",
|
||||
"approved": "승인됨",
|
||||
"available": "이용 가능"
|
||||
},
|
||||
"jellyseerr": {
|
||||
"pending": "대기 중",
|
||||
"approved": "승인됨",
|
||||
"available": "사용 가능"
|
||||
},
|
||||
"overseerr": {
|
||||
"pending": "대기 중",
|
||||
"processing": "처리 중",
|
||||
"approved": "승인됨",
|
||||
"available": "사용 가능"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "쿼리",
|
||||
"blocked": "차단됨",
|
||||
"gravity": "Gravity"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "쿼리",
|
||||
"blocked": "차단됨",
|
||||
"filtered": "필터링됨",
|
||||
"latency": "지연"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "업로드",
|
||||
"download": "다운로드",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"portainer": {
|
||||
"running": "가동 중",
|
||||
"stopped": "중지",
|
||||
"total": "총합"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "대기열",
|
||||
"processed": "처리됨",
|
||||
"errored": "오류",
|
||||
"saved": "저장됨"
|
||||
},
|
||||
"traefik": {
|
||||
"routers": "라우터",
|
||||
"services": "서비스",
|
||||
"middleware": "미들웨어"
|
||||
},
|
||||
"navidrome": {
|
||||
"nothing_streaming": "활성 스트림 없음",
|
||||
"please_wait": "잠시만 기다리세요"
|
||||
},
|
||||
"npm": {
|
||||
"enabled": "활성",
|
||||
"disabled": "비활성",
|
||||
"total": "총합"
|
||||
},
|
||||
"coinmarketcap": {
|
||||
"configure": "한 개 이상의 가상화폐를 설정하여 추적",
|
||||
"1hour": "1시간",
|
||||
"1day": "1일",
|
||||
"7days": "7일",
|
||||
"30days": "30일"
|
||||
},
|
||||
"gotify": {
|
||||
"apps": "어플리케이션",
|
||||
"clients": "클라이언트",
|
||||
"messages": "메시지"
|
||||
},
|
||||
"prowlarr": {
|
||||
"enableIndexers": "인덱서",
|
||||
"numberOfGrabs": "Grabs",
|
||||
"numberOfQueries": "Queries",
|
||||
"numberOfFailGrabs": "Fail Grabs",
|
||||
"numberOfFailQueries": "Fail Queries"
|
||||
},
|
||||
"jackett": {
|
||||
"configured": "Configured",
|
||||
"errored": "Errored"
|
||||
},
|
||||
"strelaysrv": {
|
||||
"numActiveSessions": "Sessions",
|
||||
"numConnections": "Connections",
|
||||
"dataRelayed": "Relayed",
|
||||
"transferRate": "Rate"
|
||||
},
|
||||
"mastodon": {
|
||||
"user_count": "Users",
|
||||
"status_count": "Posts",
|
||||
"domain_count": "Domains"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
},
|
||||
"proxmox": {
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"lxc": "LXC",
|
||||
"vms": "VMs"
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Sunny",
|
||||
"0-night": "Clear",
|
||||
"1-day": "Mainly Sunny",
|
||||
"1-night": "Mainly Clear",
|
||||
"2-day": "Partly Cloudy",
|
||||
"2-night": "Partly Cloudy",
|
||||
"3-day": "Cloudy",
|
||||
"3-night": "Cloudy",
|
||||
"45-day": "Foggy",
|
||||
"45-night": "Foggy",
|
||||
"48-day": "Foggy",
|
||||
"48-night": "Foggy",
|
||||
"51-day": "Light Drizzle",
|
||||
"51-night": "Light Drizzle",
|
||||
"53-day": "Drizzle",
|
||||
"53-night": "Drizzle",
|
||||
"55-day": "Heavy Drizzle",
|
||||
"55-night": "Heavy Drizzle",
|
||||
"56-day": "Light Freezing Drizzle",
|
||||
"56-night": "Light Freezing Drizzle",
|
||||
"57-day": "Freezing Drizzle",
|
||||
"57-night": "Freezing Drizzle",
|
||||
"61-day": "Light Rain",
|
||||
"61-night": "Light Rain",
|
||||
"63-day": "Rain",
|
||||
"63-night": "Rain",
|
||||
"65-day": "Heavy Rain",
|
||||
"65-night": "Heavy Rain",
|
||||
"66-day": "Freezing Rain",
|
||||
"66-night": "Freezing Rain",
|
||||
"67-day": "Freezing Rain",
|
||||
"67-night": "Freezing Rain",
|
||||
"71-day": "Light Snow",
|
||||
"71-night": "Light Snow",
|
||||
"73-day": "Snow",
|
||||
"73-night": "Snow",
|
||||
"75-day": "Heavy Snow",
|
||||
"75-night": "Heavy Snow",
|
||||
"77-day": "Snow Grains",
|
||||
"77-night": "Snow Grains",
|
||||
"80-day": "Light Showers",
|
||||
"80-night": "Light Showers",
|
||||
"81-day": "Showers",
|
||||
"81-night": "Showers",
|
||||
"82-day": "Heavy Showers",
|
||||
"82-night": "Heavy Showers",
|
||||
"85-day": "Snow Showers",
|
||||
"85-night": "Snow Showers",
|
||||
"86-day": "Snow Showers",
|
||||
"86-night": "Snow Showers",
|
||||
"95-day": "Thunderstorm",
|
||||
"95-night": "Thunderstorm",
|
||||
"96-day": "Thunderstorm With Hail",
|
||||
"96-night": "Thunderstorm With Hail",
|
||||
"99-day": "Thunderstorm With Hail",
|
||||
"99-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": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
"containers_updated": "Updated",
|
||||
"containers_failed": "Failed"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
"rejectedPushes": "Rejected",
|
||||
"filters": "Filters",
|
||||
"indexers": "Indexers"
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "Queue",
|
||||
"videos": "Videos",
|
||||
"channels": "Channels",
|
||||
"playlists": "Playlists"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "System Load",
|
||||
"uptime": "Uptime",
|
||||
"alerts": "Alerts",
|
||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Speed",
|
||||
"active": "Active",
|
||||
"queue": "Queue",
|
||||
"total": "Total"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"hd": "HD"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"total": "Total"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_active": "Active Streams",
|
||||
"streams_xepg": "XEPG Channels"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"status": "Status"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"incident": "Incident",
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
},
|
||||
"fileflows": {
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
@@ -27,7 +27,14 @@
|
||||
"free": "Brīvs",
|
||||
"used": "Izmantojas",
|
||||
"load": "Ielādē",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Lietotāji",
|
||||
@@ -53,7 +60,14 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Bezsaistē",
|
||||
"error": "Kļūda",
|
||||
"unknown": "Nezināms"
|
||||
"unknown": "Nezināms",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"ping": {
|
||||
"error": "Kļūda",
|
||||
@@ -63,7 +77,11 @@
|
||||
"playing": "Atskaņo",
|
||||
"transcoding": "Pārkodē",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "Nav aktīvu straumju"
|
||||
"no_active": "Nav aktīvu straumju",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Lejupielāde",
|
||||
@@ -271,13 +289,19 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"temp": "TEMP"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Saulains",
|
||||
@@ -343,7 +367,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"down": "Offline",
|
||||
"players": "Players",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"version": "Version"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,14 @@
|
||||
"free": "Bebas",
|
||||
"used": "Telah diguna",
|
||||
"load": "Beban",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"unifi": {
|
||||
"uptime": "Masa Operasi Sistem",
|
||||
@@ -60,13 +67,19 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Sila tunggu"
|
||||
"wait": "Sila tunggu",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Tandabuku",
|
||||
"service": "Servis",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Terik",
|
||||
@@ -156,7 +169,14 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Luar talian",
|
||||
"error": "Ralat",
|
||||
"unknown": "Tidak Diketahui"
|
||||
"unknown": "Tidak Diketahui",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Jumlah Diperhatikan",
|
||||
@@ -166,7 +186,11 @@
|
||||
"playing": "Sedang dimainkan",
|
||||
"transcoding": "Transkoding",
|
||||
"bitrate": "Kadar bit",
|
||||
"no_active": "Tiada Strim Aktif"
|
||||
"no_active": "Tiada Strim Aktif",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Sedang Dimainkan",
|
||||
@@ -291,7 +315,10 @@
|
||||
"updates": "Kemaskini",
|
||||
"update_available": "Kemaskini Tersedia",
|
||||
"up_to_date": "Terkemaskini",
|
||||
"child_bridges": "Jambatan Anak"
|
||||
"child_bridges": "Jambatan Anak",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Terimbas",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,14 @@
|
||||
"used": "Brukt",
|
||||
"load": "Last inn",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "Mottatt",
|
||||
@@ -26,13 +33,24 @@
|
||||
"cpu": "Prosessor",
|
||||
"offline": "Frakoblet",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"exited": "Exited",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Spiller",
|
||||
"transcoding": "Transkoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "Ingen aktive strømmer"
|
||||
"no_active": "Ingen aktive strømmer",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Spiller",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"widget": {
|
||||
"missing_type": "Missing Widget Type: {{type}}",
|
||||
"missing_type": "Missend Widget Type: {{type}}",
|
||||
"api_error": "API Error",
|
||||
"status": "Status",
|
||||
"information": "Informatie",
|
||||
@@ -14,7 +14,14 @@
|
||||
"used": "Gebruikt",
|
||||
"load": "Laadt",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
@@ -23,7 +30,14 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Offline",
|
||||
"error": "Fout",
|
||||
"unknown": "Onbekend"
|
||||
"unknown": "Onbekend",
|
||||
"running": "Running",
|
||||
"starting": "Starten",
|
||||
"unhealthy": "Ongezond",
|
||||
"not_found": "Niet Gevonden",
|
||||
"exited": "Verlaten",
|
||||
"partial": "Gedeeltelijk",
|
||||
"healthy": "Gezond"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Upload",
|
||||
@@ -48,13 +62,17 @@
|
||||
"playing": "Afspelen",
|
||||
"transcoding": "Transcodering",
|
||||
"bitrate": "Bitsnelheid",
|
||||
"no_active": "Geen Actieve Steams"
|
||||
"no_active": "Geen Actieve Steams",
|
||||
"movies": "Films",
|
||||
"series": "Series",
|
||||
"episodes": "Afleveringen",
|
||||
"songs": "Liedjes"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Afspelen",
|
||||
"transcoding": "Transcodering",
|
||||
"bitrate": "Bitsnelheid",
|
||||
"no_active": "No Active Streams"
|
||||
"no_active": "Geen Actieve Streams"
|
||||
},
|
||||
"rutorrent": {
|
||||
"active": "Actief",
|
||||
@@ -70,12 +88,12 @@
|
||||
"movies": "Films",
|
||||
"wanted": "Gezocht",
|
||||
"queued": "In de wachtrij",
|
||||
"missing": "Missing"
|
||||
"missing": "Missend"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"books": "Books"
|
||||
"wanted": "Gezocht",
|
||||
"queued": "In de wachtrij",
|
||||
"books": "Boeken"
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "In afwachting",
|
||||
@@ -103,32 +121,32 @@
|
||||
"total": "Totaal"
|
||||
},
|
||||
"overseerr": {
|
||||
"pending": "Pending",
|
||||
"approved": "Approved",
|
||||
"available": "Available",
|
||||
"pending": "In Afwachting",
|
||||
"approved": "Goedgekeurd",
|
||||
"available": "Beschikbaar",
|
||||
"processing": "Processing"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Rate",
|
||||
"queue": "Queue",
|
||||
"queue": "Wachtrij",
|
||||
"timeleft": "Time Left"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "Rate",
|
||||
"remaining": "Remaining",
|
||||
"downloaded": "Downloaded"
|
||||
"remaining": "Resterend",
|
||||
"downloaded": "Gedownload"
|
||||
},
|
||||
"coinmarketcap": {
|
||||
"configure": "Configure one or more crypto currencies to track",
|
||||
"1hour": "1 Hour",
|
||||
"7days": "7 Days",
|
||||
"1day": "1 Day",
|
||||
"30days": "30 Days"
|
||||
"1hour": "1 Uur",
|
||||
"7days": "7 Dagen",
|
||||
"1day": "1 Dag",
|
||||
"30days": "30 Dagen"
|
||||
},
|
||||
"gotify": {
|
||||
"apps": "Applications",
|
||||
"apps": "Applicaties",
|
||||
"clients": "Clients",
|
||||
"messages": "Messages"
|
||||
"messages": "Berichten"
|
||||
},
|
||||
"prowlarr": {
|
||||
"enableIndexers": "Indexers",
|
||||
@@ -144,21 +162,21 @@
|
||||
"seed": "Seed"
|
||||
},
|
||||
"jackett": {
|
||||
"configured": "Configured",
|
||||
"configured": "Geconfigureerd",
|
||||
"errored": "Errored"
|
||||
},
|
||||
"bazarr": {
|
||||
"missingEpisodes": "Missing Episodes",
|
||||
"missingMovies": "Missing Movies"
|
||||
"missingEpisodes": "Ontbrekende Afleveringen",
|
||||
"missingMovies": "Ontbrekende Films"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"wanted": "Gezocht",
|
||||
"queued": "In de wachtrij",
|
||||
"albums": "Albums"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"blocked": "Geblokkeerd",
|
||||
"filtered": "Filtered",
|
||||
"latency": "Latency"
|
||||
},
|
||||
@@ -171,7 +189,7 @@
|
||||
"mastodon": {
|
||||
"user_count": "Users",
|
||||
"status_count": "Posts",
|
||||
"domain_count": "Domains"
|
||||
"domain_count": "Domeinen"
|
||||
},
|
||||
"strelaysrv": {
|
||||
"numActiveSessions": "Sessions",
|
||||
@@ -180,7 +198,7 @@
|
||||
"transferRate": "Rate"
|
||||
},
|
||||
"authentik": {
|
||||
"users": "Users",
|
||||
"users": "Gebruikers",
|
||||
"loginsLast24H": "Logins (24h)",
|
||||
"failedLoginsLast24H": "Failed Logins (24h)"
|
||||
},
|
||||
@@ -208,33 +226,37 @@
|
||||
"empty_data": "Subsystem status unknown"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Active Streams",
|
||||
"movies": "Movies",
|
||||
"tv": "TV Shows"
|
||||
"streams": "Actieve Streams",
|
||||
"movies": "Films",
|
||||
"tv": "TV Series"
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Totaal waargenomen",
|
||||
"diffsDetected": "Diffs Detected"
|
||||
"diffsDetected": "Verschillen Gedetecteerd"
|
||||
},
|
||||
"wmo": {
|
||||
"0-day": "Sunny",
|
||||
"0-night": "Clear",
|
||||
"1-day": "Mainly Sunny",
|
||||
"1-night": "Mainly Clear",
|
||||
"3-day": "Cloudy",
|
||||
"99-night": "Thunderstorm With Hail",
|
||||
"3-night": "Cloudy",
|
||||
"2-day": "Partly Cloudy",
|
||||
"2-night": "Partly Cloudy",
|
||||
"45-day": "Foggy",
|
||||
"45-night": "Foggy",
|
||||
"48-day": "Foggy",
|
||||
"48-night": "Foggy",
|
||||
"0-day": "Zonnig",
|
||||
"0-night": "Helder",
|
||||
"1-day": "Overwegend Zonnig",
|
||||
"1-night": "Overwegend Helder",
|
||||
"3-day": "Bewolkt",
|
||||
"99-night": "Onweersbui Met Hagel",
|
||||
"3-night": "Bewolkt",
|
||||
"2-day": "Gedeeltelijk Bewolkt",
|
||||
"2-night": "Gedeeltelijk Bewolkt",
|
||||
"45-day": "Mistig",
|
||||
"45-night": "Mistig",
|
||||
"48-day": "Mistig",
|
||||
"48-night": "Mistig",
|
||||
"51-day": "Light Drizzle",
|
||||
"51-night": "Light Drizzle",
|
||||
"53-day": "Drizzle",
|
||||
@@ -245,22 +267,22 @@
|
||||
"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",
|
||||
"61-day": "Lichte Regen",
|
||||
"61-night": "Lichte Regen",
|
||||
"63-day": "Regen",
|
||||
"63-night": "Regen",
|
||||
"65-day": "Hevige Regen",
|
||||
"65-night": "Hevige Regen",
|
||||
"66-day": "Freezing Rain",
|
||||
"66-night": "Freezing Rain",
|
||||
"67-day": "Freezing Rain",
|
||||
"67-night": "Freezing Rain",
|
||||
"71-day": "Light Snow",
|
||||
"71-night": "Light Snow",
|
||||
"73-day": "Snow",
|
||||
"73-night": "Snow",
|
||||
"75-day": "Heavy Snow",
|
||||
"75-night": "Heavy Snow",
|
||||
"71-day": "Lichte Sneeuw",
|
||||
"71-night": "Lichte Sneeuw",
|
||||
"73-day": "Sneeuw",
|
||||
"73-night": "Sneeuw",
|
||||
"75-day": "Hevige Sneeuw",
|
||||
"75-night": "Hevige Sneeuw",
|
||||
"77-day": "Snow Grains",
|
||||
"77-night": "Snow Grains",
|
||||
"80-day": "Light Showers",
|
||||
@@ -273,41 +295,46 @@
|
||||
"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"
|
||||
"95-day": "Onweersbui",
|
||||
"95-night": "Onweersbui",
|
||||
"96-day": "Onweersbui Met Hagel",
|
||||
"96-night": "Onweersbui Met Hagel",
|
||||
"99-day": "Onweersbui Met Hagel"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"bookmark": "Bladwijzer",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"search": "Zoek",
|
||||
"custom": "Custom",
|
||||
"visit": "Bezoek",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
"available_update": "Systeem",
|
||||
"updates": "Updates",
|
||||
"update_available": "Update Available",
|
||||
"update_available": "Update Beschikbaar",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "In afwachting van",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
"rejectedPushes": "Rejected",
|
||||
"approvedPushes": "Goedgekeurd",
|
||||
"rejectedPushes": "Afgewezen",
|
||||
"filters": "Filters",
|
||||
"indexers": "Indexers"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
"containers_scanned": "Gescanned",
|
||||
"containers_updated": "Updated",
|
||||
"containers_failed": "Failed"
|
||||
"containers_failed": "Gefaald"
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "Queue",
|
||||
"videos": "Videos",
|
||||
"channels": "Channels",
|
||||
"channels": "Kanalen",
|
||||
"playlists": "Playlists"
|
||||
},
|
||||
"truenas": {
|
||||
@@ -317,22 +344,22 @@
|
||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||
},
|
||||
"navidrome": {
|
||||
"nothing_streaming": "No Active Streams",
|
||||
"please_wait": "Please Wait"
|
||||
"nothing_streaming": "Geen Actieve Streams",
|
||||
"please_wait": "Even geduld aub"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Speed",
|
||||
"active": "Active",
|
||||
"total": "Total",
|
||||
"queue": "Queue"
|
||||
"speed": "Snelheid",
|
||||
"active": "Actief",
|
||||
"total": "Totaal",
|
||||
"queue": "Wachtrij"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
"public_ip": "Publiek IP",
|
||||
"region": "Regio",
|
||||
"country": "Land"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"channels": "Kanalen",
|
||||
"hd": "HD"
|
||||
},
|
||||
"ping": {
|
||||
@@ -341,12 +368,12 @@
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
"failed": "Gefaald",
|
||||
"unknown": "Onbekend"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"total": "Total"
|
||||
"total": "Totaal"
|
||||
},
|
||||
"deluge": {
|
||||
"download": "Download",
|
||||
@@ -361,18 +388,18 @@
|
||||
"seed": "Seed"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Queue",
|
||||
"queue": "Wachtrij",
|
||||
"processed": "Processed",
|
||||
"errored": "Errored",
|
||||
"saved": "Saved"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
"read": "Gelezen",
|
||||
"unread": "Ongelezen"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
"wait": "Even geduld aub",
|
||||
"no_devices": "Geen Apparaat Data Ontvangen"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
@@ -380,8 +407,8 @@
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"activeUser": "Actieve apparaten",
|
||||
"alerts": "Meldingen",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
@@ -392,8 +419,8 @@
|
||||
"seed": "Seed"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"cpuLoad": "CPU Belasting",
|
||||
"memoryUsed": "Geheugen Gebruikt",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
},
|
||||
@@ -403,8 +430,8 @@
|
||||
"streams_xepg": "XEPG Channels"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"cpu": "CPU Belasting",
|
||||
"memory": "Actief Geheugen",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
},
|
||||
@@ -433,13 +460,13 @@
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
"memory_usage": "Geheugen"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"users": "Gebruikers",
|
||||
"photos": "Foto's",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
"storage": "Opslag"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
@@ -449,24 +476,91 @@
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"libraries": "Bibliotheken",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
"books": "Boeken"
|
||||
},
|
||||
"mylar": {
|
||||
"wanted": "Wanted",
|
||||
"series": "Series",
|
||||
"issues": "Issues"
|
||||
"issues": "Problemen"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"photos": "Foto's",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
"people": "Personen"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"days": "Dagen",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"volumeAvailable": "Beschikbaar"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Wachtrij",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Tijd"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Belasting",
|
||||
"memoryusage": "Geheugen Gebruik",
|
||||
"freespace": "Vrije Ruimte",
|
||||
"activeusers": "Actieve Gebruikers"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Grootte",
|
||||
"lastrun": "Laatste Run",
|
||||
"nextrun": "Volgende Run",
|
||||
"failed": "Gefaald"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Actieve Werkers",
|
||||
"total_workers": "Totale Werkers",
|
||||
"records_total": "Wachtrij Lengte"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "Nieuw",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Gepauzeerd",
|
||||
"status": "Status",
|
||||
"last_ping": "Laatste Ping",
|
||||
"never": "Nog geen pings"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Spelers",
|
||||
"version": "Versie",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Vandaag",
|
||||
"gross_percent_1y": "Een jaar",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Boeken",
|
||||
"podcastsDuration": "Duur",
|
||||
"booksDuration": "Duur"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,13 +14,24 @@
|
||||
"total": "Całkowite",
|
||||
"free": "Wolne",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "PAM",
|
||||
"temp": "TYMCZASOWE",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "misiąc",
|
||||
"days": "dni",
|
||||
"hours": "h",
|
||||
"minutes": "minuty"
|
||||
},
|
||||
"emby": {
|
||||
"no_active": "Brak aktywnych strumieni",
|
||||
"playing": "Odtwarzanie",
|
||||
"transcoding": "Transkodowanie",
|
||||
"bitrate": "Bitrate"
|
||||
"bitrate": "Bitrate",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Odtwarzanie",
|
||||
@@ -66,7 +77,14 @@
|
||||
"cpu": "Procesor",
|
||||
"offline": "Offline",
|
||||
"error": "Błąd",
|
||||
"unknown": "Nieznany"
|
||||
"unknown": "Nieznany",
|
||||
"running": "Działa",
|
||||
"starting": "Startować",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Zdrowy"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "Szybkość",
|
||||
@@ -205,7 +223,7 @@
|
||||
"devices": "Urządzenia",
|
||||
"lan_devices": "Urządzenia LAN",
|
||||
"wlan_devices": "Urządzenia WLAN",
|
||||
"empty_data": "Subsystem status unknown"
|
||||
"empty_data": "Nieznany stan"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Aktywne strumienie",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "Procesor",
|
||||
"mem": "Pamięć",
|
||||
"wait": "Proszę czekać"
|
||||
"wait": "Proszę czekać",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"diffsDetected": "Wykryto różnic",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Zakładka",
|
||||
"service": "Usługi",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Dostępna aktualizacja",
|
||||
"up_to_date": "Aktualny",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Zaakceptowane",
|
||||
@@ -468,5 +495,72 @@
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available",
|
||||
"days": "Days"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,14 +33,14 @@
|
||||
"status": "Status",
|
||||
"information": "Informação",
|
||||
"url": "URL",
|
||||
"raw_error": "Raw Error",
|
||||
"raw_error": "Erro Bruto",
|
||||
"response_data": "Dados de Resposta"
|
||||
},
|
||||
"weather": {
|
||||
"current": "Localização atual",
|
||||
"allow": "Clique para permitir",
|
||||
"updating": "Atualizando",
|
||||
"wait": "Aguarde, por favor"
|
||||
"wait": "Por favor aguarde"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Buscar…"
|
||||
@@ -51,7 +51,14 @@
|
||||
"used": "Usado",
|
||||
"load": "Carregamento",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"max": "Max",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "Recebido",
|
||||
@@ -60,13 +67,24 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Desligado",
|
||||
"error": "Erro",
|
||||
"unknown": "Desconhecido"
|
||||
"unknown": "Desconhecido",
|
||||
"running": "Executando",
|
||||
"starting": "Iniciando",
|
||||
"unhealthy": "Não-saudável",
|
||||
"not_found": "Não Encontrado",
|
||||
"exited": "Encerrado",
|
||||
"partial": "Parcial",
|
||||
"healthy": "Saudável"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Reproduzindo",
|
||||
"transcoding": "Transcodificando",
|
||||
"bitrate": "Taxa de bits",
|
||||
"no_active": "Sem transmissões ativas"
|
||||
"no_active": "Sem transmissões ativas",
|
||||
"movies": "Filmes",
|
||||
"series": "Séries",
|
||||
"episodes": "Episódios",
|
||||
"songs": "Musicas"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Reproduzindo",
|
||||
@@ -134,8 +152,8 @@
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Consultas",
|
||||
"blocked": "Bloquado",
|
||||
"gravity": "Gravity"
|
||||
"blocked": "Bloqueados",
|
||||
"gravity": "Gravidade"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Consultas",
|
||||
@@ -165,9 +183,9 @@
|
||||
},
|
||||
"prowlarr": {
|
||||
"enableIndexers": "Indexadores",
|
||||
"numberOfGrabs": "Pegos",
|
||||
"numberOfGrabs": "Buscas",
|
||||
"numberOfQueries": "Consultas",
|
||||
"numberOfFailGrabs": "Fail Grabs",
|
||||
"numberOfFailGrabs": "Buscas sem êxito",
|
||||
"numberOfFailQueries": "Consultas Falhas"
|
||||
},
|
||||
"jackett": {
|
||||
@@ -182,11 +200,11 @@
|
||||
"authentik": {
|
||||
"users": "Usuários",
|
||||
"loginsLast24H": "Logins (24h)",
|
||||
"failedLoginsLast24H": "Failed Logins (24h)"
|
||||
"failedLoginsLast24H": "Logins Falhos (24h)"
|
||||
},
|
||||
"proxmox": {
|
||||
"mem": "Memória",
|
||||
"cpu": "Processador",
|
||||
"cpu": "CPU",
|
||||
"lxc": "LXC",
|
||||
"vms": "VMs"
|
||||
},
|
||||
@@ -199,13 +217,13 @@
|
||||
"wlan_users": "Usuarios WLAN",
|
||||
"up": "LIGADO",
|
||||
"down": "CÁIDO",
|
||||
"wait": "Por favor guarde",
|
||||
"wait": "Por favor aguarde",
|
||||
"lan": "LAN",
|
||||
"wlan": "WLAN",
|
||||
"devices": "Dispositivos",
|
||||
"lan_devices": "Dispositivos LAN",
|
||||
"wlan_devices": "Dispositivos WLAN",
|
||||
"empty_data": "Subsystem status unknown"
|
||||
"empty_data": "Status de Subsistema Desconhecido"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Transmissões ativas",
|
||||
@@ -215,105 +233,114 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Por favor aguarde",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Observados",
|
||||
"diffsDetected": "Mudanças"
|
||||
},
|
||||
"wmo": {
|
||||
"1-night": "Mainly Clear",
|
||||
"2-day": "Partly Cloudy",
|
||||
"1-night": "Principalmente Limpo",
|
||||
"2-day": "Parcialmente Nublado",
|
||||
"2-night": "Parcialmente nublado",
|
||||
"3-day": "Nublado",
|
||||
"3-night": "Nublado",
|
||||
"45-day": "Névoa",
|
||||
"45-night": "Foggy",
|
||||
"48-day": "Foggy",
|
||||
"48-night": "Foggy",
|
||||
"56-night": "Light Freezing Drizzle",
|
||||
"57-day": "Freezing Drizzle",
|
||||
"99-day": "Thunderstorm With Hail",
|
||||
"99-night": "Thunderstorm With Hail",
|
||||
"45-night": "Névoa",
|
||||
"48-day": "Névoa",
|
||||
"48-night": "Névoa",
|
||||
"56-night": "Leve Garoa Congelante",
|
||||
"57-day": "Garoa Congelante",
|
||||
"99-day": "Trovoada Com Granizo",
|
||||
"99-night": "Trovoada Com Granizo",
|
||||
"0-day": "Ensolarado",
|
||||
"53-day": "Drizzle",
|
||||
"53-day": "Garoando",
|
||||
"0-night": "Limpo",
|
||||
"1-day": "Mainly Sunny",
|
||||
"51-day": "Light Drizzle",
|
||||
"51-night": "Light Drizzle",
|
||||
"53-night": "Drizzle",
|
||||
"55-day": "Heavy Drizzle",
|
||||
"55-night": "Heavy Drizzle",
|
||||
"56-day": "Light Freezing Drizzle",
|
||||
"57-night": "Freezing Drizzle",
|
||||
"61-day": "Light Rain",
|
||||
"61-night": "Light Rain",
|
||||
"63-day": "Rain",
|
||||
"63-night": "Rain",
|
||||
"65-day": "Heavy Rain",
|
||||
"65-night": "Heavy Rain",
|
||||
"66-day": "Freezing Rain",
|
||||
"66-night": "Freezing Rain",
|
||||
"67-day": "Freezing Rain",
|
||||
"67-night": "Freezing Rain",
|
||||
"71-day": "Light Snow",
|
||||
"71-night": "Light Snow",
|
||||
"73-day": "Snow",
|
||||
"73-night": "Snow",
|
||||
"75-day": "Heavy Snow",
|
||||
"75-night": "Heavy Snow",
|
||||
"77-day": "Snow Grains",
|
||||
"77-night": "Snow Grains",
|
||||
"80-day": "Light Showers",
|
||||
"80-night": "Light Showers",
|
||||
"81-day": "Showers",
|
||||
"81-night": "Showers",
|
||||
"82-day": "Heavy Showers",
|
||||
"82-night": "Heavy Showers",
|
||||
"85-day": "Snow Showers",
|
||||
"85-night": "Snow Showers",
|
||||
"86-day": "Snow Showers",
|
||||
"86-night": "Snow Showers",
|
||||
"95-day": "Thunderstorm",
|
||||
"95-night": "Thunderstorm",
|
||||
"96-day": "Thunderstorm With Hail",
|
||||
"96-night": "Thunderstorm With Hail"
|
||||
"1-day": "Principalmente Ensolarado",
|
||||
"51-day": "Leve Garoa",
|
||||
"51-night": "Leve Garoa",
|
||||
"53-night": "Garoando",
|
||||
"55-day": "Garoa Pesada",
|
||||
"55-night": "Garoa Pesada",
|
||||
"56-day": "Leve Garoa Congelante",
|
||||
"57-night": "Garoa Congelante",
|
||||
"61-day": "Chuva Leve",
|
||||
"61-night": "Chuva Leve",
|
||||
"63-day": "Chuva",
|
||||
"63-night": "Chuva",
|
||||
"65-day": "Chuva Pesada",
|
||||
"65-night": "Chuva Pesada",
|
||||
"66-day": "Chuva Congelante",
|
||||
"66-night": "Chuva Congelante",
|
||||
"67-day": "Chuva Congelante",
|
||||
"67-night": "Chuva Congelante",
|
||||
"71-day": "Neve Leve",
|
||||
"71-night": "Neve Leve",
|
||||
"73-day": "Neve",
|
||||
"73-night": "Neve",
|
||||
"75-day": "Neve Pesada",
|
||||
"75-night": "Neve Pesada",
|
||||
"77-day": "Grãos de Neve",
|
||||
"77-night": "Grãos de Neve",
|
||||
"80-day": "Chuviscos Leve",
|
||||
"80-night": "Chuviscos Leve",
|
||||
"81-day": "Chuviscos",
|
||||
"81-night": "Chuviscos",
|
||||
"82-day": "Chuviscos Pesado",
|
||||
"82-night": "Chuviscos Pesado",
|
||||
"85-day": "Precipitação de Neve",
|
||||
"85-night": "Precipitação de Neve",
|
||||
"86-day": "Precipitação de Neve",
|
||||
"86-night": "Precipitação de Neve",
|
||||
"95-day": "Trovoada",
|
||||
"95-night": "Trovoada",
|
||||
"96-day": "Trovoada Com Granizo",
|
||||
"96-night": "Trovoada Com Granizo"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"bookmark": "Favorito",
|
||||
"service": "Serviço",
|
||||
"search": "Busca",
|
||||
"custom": "Personalizado",
|
||||
"visit": "Visitar",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
"updates": "Updates",
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"available_update": "Sistema",
|
||||
"updates": "Atualizações",
|
||||
"update_available": "Atualização Disponível",
|
||||
"up_to_date": "Atualizado",
|
||||
"child_bridges": "Pontes Filhas",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pendente",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
"rejectedPushes": "Rejected",
|
||||
"filters": "Filters",
|
||||
"indexers": "Indexers"
|
||||
"approvedPushes": "Aprovado",
|
||||
"rejectedPushes": "Rejeitado",
|
||||
"filters": "Filtros",
|
||||
"indexers": "Indexadores"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
"containers_updated": "Updated",
|
||||
"containers_failed": "Failed"
|
||||
"containers_scanned": "Escaneado",
|
||||
"containers_updated": "Atualizado",
|
||||
"containers_failed": "Falha"
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "Queue",
|
||||
"videos": "Videos",
|
||||
"channels": "Channels",
|
||||
"playlists": "Playlists"
|
||||
"downloads": "Fila",
|
||||
"videos": "Vídeos",
|
||||
"channels": "Canais",
|
||||
"playlists": "Listas"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "System Load",
|
||||
"uptime": "Uptime",
|
||||
"alerts": "Alerts",
|
||||
"load": "Carga do Sistema",
|
||||
"uptime": "Tempo Ativo",
|
||||
"alerts": "Alertas",
|
||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||
},
|
||||
"navidrome": {
|
||||
@@ -321,18 +348,18 @@
|
||||
"please_wait": "Por favor aguarde"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Speed",
|
||||
"active": "Active",
|
||||
"queue": "Queue",
|
||||
"speed": "Velocidade",
|
||||
"active": "Ativo",
|
||||
"queue": "Fila",
|
||||
"total": "Total"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
"public_ip": "IP Público",
|
||||
"region": "Região",
|
||||
"country": "País"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"channels": "Canais",
|
||||
"hd": "HD"
|
||||
},
|
||||
"ping": {
|
||||
@@ -340,12 +367,12 @@
|
||||
"ping": "Ping"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
"passed": "Passou",
|
||||
"failed": "Falha",
|
||||
"unknown": "Desconhecido"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"inbox": "Caixa de Entrada",
|
||||
"total": "Total"
|
||||
},
|
||||
"deluge": {
|
||||
@@ -371,8 +398,8 @@
|
||||
"unread": "Não Lidos"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
"wait": "Por favor aguarde",
|
||||
"no_devices": "Nenhum dado de dispositivo recebido"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
@@ -392,81 +419,148 @@
|
||||
"seed": "Seed"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
"cpuLoad": "Carga de CPU",
|
||||
"memoryUsed": "Memória Utilizada",
|
||||
"uptime": "Tempo Ativo",
|
||||
"numberOfLeases": "Concessões"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_active": "Active Streams",
|
||||
"streams_xepg": "XEPG Channels"
|
||||
"streams_all": "Todos Fluxos",
|
||||
"streams_active": "Fluxos Ativos",
|
||||
"streams_xepg": "Canais XEPG"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"cpu": "Carga de CPU",
|
||||
"memory": "Memória Ativa",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
"printer_state": "Estado da Impressora",
|
||||
"print_status": "Status da Impressora",
|
||||
"print_progress": "Progresso",
|
||||
"layers": "Camadas"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"wanted": "Desejado",
|
||||
"queued": "Na fila",
|
||||
"series": "Séries"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
"temp_tool": "Temp. Ferramenta",
|
||||
"temp_bed": "Temp. Cama",
|
||||
"job_completion": "Conclusão"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"origin_ip": "IP Origem",
|
||||
"status": "Status"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"datastore_usage": "Armaz. de Dados",
|
||||
"failed_tasks_24h": "Tarefas Falhas 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
"memory_usage": "Memória"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
"users": "Usuários",
|
||||
"photos": "Fotos",
|
||||
"videos": "Vídeos",
|
||||
"storage": "Armazenamento"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"incident": "Incident",
|
||||
"up": "Sites no Ar",
|
||||
"down": "Sites Fora do Ar",
|
||||
"uptime": "Tempo Ativo",
|
||||
"incident": "Incidente",
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
"libraries": "Bibliotecas",
|
||||
"series": "Séries",
|
||||
"books": "Livros"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
"series": "Séries",
|
||||
"issues": "Problemas",
|
||||
"wanted": "Desejado"
|
||||
},
|
||||
"photoprism": {
|
||||
"videos": "Videos",
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"people": "People"
|
||||
"videos": "Vídeos",
|
||||
"albums": "Álbuns",
|
||||
"photos": "Fotos",
|
||||
"people": "Pessoa"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"days": "Dias",
|
||||
"uptime": "Tempo Ativo",
|
||||
"volumeAvailable": "Disponível"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Fila",
|
||||
"processing": "Processando",
|
||||
"processed": "Processado",
|
||||
"time": "Hora"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Painéis",
|
||||
"datasources": "Origem de Dados",
|
||||
"totalalerts": "Total Alertas",
|
||||
"alertstriggered": "Alertas Disparados"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Carga de CPU",
|
||||
"memoryusage": "Memória Utilizada",
|
||||
"freespace": "Espaço Livre",
|
||||
"activeusers": "Usuários Ativos"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Tamanho",
|
||||
"lastrun": "Ultima Execução",
|
||||
"nextrun": "Próxima Execução",
|
||||
"failed": "Falha"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Trabalhadores Ativos",
|
||||
"total_workers": "Total Trabalhadores",
|
||||
"records_total": "Comprimento da Fila"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "Novo",
|
||||
"up": "Online",
|
||||
"grace": "Em Período Gratuito",
|
||||
"down": "Offline",
|
||||
"paused": "Pausado",
|
||||
"status": "Status",
|
||||
"last_ping": "Ultimo Ping",
|
||||
"never": "Nenhum ping ainda"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servidores",
|
||||
"nodes": "Nós"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Alvo ativo",
|
||||
"targets_down": "Alvo inativo",
|
||||
"targets_total": "Alvos totais"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Reprodutores",
|
||||
"version": "Versão",
|
||||
"status": "Status",
|
||||
"up": "Conectado",
|
||||
"down": "Desconectado"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Hoje",
|
||||
"gross_percent_1y": "Um ano",
|
||||
"gross_percent_max": "Todo periodo"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Livros",
|
||||
"podcastsDuration": "Duração",
|
||||
"booksDuration": "Duração"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,14 @@
|
||||
"used": "Utilizado",
|
||||
"load": "Carga",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"max": "Max",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "Rx",
|
||||
@@ -26,13 +33,24 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Desligado",
|
||||
"error": "Erro",
|
||||
"unknown": "Desconhecido"
|
||||
"unknown": "Desconhecido",
|
||||
"partial": "Parcial",
|
||||
"running": "A correr",
|
||||
"starting": "A iniciar",
|
||||
"unhealthy": "Não-saudável",
|
||||
"not_found": "Não Encontrado",
|
||||
"exited": "Encerrado",
|
||||
"healthy": "Saudável"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "A reproduzir",
|
||||
"transcoding": "Transcodificação",
|
||||
"bitrate": "Taxa de bits",
|
||||
"no_active": "Sem streams ativas"
|
||||
"no_active": "Sem streams ativas",
|
||||
"movies": "Filmes",
|
||||
"series": "Séries",
|
||||
"episodes": "Episódios",
|
||||
"songs": "Canções"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Reproduzindo",
|
||||
@@ -198,7 +216,7 @@
|
||||
"users": "Utilizadores"
|
||||
},
|
||||
"proxmox": {
|
||||
"mem": "MEM",
|
||||
"mem": "Memória",
|
||||
"cpu": "CPU",
|
||||
"lxc": "LXC",
|
||||
"vms": "VMs"
|
||||
@@ -218,7 +236,7 @@
|
||||
"devices": "Dispositivos",
|
||||
"lan_devices": "Dispositivos LAN",
|
||||
"wlan_devices": "Dispositivos WLAN",
|
||||
"empty_data": "Subsystem status unknown"
|
||||
"empty_data": "Status de Subsistema Desconhecido"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Streams Ativas",
|
||||
@@ -228,7 +246,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Por favor, aguarde"
|
||||
"wait": "Por favor, aguarde",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observado",
|
||||
@@ -254,38 +276,38 @@
|
||||
"53-night": "Chuvisco",
|
||||
"55-day": "Aguaceiro Forte",
|
||||
"55-night": "Aguaceiro Forte",
|
||||
"56-day": "Light Freezing Drizzle",
|
||||
"56-night": "Light Freezing Drizzle",
|
||||
"57-day": "Freezing Drizzle",
|
||||
"57-night": "Freezing Drizzle",
|
||||
"66-day": "Freezing Rain",
|
||||
"56-day": "Leve Garoa Congelante",
|
||||
"56-night": "Leve Garoa Congelante",
|
||||
"57-day": "Garoa Congelante",
|
||||
"57-night": "Garoa Congelante",
|
||||
"66-day": "Chuva Congelante",
|
||||
"61-day": "Chuva fraca",
|
||||
"61-night": "Chuva fraca",
|
||||
"63-day": "Chuva",
|
||||
"63-night": "Chuva",
|
||||
"65-day": "Chuva forte",
|
||||
"66-night": "Freezing Rain",
|
||||
"66-night": "Chuva Congelante",
|
||||
"65-night": "Chuva forte",
|
||||
"67-day": "Freezing Rain",
|
||||
"67-night": "Freezing Rain",
|
||||
"67-day": "Chuva Congelante",
|
||||
"67-night": "Chuva Congelante",
|
||||
"71-day": "Neve fraca",
|
||||
"71-night": "Neve fraca",
|
||||
"73-day": "Neve",
|
||||
"73-night": "Neve",
|
||||
"75-day": "Neve forte",
|
||||
"75-night": "Neve forte",
|
||||
"77-day": "Snow Grains",
|
||||
"77-night": "Snow Grains",
|
||||
"77-day": "Grãos de Neve",
|
||||
"77-night": "Grãos de Neve",
|
||||
"80-day": "Neve fraca",
|
||||
"80-night": "Chuviscos ligeiros",
|
||||
"81-day": "Chuviscos",
|
||||
"81-night": "Chuviscos",
|
||||
"82-day": "Chuviscos fortes",
|
||||
"82-night": "Chuviscos fortes",
|
||||
"85-day": "Snow Showers",
|
||||
"85-night": "Snow Showers",
|
||||
"86-day": "Snow Showers",
|
||||
"86-night": "Snow Showers",
|
||||
"85-day": "Precipitação de Neve",
|
||||
"85-night": "Precipitação de Neve",
|
||||
"86-day": "Precipitação de Neve",
|
||||
"86-night": "Precipitação de Neve",
|
||||
"95-day": "Trovoada",
|
||||
"95-night": "Trovoada",
|
||||
"96-day": "Trovoada com granizo",
|
||||
@@ -295,16 +317,21 @@
|
||||
"quicklaunch": {
|
||||
"bookmark": "Marcador",
|
||||
"service": "Serviço",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"search": "Busca",
|
||||
"custom": "Personalizado",
|
||||
"visit": "Visitar",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistema",
|
||||
"updates": "Atualizações",
|
||||
"update_available": "Atualização disponível",
|
||||
"up_to_date": "Atualizado",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges": "Pontes Filhas",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pendente",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Aprovado",
|
||||
@@ -404,7 +431,7 @@
|
||||
"cpuLoad": "Carga do CPU",
|
||||
"memoryUsed": "Memória Utilizada",
|
||||
"uptime": "Ativo",
|
||||
"numberOfLeases": "Leases"
|
||||
"numberOfLeases": "Concessões"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "Todos os Streams",
|
||||
@@ -418,64 +445,131 @@
|
||||
"wanDownload": "WAN Descarga"
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
"printer_state": "Estado da Impressora",
|
||||
"print_status": "Estado da Impressora",
|
||||
"print_progress": "Progresso",
|
||||
"layers": "Camadas"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"wanted": "Desejado",
|
||||
"queued": "Na fila",
|
||||
"series": "Séries"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
"printer_state": "Estado",
|
||||
"temp_tool": "Temp. Ferramenta",
|
||||
"temp_bed": "Temp. Cama",
|
||||
"job_completion": "Conclusão"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"status": "Status"
|
||||
"origin_ip": "IP Origem",
|
||||
"status": "Estado"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"datastore_usage": "Armaz. de Dados",
|
||||
"failed_tasks_24h": "Tarefas Falhas 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
"memory_usage": "Memória"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
"users": "Utilizadores",
|
||||
"photos": "Fotos",
|
||||
"videos": "Vídeos",
|
||||
"storage": "Armazenamento"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"incident": "Incident",
|
||||
"up": "Sites no Ar",
|
||||
"down": "Sites Fora do Ar",
|
||||
"uptime": "Tempo Ativo",
|
||||
"incident": "Incidente",
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
"libraries": "Bibliotecas",
|
||||
"series": "Séries",
|
||||
"books": "Livros"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
"series": "Séries",
|
||||
"issues": "Problemas",
|
||||
"wanted": "Desejado"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
"albums": "Álbuns",
|
||||
"photos": "Fotos",
|
||||
"videos": "Vídeos",
|
||||
"people": "Pessoa"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"days": "Dias",
|
||||
"uptime": "Tempo Ativo",
|
||||
"volumeAvailable": "Disponível"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Fila",
|
||||
"processing": "Processando",
|
||||
"processed": "Processado",
|
||||
"time": "Hora"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Painéis",
|
||||
"datasources": "Origem de Dados",
|
||||
"totalalerts": "Total Alertas",
|
||||
"alertstriggered": "Alertas Disparados"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Carga de CPU",
|
||||
"memoryusage": "Memória Utilizada",
|
||||
"freespace": "Espaço Livre",
|
||||
"activeusers": "Utilizadores Ativos"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Estado",
|
||||
"size": "Tamanho",
|
||||
"lastrun": "Ultima Execução",
|
||||
"nextrun": "Próxima Execução",
|
||||
"failed": "Falha"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Workers Ativos",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Comprimento da Fila"
|
||||
},
|
||||
"healthchecks": {
|
||||
"never": "Nenhum ping ainda",
|
||||
"new": "Novo",
|
||||
"up": "Online",
|
||||
"grace": "Em Período Gratuito",
|
||||
"down": "Offline",
|
||||
"paused": "Pausado",
|
||||
"status": "Estado",
|
||||
"last_ping": "Ultimo Ping"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servidores",
|
||||
"nodes": "Nós"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total de Alvos"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Reprodutores",
|
||||
"version": "Versão",
|
||||
"status": "Estado",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Hoje",
|
||||
"gross_percent_1y": "Um ano",
|
||||
"gross_percent_max": "Todo o tempo"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Livros",
|
||||
"podcastsDuration": "Duração",
|
||||
"booksDuration": "Duração"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,14 @@
|
||||
"total": "Total",
|
||||
"free": "Disponibili",
|
||||
"cpu": "Procesor",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
@@ -14,7 +21,14 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"jellyseerr": {
|
||||
"approved": "Aprobate",
|
||||
@@ -65,10 +79,10 @@
|
||||
"missing_type": "Lipsește Tipul de Widget: {{type}}",
|
||||
"api_error": "Eroare API",
|
||||
"status": "Status",
|
||||
"information": "Information",
|
||||
"information": "Informație",
|
||||
"url": "URL",
|
||||
"raw_error": "Raw Error",
|
||||
"response_data": "Response Data"
|
||||
"raw_error": "Eroare Raw",
|
||||
"response_data": "Date de raspuns"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Caută…"
|
||||
@@ -88,7 +102,11 @@
|
||||
"playing": "Activ",
|
||||
"transcoding": "Transcodare",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "Niciun stream activ"
|
||||
"no_active": "Niciun stream activ",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Rată",
|
||||
@@ -199,13 +217,13 @@
|
||||
"wlan_users": "Utilizatori WLAN",
|
||||
"up": "Pornit",
|
||||
"down": "Oprit",
|
||||
"wait": "Va rugam asteptati",
|
||||
"wait": "Vă rugăm așteptați",
|
||||
"lan": "LAN",
|
||||
"wlan": "WLAN",
|
||||
"devices": "Devices",
|
||||
"lan_devices": "LAN Devices",
|
||||
"wlan_devices": "WLAN Devices",
|
||||
"empty_data": "Subsystem status unknown"
|
||||
"devices": "Dispozitive",
|
||||
"lan_devices": "Dispozitive LAN",
|
||||
"wlan_devices": "Dispozitive WLAN",
|
||||
"empty_data": "Starea subsistemului este necunoscut"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Fluxuri active",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "Procesor",
|
||||
"mem": "Memorie",
|
||||
"wait": "Te rugam sa astepti"
|
||||
"wait": "Te rugam sa astepti",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"update_available": "Update Available",
|
||||
@@ -291,7 +315,10 @@
|
||||
"child_bridges": "Child Bridges",
|
||||
"available_update": "System",
|
||||
"updates": "Updates",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
@@ -375,7 +402,7 @@
|
||||
"no_devices": "No Device Data Received"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
"bibyterate": "{{valoare, rata(bits: fals; binar: adevarat)}}",
|
||||
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||
},
|
||||
"omada": {
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"activeusers": "Active Users",
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Eșuat"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Muncitori activi",
|
||||
"total_workers": "Muncitori totali",
|
||||
"records_total": "Lungimea cozii"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servere",
|
||||
"nodes": "Noduri"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,14 @@
|
||||
"used": "Использовано",
|
||||
"load": "Загрузка",
|
||||
"cpu": "Процессор",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "Rx",
|
||||
@@ -26,13 +33,24 @@
|
||||
"cpu": "Процессор",
|
||||
"offline": "Не в сети",
|
||||
"error": "Ошибка",
|
||||
"unknown": "Неизвестный"
|
||||
"unknown": "Неизвестный",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Воспроизведение",
|
||||
"transcoding": "Транскодирование",
|
||||
"bitrate": "Битрейт",
|
||||
"no_active": "Нет активных потоков"
|
||||
"no_active": "Нет активных потоков",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Воспроизведение",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Всего наблюдаемых",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"child_bridges": "Child Bridges"
|
||||
"child_bridges": "Child Bridges",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
566
public/locales/sk/common.json
Normal file
566
public/locales/sk/common.json
Normal file
@@ -0,0 +1,566 @@
|
||||
{
|
||||
"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"
|
||||
},
|
||||
"rutorrent": {
|
||||
"active": "Active",
|
||||
"upload": "Upload",
|
||||
"download": "Download"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Queue",
|
||||
"processed": "Processed",
|
||||
"errored": "Errored",
|
||||
"saved": "Saved"
|
||||
},
|
||||
"strelaysrv": {
|
||||
"numActiveSessions": "Sessions",
|
||||
"numConnections": "Connections",
|
||||
"dataRelayed": "Relayed",
|
||||
"transferRate": "Rate"
|
||||
},
|
||||
"proxmox": {
|
||||
"vms": "VMs",
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"lxc": "LXC"
|
||||
},
|
||||
"wmo": {
|
||||
"0-night": "Clear",
|
||||
"1-day": "Mainly Sunny",
|
||||
"1-night": "Mainly Clear",
|
||||
"2-day": "Partly Cloudy",
|
||||
"85-night": "Snow Showers",
|
||||
"86-day": "Snow Showers",
|
||||
"86-night": "Snow Showers",
|
||||
"95-day": "Thunderstorm",
|
||||
"95-night": "Thunderstorm",
|
||||
"0-day": "Sunny",
|
||||
"2-night": "Partly Cloudy",
|
||||
"3-day": "Cloudy",
|
||||
"3-night": "Cloudy",
|
||||
"45-day": "Foggy",
|
||||
"45-night": "Foggy",
|
||||
"48-day": "Foggy",
|
||||
"48-night": "Foggy",
|
||||
"51-day": "Light Drizzle",
|
||||
"51-night": "Light Drizzle",
|
||||
"53-day": "Drizzle",
|
||||
"53-night": "Drizzle",
|
||||
"55-day": "Heavy Drizzle",
|
||||
"55-night": "Heavy Drizzle",
|
||||
"56-day": "Light Freezing Drizzle",
|
||||
"56-night": "Light Freezing Drizzle",
|
||||
"57-day": "Freezing Drizzle",
|
||||
"57-night": "Freezing Drizzle",
|
||||
"61-day": "Light Rain",
|
||||
"61-night": "Light Rain",
|
||||
"63-day": "Rain",
|
||||
"63-night": "Rain",
|
||||
"65-day": "Heavy Rain",
|
||||
"65-night": "Heavy Rain",
|
||||
"66-day": "Freezing Rain",
|
||||
"66-night": "Freezing Rain",
|
||||
"67-day": "Freezing Rain",
|
||||
"67-night": "Freezing Rain",
|
||||
"71-day": "Light Snow",
|
||||
"71-night": "Light Snow",
|
||||
"73-day": "Snow",
|
||||
"73-night": "Snow",
|
||||
"75-day": "Heavy Snow",
|
||||
"75-night": "Heavy Snow",
|
||||
"77-day": "Snow Grains",
|
||||
"77-night": "Snow Grains",
|
||||
"80-day": "Light Showers",
|
||||
"80-night": "Light Showers",
|
||||
"81-day": "Showers",
|
||||
"81-night": "Showers",
|
||||
"82-day": "Heavy Showers",
|
||||
"82-night": "Heavy Showers",
|
||||
"85-day": "Snow Showers",
|
||||
"96-day": "Thunderstorm With Hail",
|
||||
"96-night": "Thunderstorm With Hail",
|
||||
"99-day": "Thunderstorm With Hail",
|
||||
"99-night": "Thunderstorm With Hail"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"hd": "HD"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_xepg": "XEPG Channels",
|
||||
"streams_active": "Active Streams"
|
||||
},
|
||||
"moonraker": {
|
||||
"layers": "Layers",
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progress"
|
||||
},
|
||||
"immich": {
|
||||
"storage": "Storage",
|
||||
"users": "Users",
|
||||
"videos": "Videos",
|
||||
"photos": "Photos"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"incident": "Incident",
|
||||
"m": "m"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||
},
|
||||
"widget": {
|
||||
"api_error": "API Error",
|
||||
"missing_type": "Missing Widget Type: {{type}}",
|
||||
"information": "Information",
|
||||
"status": "Status",
|
||||
"url": "URL",
|
||||
"raw_error": "Raw Error",
|
||||
"response_data": "Response Data"
|
||||
},
|
||||
"weather": {
|
||||
"current": "Current Location",
|
||||
"allow": "Click to allow",
|
||||
"updating": "Updating",
|
||||
"wait": "Please wait"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Search…"
|
||||
},
|
||||
"resources": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"total": "Total",
|
||||
"free": "Free",
|
||||
"used": "Used",
|
||||
"load": "Load",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Users",
|
||||
"uptime": "System Uptime",
|
||||
"days": "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",
|
||||
"up": "UP",
|
||||
"down": "DOWN",
|
||||
"wait": "Please wait",
|
||||
"empty_data": "Subsystem status unknown"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
"diffsDetected": "Diffs Detected"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Playing",
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams"
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "Rate",
|
||||
"remaining": "Remaining",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Active Streams",
|
||||
"movies": "Movies",
|
||||
"tv": "TV Shows"
|
||||
},
|
||||
"sabnzbd": {
|
||||
"rate": "Rate",
|
||||
"queue": "Queue",
|
||||
"timeleft": "Time Left"
|
||||
},
|
||||
"transmission": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"qbittorrent": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
},
|
||||
"readarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"books": "Books"
|
||||
},
|
||||
"bazarr": {
|
||||
"missingEpisodes": "Missing Episodes",
|
||||
"missingMovies": "Missing Movies"
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "Pending",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
},
|
||||
"jellyseerr": {
|
||||
"pending": "Pending",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
},
|
||||
"overseerr": {
|
||||
"pending": "Pending",
|
||||
"processing": "Processing",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"filtered": "Filtered",
|
||||
"latency": "Latency"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Upload",
|
||||
"download": "Download",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"portainer": {
|
||||
"running": "Running",
|
||||
"stopped": "Stopped",
|
||||
"total": "Total"
|
||||
},
|
||||
"traefik": {
|
||||
"routers": "Routers",
|
||||
"services": "Services",
|
||||
"middleware": "Middleware"
|
||||
},
|
||||
"navidrome": {
|
||||
"nothing_streaming": "No Active Streams",
|
||||
"please_wait": "Please Wait"
|
||||
},
|
||||
"npm": {
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"total": "Total"
|
||||
},
|
||||
"coinmarketcap": {
|
||||
"configure": "Configure one or more crypto currencies to track",
|
||||
"1hour": "1 Hour",
|
||||
"1day": "1 Day",
|
||||
"7days": "7 Days",
|
||||
"30days": "30 Days"
|
||||
},
|
||||
"gotify": {
|
||||
"apps": "Applications",
|
||||
"clients": "Clients",
|
||||
"messages": "Messages"
|
||||
},
|
||||
"prowlarr": {
|
||||
"enableIndexers": "Indexers",
|
||||
"numberOfGrabs": "Grabs",
|
||||
"numberOfQueries": "Queries",
|
||||
"numberOfFailGrabs": "Fail Grabs",
|
||||
"numberOfFailQueries": "Fail Queries"
|
||||
},
|
||||
"jackett": {
|
||||
"configured": "Configured",
|
||||
"errored": "Errored"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
},
|
||||
"authentik": {
|
||||
"users": "Users",
|
||||
"loginsLast24H": "Logins (24h)",
|
||||
"failedLoginsLast24H": "Failed Logins (24h)"
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
"updates": "Updates",
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Scanned",
|
||||
"containers_updated": "Updated",
|
||||
"containers_failed": "Failed"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
"rejectedPushes": "Rejected",
|
||||
"filters": "Filters",
|
||||
"indexers": "Indexers"
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "Queue",
|
||||
"videos": "Videos",
|
||||
"channels": "Channels",
|
||||
"playlists": "Playlists"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "System Load",
|
||||
"uptime": "Uptime",
|
||||
"alerts": "Alerts",
|
||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Speed",
|
||||
"active": "Active",
|
||||
"queue": "Queue",
|
||||
"total": "Total"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"total": "Total"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"status": "Status"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users",
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length",
|
||||
"active_workers": "Active Workers"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,14 @@
|
||||
"free": "Free",
|
||||
"used": "Used",
|
||||
"load": "Load",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Users",
|
||||
@@ -49,13 +56,24 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Playing",
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams"
|
||||
"no_active": "No Active Streams",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Playing",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"nodes": "Nodes",
|
||||
"servers": "Servers"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_total": "Total Targets",
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,14 @@
|
||||
"free": "Ledigt",
|
||||
"used": "Använt",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
@@ -29,7 +36,14 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Offline",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"exited": "Exited",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Sök…"
|
||||
@@ -38,7 +52,11 @@
|
||||
"playing": "Spelar",
|
||||
"transcoding": "Omkodning",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "Inga aktiva strömmar"
|
||||
"no_active": "Inga aktiva strömmar",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Spelar",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Vänligen vänta"
|
||||
"wait": "Vänligen vänta",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,14 @@
|
||||
"free": "మిగిలింది",
|
||||
"used": "ఉపయోగించబడిన",
|
||||
"load": "లోడ్",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
@@ -49,13 +56,24 @@
|
||||
"cpu": "సీపియూ",
|
||||
"offline": "ఆఫ్లైన్",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "ఆడుతున్నారు",
|
||||
"transcoding": "ట్రాన్స్కోడింగ్",
|
||||
"bitrate": "బిట్రేట్",
|
||||
"no_active": "యాక్టివ్ స్ట్రీమ్లు లేవు"
|
||||
"no_active": "యాక్టివ్ స్ట్రీమ్లు లేవు",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "ఆడుతున్నారు",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "సీపియూ",
|
||||
"mem": "MEM",
|
||||
"wait": "దయచేసి వేచి ఉండండి"
|
||||
"wait": "దయచేసి వేచి ఉండండి",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "మొత్తం గమనించబడింది",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "బుక్మార్క్",
|
||||
"service": "సేవ",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"url": "URL",
|
||||
"visit": "Visit"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "వ్యవస్థ",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "అందుబాటులో నవీకరణ",
|
||||
"up_to_date": "తాజాగా",
|
||||
"child_bridges": "పిల్ల వంతెనలు",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"rejectedPushes": "తిరస్కరించారు",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"cpuload": "Cpu Load",
|
||||
"activeusers": "Active Users"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
566
public/locales/th/common.json
Normal file
566
public/locales/th/common.json
Normal file
@@ -0,0 +1,566 @@
|
||||
{
|
||||
"navidrome": {
|
||||
"nothing_streaming": "No Active Streams",
|
||||
"please_wait": "Please Wait"
|
||||
},
|
||||
"npm": {
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"total": "Total"
|
||||
},
|
||||
"coinmarketcap": {
|
||||
"configure": "Configure one or more crypto currencies to track",
|
||||
"1hour": "1 Hour",
|
||||
"1day": "1 Day",
|
||||
"7days": "7 Days",
|
||||
"30days": "30 Days"
|
||||
},
|
||||
"pyload": {
|
||||
"queue": "Queue",
|
||||
"total": "Total",
|
||||
"speed": "Speed",
|
||||
"active": "Active"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"hd": "HD"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
"tx": "TX",
|
||||
"mem": "เมม",
|
||||
"cpu": "ซีพียู",
|
||||
"offline": "ออฟไลน์",
|
||||
"error": "ข้อผิดพลาด",
|
||||
"unknown": "ไม่ทราบ",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||
},
|
||||
"unifi": {
|
||||
"days": "วัน",
|
||||
"wan": "WAN",
|
||||
"lan": "แลน",
|
||||
"wlan": "WLAN",
|
||||
"devices": "อุปกรณ์",
|
||||
"lan_devices": "อุปกรณ์แลน",
|
||||
"wlan_devices": "WLAN Devices",
|
||||
"lan_users": "LAN Users",
|
||||
"wlan_users": "WLAN Users",
|
||||
"up": "UP",
|
||||
"down": "DOWN",
|
||||
"wait": "Please wait",
|
||||
"empty_data": "Subsystem status unknown",
|
||||
"users": "ผู้ใช้",
|
||||
"uptime": "เวลาทำงานของระบบ"
|
||||
},
|
||||
"widget": {
|
||||
"missing_type": "Missing Widget Type: {{type}}",
|
||||
"api_error": "API มีข้อผิดพลาด",
|
||||
"information": "ข้อมูล",
|
||||
"status": "สถานะ",
|
||||
"url": "URL",
|
||||
"raw_error": "ข้อมูลต้นฉบับผิดพลาด",
|
||||
"response_data": "ข้อมูลการตอบกลับ"
|
||||
},
|
||||
"weather": {
|
||||
"current": "สถานที่ปัจจุบัน",
|
||||
"allow": "คลิกเพื่ออนุญาต",
|
||||
"updating": "กำลังปรับปรุง",
|
||||
"wait": "โปรดรอ"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "ค้นหา…"
|
||||
},
|
||||
"resources": {
|
||||
"cpu": "ซีพียู",
|
||||
"mem": "เมม",
|
||||
"total": "ทั้งหมด",
|
||||
"free": "ฟรี",
|
||||
"used": "ใช้แล้ว",
|
||||
"load": "โหลด",
|
||||
"hours": "h",
|
||||
"minutes": "m",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d"
|
||||
},
|
||||
"ping": {
|
||||
"error": "ข้อผิดพลาด",
|
||||
"ping": "ปิง"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "กำลังเล่น",
|
||||
"transcoding": "การแปลงรหัส",
|
||||
"bitrate": "อัตราบิต",
|
||||
"no_active": "ไม่มีสตรีมที่ใช้งานอยู่",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"songs": "Songs",
|
||||
"episodes": "Episodes"
|
||||
},
|
||||
"deluge": {
|
||||
"download": "ดาวน์โหลด",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"flood": {
|
||||
"download": "ดาวน์โหลด",
|
||||
"upload": "อัพโหลด",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
"diffsDetected": "Diffs Detected"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Playing",
|
||||
"transcoding": "Transcoding",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams"
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "Rate",
|
||||
"remaining": "Remaining",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "Active Streams",
|
||||
"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"
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
},
|
||||
"sonarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
},
|
||||
"readarr": {
|
||||
"queued": "Queued",
|
||||
"books": "Books",
|
||||
"wanted": "Wanted"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Queue",
|
||||
"processed": "Processed",
|
||||
"errored": "Errored",
|
||||
"saved": "Saved"
|
||||
},
|
||||
"traefik": {
|
||||
"routers": "Routers",
|
||||
"services": "Services",
|
||||
"middleware": "Middleware"
|
||||
},
|
||||
"bazarr": {
|
||||
"missingEpisodes": "Missing Episodes",
|
||||
"missingMovies": "Missing Movies"
|
||||
},
|
||||
"radarr": {
|
||||
"wanted": "Wanted",
|
||||
"missing": "Missing",
|
||||
"queued": "Queued",
|
||||
"movies": "Movies"
|
||||
},
|
||||
"lidarr": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"albums": "Albums"
|
||||
},
|
||||
"ombi": {
|
||||
"pending": "Pending",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
},
|
||||
"jellyseerr": {
|
||||
"pending": "Pending",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
},
|
||||
"overseerr": {
|
||||
"pending": "Pending",
|
||||
"processing": "Processing",
|
||||
"approved": "Approved",
|
||||
"available": "Available"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"gravity": "Gravity"
|
||||
},
|
||||
"adguard": {
|
||||
"queries": "Queries",
|
||||
"blocked": "Blocked",
|
||||
"filtered": "Filtered",
|
||||
"latency": "Latency"
|
||||
},
|
||||
"speedtest": {
|
||||
"upload": "Upload",
|
||||
"download": "Download",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"portainer": {
|
||||
"running": "Running",
|
||||
"stopped": "Stopped",
|
||||
"total": "Total"
|
||||
},
|
||||
"gotify": {
|
||||
"apps": "Applications",
|
||||
"clients": "Clients",
|
||||
"messages": "Messages"
|
||||
},
|
||||
"prowlarr": {
|
||||
"enableIndexers": "Indexers",
|
||||
"numberOfGrabs": "Grabs",
|
||||
"numberOfQueries": "Queries",
|
||||
"numberOfFailGrabs": "Fail Grabs",
|
||||
"numberOfFailQueries": "Fail Queries"
|
||||
},
|
||||
"jackett": {
|
||||
"configured": "Configured",
|
||||
"errored": "Errored"
|
||||
},
|
||||
"strelaysrv": {
|
||||
"numActiveSessions": "Sessions",
|
||||
"numConnections": "Connections",
|
||||
"dataRelayed": "Relayed",
|
||||
"transferRate": "Rate"
|
||||
},
|
||||
"mastodon": {
|
||||
"user_count": "Users",
|
||||
"status_count": "Posts",
|
||||
"domain_count": "Domains"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
},
|
||||
"authentik": {
|
||||
"users": "Users",
|
||||
"loginsLast24H": "Logins (24h)",
|
||||
"failedLoginsLast24H": "Failed Logins (24h)"
|
||||
},
|
||||
"proxmox": {
|
||||
"mem": "MEM",
|
||||
"cpu": "CPU",
|
||||
"lxc": "LXC",
|
||||
"vms": "VMs"
|
||||
},
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"wmo": {
|
||||
"67-day": "Freezing Rain",
|
||||
"0-day": "Sunny",
|
||||
"0-night": "Clear",
|
||||
"1-day": "Mainly Sunny",
|
||||
"1-night": "Mainly Clear",
|
||||
"65-day": "Heavy Rain",
|
||||
"65-night": "Heavy Rain",
|
||||
"66-day": "Freezing Rain",
|
||||
"66-night": "Freezing Rain",
|
||||
"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",
|
||||
"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",
|
||||
"71-day": "Light Snow",
|
||||
"71-night": "Light Snow",
|
||||
"73-day": "Snow",
|
||||
"73-night": "Snow",
|
||||
"75-day": "Heavy Snow",
|
||||
"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"
|
||||
},
|
||||
"homebridge": {
|
||||
"updates": "Updates",
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"available_update": "System",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"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;)}}"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"total": "Total"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"numberOfLeases": "Leases"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_active": "Active Streams",
|
||||
"streams_xepg": "XEPG Channels"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"status": "Status"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "เว็บไซต์ ล่ม",
|
||||
"uptime": "เวลาทำงาน",
|
||||
"incident": "Incident",
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processing": "Processing",
|
||||
"processed": "Processed",
|
||||
"time": "Time"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Dashboards",
|
||||
"datasources": "Data Sources",
|
||||
"totalalerts": "Total Alerts",
|
||||
"alertstriggered": "Alerts Triggered"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Cpu Load",
|
||||
"memoryusage": "Memory Usage",
|
||||
"freespace": "Free Space",
|
||||
"activeusers": "Active Users"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
@@ -3,10 +3,10 @@
|
||||
"missing_type": "Kayıp Araç Türü: {{type}}",
|
||||
"api_error": "API Hatası",
|
||||
"status": "Durum",
|
||||
"information": "Information",
|
||||
"information": "Bilgi",
|
||||
"url": "URL",
|
||||
"raw_error": "Raw Error",
|
||||
"response_data": "Response Data"
|
||||
"raw_error": "Ham Hata",
|
||||
"response_data": "Yanıt Verisi"
|
||||
},
|
||||
"weather": {
|
||||
"current": "Mevcut Konum",
|
||||
@@ -18,12 +18,19 @@
|
||||
"placeholder": "Ara…"
|
||||
},
|
||||
"resources": {
|
||||
"cpu": "İşlemci",
|
||||
"cpu": "CPU",
|
||||
"total": "Toplam",
|
||||
"free": "Boşta",
|
||||
"used": "Kullanımda",
|
||||
"load": "Yük",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Kullanıcılar",
|
||||
@@ -40,7 +47,7 @@
|
||||
"devices": "Aygıtlar",
|
||||
"lan_devices": "LAN Aygıtları",
|
||||
"wlan_devices": "WLAN Aygıtları",
|
||||
"empty_data": "Subsystem status unknown"
|
||||
"empty_data": "Alt sistem durumu bilinmiyor"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "Gelen Veri",
|
||||
@@ -48,14 +55,25 @@
|
||||
"mem": "Bellek",
|
||||
"cpu": "İşlemci",
|
||||
"offline": "Çevrimdışı",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"error": "Hata",
|
||||
"unknown": "Bilinmiyor",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Oynatılıyor",
|
||||
"transcoding": "Dönüştürülüyor",
|
||||
"bitrate": "Bit Oranı",
|
||||
"no_active": "Aktif akış yok"
|
||||
"no_active": "Aktif akış yok",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Oynatılıyor",
|
||||
@@ -91,7 +109,7 @@
|
||||
},
|
||||
"qbittorrent": {
|
||||
"download": "İndirme",
|
||||
"upload": "Yükleme",
|
||||
"upload": "Yükle",
|
||||
"leech": "İsteyen",
|
||||
"seed": "Sunan"
|
||||
},
|
||||
@@ -134,7 +152,7 @@
|
||||
"pending": "Bekliyor",
|
||||
"approved": "Onaylı",
|
||||
"available": "Kullanılabilir",
|
||||
"processing": "Processing"
|
||||
"processing": "İşleniyor"
|
||||
},
|
||||
"pihole": {
|
||||
"queries": "Sorgular",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "İşlemci",
|
||||
"mem": "Bellek",
|
||||
"wait": "Lütfen bekleyiniz"
|
||||
"wait": "Lütfen bekleyiniz",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Toplam Gözlenen",
|
||||
@@ -282,8 +304,10 @@
|
||||
"quicklaunch": {
|
||||
"bookmark": "Yer İmi",
|
||||
"service": "Hizmet",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"search": "Ara",
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Sistem",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Güncelleme Kullanılabilir",
|
||||
"up_to_date": "Güncel",
|
||||
"child_bridges": "Alt Köprüler",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Onaylandı",
|
||||
@@ -327,146 +354,213 @@
|
||||
"total": "Toplam"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
"public_ip": "Açık IP",
|
||||
"region": "Bölge",
|
||||
"country": "Ülke"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"channels": "Kanallar",
|
||||
"hd": "HD"
|
||||
},
|
||||
"ping": {
|
||||
"error": "Error",
|
||||
"error": "Hata",
|
||||
"ping": "Ping"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
"passed": "Geçti",
|
||||
"failed": "Başarısız",
|
||||
"unknown": "Bilinmeyen"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"total": "Total"
|
||||
"inbox": "Gelen Kutusu",
|
||||
"total": "Toplam"
|
||||
},
|
||||
"deluge": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "İndir",
|
||||
"upload": "Yükle",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
"seed": "Tohum"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "İndir",
|
||||
"upload": "Yükle",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
"seed": "Tohum"
|
||||
},
|
||||
"tdarr": {
|
||||
"queue": "Queue",
|
||||
"processed": "Processed",
|
||||
"errored": "Errored",
|
||||
"saved": "Saved"
|
||||
"queue": "Sıra",
|
||||
"processed": "İşlendi",
|
||||
"errored": "Hatalı",
|
||||
"saved": "Kaydedildi"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
"read": "Oku",
|
||||
"unread": "Okunmamış"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
"wait": "Lütfen Bekle",
|
||||
"no_devices": "Cihaz Verisi Alınamadı"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "Connected APs",
|
||||
"activeUser": "Active devices",
|
||||
"alerts": "Alerts",
|
||||
"connectedGateway": "Connected gateways",
|
||||
"connectedSwitches": "Connected switches"
|
||||
"connectedAp": "Bağlı AP'ler",
|
||||
"activeUser": "Aktif cihazlar",
|
||||
"alerts": "Alarmlar",
|
||||
"connectedGateway": "Bağlı ağ geçitleri",
|
||||
"connectedSwitches": "Bağlı anahtarlar"
|
||||
},
|
||||
"downloadstation": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"download": "İndir",
|
||||
"upload": "Yükle",
|
||||
"leech": "Leech",
|
||||
"seed": "Seed"
|
||||
"seed": "Tohum"
|
||||
},
|
||||
"mikrotik": {
|
||||
"cpuLoad": "CPU Load",
|
||||
"memoryUsed": "Memory Used",
|
||||
"uptime": "Uptime",
|
||||
"cpuLoad": "CPU Yükü",
|
||||
"memoryUsed": "Bellek Kullanımı",
|
||||
"uptime": "Çalışma Süresi",
|
||||
"numberOfLeases": "Leases"
|
||||
},
|
||||
"xteve": {
|
||||
"streams_all": "All Streams",
|
||||
"streams_active": "Active Streams",
|
||||
"streams_xepg": "XEPG Channels"
|
||||
"streams_all": "Tüm Akışlar",
|
||||
"streams_active": "Aktif Akışlar",
|
||||
"streams_xepg": "XEPG Kanalları"
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU Load",
|
||||
"memory": "Active Memory",
|
||||
"wanUpload": "WAN Upload",
|
||||
"wanDownload": "WAN Download"
|
||||
"cpu": "CPU Yükü",
|
||||
"memory": "Aktif Bellek",
|
||||
"wanUpload": "WAN Yükleme",
|
||||
"wanDownload": "WAN İndirme"
|
||||
},
|
||||
"moonraker": {
|
||||
"printer_state": "Printer State",
|
||||
"print_status": "Print Status",
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
"printer_state": "Yazıcı Durumu",
|
||||
"print_status": "Yazıcı Durumu",
|
||||
"print_progress": "İlerleme",
|
||||
"layers": "Katmanlar"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"series": "Series"
|
||||
"queued": "Kuyrukta",
|
||||
"series": "Seri"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"printer_state": "Durum",
|
||||
"temp_tool": "Araç sıcaklığı",
|
||||
"temp_bed": "Yatak sıcaklığı",
|
||||
"job_completion": "Completion"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"status": "Status"
|
||||
"status": "Durum"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
"memory_usage": "Bellek"
|
||||
},
|
||||
"immich": {
|
||||
"users": "Users",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"storage": "Storage"
|
||||
"users": "Kullanıcılar",
|
||||
"photos": "Fotoğraflar",
|
||||
"videos": "Videolar",
|
||||
"storage": "Depo"
|
||||
},
|
||||
"uptimekuma": {
|
||||
"up": "Sites Up",
|
||||
"down": "Sites Down",
|
||||
"uptime": "Uptime",
|
||||
"uptime": "Çalışma Süresi",
|
||||
"incident": "Incident",
|
||||
"m": "m"
|
||||
},
|
||||
"komga": {
|
||||
"libraries": "Libraries",
|
||||
"libraries": "Kütüphane",
|
||||
"series": "Series",
|
||||
"books": "Books"
|
||||
"books": "Kitaplar"
|
||||
},
|
||||
"mylar": {
|
||||
"series": "Series",
|
||||
"issues": "Issues",
|
||||
"wanted": "Wanted"
|
||||
"series": "Seriler",
|
||||
"issues": "Sorunlar",
|
||||
"wanted": "Aranan"
|
||||
},
|
||||
"photoprism": {
|
||||
"albums": "Albums",
|
||||
"photos": "Photos",
|
||||
"videos": "Videos",
|
||||
"people": "People"
|
||||
"albums": "Albümler",
|
||||
"photos": "Fotoğraflar",
|
||||
"videos": "Videolar",
|
||||
"people": "İnsan"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"days": "Gün",
|
||||
"uptime": "Çalışma Süresi",
|
||||
"volumeAvailable": "Mevcut"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,7 +128,14 @@
|
||||
"free": "Вільно",
|
||||
"used": "Використано",
|
||||
"load": "Навантаження",
|
||||
"mem": "MEM"
|
||||
"mem": "Пам'ять",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "Відправка",
|
||||
"months": "міс",
|
||||
"days": "д",
|
||||
"hours": "г",
|
||||
"minutes": "хв"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "Користувачі",
|
||||
@@ -154,7 +161,14 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Офлайн",
|
||||
"error": "Помилка",
|
||||
"unknown": "Невідомий"
|
||||
"unknown": "Невідомий",
|
||||
"starting": "Запуск",
|
||||
"unhealthy": "Нездоровий",
|
||||
"not_found": "Не знайдено",
|
||||
"exited": "Вийшов",
|
||||
"partial": "Частковий",
|
||||
"running": "Запущено",
|
||||
"healthy": "Здоров'я"
|
||||
},
|
||||
"ping": {
|
||||
"error": "Помилка",
|
||||
@@ -164,7 +178,11 @@
|
||||
"playing": "Відтворення",
|
||||
"transcoding": "Перекодування",
|
||||
"bitrate": "Бітрейт",
|
||||
"no_active": "Немає активних потоків"
|
||||
"no_active": "Немає активних потоків",
|
||||
"movies": "Фільми",
|
||||
"series": "Серії",
|
||||
"episodes": "Епізоди",
|
||||
"songs": "Пісні"
|
||||
},
|
||||
"flood": {
|
||||
"download": "Завантаження",
|
||||
@@ -339,13 +357,19 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "Пам'ять",
|
||||
"wait": "Будь ласка, зачекайте"
|
||||
"wait": "Будь ласка, зачекайте",
|
||||
"temp": "TEMP",
|
||||
"uptime": "Відправка",
|
||||
"days": "д",
|
||||
"hours": "г"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "Закладка",
|
||||
"service": "Сервіс",
|
||||
"search": "Пошук",
|
||||
"custom": "Користувацький"
|
||||
"custom": "Користувацький",
|
||||
"visit": "Відвідайте",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "Система",
|
||||
@@ -353,7 +377,10 @@
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"update_available": "Доступне оновлення",
|
||||
"up_to_date": "Актуально",
|
||||
"child_bridges": "Дитячі мости"
|
||||
"child_bridges": "Дитячі мости",
|
||||
"up": "Вгору",
|
||||
"pending": "В очікуванні",
|
||||
"down": "Вниз"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "Відскановано",
|
||||
@@ -465,8 +492,75 @@
|
||||
"people": "Люди"
|
||||
},
|
||||
"diskstation": {
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
"days": "Днів",
|
||||
"uptime": "Час роботи",
|
||||
"volumeAvailable": "Доступно"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Черга",
|
||||
"processing": "Обробка",
|
||||
"processed": "Оброблено",
|
||||
"time": "Час"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "Інформаційні панелі",
|
||||
"datasources": "Джерела даних",
|
||||
"totalalerts": "Всього сповіщень",
|
||||
"alertstriggered": "Спрацювали сповіщення"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "Навантаження Cpu",
|
||||
"memoryusage": "Використання пам'яті",
|
||||
"freespace": "Вільного місця",
|
||||
"activeusers": "Активні користувачі"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Статус",
|
||||
"size": "Розмір",
|
||||
"lastrun": "Останній запуск",
|
||||
"nextrun": "Наступний запуск",
|
||||
"failed": "Помилка"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Активні працівники",
|
||||
"total_workers": "Всього робітників",
|
||||
"records_total": "Довжина черги"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "Новий",
|
||||
"up": "Онлайн",
|
||||
"down": "Офлайн",
|
||||
"grace": "У пільговий період",
|
||||
"paused": "Призупинено",
|
||||
"status": "Стан",
|
||||
"last_ping": "Останній пінг",
|
||||
"never": "Пінгів ще немає"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Сервери",
|
||||
"nodes": "Вузли"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Цілі вгору",
|
||||
"targets_down": "Цілі вниз",
|
||||
"targets_total": "Всього цілей"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Гравці",
|
||||
"version": "Версія",
|
||||
"status": "Стан",
|
||||
"up": "Онлайн",
|
||||
"down": "Офлайн"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Сьогодні",
|
||||
"gross_percent_1y": "Один рік",
|
||||
"gross_percent_max": "Весь час"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Подкасти",
|
||||
"books": "Книжки",
|
||||
"podcastsDuration": "Тривалість",
|
||||
"booksDuration": "Тривалість"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,14 @@
|
||||
"used": "Đã dùng",
|
||||
"load": "Load",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "RX",
|
||||
@@ -26,13 +33,24 @@
|
||||
"cpu": "CPU",
|
||||
"offline": "Ngoại tuyến",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "Đang chơi",
|
||||
"transcoding": "Chuyển định dạng",
|
||||
"bitrate": "Bitrate",
|
||||
"no_active": "No Active Streams"
|
||||
"no_active": "No Active Streams",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "Đang chơi",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"down": "Down",
|
||||
"pending": "Pending"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "Status",
|
||||
"size": "Size",
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,11 @@
|
||||
"transcoding": "轉碼緊",
|
||||
"bitrate": "比特率",
|
||||
"playing": "播放緊",
|
||||
"no_active": "無任何活動"
|
||||
"no_active": "無任何活動",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "播放緊",
|
||||
@@ -41,7 +45,14 @@
|
||||
"used": "用咗",
|
||||
"load": "負荷",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "MEM",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "接收",
|
||||
@@ -50,7 +61,14 @@
|
||||
"cpu": "處理器",
|
||||
"offline": "離線",
|
||||
"error": "Error",
|
||||
"unknown": "Unknown"
|
||||
"unknown": "Unknown",
|
||||
"running": "Running",
|
||||
"starting": "Starting",
|
||||
"unhealthy": "Unhealthy",
|
||||
"not_found": "Not Found",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "Healthy"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "速度",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM",
|
||||
"wait": "Please wait"
|
||||
"wait": "Please wait",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "Total Observed",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "Bookmark",
|
||||
"service": "Service",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"custom": "Custom",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "Update Available",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
@@ -468,5 +495,72 @@
|
||||
"days": "Days",
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "Queue",
|
||||
"processed": "Processed",
|
||||
"time": "Time",
|
||||
"processing": "Processing"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"kopia": {
|
||||
"lastrun": "Last Run",
|
||||
"nextrun": "Next Run",
|
||||
"failed": "Failed",
|
||||
"status": "Status",
|
||||
"size": "Size"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "New",
|
||||
"up": "Online",
|
||||
"grace": "In Grace Period",
|
||||
"down": "Offline",
|
||||
"paused": "Paused",
|
||||
"status": "Status",
|
||||
"last_ping": "Last Ping",
|
||||
"never": "No pings yet"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,8 +16,15 @@
|
||||
"free": "空闲",
|
||||
"used": "已用",
|
||||
"load": "负载",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"cpu": "处理器",
|
||||
"mem": "内存",
|
||||
"temp": "温度",
|
||||
"max": "最大",
|
||||
"uptime": "运行时间",
|
||||
"months": "月",
|
||||
"days": "天",
|
||||
"hours": "时",
|
||||
"minutes": "分"
|
||||
},
|
||||
"docker": {
|
||||
"rx": "接收",
|
||||
@@ -26,13 +33,24 @@
|
||||
"cpu": "处理器",
|
||||
"offline": "离线",
|
||||
"error": "错误",
|
||||
"unknown": "未知"
|
||||
"unknown": "未知",
|
||||
"starting": "启动中",
|
||||
"unhealthy": "不健康的",
|
||||
"not_found": "未找到",
|
||||
"running": "运行中",
|
||||
"exited": "已退出",
|
||||
"partial": "部分",
|
||||
"healthy": "健康的"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "播放中",
|
||||
"transcoding": "转码",
|
||||
"bitrate": "比特率",
|
||||
"no_active": "暂无播放"
|
||||
"no_active": "暂无播放",
|
||||
"movies": "电影",
|
||||
"series": "系列",
|
||||
"episodes": "剧集",
|
||||
"songs": "歌曲"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "播放中",
|
||||
@@ -187,8 +205,8 @@
|
||||
"proxmox": {
|
||||
"mem": "内存",
|
||||
"cpu": "处理器",
|
||||
"lxc": "LXC",
|
||||
"vms": "VMs"
|
||||
"lxc": "容器",
|
||||
"vms": "虚拟机"
|
||||
},
|
||||
"unifi": {
|
||||
"users": "用户",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "处理器",
|
||||
"mem": "内存",
|
||||
"wait": "请稍等"
|
||||
"wait": "请稍等",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "天",
|
||||
"hours": "时"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "观察到的总数",
|
||||
@@ -230,8 +252,8 @@
|
||||
"45-day": "有雾",
|
||||
"48-day": "有雾",
|
||||
"51-day": "小雨",
|
||||
"73-night": "Snow",
|
||||
"75-day": "Heavy Snow",
|
||||
"73-night": "中雪",
|
||||
"75-day": "大雪",
|
||||
"1-night": "大部晴朗",
|
||||
"2-day": "多云",
|
||||
"2-night": "多云",
|
||||
@@ -240,64 +262,69 @@
|
||||
"51-night": "小雨",
|
||||
"53-day": "Drizzle",
|
||||
"53-night": "Drizzle",
|
||||
"55-day": "Heavy Drizzle",
|
||||
"55-night": "Heavy Drizzle",
|
||||
"56-day": "Light Freezing Drizzle",
|
||||
"56-night": "Light Freezing Drizzle",
|
||||
"57-day": "Freezing Drizzle",
|
||||
"57-night": "Freezing Drizzle",
|
||||
"61-day": "Light Rain",
|
||||
"61-night": "Light Rain",
|
||||
"63-day": "Rain",
|
||||
"63-night": "Rain",
|
||||
"65-day": "Heavy Rain",
|
||||
"65-night": "Heavy Rain",
|
||||
"66-day": "Freezing Rain",
|
||||
"66-night": "Freezing Rain",
|
||||
"67-day": "Freezing Rain",
|
||||
"67-night": "Freezing Rain",
|
||||
"71-day": "Light Snow",
|
||||
"71-night": "Light Snow",
|
||||
"73-day": "Snow",
|
||||
"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"
|
||||
"55-day": "毛毛雨",
|
||||
"55-night": "毛毛雨",
|
||||
"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": "小雪",
|
||||
"71-night": "小雪",
|
||||
"73-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": "雷雨伴随冰雹"
|
||||
},
|
||||
"quicklaunch": {
|
||||
"bookmark": "书签",
|
||||
"service": "服务",
|
||||
"search": "Search",
|
||||
"custom": "Custom"
|
||||
"search": "搜索",
|
||||
"custom": "自定",
|
||||
"visit": "访问",
|
||||
"url": "网址"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "System",
|
||||
"updates": "Updates",
|
||||
"update_available": "Update Available",
|
||||
"updates": "更新",
|
||||
"update_available": "有可用的更新",
|
||||
"up_to_date": "Up to Date",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "待定中",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "Approved",
|
||||
"rejectedPushes": "Rejected",
|
||||
"approvedPushes": "已核准",
|
||||
"rejectedPushes": "拒绝",
|
||||
"filters": "Filters",
|
||||
"indexers": "Indexers"
|
||||
"indexers": "索引器"
|
||||
},
|
||||
"watchtower": {
|
||||
"containers_scanned": "以扫描",
|
||||
@@ -305,14 +332,14 @@
|
||||
"containers_failed": "失败"
|
||||
},
|
||||
"tubearchivist": {
|
||||
"downloads": "Queue",
|
||||
"videos": "Videos",
|
||||
"channels": "Channels",
|
||||
"playlists": "Playlists"
|
||||
"downloads": "队列",
|
||||
"videos": "影片",
|
||||
"channels": "频道",
|
||||
"playlists": "播放清单"
|
||||
},
|
||||
"truenas": {
|
||||
"load": "System Load",
|
||||
"uptime": "Uptime",
|
||||
"load": "系统负载",
|
||||
"uptime": "运行时间",
|
||||
"alerts": "警报",
|
||||
"time": "{{value, number(style: unit; unitDisplay: long;)}}"
|
||||
},
|
||||
@@ -321,18 +348,18 @@
|
||||
"please_wait": "请等待"
|
||||
},
|
||||
"pyload": {
|
||||
"speed": "Speed",
|
||||
"speed": "速度",
|
||||
"active": "Active",
|
||||
"queue": "Queue",
|
||||
"queue": "队列",
|
||||
"total": "Total"
|
||||
},
|
||||
"gluetun": {
|
||||
"public_ip": "Public IP",
|
||||
"region": "Region",
|
||||
"country": "Country"
|
||||
"country": "国家"
|
||||
},
|
||||
"hdhomerun": {
|
||||
"channels": "Channels",
|
||||
"channels": "频道",
|
||||
"hd": "HD"
|
||||
},
|
||||
"ping": {
|
||||
@@ -340,12 +367,12 @@
|
||||
"ping": "Ping"
|
||||
},
|
||||
"scrutiny": {
|
||||
"passed": "Passed",
|
||||
"failed": "Failed",
|
||||
"unknown": "Unknown"
|
||||
"passed": "通过",
|
||||
"failed": "失败",
|
||||
"unknown": "未知的"
|
||||
},
|
||||
"paperlessngx": {
|
||||
"inbox": "Inbox",
|
||||
"inbox": "收件箱",
|
||||
"total": "Total"
|
||||
},
|
||||
"deluge": {
|
||||
@@ -361,25 +388,25 @@
|
||||
"seed": "做种"
|
||||
},
|
||||
"tdarr": {
|
||||
"saved": "Saved",
|
||||
"saved": "已保存",
|
||||
"queue": "队列",
|
||||
"processed": "Processed",
|
||||
"processed": "已处理",
|
||||
"errored": "出错"
|
||||
},
|
||||
"miniflux": {
|
||||
"read": "Read",
|
||||
"unread": "Unread"
|
||||
"read": "已读",
|
||||
"unread": "未读"
|
||||
},
|
||||
"nextdns": {
|
||||
"wait": "Please Wait",
|
||||
"no_devices": "No Device Data Received"
|
||||
"wait": "请稍候",
|
||||
"no_devices": "没有接收到设备数据"
|
||||
},
|
||||
"common": {
|
||||
"bibyterate": "{{value, rate(bits: false; binary: true)}}",
|
||||
"bibitrate": "{{value, rate(bits: true; binary: true)}}"
|
||||
},
|
||||
"omada": {
|
||||
"connectedAp": "Connected APs",
|
||||
"connectedAp": "连接中的AP",
|
||||
"activeUser": "活跃设备",
|
||||
"alerts": "警报",
|
||||
"connectedGateway": "已连接网关",
|
||||
@@ -392,81 +419,148 @@
|
||||
"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",
|
||||
"printer_state": "打印机状态",
|
||||
"print_status": "打印状态",
|
||||
"print_progress": "Progress",
|
||||
"layers": "Layers"
|
||||
"layers": "层"
|
||||
},
|
||||
"medusa": {
|
||||
"wanted": "Wanted",
|
||||
"queued": "Queued",
|
||||
"wanted": "关注中",
|
||||
"queued": "已加入队列",
|
||||
"series": "Series"
|
||||
},
|
||||
"octoprint": {
|
||||
"printer_state": "Status",
|
||||
"temp_tool": "Tool temp",
|
||||
"temp_bed": "Bed temp",
|
||||
"job_completion": "Completion"
|
||||
"temp_tool": "喷头温度",
|
||||
"temp_bed": "平台温度",
|
||||
"job_completion": "完成度"
|
||||
},
|
||||
"cloudflared": {
|
||||
"origin_ip": "Origin IP",
|
||||
"origin_ip": "源IP",
|
||||
"status": "Status"
|
||||
},
|
||||
"proxmoxbackupserver": {
|
||||
"datastore_usage": "Datastore",
|
||||
"failed_tasks_24h": "Failed Tasks 24h",
|
||||
"cpu_usage": "CPU",
|
||||
"memory_usage": "Memory"
|
||||
"datastore_usage": "数据存储",
|
||||
"failed_tasks_24h": "24h失败任务",
|
||||
"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",
|
||||
"up": "在线网站",
|
||||
"down": "离线网站",
|
||||
"uptime": "运行时间",
|
||||
"incident": "严重事件",
|
||||
"m": "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": {
|
||||
"uptime": "Uptime",
|
||||
"volumeAvailable": "Available",
|
||||
"days": "Days"
|
||||
"uptime": "运行时间",
|
||||
"volumeAvailable": "剩余存储",
|
||||
"days": "天"
|
||||
},
|
||||
"fileflows": {
|
||||
"queue": "队列",
|
||||
"processing": "处理中",
|
||||
"processed": "已处理",
|
||||
"time": "时间"
|
||||
},
|
||||
"grafana": {
|
||||
"totalalerts": "警报总数",
|
||||
"dashboards": "控制面板",
|
||||
"datasources": "数据来源",
|
||||
"alertstriggered": "触发的警报"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "处理器负载",
|
||||
"memoryusage": "内存占用",
|
||||
"freespace": "剩余空间",
|
||||
"activeusers": "活跃用户"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "状态",
|
||||
"size": "大小",
|
||||
"lastrun": "最后运行",
|
||||
"nextrun": "下次运行",
|
||||
"failed": "失败"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "在线工作节点",
|
||||
"total_workers": "工作节点总数",
|
||||
"records_total": "队列长度"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "新建立",
|
||||
"up": "在线的",
|
||||
"grace": "延缓中",
|
||||
"down": "离线",
|
||||
"paused": "暂停",
|
||||
"status": "状态",
|
||||
"last_ping": "上次检查",
|
||||
"never": "尚未检查"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "服务器",
|
||||
"nodes": "节点"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "播放中",
|
||||
"version": "版本",
|
||||
"status": "状态",
|
||||
"up": "在线的",
|
||||
"down": "离线"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "今天",
|
||||
"gross_percent_1y": "一年",
|
||||
"gross_percent_max": "所有时间"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "播客",
|
||||
"books": "图书",
|
||||
"podcastsDuration": "持续时间",
|
||||
"booksDuration": "持续时间"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"widget": {
|
||||
"missing_type": "遺失小工具的類型: {{type}}",
|
||||
"api_error": "API錯誤",
|
||||
"api_error": "API 錯誤",
|
||||
"status": "狀態",
|
||||
"information": "資訊",
|
||||
"url": "網址",
|
||||
@@ -21,13 +21,24 @@
|
||||
"mem": "記憶體",
|
||||
"cpu": "處理器",
|
||||
"error": "錯誤",
|
||||
"unknown": "未知的"
|
||||
"unknown": "未知的",
|
||||
"running": "執行中",
|
||||
"starting": "啟動中",
|
||||
"unhealthy": "不健康的",
|
||||
"not_found": "未找到",
|
||||
"exited": "Exited",
|
||||
"partial": "Partial",
|
||||
"healthy": "健康的"
|
||||
},
|
||||
"emby": {
|
||||
"playing": "正在播放",
|
||||
"transcoding": "轉碼",
|
||||
"bitrate": "位元率",
|
||||
"no_active": "無播放活動"
|
||||
"no_active": "無播放活動",
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"episodes": "Episodes",
|
||||
"songs": "Songs"
|
||||
},
|
||||
"tautulli": {
|
||||
"playing": "正在播放",
|
||||
@@ -49,7 +60,14 @@
|
||||
"used": "已使用",
|
||||
"load": "負載",
|
||||
"cpu": "CPU",
|
||||
"mem": "MEM"
|
||||
"mem": "記憶體",
|
||||
"temp": "TEMP",
|
||||
"max": "Max",
|
||||
"uptime": "UP",
|
||||
"months": "mo",
|
||||
"days": "d",
|
||||
"hours": "h",
|
||||
"minutes": "m"
|
||||
},
|
||||
"nzbget": {
|
||||
"rate": "速率",
|
||||
@@ -197,15 +215,15 @@
|
||||
"wan": "WAN",
|
||||
"lan_users": "LAN使用者",
|
||||
"wlan_users": "WLAN使用者",
|
||||
"up": "UP",
|
||||
"down": "DOWN",
|
||||
"up": "上線",
|
||||
"down": "離線",
|
||||
"wait": "請稍後",
|
||||
"lan": "LAN",
|
||||
"wlan": "WLAN",
|
||||
"devices": "設備",
|
||||
"lan_devices": "LAN設備",
|
||||
"wlan_devices": "WLAN設備",
|
||||
"empty_data": "Subsystem status unknown"
|
||||
"empty_data": "子系統狀態未知"
|
||||
},
|
||||
"plex": {
|
||||
"streams": "正在播放",
|
||||
@@ -215,7 +233,11 @@
|
||||
"glances": {
|
||||
"cpu": "CPU",
|
||||
"mem": "記憶體",
|
||||
"wait": "請稍後"
|
||||
"wait": "請稍後",
|
||||
"temp": "TEMP",
|
||||
"uptime": "UP",
|
||||
"days": "d",
|
||||
"hours": "h"
|
||||
},
|
||||
"changedetectionio": {
|
||||
"totalObserved": "總監測數",
|
||||
@@ -283,7 +305,9 @@
|
||||
"bookmark": "書籤",
|
||||
"service": "服務",
|
||||
"search": "搜尋",
|
||||
"custom": "自訂"
|
||||
"custom": "自訂",
|
||||
"visit": "Visit",
|
||||
"url": "URL"
|
||||
},
|
||||
"homebridge": {
|
||||
"available_update": "系統",
|
||||
@@ -291,7 +315,10 @@
|
||||
"update_available": "有可用的更新",
|
||||
"up_to_date": "已更新至最新",
|
||||
"child_bridges": "Child Bridges",
|
||||
"child_bridges_status": "{{ok}}/{{total}}"
|
||||
"child_bridges_status": "{{ok}}/{{total}}",
|
||||
"up": "Up",
|
||||
"pending": "Pending",
|
||||
"down": "Down"
|
||||
},
|
||||
"autobrr": {
|
||||
"approvedPushes": "已核准",
|
||||
@@ -355,8 +382,8 @@
|
||||
"seed": "已完成下載"
|
||||
},
|
||||
"flood": {
|
||||
"download": "下行速率",
|
||||
"upload": "上行速率",
|
||||
"download": "下載速率",
|
||||
"upload": "上傳速率",
|
||||
"leech": "未完成下載",
|
||||
"seed": "已完成下載"
|
||||
},
|
||||
@@ -404,7 +431,7 @@
|
||||
},
|
||||
"opnsense": {
|
||||
"cpu": "CPU負載",
|
||||
"memory": "Active Memory",
|
||||
"memory": "記憶體",
|
||||
"wanUpload": "WAN上傳",
|
||||
"wanDownload": "WAN下載"
|
||||
},
|
||||
@@ -454,19 +481,86 @@
|
||||
"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": "佇列",
|
||||
"processing": "處理中",
|
||||
"processed": "已處理",
|
||||
"time": "時間"
|
||||
},
|
||||
"grafana": {
|
||||
"dashboards": "控制面板",
|
||||
"datasources": "數據來源",
|
||||
"totalalerts": "警報總數",
|
||||
"alertstriggered": "觸發的警報"
|
||||
},
|
||||
"nextcloud": {
|
||||
"cpuload": "處理器負載",
|
||||
"memoryusage": "記憶體用量",
|
||||
"freespace": "可用空間",
|
||||
"activeusers": "活躍用戶"
|
||||
},
|
||||
"kopia": {
|
||||
"status": "狀態",
|
||||
"size": "檔案大小",
|
||||
"lastrun": "上次運行",
|
||||
"nextrun": "下次運行",
|
||||
"failed": "失敗"
|
||||
},
|
||||
"unmanic": {
|
||||
"active_workers": "Active Workers",
|
||||
"total_workers": "Total Workers",
|
||||
"records_total": "Queue Length"
|
||||
},
|
||||
"healthchecks": {
|
||||
"new": "新建立",
|
||||
"up": "上線",
|
||||
"grace": "延緩中",
|
||||
"down": "離線",
|
||||
"paused": "擱置中",
|
||||
"status": "狀態",
|
||||
"last_ping": "上次檢查",
|
||||
"never": "尚未檢查"
|
||||
},
|
||||
"pterodactyl": {
|
||||
"servers": "Servers",
|
||||
"nodes": "Nodes"
|
||||
},
|
||||
"prometheus": {
|
||||
"targets_up": "Targets Up",
|
||||
"targets_down": "Targets Down",
|
||||
"targets_total": "Total Targets"
|
||||
},
|
||||
"minecraft": {
|
||||
"players": "Players",
|
||||
"version": "Version",
|
||||
"status": "Status",
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"ghostfolio": {
|
||||
"gross_percent_today": "Today",
|
||||
"gross_percent_1y": "One year",
|
||||
"gross_percent_max": "All time"
|
||||
},
|
||||
"audiobookshelf": {
|
||||
"podcasts": "Podcasts",
|
||||
"books": "Books",
|
||||
"podcastsDuration": "Duration",
|
||||
"booksDuration": "Duration"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,18 +6,20 @@ import ResolvedIcon from "./resolvedicon";
|
||||
|
||||
import { SettingsContext } from "utils/contexts/settings";
|
||||
|
||||
export default function QuickLaunch({servicesAndBookmarks, searchString, setSearchString, isOpen, close, searchDescriptions, searchProvider}) {
|
||||
export default function QuickLaunch({servicesAndBookmarks, searchString, setSearchString, isOpen, close, searchProvider}) {
|
||||
const { t } = useTranslation();
|
||||
const { settings } = useContext(SettingsContext);
|
||||
const { searchDescriptions, hideVisitURL } = settings?.quicklaunch ? settings.quicklaunch : { searchDescriptions: false, hideVisitURL: false };
|
||||
|
||||
const searchField = useRef();
|
||||
|
||||
const [results, setResults] = useState([]);
|
||||
const [currentItemIndex, setCurrentItemIndex] = useState(null);
|
||||
const [url, setUrl] = useState(null);
|
||||
|
||||
function openCurrentItem(newWindow) {
|
||||
const result = results[currentItemIndex];
|
||||
window.open(result.href, newWindow ? "_blank" : result.target ?? settings.target ?? "_blank");
|
||||
window.open(result.href, newWindow ? "_blank" : result.target ?? settings.target ?? "_blank", 'noreferrer');
|
||||
}
|
||||
|
||||
const closeAndReset = useCallback(() => {
|
||||
@@ -29,7 +31,16 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear
|
||||
}, [close, setSearchString, setCurrentItemIndex]);
|
||||
|
||||
function handleSearchChange(event) {
|
||||
setSearchString(event.target.value.toLowerCase())
|
||||
const rawSearchString = event.target.value.toLowerCase();
|
||||
try {
|
||||
if (!/.+[.:].+/g.test(rawSearchString)) throw new Error(); // basic test for probably a url
|
||||
let urlString = rawSearchString;
|
||||
if (urlString.indexOf('http') !== 0) urlString = `https://${rawSearchString}`;
|
||||
setUrl(new URL(urlString)); // basic validation
|
||||
} catch (e) {
|
||||
setUrl(null);
|
||||
}
|
||||
setSearchString(rawSearchString);
|
||||
}
|
||||
|
||||
function handleSearchKeyDown(event) {
|
||||
@@ -76,6 +87,7 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear
|
||||
if (searchDescriptions) {
|
||||
newResults = newResults.sort((a, b) => b.priority - a.priority);
|
||||
}
|
||||
|
||||
if (searchProvider) {
|
||||
newResults.push(
|
||||
{
|
||||
@@ -86,13 +98,23 @@ export default function QuickLaunch({servicesAndBookmarks, searchString, setSear
|
||||
)
|
||||
}
|
||||
|
||||
if (!hideVisitURL && url) {
|
||||
newResults.unshift(
|
||||
{
|
||||
href: url.toString(),
|
||||
name: `${t("quicklaunch.visit")} URL`,
|
||||
type: 'url',
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
setResults(newResults);
|
||||
|
||||
if (newResults.length) {
|
||||
setCurrentItemIndex(0);
|
||||
}
|
||||
}
|
||||
}, [searchString, servicesAndBookmarks, searchDescriptions, searchProvider, t]);
|
||||
}, [searchString, servicesAndBookmarks, searchDescriptions, hideVisitURL, searchProvider, url, t]);
|
||||
|
||||
|
||||
const [hidden, setHidden] = useState(true);
|
||||
|
||||
@@ -8,7 +8,7 @@ export default function ServicesGroup({ services, layout }) {
|
||||
<div
|
||||
key={services.name}
|
||||
className={classNames(
|
||||
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/2 lg:basis-1/3 xl:basis-1/4",
|
||||
layout?.style === "row" ? "basis-full" : "basis-full md:basis-1/2 lg:basis-1/3 xl:basis-1/4 2xl:basis-1/5",
|
||||
"flex-1 p-1"
|
||||
)}
|
||||
>
|
||||
|
||||
@@ -91,7 +91,7 @@ export default function Item({ service }) {
|
||||
<span className="sr-only">View container stats</span>
|
||||
</button>
|
||||
)}
|
||||
{service.app && (
|
||||
{(service.app && !service.external) && (
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => (statsOpen ? closeStats() : setStatsOpen(true))}
|
||||
|
||||
@@ -6,7 +6,7 @@ export default function KubernetesStatus({ service }) {
|
||||
const { data, error } = useSWR(`/api/kubernetes/status/${service.namespace}/${service.app}?${podSelectorString}`);
|
||||
|
||||
if (error) {
|
||||
<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={data.status}>
|
||||
<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={t("docker.error")}>
|
||||
<div className="text-[8px] font-bold text-rose-500/80 uppercase">{t("docker.error")}</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@@ -7,41 +7,54 @@ export default function Status({ service }) {
|
||||
const { data, error } = useSWR(`/api/docker/status/${service.container}/${service.server || ""}`);
|
||||
|
||||
if (error) {
|
||||
<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={data.status}>
|
||||
<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={t("docker.error")}>
|
||||
<div className="text-[8px] font-bold text-rose-500/80 uppercase">{t("docker.error")}</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
if (data && data.status === "running") {
|
||||
if (data.health === "starting") {
|
||||
if (data) {
|
||||
let statusLabel = "";
|
||||
|
||||
if (data.status?.includes("running")) {
|
||||
if (data.health === "starting") {
|
||||
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={t("docker.starting")}>
|
||||
<div className="text-[8px] font-bold text-blue-500/80 uppercase">{t("docker.starting")}</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (data.health === "unhealthy") {
|
||||
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={t("docker.unhealthy")}>
|
||||
<div className="text-[8px] font-bold text-orange-400/50 dark:text-orange-400/80 uppercase">{t("docker.unhealthy")}</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (!data.health) {
|
||||
statusLabel = data.status.replace("running", t("docker.running"))
|
||||
} else {
|
||||
statusLabel = data.health === "healthy" ? t("docker.healthy") : data.health
|
||||
}
|
||||
|
||||
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={data.health}>
|
||||
<div className="text-[8px] font-bold text-blue-500/80 uppercase">{data.health}</div>
|
||||
<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={statusLabel}>
|
||||
<div className="text-[8px] font-bold text-emerald-500/80 uppercase">{statusLabel}</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (data.health === "unhealthy") {
|
||||
|
||||
if (data.status === "not found" || data.status === "exited" || data.status?.startsWith("partial")) {
|
||||
if (data.status === "not found") statusLabel = t("docker.not_found")
|
||||
else if (data.status === "exited") statusLabel = t("docker.exited")
|
||||
else statusLabel = data.status.replace("partial", t("docker.partial"))
|
||||
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={data.health}>
|
||||
<div className="text-[8px] font-bold text-orange-400/50 dark:text-orange-400/80 uppercase">{data.health}</div>
|
||||
<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={statusLabel}>
|
||||
<div className="text-[8px] font-bold text-orange-400/50 dark:text-orange-400/80 uppercase">{statusLabel}</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
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={data.health || data.status}>
|
||||
<div className="text-[8px] font-bold text-emerald-500/80 uppercase">{data.health || data.status}</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (data && (data.status === "not found" || data.status === "exited")) {
|
||||
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={data.status}>
|
||||
<div className="text-[8px] font-bold text-orange-400/50 dark:text-orange-400/80 uppercase">{data.status}</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
import useSWR from "swr";
|
||||
import { BiError } from "react-icons/bi";
|
||||
import { FaMemory } from "react-icons/fa";
|
||||
import { FaMemory, FaRegClock, FaThermometerHalf } from "react-icons/fa";
|
||||
import { FiCpu } from "react-icons/fi";
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import UsageBar from "../resources/usage-bar";
|
||||
|
||||
const cpuSensorLabels = ["cpu_thermal", "Core"];
|
||||
|
||||
function convertToFahrenheit(t) {
|
||||
return t * 9/5 + 32
|
||||
}
|
||||
|
||||
export default function Widget({ options }) {
|
||||
const { t, i18n } = useTranslation();
|
||||
|
||||
@@ -64,6 +70,24 @@ export default function Widget({ options }) {
|
||||
);
|
||||
}
|
||||
|
||||
const unit = options.units === "imperial" ? "fahrenheit" : "celsius";
|
||||
let mainTemp = 0;
|
||||
let maxTemp = 80;
|
||||
const cpuSensors = data.sensors?.filter(s => cpuSensorLabels.some(label => s.label.startsWith(label)) && s.type === "temperature_core");
|
||||
if (options.cputemp && cpuSensors) {
|
||||
try {
|
||||
mainTemp = cpuSensors.reduce((acc, s) => acc + s.value, 0) / cpuSensors.length;
|
||||
maxTemp = Math.max(cpuSensors.reduce((acc, s) => acc + s.warning, 0) / cpuSensors.length, maxTemp);
|
||||
if (unit === "fahrenheit") {
|
||||
mainTemp = convertToFahrenheit(mainTemp);
|
||||
maxTemp = convertToFahrenheit(maxTemp);
|
||||
}
|
||||
} catch (e) {
|
||||
// cpu sensor retrieval failed
|
||||
}
|
||||
}
|
||||
const tempPercent = Math.round((mainTemp / maxTemp) * 100);
|
||||
|
||||
return (
|
||||
<div className="flex flex-col max-w:full sm:basis-auto self-center grow-0 flex-wrap ml-4">
|
||||
<div className="flex flex-row self-center flex-wrap justify-between">
|
||||
@@ -73,7 +97,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.cpu,
|
||||
value: data.quicklook.cpu,
|
||||
style: "unit",
|
||||
unit: "percent",
|
||||
maximumFractionDigits: 0,
|
||||
@@ -81,7 +105,7 @@ export default function Widget({ options }) {
|
||||
</div>
|
||||
<div className="pr-1">{t("glances.cpu")}</div>
|
||||
</div>
|
||||
<UsageBar percent={data.cpu} />
|
||||
<UsageBar percent={data.quicklook.cpu} />
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
@@ -90,7 +114,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.mem,
|
||||
value: data.quicklook.mem,
|
||||
style: "unit",
|
||||
unit: "percent",
|
||||
maximumFractionDigits: 0,
|
||||
@@ -98,9 +122,40 @@ export default function Widget({ options }) {
|
||||
</div>
|
||||
<div className="pr-1">{t("glances.mem")}</div>
|
||||
</div>
|
||||
<UsageBar percent={data.mem} />
|
||||
<UsageBar percent={data.quicklook.mem} />
|
||||
</div>
|
||||
</div>
|
||||
{options.cputemp && mainTemp > 0 &&
|
||||
(<div className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
<FaThermometerHalf className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">
|
||||
{t("common.number", {
|
||||
value: mainTemp,
|
||||
maximumFractionDigits: 1,
|
||||
style: "unit",
|
||||
unit
|
||||
})}
|
||||
</div>
|
||||
<div className="pr-1">{t("glances.temp")}</div>
|
||||
</span>
|
||||
<UsageBar percent={tempPercent} />
|
||||
</div>
|
||||
</div>)}
|
||||
{options.uptime && data.uptime &&
|
||||
(<div className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
<FaRegClock className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">
|
||||
{data.uptime.replace(" days,", t("glances.days")).replace(/:\d\d:\d\d$/g, t("glances.hours"))}
|
||||
</div>
|
||||
<div className="pr-1">{t("glances.uptime")}</div>
|
||||
</span>
|
||||
<UsageBar percent={Math.round((new Date().getSeconds() / 60) * 100)} />
|
||||
</div>
|
||||
</div>)}
|
||||
</div>
|
||||
{options.label && (
|
||||
<div className="pt-1 text-center text-theme-800 dark:text-theme-200 text-xs">{options.label}</div>
|
||||
|
||||
@@ -29,12 +29,12 @@ export default function Cpu({ expanded }) {
|
||||
<FiCpu className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">-</div>
|
||||
<div className="pl-0.5 pr-1">-</div>
|
||||
<div className="pr-1">{t("resources.cpu")}</div>
|
||||
</div>
|
||||
{expanded && (
|
||||
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">-</div>
|
||||
<div className="pl-0.5 pr-1">-</div>
|
||||
<div className="pr-1">{t("resources.load")}</div>
|
||||
</div>
|
||||
)}
|
||||
@@ -51,7 +51,7 @@ export default function Cpu({ expanded }) {
|
||||
<FiCpu className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">
|
||||
<div className="pl-0.5 pr-1">
|
||||
{t("common.number", {
|
||||
value: data.cpu.usage,
|
||||
style: "unit",
|
||||
@@ -63,7 +63,7 @@ export default function Cpu({ expanded }) {
|
||||
</div>
|
||||
{expanded && (
|
||||
<div className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">
|
||||
<div className="pl-0.5 pr-1">
|
||||
{t("common.number", {
|
||||
value: data.cpu.load,
|
||||
maximumFractionDigits: 2,
|
||||
|
||||
91
src/components/widgets/resources/cputemp.jsx
Normal file
91
src/components/widgets/resources/cputemp.jsx
Normal file
@@ -0,0 +1,91 @@
|
||||
import useSWR from "swr";
|
||||
import { FaThermometerHalf } from "react-icons/fa";
|
||||
import { BiError } from "react-icons/bi";
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import UsageBar from "./usage-bar";
|
||||
|
||||
function convertToFahrenheit(t) {
|
||||
return t * 9/5 + 32
|
||||
}
|
||||
|
||||
export default function CpuTemp({ expanded, units }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { data, error } = useSWR(`/api/widgets/resources?type=cputemp`, {
|
||||
refreshInterval: 1500,
|
||||
});
|
||||
|
||||
if (error || data?.error) {
|
||||
return (
|
||||
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
<BiError className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left">
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("widget.api_error")}</span>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (!data || !data.cputemp) {
|
||||
return (
|
||||
<div className="flex-none flex flex-row items-center mr-3 py-1.5 animate-pulse">
|
||||
<FaThermometerHalf className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">-</div>
|
||||
<div className="pr-1">{t("resources.temp")}</div>
|
||||
</span>
|
||||
{expanded && (
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">-</div>
|
||||
<div className="pr-1">{t("resources.max")}</div>
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
let mainTemp = data.cputemp.main;
|
||||
if (data.cputemp.cores?.length) {
|
||||
mainTemp = data.cputemp.cores.reduce((a, b) => a + b) / data.cputemp.cores.length;
|
||||
}
|
||||
const unit = units === "imperial" ? "fahrenheit" : "celsius";
|
||||
mainTemp = (unit === "celsius") ? mainTemp : convertToFahrenheit(mainTemp);
|
||||
const maxTemp = (unit === "celsius") ? data.cputemp.max : convertToFahrenheit(data.cputemp.max);
|
||||
const percent = Math.round((mainTemp / maxTemp) * 100);
|
||||
|
||||
return (
|
||||
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
<FaThermometerHalf className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">
|
||||
{t("common.number", {
|
||||
value: mainTemp,
|
||||
maximumFractionDigits: 1,
|
||||
style: "unit",
|
||||
unit
|
||||
})}
|
||||
</div>
|
||||
<div className="pr-1">{t("resources.temp")}</div>
|
||||
</span>
|
||||
{expanded && (
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">
|
||||
{t("common.number", {
|
||||
value: maxTemp,
|
||||
maximumFractionDigits: 1,
|
||||
style: "unit",
|
||||
unit
|
||||
})}
|
||||
</div>
|
||||
<div className="pr-1">{t("resources.max")}</div>
|
||||
</span>
|
||||
)}
|
||||
<UsageBar percent={percent} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -29,12 +29,12 @@ export default function Disk({ options, expanded }) {
|
||||
<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">-</div>
|
||||
<div className="pl-0.5 pr-1">-</div>
|
||||
<div className="pr-1">{t("resources.free")}</div>
|
||||
</span>
|
||||
{expanded && (
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">-</div>
|
||||
<div className="pl-0.5 pr-1">-</div>
|
||||
<div className="pr-1">{t("resources.total")}</div>
|
||||
</span>
|
||||
)}
|
||||
@@ -44,19 +44,20 @@ export default function Disk({ options, expanded }) {
|
||||
);
|
||||
}
|
||||
|
||||
const percent = Math.round((data.drive.usedGb / data.drive.totalGb) * 100);
|
||||
// data.drive.used not accurate?
|
||||
const percent = Math.round(((data.drive.size - data.drive.available) / data.drive.size) * 100);
|
||||
|
||||
return (
|
||||
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
<FiHardDrive className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">{t("common.bytes", { value: data.drive.freeGb * 1024 * 1024 * 1024 })}</div>
|
||||
<div className="pl-0.5 pr-1">{t("common.bytes", { value: data.drive.available })}</div>
|
||||
<div className="pr-1">{t("resources.free")}</div>
|
||||
</span>
|
||||
{expanded && (
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">{t("common.bytes", { value: data.drive.totalGb * 1024 * 1024 * 1024 })}</div>
|
||||
<div className="pl-0.5 pr-1">{t("common.bytes", { value: data.drive.size })}</div>
|
||||
<div className="pr-1">{t("resources.total")}</div>
|
||||
</span>
|
||||
)}
|
||||
|
||||
@@ -29,12 +29,12 @@ export default function Memory({ expanded }) {
|
||||
<FaMemory className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">-</div>
|
||||
<div className="pl-0.5 pr-1">-</div>
|
||||
<div className="pr-1">{t("resources.free")}</div>
|
||||
</span>
|
||||
{expanded && (
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">-</div>
|
||||
<div className="pl-0.5 pr-1">-</div>
|
||||
<div className="pr-1">{t("resources.total")}</div>
|
||||
</span>
|
||||
)}
|
||||
@@ -44,23 +44,23 @@ export default function Memory({ expanded }) {
|
||||
);
|
||||
}
|
||||
|
||||
const percent = Math.round((data.memory.usedMemMb / data.memory.totalMemMb) * 100);
|
||||
const percent = Math.round((data.memory.active / data.memory.total) * 100);
|
||||
|
||||
return (
|
||||
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
<FaMemory className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">
|
||||
{t("common.bytes", { value: data.memory.freeMemMb * 1024 * 1024, maximumFractionDigits: 1, binary: true })}
|
||||
<div className="pl-0.5 pr-1">
|
||||
{t("common.bytes", { value: data.memory.available, maximumFractionDigits: 1, binary: true })}
|
||||
</div>
|
||||
<div className="pr-1">{t("resources.free")}</div>
|
||||
</span>
|
||||
{expanded && (
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">
|
||||
<div className="pl-0.5 pr-1">
|
||||
{t("common.bytes", {
|
||||
value: data.memory.totalMemMb * 1024 * 1024,
|
||||
value: data.memory.total,
|
||||
maximumFractionDigits: 1,
|
||||
binary: true,
|
||||
})}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import Disk from "./disk";
|
||||
import Cpu from "./cpu";
|
||||
import Memory from "./memory";
|
||||
import CpuTemp from "./cputemp";
|
||||
import Uptime from "./uptime";
|
||||
|
||||
export default function Resources({ options }) {
|
||||
const { expanded } = options;
|
||||
const { expanded, units } = options;
|
||||
return (
|
||||
<div 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">
|
||||
@@ -12,6 +14,8 @@ export default function Resources({ options }) {
|
||||
{Array.isArray(options.disk)
|
||||
? options.disk.map((disk) => <Disk key={disk} options={{ disk }} expanded={expanded} />)
|
||||
: options.disk && <Disk options={options} expanded={expanded} />}
|
||||
{options.cputemp && <CpuTemp expanded={expanded} units={units} />}
|
||||
{options.uptime && <Uptime />}
|
||||
</div>
|
||||
{options.label && (
|
||||
<div className="ml-6 pt-1 text-center text-theme-800 dark:text-theme-200 text-xs">{options.label}</div>
|
||||
|
||||
66
src/components/widgets/resources/uptime.jsx
Normal file
66
src/components/widgets/resources/uptime.jsx
Normal file
@@ -0,0 +1,66 @@
|
||||
import useSWR from "swr";
|
||||
import { FaRegClock } from "react-icons/fa";
|
||||
import { BiError } from "react-icons/bi";
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import UsageBar from "./usage-bar";
|
||||
|
||||
export default function Uptime() {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const { data, error } = useSWR(`/api/widgets/resources?type=uptime`, {
|
||||
refreshInterval: 1500,
|
||||
});
|
||||
|
||||
if (error || data?.error) {
|
||||
return (
|
||||
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
<BiError className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left">
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs">{t("widget.api_error")}</span>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
if (!data) {
|
||||
return (
|
||||
<div className="flex-none flex flex-row items-center mr-3 py-1.5 animate-pulse">
|
||||
<FaRegClock className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">-</div>
|
||||
<div className="pr-1">{t("resources.temp")}</div>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
const mo = Math.floor(data.uptime / (3600 * 24 * 31));
|
||||
const d = Math.floor(data.uptime % (3600 * 24 * 31) / (3600 * 24));
|
||||
const h = Math.floor(data.uptime % (3600 * 24) / 3600);
|
||||
const m = Math.floor(data.uptime % 3600 / 60);
|
||||
|
||||
let uptime;
|
||||
if (mo > 0) uptime = `${mo}${t("resources.months")} ${d}${t("resources.days")}`;
|
||||
else if (d > 0) uptime = `${d}${t("resources.days")} ${h}${t("resources.hours")}`;
|
||||
else uptime = `${h}${t("resources.hours")} ${m}${t("resources.minutes")}`;
|
||||
|
||||
const percent = Math.round((new Date().getSeconds() / 60) * 100);
|
||||
|
||||
return (
|
||||
<div className="flex-none flex flex-row items-center mr-3 py-1.5">
|
||||
<FaRegClock className="text-theme-800 dark:text-theme-200 w-5 h-5" />
|
||||
<div className="flex flex-col ml-3 text-left min-w-[85px]">
|
||||
<span className="text-theme-800 dark:text-theme-200 text-xs flex flex-row justify-between">
|
||||
<div className="pl-0.5">
|
||||
{uptime}
|
||||
</div>
|
||||
<div className="pr-1">{t("resources.uptime")}</div>
|
||||
</span>
|
||||
<UsageBar percent={percent} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -30,7 +30,7 @@ export default async function handler(req, res) {
|
||||
});
|
||||
}
|
||||
|
||||
const containerNames = containers.map((container) => container.Names[0].replace(/^\//, ""));
|
||||
const containerNames = containers.map((container) => container.Names[0]?.replace(/^\//, ""));
|
||||
const containerExists = containerNames.includes(containerName);
|
||||
|
||||
if (containerExists) {
|
||||
@@ -53,21 +53,29 @@ export default async function handler(req, res) {
|
||||
})
|
||||
.catch(() => []);
|
||||
|
||||
// For now we are only interested in the first one (in case replicas > 1).
|
||||
// TODO: Show the result for all replicas/containers?
|
||||
const taskContainerId = tasks.at(0)?.Status?.ContainerStatus?.ContainerID;
|
||||
|
||||
// We can only get stats for 'local' containers so try to find one
|
||||
const localContainerIDs = containers.map(c => c.Id);
|
||||
const task = tasks.find(t => localContainerIDs.includes(t.Status?.ContainerStatus?.ContainerID)) ?? tasks.at(0);
|
||||
const taskContainerId = task?.Status?.ContainerStatus?.ContainerID;
|
||||
|
||||
if (taskContainerId) {
|
||||
const container = docker.getContainer(taskContainerId);
|
||||
const stats = await container.stats({ stream: false });
|
||||
try {
|
||||
const container = docker.getContainer(taskContainerId);
|
||||
const stats = await container.stats({ stream: false });
|
||||
|
||||
return res.status(200).json({
|
||||
stats,
|
||||
});
|
||||
return res.status(200).json({
|
||||
stats,
|
||||
});
|
||||
} catch (e) {
|
||||
return res.status(200).json({
|
||||
error: "Unable to retrieve stats"
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return res.status(200).send({
|
||||
return res.status(404).send({
|
||||
error: "not found",
|
||||
});
|
||||
} catch (e) {
|
||||
|
||||
@@ -30,7 +30,7 @@ export default async function handler(req, res) {
|
||||
});
|
||||
}
|
||||
|
||||
const containerNames = containers.map((container) => container.Names[0].replace(/^\//, ""));
|
||||
const containerNames = containers.map((container) => container.Names[0]?.replace(/^\//, ""));
|
||||
const containerExists = containerNames.includes(containerName);
|
||||
|
||||
if (containerExists) {
|
||||
@@ -44,32 +44,65 @@ export default async function handler(req, res) {
|
||||
}
|
||||
|
||||
if (dockerArgs.swarm) {
|
||||
const tasks = await docker.listTasks({
|
||||
const serviceInfo = await docker.getService(containerName).inspect()
|
||||
.catch(() => undefined);
|
||||
|
||||
if (!serviceInfo) {
|
||||
return res.status(404).send({
|
||||
status: "not found",
|
||||
});
|
||||
}
|
||||
|
||||
const tasks = await docker
|
||||
.listTasks({
|
||||
filters: {
|
||||
service: [containerName],
|
||||
// A service can have several offline containers, we only look for an active one.
|
||||
"desired-state": ["running"],
|
||||
},
|
||||
})
|
||||
.catch(() => []);
|
||||
|
||||
// For now we are only interested in the first one (in case replicas > 1).
|
||||
// TODO: Show the result for all replicas/containers?
|
||||
const taskContainerId = tasks.at(0)?.Status?.ContainerStatus?.ContainerID;
|
||||
|
||||
if (taskContainerId) {
|
||||
const container = docker.getContainer(taskContainerId);
|
||||
const info = await container.inspect();
|
||||
|
||||
return res.status(200).json({
|
||||
status: info.State.Status,
|
||||
health: info.State.Health?.Status,
|
||||
});
|
||||
if (serviceInfo.Spec.Mode?.Replicated) {
|
||||
// Replicated service, check n replicas
|
||||
const replicas = parseInt(serviceInfo.Spec.Mode?.Replicated?.Replicas, 10);
|
||||
if (tasks.length === replicas) {
|
||||
return res.status(200).json({
|
||||
status: `running ${tasks.length}/${replicas}`,
|
||||
});
|
||||
}
|
||||
if (tasks.length > 0) {
|
||||
return res.status(200).json({
|
||||
status: `partial ${tasks.length}/${replicas}`,
|
||||
});
|
||||
}
|
||||
} else {
|
||||
// Global service, prefer 'local' containers
|
||||
const localContainerIDs = containers.map(c => c.Id);
|
||||
const task = tasks.find(t => localContainerIDs.includes(t.Status?.ContainerStatus?.ContainerID)) ?? tasks.at(0);
|
||||
const taskContainerId = task?.Status?.ContainerStatus?.ContainerID;
|
||||
|
||||
if (taskContainerId) {
|
||||
try {
|
||||
const container = docker.getContainer(taskContainerId);
|
||||
const info = await container.inspect();
|
||||
|
||||
return res.status(200).json({
|
||||
status: info.State.Status,
|
||||
health: info.State.Health?.Status,
|
||||
});
|
||||
} catch (e) {
|
||||
if (task) {
|
||||
return res.status(200).json({
|
||||
status: task.Status.State
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return res.status(200).send({
|
||||
error: "not found",
|
||||
return res.status(404).send({
|
||||
status: "not found",
|
||||
});
|
||||
} catch (e) {
|
||||
logger.error(e);
|
||||
|
||||
@@ -19,7 +19,10 @@ export default async function handler(req, res) {
|
||||
return hash(readFileSync(configYaml, "utf8"));
|
||||
});
|
||||
|
||||
const combinedHash = hash(hashes.join(""));
|
||||
// set to date by docker entrypoint, will force revalidation between restarts/recreates
|
||||
const buildTime = process.env.HOMEPAGE_BUILDTIME?.length ? process.env.HOMEPAGE_BUILDTIME : '';
|
||||
|
||||
const combinedHash = hash(hashes.join("") + buildTime);
|
||||
|
||||
res.send({
|
||||
hash: combinedHash,
|
||||
|
||||
@@ -32,6 +32,7 @@ export default async function handler(req, res) {
|
||||
}
|
||||
|
||||
req.method = mapping?.method || "GET";
|
||||
if (mapping?.body) req.body = mapping?.body;
|
||||
req.query.endpoint = endpoint;
|
||||
|
||||
if (req.query.segments) {
|
||||
|
||||
@@ -4,19 +4,16 @@ import { getPrivateWidgetOptions } from "utils/config/widget-helpers";
|
||||
|
||||
const logger = createLogger("glances");
|
||||
|
||||
export default async function handler(req, res) {
|
||||
const { index } = req.query;
|
||||
|
||||
const privateWidgetOptions = await getPrivateWidgetOptions("glances", index);
|
||||
|
||||
async function retrieveFromGlancesAPI(privateWidgetOptions, endpoint) {
|
||||
let errorMessage;
|
||||
const url = privateWidgetOptions?.url;
|
||||
if (!url) {
|
||||
const errorMessage = "Missing Glances URL";
|
||||
errorMessage = "Missing Glances URL";
|
||||
logger.error(errorMessage);
|
||||
return res.status(400).json({ error: errorMessage });
|
||||
throw new Error(errorMessage);
|
||||
}
|
||||
|
||||
const apiUrl = `${url}/api/3/quicklook`;
|
||||
const apiUrl = `${url}/api/3/${endpoint}`;
|
||||
const headers = {
|
||||
"Accept-Encoding": "application/json"
|
||||
};
|
||||
@@ -25,16 +22,41 @@ export default async function handler(req, res) {
|
||||
}
|
||||
const params = { method: "GET", headers };
|
||||
|
||||
const [status, contentType, data] = await httpProxy(apiUrl, params);
|
||||
const [status, , data] = await httpProxy(apiUrl, params);
|
||||
|
||||
if (status === 401) {
|
||||
logger.error("Authorization failure getting data from glances API. Data: %s", data);
|
||||
errorMessage = `Authorization failure getting data from glances API. Data: ${data.toString()}`
|
||||
logger.error(errorMessage);
|
||||
throw new Error(errorMessage);
|
||||
}
|
||||
|
||||
|
||||
if (status !== 200) {
|
||||
logger.error("HTTP %d getting data from glances API. Data: %s", status, data);
|
||||
errorMessage = `HTTP ${status} getting data from glances API. Data: ${data.toString()}`
|
||||
logger.error(errorMessage);
|
||||
throw new Error(errorMessage);
|
||||
}
|
||||
|
||||
if (contentType) res.setHeader("Content-Type", contentType);
|
||||
return res.status(status).send(data);
|
||||
return JSON.parse(Buffer.from(data).toString());
|
||||
}
|
||||
|
||||
export default async function handler(req, res) {
|
||||
const { index } = req.query;
|
||||
|
||||
const privateWidgetOptions = await getPrivateWidgetOptions("glances", index);
|
||||
|
||||
try {
|
||||
const quicklookData = await retrieveFromGlancesAPI(privateWidgetOptions, "quicklook");
|
||||
|
||||
const data = {
|
||||
quicklook: quicklookData
|
||||
}
|
||||
|
||||
data.uptime = await retrieveFromGlancesAPI(privateWidgetOptions, "uptime");
|
||||
|
||||
data.sensors = await retrieveFromGlancesAPI(privateWidgetOptions, "sensors");
|
||||
|
||||
return res.status(200).send(data);
|
||||
} catch (e) {
|
||||
return res.status(400).json({ error: e.message });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
import { existsSync } from "fs";
|
||||
|
||||
import { cpu, drive, mem } from "node-os-utils";
|
||||
const si = require('systeminformation');
|
||||
|
||||
export default async function handler(req, res) {
|
||||
const { type, target } = req.query;
|
||||
|
||||
if (type === "cpu") {
|
||||
const load = await si.currentLoad();
|
||||
return res.status(200).json({
|
||||
cpu: {
|
||||
usage: await cpu.usage(1000),
|
||||
load: cpu.loadavgTime(5),
|
||||
usage: load.currentLoad,
|
||||
load: load.avgLoad,
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -21,14 +22,29 @@ export default async function handler(req, res) {
|
||||
});
|
||||
}
|
||||
|
||||
const fsSize = await si.fsSize();
|
||||
|
||||
return res.status(200).json({
|
||||
drive: await drive.info(target || "/"),
|
||||
drive: fsSize.find(fs => fs.mount === target) ?? fsSize.find(fs => fs.mount === "/")
|
||||
});
|
||||
}
|
||||
|
||||
if (type === "memory") {
|
||||
return res.status(200).json({
|
||||
memory: await mem.info(),
|
||||
memory: await si.mem(),
|
||||
});
|
||||
}
|
||||
|
||||
if (type === "cputemp") {
|
||||
return res.status(200).json({
|
||||
cputemp: await si.cpuTemperature(),
|
||||
});
|
||||
}
|
||||
|
||||
if (type === "uptime") {
|
||||
const timeData = await si.time();
|
||||
return res.status(200).json({
|
||||
uptime: timeData.uptime
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ function Index({ initialSettings, fallback }) {
|
||||
localStorage.setItem("hash", hashData.hash);
|
||||
}
|
||||
|
||||
if (!initialSettings.isValid || (previousHash && previousHash !== hashData.hash)) {
|
||||
if (previousHash && previousHash !== hashData.hash) {
|
||||
setStale(true);
|
||||
localStorage.setItem("hash", hashData.hash);
|
||||
|
||||
@@ -112,7 +112,7 @@ function Index({ initialSettings, fallback }) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}, [hashData, initialSettings]);
|
||||
}, [hashData]);
|
||||
|
||||
if (stale) {
|
||||
return (
|
||||
@@ -175,7 +175,7 @@ function Home({ initialSettings }) {
|
||||
const { data: services } = useSWR("/api/services");
|
||||
const { data: bookmarks } = useSWR("/api/bookmarks");
|
||||
const { data: widgets } = useSWR("/api/widgets");
|
||||
|
||||
|
||||
const servicesAndBookmarks = [...services.map(sg => sg.services).flat(), ...bookmarks.map(bg => bg.bookmarks).flat()]
|
||||
|
||||
useEffect(() => {
|
||||
@@ -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">
|
||||
<div className="relative container m-auto flex flex-col justify-between z-10 h-full">
|
||||
<div
|
||||
className={classNames(
|
||||
"flex flex-row flex-wrap justify-between",
|
||||
@@ -265,7 +265,6 @@ function Home({ initialSettings }) {
|
||||
setSearchString={setSearchString}
|
||||
isOpen={searching}
|
||||
close={setSearching}
|
||||
searchDescriptions={settings.quicklaunch?.searchDescriptions}
|
||||
searchProvider={settings.quicklaunch?.hideInternetSearch ? null : searchProvider}
|
||||
/>
|
||||
{widgets && (
|
||||
@@ -310,7 +309,7 @@ function Home({ initialSettings }) {
|
||||
</div>
|
||||
|
||||
<div className="flex p-8 pt-4 w-full justify-end">
|
||||
<Version />
|
||||
{!initialSettings?.hideVersion && <Version />}
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
|
||||
@@ -4,7 +4,7 @@ import path from "path";
|
||||
|
||||
import yaml from "js-yaml";
|
||||
|
||||
import checkAndCopyConfig, { getSettings } from "utils/config/config";
|
||||
import checkAndCopyConfig, { getSettings, substituteEnvironmentVars } from "utils/config/config";
|
||||
import {
|
||||
servicesFromConfig,
|
||||
servicesFromDocker,
|
||||
@@ -28,7 +28,8 @@ export async function bookmarksResponse() {
|
||||
checkAndCopyConfig("bookmarks.yaml");
|
||||
|
||||
const bookmarksYaml = path.join(process.cwd(), "config", "bookmarks.yaml");
|
||||
const fileContents = await fs.readFile(bookmarksYaml, "utf8");
|
||||
const rawFileContents = await fs.readFile(bookmarksYaml, "utf8");
|
||||
const fileContents = substituteEnvironmentVars(rawFileContents);
|
||||
const bookmarks = yaml.load(fileContents);
|
||||
|
||||
if (!bookmarks) return [];
|
||||
|
||||
@@ -1,20 +1,25 @@
|
||||
/* eslint-disable no-console */
|
||||
import { join } from "path";
|
||||
import { existsSync, copyFile, readFileSync, statSync } from "fs";
|
||||
import { existsSync, readFileSync, copyFileSync } from "fs";
|
||||
|
||||
import cache from "memory-cache";
|
||||
import yaml from "js-yaml";
|
||||
|
||||
const cacheKey = "homepageEnvironmentVariables";
|
||||
const homepageVarPrefix = "HOMEPAGE_VAR_";
|
||||
const homepageFilePrefix = "HOMEPAGE_FILE_";
|
||||
|
||||
export default function checkAndCopyConfig(config) {
|
||||
const configYaml = join(process.cwd(), "config", config);
|
||||
if (!existsSync(configYaml)) {
|
||||
const configSkeleton = join(process.cwd(), "src", "skeleton", config);
|
||||
copyFile(configSkeleton, configYaml, (err) => {
|
||||
if (err) {
|
||||
try {
|
||||
copyFileSync(configSkeleton, configYaml)
|
||||
console.info("%s was copied to the config folder", config);
|
||||
} catch (err) {
|
||||
console.error("error copying config", err);
|
||||
throw err;
|
||||
}
|
||||
console.info("%s was copied to the config folder", config);
|
||||
});
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -27,23 +32,38 @@ export default function checkAndCopyConfig(config) {
|
||||
}
|
||||
}
|
||||
|
||||
function getCachedEnvironmentVars() {
|
||||
let cachedVars = cache.get(cacheKey);
|
||||
if (!cachedVars) {
|
||||
// initialize cache
|
||||
cachedVars = Object.entries(process.env).filter(([key, ]) => key.includes(homepageVarPrefix) || key.includes(homepageFilePrefix));
|
||||
cache.put(cacheKey, cachedVars);
|
||||
}
|
||||
return cachedVars;
|
||||
}
|
||||
|
||||
export function substituteEnvironmentVars(str) {
|
||||
let result = str;
|
||||
if (result.includes('{{')) { // crude check if we have vars to replace
|
||||
const cachedVars = getCachedEnvironmentVars();
|
||||
cachedVars.forEach(([key, value]) => {
|
||||
if (key.startsWith(homepageVarPrefix)) {
|
||||
result = result.replaceAll(`{{${key}}}`, value);
|
||||
} else if (key.startsWith(homepageFilePrefix)) {
|
||||
const filename = value;
|
||||
const fileContents = readFileSync(filename, "utf8");
|
||||
result = result.replaceAll(`{{${key}}}`, fileContents);
|
||||
}
|
||||
});
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
export function getSettings() {
|
||||
checkAndCopyConfig("settings.yaml");
|
||||
|
||||
const settingsYaml = join(process.cwd(), "config", "settings.yaml");
|
||||
const fileContents = readFileSync(settingsYaml, "utf8");
|
||||
|
||||
let stats;
|
||||
try {
|
||||
stats = statSync(settingsYaml);
|
||||
} catch (e) {
|
||||
stats = {};
|
||||
}
|
||||
|
||||
const yamlLoaded = yaml.load(fileContents) ?? {};
|
||||
|
||||
return {
|
||||
...yamlLoaded,
|
||||
isValid: fileContents !== "-\n" && stats.size !== 2 // see https://github.com/benphelps/homepage/pull/609
|
||||
};
|
||||
}
|
||||
const rawFileContents = readFileSync(settingsYaml, "utf8");
|
||||
const fileContents = substituteEnvironmentVars(rawFileContents);
|
||||
return yaml.load(fileContents) ?? {};
|
||||
}
|
||||
|
||||
@@ -3,13 +3,14 @@ import { readFileSync } from "fs";
|
||||
|
||||
import yaml from "js-yaml";
|
||||
|
||||
import checkAndCopyConfig from "utils/config/config";
|
||||
import checkAndCopyConfig, { substituteEnvironmentVars } from "utils/config/config";
|
||||
|
||||
export default function getDockerArguments(server) {
|
||||
checkAndCopyConfig("docker.yaml");
|
||||
|
||||
const configFile = path.join(process.cwd(), "config", "docker.yaml");
|
||||
const configData = readFileSync(configFile, "utf8");
|
||||
const rawConfigData = readFileSync(configFile, "utf8");
|
||||
const configData = substituteEnvironmentVars(rawConfigData);
|
||||
const servers = yaml.load(configData);
|
||||
|
||||
if (!server) {
|
||||
@@ -26,10 +27,22 @@ export default function getDockerArguments(server) {
|
||||
}
|
||||
|
||||
if (servers[server].host) {
|
||||
return {
|
||||
conn: { host: servers[server].host, port: servers[server].port || null },
|
||||
const res ={
|
||||
conn: { host: servers[server].host },
|
||||
swarm: !!servers[server].swarm,
|
||||
};
|
||||
}
|
||||
|
||||
if (servers[server].port){
|
||||
res.conn.port = servers[server].port;
|
||||
}
|
||||
|
||||
if (servers[server].tls){
|
||||
res.conn.ca = readFileSync(path.join(process.cwd(), "config", servers[server].tls.caFile));
|
||||
res.conn.cert = readFileSync(path.join(process.cwd(), "config", servers[server].tls.certFile));
|
||||
res.conn.key = readFileSync(path.join(process.cwd(), "config", servers[server].tls.keyFile));
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
return servers[server];
|
||||
|
||||
@@ -4,13 +4,14 @@ import { readFileSync } from "fs";
|
||||
import yaml from "js-yaml";
|
||||
import { KubeConfig } from "@kubernetes/client-node";
|
||||
|
||||
import checkAndCopyConfig from "utils/config/config";
|
||||
import checkAndCopyConfig, { substituteEnvironmentVars } from "utils/config/config";
|
||||
|
||||
export default function getKubeConfig() {
|
||||
checkAndCopyConfig("kubernetes.yaml");
|
||||
|
||||
const configFile = path.join(process.cwd(), "config", "kubernetes.yaml");
|
||||
const configData = readFileSync(configFile, "utf8");
|
||||
const rawConfigData = readFileSync(configFile, "utf8");
|
||||
const configData = substituteEnvironmentVars(rawConfigData);
|
||||
const config = yaml.load(configData);
|
||||
const kc = new KubeConfig();
|
||||
|
||||
|
||||
@@ -4,20 +4,22 @@ import path from "path";
|
||||
import yaml from "js-yaml";
|
||||
import Docker from "dockerode";
|
||||
import * as shvl from "shvl";
|
||||
import { NetworkingV1Api } from "@kubernetes/client-node";
|
||||
import { CustomObjectsApi, NetworkingV1Api } from "@kubernetes/client-node";
|
||||
|
||||
import createLogger from "utils/logger";
|
||||
import checkAndCopyConfig from "utils/config/config";
|
||||
import checkAndCopyConfig, { substituteEnvironmentVars } from "utils/config/config";
|
||||
import getDockerArguments from "utils/config/docker";
|
||||
import getKubeConfig from "utils/config/kubernetes";
|
||||
|
||||
const logger = createLogger("service-helpers");
|
||||
|
||||
|
||||
export async function servicesFromConfig() {
|
||||
checkAndCopyConfig("services.yaml");
|
||||
|
||||
const servicesYaml = path.join(process.cwd(), "config", "services.yaml");
|
||||
const fileContents = await fs.readFile(servicesYaml, "utf8");
|
||||
const rawFileContents = await fs.readFile(servicesYaml, "utf8");
|
||||
const fileContents = substituteEnvironmentVars(rawFileContents);
|
||||
const services = yaml.load(fileContents);
|
||||
|
||||
if (!services) {
|
||||
@@ -49,7 +51,8 @@ export async function servicesFromDocker() {
|
||||
checkAndCopyConfig("docker.yaml");
|
||||
|
||||
const dockerYaml = path.join(process.cwd(), "config", "docker.yaml");
|
||||
const dockerFileContents = await fs.readFile(dockerYaml, "utf8");
|
||||
const rawDockerFileContents = await fs.readFile(dockerYaml, "utf8");
|
||||
const dockerFileContents = substituteEnvironmentVars(rawDockerFileContents);
|
||||
const servers = yaml.load(dockerFileContents);
|
||||
|
||||
if (!servers) {
|
||||
@@ -142,6 +145,7 @@ export async function servicesFromKubernetes() {
|
||||
return [];
|
||||
}
|
||||
const networking = kc.makeApiClient(NetworkingV1Api);
|
||||
const crd = kc.makeApiClient(CustomObjectsApi);
|
||||
|
||||
const ingressList = await networking.listIngressForAllNamespaces(null, null, null, null)
|
||||
.then((response) => response.body)
|
||||
@@ -149,6 +153,20 @@ export async function servicesFromKubernetes() {
|
||||
logger.error("Error getting ingresses: %d %s %s", error.statusCode, error.body, error.response);
|
||||
return null;
|
||||
});
|
||||
|
||||
const traefikIngressList = await crd.listClusterCustomObject("traefik.containo.us", "v1alpha1", "ingressroutes")
|
||||
.then((response) => response.body)
|
||||
.catch((error) => {
|
||||
logger.error("Error getting traefik ingresses: %d %s %s", error.statusCode, error.body, error.response);
|
||||
return null;
|
||||
});
|
||||
|
||||
if (traefikIngressList && traefikIngressList.items.length > 0) {
|
||||
const traefikServices = traefikIngressList.items
|
||||
.filter((ingress) => ingress.metadata.annotations && ingress.metadata.annotations[`${ANNOTATION_BASE}/href`])
|
||||
ingressList.items.push(...traefikServices);
|
||||
}
|
||||
|
||||
if (!ingressList) {
|
||||
return [];
|
||||
}
|
||||
@@ -164,10 +182,17 @@ export async function servicesFromKubernetes() {
|
||||
weight: ingress.metadata.annotations[`${ANNOTATION_BASE}/weight`] || '0',
|
||||
icon: ingress.metadata.annotations[`${ANNOTATION_BASE}/icon`] || '',
|
||||
description: ingress.metadata.annotations[`${ANNOTATION_BASE}/description`] || '',
|
||||
external: false,
|
||||
};
|
||||
if (ingress.metadata.annotations[`${ANNOTATION_BASE}/external`]) {
|
||||
constructedService.external = String(ingress.metadata.annotations[`${ANNOTATION_BASE}/external`]).toLowerCase() === "true"
|
||||
}
|
||||
if (ingress.metadata.annotations[ANNOTATION_POD_SELECTOR]) {
|
||||
constructedService.podSelector = ingress.metadata.annotations[ANNOTATION_POD_SELECTOR];
|
||||
}
|
||||
if (ingress.metadata.annotations[`${ANNOTATION_BASE}/ping`]) {
|
||||
constructedService.ping = ingress.metadata.annotations[`${ANNOTATION_BASE}/ping`];
|
||||
}
|
||||
Object.keys(ingress.metadata.annotations).forEach((annotation) => {
|
||||
if (annotation.startsWith(ANNOTATION_WIDGET_BASE)) {
|
||||
shvl.set(constructedService, annotation.replace(`${ANNOTATION_BASE}/`, ""), ingress.metadata.annotations[annotation]);
|
||||
@@ -237,7 +262,10 @@ export function cleanServiceGroups(groups) {
|
||||
namespace, // kubernetes widget
|
||||
app,
|
||||
podSelector,
|
||||
wan // opnsense widget
|
||||
wan, // opnsense widget,
|
||||
enableBlocks, // emby/jellyfin
|
||||
enableNowPlaying,
|
||||
volume // diskstation widget
|
||||
} = cleanedService.widget;
|
||||
|
||||
const fieldsList = typeof fields === 'string' ? JSON.parse(fields) : fields;
|
||||
@@ -268,6 +296,13 @@ export function cleanServiceGroups(groups) {
|
||||
if (type === "opnsense") {
|
||||
if (wan) cleanedService.widget.wan = wan;
|
||||
}
|
||||
if (type === "emby" || type === "jellyfin") {
|
||||
if (enableBlocks !== undefined) cleanedService.widget.enableBlocks = enableBlocks;
|
||||
if (enableNowPlaying !== undefined) cleanedService.widget.enableNowPlaying = enableNowPlaying;
|
||||
}
|
||||
if (type === "diskstation") {
|
||||
if (volume) cleanedService.widget.volume = volume;
|
||||
}
|
||||
}
|
||||
|
||||
return cleanedService;
|
||||
|
||||
@@ -3,7 +3,7 @@ import path from "path";
|
||||
|
||||
import yaml from "js-yaml";
|
||||
|
||||
import checkAndCopyConfig from "utils/config/config";
|
||||
import checkAndCopyConfig, { substituteEnvironmentVars } from "utils/config/config";
|
||||
|
||||
const exemptWidgets = ["search"];
|
||||
|
||||
@@ -11,7 +11,8 @@ export async function widgetsFromConfig() {
|
||||
checkAndCopyConfig("widgets.yaml");
|
||||
|
||||
const widgetsYaml = path.join(process.cwd(), "config", "widgets.yaml");
|
||||
const fileContents = await fs.readFile(widgetsYaml, "utf8");
|
||||
const rawFileContents = await fs.readFile(widgetsYaml, "utf8");
|
||||
const fileContents = substituteEnvironmentVars(rawFileContents);
|
||||
const widgets = yaml.load(fileContents);
|
||||
|
||||
if (!widgets) return [];
|
||||
|
||||
@@ -53,3 +53,12 @@ export function jsonArrayTransform(data, transform) {
|
||||
export function jsonArrayFilter(data, filter) {
|
||||
return jsonArrayTransform(data, (items) => items.filter(filter));
|
||||
}
|
||||
|
||||
export function sanitizeErrorURL(errorURL) {
|
||||
// Dont display sensitive params on frontend
|
||||
const url = new URL(errorURL);
|
||||
["apikey", "api_key", "token", "t"].forEach(key => {
|
||||
if (url.searchParams.has(key)) url.searchParams.set(key, "***")
|
||||
});
|
||||
return url.toString();
|
||||
}
|
||||
@@ -34,6 +34,6 @@ export function addCookieToJar(url, headers) {
|
||||
}
|
||||
|
||||
for (let i = 0; i < cookies.length; i += 1) {
|
||||
cookieJar.setCookieSync(cookies[i], url.toString());
|
||||
cookieJar.setCookieSync(cookies[i], url.toString(), { ignoreError: true });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import getServiceWidget from "utils/config/service-helpers";
|
||||
import { formatApiCall } from "utils/proxy/api-helpers";
|
||||
import { formatApiCall, sanitizeErrorURL } from "utils/proxy/api-helpers";
|
||||
import validateWidgetData from "utils/proxy/validate-widget-data";
|
||||
import { httpProxy } from "utils/proxy/http";
|
||||
import createLogger from "utils/logger";
|
||||
@@ -28,10 +28,15 @@ export default async function credentialedProxyHandler(req, res, map) {
|
||||
headers["X-CMC_PRO_API_KEY"] = `${widget.key}`;
|
||||
} else if (widget.type === "gotify") {
|
||||
headers["X-gotify-Key"] = `${widget.key}`;
|
||||
} else if (widget.type === "authentik") {
|
||||
headers.Authorization = `Bearer ${widget.key}`;
|
||||
} else if (widget.type === "truenas") {
|
||||
headers.Authorization = `Bearer ${widget.key}`;
|
||||
} else if ([
|
||||
"authentik",
|
||||
"cloudflared",
|
||||
"ghostfolio",
|
||||
"truenas",
|
||||
"pterodactyl",
|
||||
].includes(widget.type))
|
||||
{
|
||||
headers.Authorization = `Bearer ${widget.key}`;
|
||||
} else if (widget.type === "proxmox") {
|
||||
headers.Authorization = `PVEAPIToken=${widget.username}=${widget.password}`;
|
||||
} else if (widget.type === "proxmoxbackupserver") {
|
||||
@@ -43,9 +48,12 @@ export default async function credentialedProxyHandler(req, res, map) {
|
||||
headers.Authorization = `Token ${widget.key}`;
|
||||
} else if (widget.type === "miniflux") {
|
||||
headers["X-Auth-Token"] = `${widget.key}`;
|
||||
} else if (widget.type === "cloudflared") {
|
||||
headers["X-Auth-Email"] = `${widget.email}`;
|
||||
headers["X-Auth-Key"] = `${widget.key}`;
|
||||
} else if (widget.type === "nextcloud") {
|
||||
if (widget.key) {
|
||||
headers["NC-Token"] = `${widget.key}`;
|
||||
} else {
|
||||
headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
|
||||
}
|
||||
} else {
|
||||
headers["X-API-Key"] = `${widget.key}`;
|
||||
}
|
||||
@@ -68,7 +76,10 @@ export default async function credentialedProxyHandler(req, res, map) {
|
||||
}
|
||||
|
||||
if (!validateWidgetData(widget, endpoint, data)) {
|
||||
return res.status(500).json({error: {message: "Invalid data", url, data}});
|
||||
if (data.error && data.error.url) {
|
||||
data.error.url = sanitizeErrorURL(url);
|
||||
}
|
||||
return res.status(500).json({error: {message: "Invalid data", url: sanitizeErrorURL(url), data}});
|
||||
}
|
||||
|
||||
if (status === 200 && map) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import getServiceWidget from "utils/config/service-helpers";
|
||||
import { formatApiCall } from "utils/proxy/api-helpers";
|
||||
import { formatApiCall, sanitizeErrorURL } from "utils/proxy/api-helpers";
|
||||
import validateWidgetData from "utils/proxy/validate-widget-data";
|
||||
import { httpProxy } from "utils/proxy/http";
|
||||
import createLogger from "utils/logger";
|
||||
@@ -27,15 +27,23 @@ export default async function genericProxyHandler(req, res, map) {
|
||||
};
|
||||
}
|
||||
|
||||
const [status, contentType, data] = await httpProxy(url, {
|
||||
const params = {
|
||||
method: req.method,
|
||||
headers,
|
||||
});
|
||||
}
|
||||
if (req.body) {
|
||||
params.body = req.body;
|
||||
}
|
||||
|
||||
const [status, contentType, data] = await httpProxy(url, params);
|
||||
|
||||
let resultData = data;
|
||||
|
||||
if (!validateWidgetData(widget, endpoint, resultData)) {
|
||||
return res.status(status).json({error: {message: "Invalid data", url, data: resultData}});
|
||||
if (resultData.error && resultData.error.url) {
|
||||
resultData.error.url = sanitizeErrorURL(url);
|
||||
}
|
||||
return res.status(status).json({error: {message: "Invalid data", url: sanitizeErrorURL(url), data: resultData}});
|
||||
}
|
||||
|
||||
if (status === 200 && map) {
|
||||
@@ -50,7 +58,7 @@ 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);
|
||||
return res.status(status).json({error: {message: "HTTP Error", url, data}});
|
||||
return res.status(status).json({error: {message: "HTTP Error", url: sanitizeErrorURL(url), data}});
|
||||
}
|
||||
|
||||
return res.status(status).send(resultData);
|
||||
|
||||
46
src/widgets/audiobookshelf/component.jsx
Executable file
46
src/widgets/audiobookshelf/component.jsx
Executable file
@@ -0,0 +1,46 @@
|
||||
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: librariesData, error: librariesError } = useWidgetAPI(widget, "libraries");
|
||||
|
||||
|
||||
if (librariesError) {
|
||||
return <Container error={librariesError} />;
|
||||
}
|
||||
|
||||
if (!librariesData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="audiobookshelf.podcasts" />
|
||||
<Block label="audiobookshelf.podcastsDuration" />
|
||||
<Block label="audiobookshelf.books" />
|
||||
<Block label="audiobookshelf.booksDuration" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
const podcastLibraries = librariesData.filter(l => l.mediaType === "podcast");
|
||||
const bookLibraries = librariesData.filter(l => l.mediaType === "book");
|
||||
|
||||
const totalPodcasts = podcastLibraries.reduce((total, pL) => parseInt(pL.stats?.totalItems, 10) + total, 0);
|
||||
const totalBooks = bookLibraries.reduce((total, bL) => parseInt(bL.stats?.totalItems, 10) + total, 0);
|
||||
|
||||
const totalPodcastsDuration = podcastLibraries.reduce((total, pL) => parseFloat(pL.stats?.totalDuration) + total, 0);
|
||||
const totalBooksDuration = bookLibraries.reduce((total, bL) => parseFloat(bL.stats?.totalDuration) + total, 0);
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="audiobookshelf.podcasts" value={t("common.number", { value: totalPodcasts })} />
|
||||
<Block label="audiobookshelf.podcastsDuration" value={t("common.number", { value: totalPodcastsDuration / 60, maximumFractionDigits: 0, style: "unit", unit: "minute" })} />
|
||||
<Block label="audiobookshelf.books" value={t("common.number", { value: totalBooks })} />
|
||||
<Block label="audiobookshelf.booksDuration" value={t("common.number", { value: totalBooksDuration / 60, maximumFractionDigits: 0, style: "unit", unit: "minute" })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
64
src/widgets/audiobookshelf/proxy.js
Normal file
64
src/widgets/audiobookshelf/proxy.js
Normal file
@@ -0,0 +1,64 @@
|
||||
import { httpProxy } from "utils/proxy/http";
|
||||
import { formatApiCall } from "utils/proxy/api-helpers";
|
||||
import getServiceWidget from "utils/config/service-helpers";
|
||||
import createLogger from "utils/logger";
|
||||
import widgets from "widgets/widgets";
|
||||
|
||||
const proxyName = "audiobookshelfProxyHandler";
|
||||
const logger = createLogger(proxyName);
|
||||
|
||||
async function retrieveFromAPI(url, key) {
|
||||
const headers = {
|
||||
"content-type": "application/json",
|
||||
"Authorization": `Bearer ${key}`
|
||||
};
|
||||
|
||||
const [status, , data] = await httpProxy(url, { headers });
|
||||
|
||||
if (status !== 200) {
|
||||
throw new Error(`Error getting data from Audiobookshelf: ${status}. Data: ${data.toString()}`);
|
||||
}
|
||||
|
||||
return JSON.parse(Buffer.from(data).toString());
|
||||
}
|
||||
|
||||
export default async function audiobookshelfProxyHandler(req, res) {
|
||||
const { group, service, endpoint } = 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 (!widget.key) {
|
||||
logger.debug("Invalid or missing key for service '%s' in group '%s'", service, group);
|
||||
return res.status(400).json({ error: "Missing widget key" });
|
||||
}
|
||||
|
||||
const apiURL = widgets[widget.type].api;
|
||||
|
||||
try {
|
||||
const url = new URL(formatApiCall(apiURL, { endpoint, ...widget }));
|
||||
const libraryData = await retrieveFromAPI(url, widget.key);
|
||||
|
||||
const libraryStats = await Promise.all(libraryData.libraries.map(async l => {
|
||||
const stats = await retrieveFromAPI(new URL(formatApiCall(apiURL, { endpoint: `libraries/${l.id}/stats`, ...widget })), widget.key);
|
||||
return {
|
||||
...l,
|
||||
stats
|
||||
};
|
||||
}));
|
||||
|
||||
return res.status(200).send(libraryStats);
|
||||
} catch (e) {
|
||||
logger.error(e.message);
|
||||
return res.status(500).send({error: {message: e.message}});
|
||||
}
|
||||
}
|
||||
14
src/widgets/audiobookshelf/widget.js
Executable file
14
src/widgets/audiobookshelf/widget.js
Executable file
@@ -0,0 +1,14 @@
|
||||
import audiobookshelfProxyHandler from "./proxy";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/api/{endpoint}",
|
||||
proxyHandler: audiobookshelfProxyHandler,
|
||||
|
||||
mappings: {
|
||||
libraries: {
|
||||
endpoint: "libraries",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default widget;
|
||||
@@ -2,6 +2,7 @@ import dynamic from "next/dynamic";
|
||||
|
||||
const components = {
|
||||
adguard: dynamic(() => import("./adguard/component")),
|
||||
audiobookshelf: dynamic(() => import("./audiobookshelf/component")),
|
||||
authentik: dynamic(() => import("./authentik/component")),
|
||||
autobrr: dynamic(() => import("./autobrr/component")),
|
||||
bazarr: dynamic(() => import("./bazarr/component")),
|
||||
@@ -14,23 +15,31 @@ const components = {
|
||||
docker: dynamic(() => import("./docker/component")),
|
||||
kubernetes: dynamic(() => import("./kubernetes/component")),
|
||||
emby: dynamic(() => import("./emby/component")),
|
||||
fileflows: dynamic(() => import("./fileflows/component")),
|
||||
flood: dynamic(() => import("./flood/component")),
|
||||
ghostfolio: dynamic(() => import("./ghostfolio/component")),
|
||||
gluetun: dynamic(() => import("./gluetun/component")),
|
||||
gotify: dynamic(() => import("./gotify/component")),
|
||||
grafana: dynamic(() => import("./grafana/component")),
|
||||
hdhomerun: dynamic(() => import("./hdhomerun/component")),
|
||||
homebridge: dynamic(() => import("./homebridge/component")),
|
||||
healthchecks: dynamic(() => import("./healthchecks/component")),
|
||||
immich: dynamic(() => import("./immich/component")),
|
||||
jackett: dynamic(() => import("./jackett/component")),
|
||||
jellyfin: dynamic(() => import("./emby/component")),
|
||||
jellyseerr: dynamic(() => import("./jellyseerr/component")),
|
||||
komga: dynamic(() => import("./komga/component")),
|
||||
kopia: dynamic(() => import("./kopia/component")),
|
||||
lidarr: dynamic(() => import("./lidarr/component")),
|
||||
mastodon: dynamic(() => import("./mastodon/component")),
|
||||
medusa: dynamic(() => import("./medusa/component")),
|
||||
minecraft: dynamic(() => import("./minecraft/component")),
|
||||
miniflux: dynamic(() => import("./miniflux/component")),
|
||||
mikrotik: dynamic(() => import("./mikrotik/component")),
|
||||
moonraker: dynamic(() => import("./moonraker/component")),
|
||||
mylar: dynamic(() => import("./mylar/component")),
|
||||
navidrome: dynamic(() => import("./navidrome/component")),
|
||||
nextcloud: dynamic(() => import("./nextcloud/component")),
|
||||
nextdns: dynamic(() => import("./nextdns/component")),
|
||||
npm: dynamic(() => import("./npm/component")),
|
||||
nzbget: dynamic(() => import("./nzbget/component")),
|
||||
@@ -45,8 +54,10 @@ const components = {
|
||||
pihole: dynamic(() => import("./pihole/component")),
|
||||
plex: dynamic(() => import("./plex/component")),
|
||||
portainer: dynamic(() => import("./portainer/component")),
|
||||
prometheus: dynamic(() => import("./prometheus/component")),
|
||||
prowlarr: dynamic(() => import("./prowlarr/component")),
|
||||
proxmox: dynamic(() => import("./proxmox/component")),
|
||||
pterodactyl: dynamic(() => import("./pterodactyl/component")),
|
||||
pyload: dynamic(() => import("./pyload/component")),
|
||||
qbittorrent: dynamic(() => import("./qbittorrent/component")),
|
||||
radarr: dynamic(() => import("./radarr/component")),
|
||||
@@ -64,10 +75,10 @@ const components = {
|
||||
tubearchivist: dynamic(() => import("./tubearchivist/component")),
|
||||
truenas: dynamic(() => import("./truenas/component")),
|
||||
unifi: dynamic(() => import("./unifi/component")),
|
||||
unmanic: dynamic(() => import("./unmanic/component")),
|
||||
uptimekuma: dynamic(() => import("./uptimekuma/component")),
|
||||
watchtower: dynamic(() => import("./watchtower/component")),
|
||||
xteve: dynamic(() => import("./xteve/component")),
|
||||
immich: dynamic(() => import("./immich/component")),
|
||||
uptimekuma: dynamic(() => import("./uptimekuma/component")),
|
||||
};
|
||||
|
||||
export default components;
|
||||
|
||||
@@ -44,9 +44,9 @@ export default function Component({ service }) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="deluge.leech" value={t("common.number", { value: leech })} />
|
||||
<Block label="deluge.download" value={t("common.bitrate", { value: rateDl })} />
|
||||
<Block label="deluge.download" value={t("common.byterate", { value: rateDl })} />
|
||||
<Block label="deluge.seed" value={t("common.number", { value: completed })} />
|
||||
<Block label="deluge.upload" value={t("common.bitrate", { value: rateUl })} />
|
||||
<Block label="deluge.upload" value={t("common.byterate", { value: rateUl })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -33,8 +33,7 @@ export default function Component({ service }) {
|
||||
const uptime = `${ t("common.number", { value: days }) } ${ t("diskstation.days") }`;
|
||||
|
||||
// storage info
|
||||
// TODO: figure out how to display info for more than one volume
|
||||
const volume = storageData.data.vol_info?.[0];
|
||||
const volume = widget.volume ? storageData.data.vol_info?.find(vol => vol.name === widget.volume) : storageData.data.vol_info?.[0];
|
||||
const usedBytes = parseFloat(volume?.used_size);
|
||||
const totalBytes = parseFloat(volume?.total_size);
|
||||
const freeBytes = totalBytes - usedBytes;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import useSWR from "swr";
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import calculateCPUPercent from "./stats-helpers";
|
||||
import { calculateCPUPercent, calculateUsedMemory } from "./stats-helpers";
|
||||
|
||||
import Container from "components/services/widget/container";
|
||||
import Block from "components/services/widget/block";
|
||||
@@ -22,7 +22,7 @@ export default function Component({ service }) {
|
||||
return <Container error={finalError} />;
|
||||
}
|
||||
|
||||
if (statusData && statusData.status !== "running") {
|
||||
if (statusData && !(statusData.status.includes("running") || statusData.status.includes("partial"))) {
|
||||
return (
|
||||
<Container>
|
||||
<Block label={t("widget.status")} value={t("docker.offline")} />
|
||||
@@ -47,7 +47,7 @@ export default function Component({ service }) {
|
||||
<Container service={service}>
|
||||
<Block label="docker.cpu" value={t("common.percent", { value: calculateCPUPercent(statsData.stats) })} />
|
||||
{statsData.stats.memory_stats.usage &&
|
||||
<Block label="docker.mem" value={t("common.bytes", { value: statsData.stats.memory_stats.usage })} />
|
||||
<Block label="docker.mem" value={t("common.bytes", { value: calculateUsedMemory(statsData.stats) })} />
|
||||
}
|
||||
{network && (
|
||||
<>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export default function calculateCPUPercent(stats) {
|
||||
export function calculateCPUPercent(stats) {
|
||||
let cpuPercent = 0.0;
|
||||
const cpuDelta = stats.cpu_stats.cpu_usage.total_usage - stats.precpu_stats.cpu_usage.total_usage;
|
||||
const systemDelta = stats.cpu_stats.system_cpu_usage - stats.precpu_stats.system_cpu_usage;
|
||||
@@ -9,3 +9,7 @@ export default function calculateCPUPercent(stats) {
|
||||
|
||||
return Math.round(cpuPercent * 10) / 10;
|
||||
}
|
||||
|
||||
export function calculateUsedMemory(stats) {
|
||||
return stats.memory_stats.usage - (stats.memory_stats.stats.cache ?? 0)
|
||||
}
|
||||
@@ -2,6 +2,7 @@ import { useTranslation } from "next-i18next";
|
||||
import { BsVolumeMuteFill, BsFillPlayFill, BsPauseFill, BsCpu, BsFillCpuFill } from "react-icons/bs";
|
||||
import { MdOutlineSmartDisplay } from "react-icons/md";
|
||||
|
||||
import Block from "components/services/widget/block";
|
||||
import Container from "components/services/widget/container";
|
||||
import { formatProxyUrlWithSegments } from "utils/proxy/api-helpers";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
@@ -148,6 +149,33 @@ function SessionEntry({ playCommand, session }) {
|
||||
);
|
||||
}
|
||||
|
||||
function CountBlocks({ service, countData }) {
|
||||
const { t } = useTranslation();
|
||||
// allows filtering
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
if (service.widget?.type === 'jellyfin') service.widget.type = 'emby'
|
||||
|
||||
if (!countData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="emby.movies" />
|
||||
<Block label="emby.series" />
|
||||
<Block label="emby.episodes" />
|
||||
<Block label="emby.songs" />
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="emby.movies" value={t("common.number", { value: countData.MovieCount })} />
|
||||
<Block label="emby.series" value={t("common.number", { value: countData.SeriesCount })} />
|
||||
<Block label="emby.episodes" value={t("common.number", { value: countData.EpisodeCount })} />
|
||||
<Block label="emby.songs" value={t("common.number", { value: countData.SongCount })} />
|
||||
</Container>
|
||||
)
|
||||
}
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
@@ -161,6 +189,12 @@ export default function Component({ service }) {
|
||||
refreshInterval: 5000,
|
||||
});
|
||||
|
||||
const {
|
||||
data: countData,
|
||||
error: countError,
|
||||
} = useWidgetAPI(widget, "Count", {
|
||||
refreshInterval: 60000,});
|
||||
|
||||
async function handlePlayCommand(session, command) {
|
||||
const url = formatProxyUrlWithSegments(widget, "PlayControl", {
|
||||
sessionId: session.Id,
|
||||
@@ -171,69 +205,93 @@ export default function Component({ service }) {
|
||||
});
|
||||
}
|
||||
|
||||
if (sessionsError) {
|
||||
return <Container error={sessionsError} />;
|
||||
if (sessionsError || countError) {
|
||||
return <Container error={sessionsError ?? countError} />;
|
||||
}
|
||||
|
||||
if (!sessionsData) {
|
||||
const enableBlocks = service.widget?.enableBlocks
|
||||
const enableNowPlaying = service.widget?.enableNowPlaying ?? true
|
||||
|
||||
if (!sessionsData || !countData) {
|
||||
return (
|
||||
<div className="flex flex-col pb-1">
|
||||
<>
|
||||
{enableBlocks && <CountBlocks service={service} countData={null} />}
|
||||
{enableNowPlaying && <div className="flex flex-col pb-1">
|
||||
<div className="text-theme-700 dark:text-theme-200 text-xs relative h-5 w-full rounded-md bg-theme-200/50 dark:bg-theme-900/20 mt-1">
|
||||
<span className="absolute left-2 text-xs mt-[2px]">-</span>
|
||||
</div>
|
||||
<div className="text-theme-700 dark:text-theme-200 text-xs relative h-5 w-full rounded-md bg-theme-200/50 dark:bg-theme-900/20 mt-1">
|
||||
<span className="absolute left-2 text-xs mt-[2px]">-</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
const playing = sessionsData
|
||||
.filter((session) => session?.NowPlayingItem)
|
||||
.sort((a, b) => {
|
||||
if (a.PlayState.PositionTicks > b.PlayState.PositionTicks) {
|
||||
return 1;
|
||||
}
|
||||
if (a.PlayState.PositionTicks < b.PlayState.PositionTicks) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
|
||||
if (playing.length === 0) {
|
||||
if (enableNowPlaying) {
|
||||
const playing = sessionsData
|
||||
.filter((session) => session?.NowPlayingItem)
|
||||
.sort((a, b) => {
|
||||
if (a.PlayState.PositionTicks > b.PlayState.PositionTicks) {
|
||||
return 1;
|
||||
}
|
||||
if (a.PlayState.PositionTicks < b.PlayState.PositionTicks) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
|
||||
if (playing.length === 0) {
|
||||
return (
|
||||
<>
|
||||
{enableBlocks && <CountBlocks service={service} countData={countData} />}
|
||||
<div className="flex flex-col pb-1 mx-1">
|
||||
<div className="text-theme-700 dark:text-theme-200 text-xs relative h-5 w-full rounded-md bg-theme-200/50 dark:bg-theme-900/20 mt-1">
|
||||
<span className="absolute left-2 text-xs mt-[2px]">{t("emby.no_active")}</span>
|
||||
</div>
|
||||
<div className="text-theme-700 dark:text-theme-200 text-xs relative h-5 w-full rounded-md bg-theme-200/50 dark:bg-theme-900/20 mt-1">
|
||||
<span className="absolute left-2 text-xs mt-[2px]">-</span>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
if (playing.length === 1) {
|
||||
const session = playing[0];
|
||||
return (
|
||||
<>
|
||||
{enableBlocks && <CountBlocks service={service} countData={countData} />}
|
||||
<div className="flex flex-col pb-1 mx-1">
|
||||
<SingleSessionEntry
|
||||
playCommand={(currentSession, command) => handlePlayCommand(currentSession, command)}
|
||||
session={session}
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
if (playing.length > 0)
|
||||
return (
|
||||
<>
|
||||
{enableBlocks && <CountBlocks service={service} countData={countData} />}
|
||||
<div className="flex flex-col pb-1 mx-1">
|
||||
<div className="text-theme-700 dark:text-theme-200 text-xs relative h-5 w-full rounded-md bg-theme-200/50 dark:bg-theme-900/20 mt-1">
|
||||
<span className="absolute left-2 text-xs mt-[2px]">{t("emby.no_active")}</span>
|
||||
</div>
|
||||
<div className="text-theme-700 dark:text-theme-200 text-xs relative h-5 w-full rounded-md bg-theme-200/50 dark:bg-theme-900/20 mt-1">
|
||||
<span className="absolute left-2 text-xs mt-[2px]">-</span>
|
||||
</div>
|
||||
{playing.map((session) => (
|
||||
<SessionEntry
|
||||
key={session.Id}
|
||||
playCommand={(currentSession, command) => handlePlayCommand(currentSession, command)}
|
||||
session={session}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
if (playing.length === 1) {
|
||||
const session = playing[0];
|
||||
if (enableBlocks) {
|
||||
return (
|
||||
<div className="flex flex-col pb-1 mx-1">
|
||||
<SingleSessionEntry
|
||||
playCommand={(currentSession, command) => handlePlayCommand(currentSession, command)}
|
||||
session={session}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
<CountBlocks service={service} countData={countData} />
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="flex flex-col pb-1 mx-1">
|
||||
{playing.map((session) => (
|
||||
<SessionEntry
|
||||
key={session.Id}
|
||||
playCommand={(currentSession, command) => handlePlayCommand(currentSession, command)}
|
||||
session={session}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,15 @@ const widget = {
|
||||
Sessions: {
|
||||
endpoint: "Sessions",
|
||||
},
|
||||
Count: {
|
||||
endpoint: "Items/Counts",
|
||||
segments: [
|
||||
"MovieCount",
|
||||
"SeriesCount",
|
||||
"EpisodeCount",
|
||||
"SongCount"
|
||||
]
|
||||
},
|
||||
PlayControl: {
|
||||
method: "POST",
|
||||
endpoint: "Sessions/{sessionId}/Playing/{command}",
|
||||
|
||||
37
src/widgets/fileflows/component.jsx
Executable file
37
src/widgets/fileflows/component.jsx
Executable 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: fileflowsData, error: fileflowsError } = useWidgetAPI(widget, "status");
|
||||
|
||||
if (fileflowsError) {
|
||||
return <Container error={fileflowsError} />;
|
||||
}
|
||||
|
||||
if (!fileflowsData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="fileflows.queue" />
|
||||
<Block label="fileflows.processing" />
|
||||
<Block label="fileflows.processed" />
|
||||
<Block label="fileflows.time" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="fileflows.queue" value={t("common.number", { value: fileflowsData.queue })} />
|
||||
<Block label="fileflows.processing" value={t("common.number", { value: fileflowsData.processing })} />
|
||||
<Block label="fileflows.processed" value={t("common.number", { value: fileflowsData.processed })} />
|
||||
<Block label="fileflows.time" value={fileflowsData.time?.length ? fileflowsData.time : "0:00"} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
14
src/widgets/fileflows/widget.js
Executable file
14
src/widgets/fileflows/widget.js
Executable file
@@ -0,0 +1,14 @@
|
||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/api/{endpoint}",
|
||||
proxyHandler: genericProxyHandler,
|
||||
|
||||
mappings: {
|
||||
"status": {
|
||||
endpoint: "status",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default widget;
|
||||
@@ -45,9 +45,9 @@ export default function Component({ service }) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="flood.leech" value={t("common.number", { value: leech })} />
|
||||
<Block label="flood.download" value={t("common.bitrate", { value: rateDl })} />
|
||||
<Block label="flood.download" value={t("common.byterate", { value: rateDl })} />
|
||||
<Block label="flood.seed" value={t("common.number", { value: completed })} />
|
||||
<Block label="flood.upload" value={t("common.bitrate", { value: rateUl })} />
|
||||
<Block label="flood.upload" value={t("common.byterate", { value: rateUl })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
41
src/widgets/ghostfolio/component.jsx
Normal file
41
src/widgets/ghostfolio/component.jsx
Normal file
@@ -0,0 +1,41 @@
|
||||
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";
|
||||
|
||||
function getPerformancePercent(t, performanceRange) {
|
||||
return `${(performanceRange.performance.currentGrossPerformancePercent > 0 ? "+" : "")}${t("common.percent", { value: performanceRange.performance.currentGrossPerformancePercent * 100, maximumFractionDigits: 2 })}`
|
||||
}
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
const { widget } = service;
|
||||
|
||||
const { data: performanceToday, error: ghostfolioErrorToday } = useWidgetAPI(widget, "today");
|
||||
const { data: performanceYear, error: ghostfolioErrorYear } = useWidgetAPI(widget, "year");
|
||||
const { data: performanceMax, error: ghostfolioErrorMax } = useWidgetAPI(widget, "max");
|
||||
|
||||
if (ghostfolioErrorToday || ghostfolioErrorYear || ghostfolioErrorMax) {
|
||||
const finalError = ghostfolioErrorToday ?? ghostfolioErrorYear ?? ghostfolioErrorMax
|
||||
return <Container error={finalError} />;
|
||||
}
|
||||
|
||||
if (!performanceToday || !performanceYear || !performanceMax) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="ghostfolio.gross_percent_today" />
|
||||
<Block label="ghostfolio.gross_percent_1y" />
|
||||
<Block label="ghostfolio.gross_percent_max" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="ghostfolio.gross_percent_today" value={getPerformancePercent(t, performanceToday)} />
|
||||
<Block label="ghostfolio.gross_percent_1y" value={getPerformancePercent(t, performanceYear)} />
|
||||
<Block label="ghostfolio.gross_percent_max" value={getPerformancePercent(t, performanceMax)} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
20
src/widgets/ghostfolio/widget.js
Normal file
20
src/widgets/ghostfolio/widget.js
Normal file
@@ -0,0 +1,20 @@
|
||||
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/api/v2/portfolio/performance?range={endpoint}",
|
||||
proxyHandler: credentialedProxyHandler,
|
||||
|
||||
mappings: {
|
||||
today: {
|
||||
endpoint: "1d"
|
||||
},
|
||||
year: {
|
||||
endpoint: "1y"
|
||||
},
|
||||
max: {
|
||||
endpoint: "max"
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default widget;
|
||||
37
src/widgets/grafana/component.jsx
Executable file
37
src/widgets/grafana/component.jsx
Executable 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: statsData, error: statsError } = useWidgetAPI(widget, "stats");
|
||||
const { data: alertsData, error: alertsError } = useWidgetAPI(widget, "alerts");
|
||||
|
||||
if (statsError || alertsError) {
|
||||
return <Container error={statsError ?? alertsError} />;
|
||||
}
|
||||
|
||||
if (!statsData || !alertsData) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="grafana.dashboards" />
|
||||
<Block label="grafana.datasources" />
|
||||
<Block label="grafana.totalalerts" />
|
||||
<Block label="grafana.alertstriggered" />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label="grafana.dashboards" value={t("common.number", { value: statsData.dashboards })} />
|
||||
<Block label="grafana.datasources" value={t("common.number", { value: statsData.datasources })} />
|
||||
<Block label="grafana.totalalerts" value={t("common.number", { value: statsData.alerts })} />
|
||||
<Block label="grafana.alertstriggered" value={t("common.number", { value: alertsData.filter(a => a.state === "alerting").length })} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
20
src/widgets/grafana/widget.js
Executable file
20
src/widgets/grafana/widget.js
Executable file
@@ -0,0 +1,20 @@
|
||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/api/{endpoint}",
|
||||
proxyHandler: genericProxyHandler,
|
||||
|
||||
mappings: {
|
||||
alerts: {
|
||||
endpoint: "alerts",
|
||||
},
|
||||
stats: {
|
||||
endpoint: "admin/stats",
|
||||
validate: [
|
||||
"dashboards"
|
||||
]
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default widget;
|
||||
54
src/widgets/healthchecks/component.jsx
Normal file
54
src/widgets/healthchecks/component.jsx
Normal file
@@ -0,0 +1,54 @@
|
||||
import { useTranslation } from "next-i18next";
|
||||
|
||||
import { i18n } from "../../../next-i18next.config";
|
||||
|
||||
import Block from "components/services/widget/block";
|
||||
import Container from "components/services/widget/container";
|
||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
||||
|
||||
function formatDate(dateString) {
|
||||
const date = new Date(dateString);
|
||||
const now = new Date();
|
||||
let dateOptions = {
|
||||
month: "numeric",
|
||||
day: "numeric",
|
||||
hour: "numeric",
|
||||
minute: "numeric",
|
||||
};
|
||||
|
||||
if (date.getFullYear() === now.getFullYear() && date.getMonth() === now.getMonth() && date.getDate() === now.getDate()) {
|
||||
dateOptions = { timeStyle: "short" };
|
||||
}
|
||||
|
||||
return new Intl.DateTimeFormat(i18n.language, dateOptions).format(date);
|
||||
}
|
||||
|
||||
export default function Component({ service }) {
|
||||
const { t } = useTranslation();
|
||||
const { widget } = service;
|
||||
|
||||
const { data, error } = useWidgetAPI(widget, "checks");
|
||||
|
||||
if (error) {
|
||||
return <Container error={error} />;
|
||||
}
|
||||
|
||||
if (!data) {
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label={t("healthchecks.status")} />
|
||||
<Block label={t("healthchecks.last_ping")} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Container service={service}>
|
||||
<Block label={t("healthchecks.status")} value={t(`healthchecks.${data.status}`)} />
|
||||
<Block
|
||||
label={t("healthchecks.last_ping")}
|
||||
value={data.last_ping ? formatDate(data.last_ping) : t("healthchecks.never")}
|
||||
/>
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
18
src/widgets/healthchecks/widget.js
Normal file
18
src/widgets/healthchecks/widget.js
Normal file
@@ -0,0 +1,18 @@
|
||||
import credentialedProxyHandler from "utils/proxy/handlers/credentialed";
|
||||
|
||||
const widget = {
|
||||
api: "{url}/api/v2/{endpoint}/{uuid}",
|
||||
proxyHandler: credentialedProxyHandler,
|
||||
|
||||
mappings: {
|
||||
checks: {
|
||||
endpoint: "checks",
|
||||
validate: [
|
||||
"status",
|
||||
"last_ping",
|
||||
]
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default widget;
|
||||
@@ -29,7 +29,7 @@ export default function Component({ service }) {
|
||||
<Container service={service}>
|
||||
<Block
|
||||
label="widget.status"
|
||||
value={`${homebridgeData.status[0].toUpperCase()}${homebridgeData.status.substr(1)}`}
|
||||
value={t(`homebridge.${homebridgeData.status}`)}
|
||||
/>
|
||||
<Block
|
||||
label="homebridge.updates"
|
||||
|
||||
@@ -50,7 +50,7 @@ async function apiCall(widget, endpoint, service) {
|
||||
headers,
|
||||
});
|
||||
|
||||
if (status === 401) {
|
||||
if (status === 401 || status === 403) {
|
||||
logger.debug("Homebridge API rejected the request, attempting to obtain new session token");
|
||||
const { accessToken } = login(widget, service);
|
||||
headers.Authorization = `Bearer ${accessToken}`;
|
||||
@@ -63,7 +63,8 @@ async function apiCall(widget, endpoint, service) {
|
||||
}
|
||||
|
||||
if (status !== 200) {
|
||||
logger.error("Error getting data from Homebridge: %d. Data: %s", status, data);
|
||||
logger.error("Error getting data from Homebridge: %s status %d. Data: %s", url, status, data);
|
||||
return { status, contentType, data: null, responseHeaders };
|
||||
}
|
||||
|
||||
return { status, contentType, data: JSON.parse(data.toString()), responseHeaders };
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user