Compare commits
2528 commits
debian/3.0
...
dev
Author | SHA1 | Date | |
---|---|---|---|
|
99873caa7c | ||
|
f077b8415a | ||
|
a2647f6cec | ||
|
e0857f184d | ||
|
26fdebc57b | ||
|
bf785a11e3 | ||
|
b4769273fa | ||
|
6bf0b9ec29 | ||
|
f26e15c0c8 | ||
|
215ee68044 | ||
|
a59cd08e30 | ||
|
b33e76fd3f | ||
|
3b11a8c0fa | ||
|
39f198fcb4 | ||
|
fbb8305e86 | ||
|
aac77cb8af | ||
|
9d48b3429f | ||
|
c5d86e27c3 | ||
|
03ae379aea | ||
|
ca449b6c59 | ||
|
9c389c208e | ||
|
a35a54aaaf | ||
|
18dfd23e81 | ||
|
a88afebd1d | ||
|
c87af75bd7 | ||
|
f003c17e51 | ||
|
c7be3db41c | ||
|
ccc9cb03ba | ||
|
27009ef854 | ||
|
c0b8fb1a68 | ||
|
937f158e5b | ||
|
d670555f59 | ||
|
763c779547 | ||
|
4e1f411eed | ||
|
0e1fcfd4b6 | ||
|
737af32352 | ||
|
a309c2eb1c | ||
|
3b50606ff8 | ||
|
ad7c927aa1 | ||
|
653689e8ae | ||
|
5685bf9934 | ||
|
5f499a4d61 | ||
|
dde2bf168d | ||
|
4aec50c0b9 | ||
|
b8c2b46d72 | ||
|
f3de655143 | ||
|
8a5bcb64f5 | ||
|
a50344a9f7 | ||
|
9d81fa42cd | ||
|
a0cf68e6bc | ||
|
225c1a9eab | ||
|
f68dc4170d | ||
|
8d9f201622 | ||
|
f2ec80a0e4 | ||
|
fc00adb21a | ||
|
571c44f3da | ||
|
16e5d5b429 | ||
|
c4650ebd62 | ||
|
72cb162f7e | ||
|
5a805463bb | ||
|
e9d9aa36cb | ||
|
968b109b0c | ||
|
09baea5320 | ||
|
cecbdc9184 | ||
|
df6825de08 | ||
|
1e297a1ea5 | ||
|
399965ddbb | ||
|
9f41a0eabb | ||
|
d52b520c98 | ||
|
b7fdb98b62 | ||
|
d8309461f3 | ||
|
3a40bfd121 | ||
|
ffc6b7e448 | ||
|
7553def2b2 | ||
|
b3fda97bf2 | ||
|
dedaf98c50 | ||
|
2ec73a9383 | ||
|
e1b2630138 | ||
|
ab4dc8fd4e | ||
|
8479fe4a20 | ||
|
a5e0022fb5 | ||
|
4b484a0396 | ||
|
2db437c622 | ||
|
dd7bd0b489 | ||
|
2ff1bff4a9 | ||
|
28332c9092 | ||
|
c29f11407e | ||
|
2fb3a03cdc | ||
|
4a23002172 | ||
|
d386bf5035 | ||
|
4f905d88d7 | ||
|
ca9e399ca6 | ||
|
0d4bd13579 | ||
|
7c7cfa7e24 | ||
|
671be81a54 | ||
|
094ce99166 | ||
|
8ca25bbeba | ||
|
d50626e789 | ||
|
c7d66f5332 | ||
|
418c9c2a63 | ||
|
937f732fd4 | ||
|
4dc8fc2699 | ||
|
8395b2d95b | ||
|
8e765e9fb7 | ||
|
fdabed55cb | ||
|
f2cdd949ca | ||
|
230dc8b14a | ||
|
122e2482de | ||
|
b6bdf0854d | ||
|
53fcfa72b3 | ||
|
a22fa45807 | ||
|
0b2a736c1c | ||
|
62741c3c4f | ||
|
8adca39e7e | ||
|
8536c0c035 | ||
|
825df1ee9b | ||
|
d85cd961ab | ||
|
e460fb3ad9 | ||
|
a0bbc40e74 | ||
|
e219718ef0 | ||
|
3f286bc2c3 | ||
|
2db95e5c94 | ||
|
66330fb6e7 | ||
|
dcecb81a71 | ||
|
21b3e9d01f | ||
|
59dc6e99e8 | ||
|
88a994b294 | ||
|
311b70eed0 | ||
|
40f6908565 | ||
|
7aa481198f | ||
|
ee5ab71e8a | ||
|
54fdb42e87 | ||
|
25b7f3f79f | ||
|
d5bf2709de | ||
|
4a4058aa4e | ||
|
e355f1ab42 | ||
|
030d637073 | ||
|
a248f5eab4 | ||
|
4bbb526d33 | ||
|
f3c2670d20 | ||
|
791a9fe9c7 | ||
|
8fe6a2aef4 | ||
|
f8daac618f | ||
|
fc30ec1560 | ||
|
d657f1acba | ||
|
21f604826f | ||
|
061fad90bb | ||
|
b82b79decf | ||
|
182a74c91e | ||
|
5e211588b4 | ||
|
d0cca4d423 | ||
|
6a7e79794c | ||
|
b01b06c918 | ||
|
f81008c150 | ||
|
93a31c3843 | ||
|
61e6af94b3 | ||
|
225f46bc0d | ||
|
4101310b89 | ||
|
fb0ec742f5 | ||
|
d5c91135bb | ||
|
732c1147a3 | ||
|
0c433ac71f | ||
|
fea5730a29 | ||
|
85a4178549 | ||
|
c47d7e187d | ||
|
8f89e4a8bc | ||
|
159f1b5a1a | ||
|
e5a3f5df2b | ||
|
237b36e2e2 | ||
|
10f4fb86b5 | ||
|
51c9f1a03f | ||
|
b44046d478 | ||
|
53bab95ef2 | ||
|
66f0d00e25 | ||
|
607842b668 | ||
|
1b33d36870 | ||
|
590724ab46 | ||
|
c6f4506308 | ||
|
c720330969 | ||
|
d369f529c8 | ||
|
a44048ae5d | ||
|
ea453fbcd3 | ||
|
1380f48c32 | ||
|
307953c699 | ||
|
a5e0baeb4d | ||
|
3013da5ed3 | ||
|
12be6b4524 | ||
|
9d3ad3bdf4 | ||
|
3b83f6bd86 | ||
|
98213b5513 | ||
|
1696ad7fe8 | ||
|
a641cfddfc | ||
|
8457d0c410 | ||
|
f447aa47c0 | ||
|
ed886b73d8 | ||
|
6d8fc3f5fe | ||
|
0507cb9f01 | ||
|
f2f9bcc6b8 | ||
|
716199d236 | ||
|
106618c7b6 | ||
|
c38fefa2d8 | ||
|
ba3353e992 | ||
|
7093625be4 | ||
|
04f25475fd | ||
|
5d6310e056 | ||
|
3acfd19356 | ||
|
dfa04aa68a | ||
|
6bccdccd53 | ||
|
4cc85b293f | ||
|
71c34bc6a5 | ||
|
937d7f0741 | ||
|
3a00920dc4 | ||
|
55db3a0f9a | ||
|
cdca8b6a6a | ||
|
539ee76230 | ||
|
6096033a1b | ||
|
9524b9c1d4 | ||
|
2b3ed35d83 | ||
|
1e4756ca28 | ||
|
5a96a2ced5 | ||
|
bebb22abec | ||
|
80255167fa | ||
|
053a473a06 | ||
|
f20a992b82 | ||
|
ffbc312d2c | ||
|
0827620882 | ||
|
475f8171e2 | ||
|
2f57371875 | ||
|
51b8b27421 | ||
|
71ea6c43fa | ||
|
2337c343fd | ||
|
41a3325b68 | ||
|
4a7e876057 | ||
|
3dd4724bc2 | ||
|
b17747a8e8 | ||
|
73a9a13968 | ||
|
c03fe36533 | ||
|
fb9661c1c1 | ||
|
397f7634f2 | ||
|
742d660a4a | ||
|
bea53994c4 | ||
|
2b48b18442 | ||
|
221afa5d4e | ||
|
17ce68f9a7 | ||
|
b7c17dccea | ||
|
74e79c5618 | ||
|
93b73600c7 | ||
|
88d19089e3 | ||
|
52d7b931e4 | ||
|
3b33196df5 | ||
|
357e41292e | ||
|
3573cf2f37 | ||
|
6895cdb12c | ||
|
7035dc1698 | ||
|
4578ecf94f | ||
|
c7e6671d57 | ||
|
215ee0a48c | ||
|
86002daa29 | ||
|
e9a6a5d34c | ||
|
5401dceffe | ||
|
8d32916976 | ||
|
d079b8c46b | ||
|
0e54d0017c | ||
|
2cc36b854c | ||
|
c005fc5336 | ||
|
1fe4320bde | ||
|
2d5649ea6d | ||
|
b96025f822 | ||
|
efe29e89db | ||
|
a817448370 | ||
|
1555bc3620 | ||
|
757c85ceb9 | ||
|
5f48c8853f | ||
|
1cf93325b3 | ||
|
f93f8111d5 | ||
|
0640c59f57 | ||
|
946c3e61e6 | ||
|
d482cb8da5 | ||
|
6893c6dac7 | ||
|
6a5526f144 | ||
|
a3558f54e3 | ||
|
84b1b4a2cc | ||
|
e302127c1f | ||
|
e04d9bc090 | ||
|
da75347810 | ||
|
ad4440aa7c | ||
|
bb9e61add3 | ||
|
c4488ebfec | ||
|
dd01ba884c | ||
|
a32d65c080 | ||
|
2c6339ba1a | ||
|
82ccd9ac9d | ||
|
8808be68e4 | ||
|
2671827776 | ||
|
878929c330 | ||
|
4c77836916 | ||
|
d02e479aed | ||
|
cfc201a26f | ||
|
4425cb1b05 | ||
|
f82965fed0 | ||
|
e4ae7114b9 | ||
|
c4faf505c4 | ||
|
b619cc5acd | ||
|
7426eefe41 | ||
|
bf1fbf6fff | ||
|
d4454ac493 | ||
|
f66a2ae2c7 | ||
|
6f8c5b4c64 | ||
|
df50779905 | ||
|
bc83917217 | ||
|
c2cba173b8 | ||
|
85b7b35f8b | ||
|
44f89c6fc9 | ||
|
bdb11597fe | ||
|
5ccb3c9a2b | ||
|
c45141326d | ||
|
286b14cb9f | ||
|
e2cda0ff1e | ||
|
bdcc5acf14 | ||
|
06e3ca8838 | ||
|
0753c3b081 | ||
|
72e63da73a | ||
|
586d8127cb | ||
|
60a640e1ba | ||
|
c6b928993d | ||
|
0a1cab6f38 | ||
|
bcf02d10f3 | ||
|
c19caef34e | ||
|
4601e60cfb | ||
|
8c5f1bece3 | ||
|
742bc6f104 | ||
|
462ec4380f | ||
|
4aba833779 | ||
|
56e4ef7dba | ||
|
374f7744a5 | ||
|
e3604e11bf | ||
|
91074f4e31 | ||
|
dceae397b4 | ||
|
c5bc384f34 | ||
|
34af7e029f | ||
|
c2fef5d238 | ||
|
3d83e86f55 | ||
|
4d346a8d13 | ||
|
f4d193766c | ||
|
b8229a6cf3 | ||
|
a6d8acf706 | ||
|
3fbf4cfdeb | ||
|
057a33e8bf | ||
|
bf15696363 | ||
|
a97e83d961 | ||
|
847b61e6fc | ||
|
dc37e89f26 | ||
|
5e37439010 | ||
|
fa580fb3e7 | ||
|
0de10e0124 | ||
|
f5fbf8a351 | ||
|
ca6119857d | ||
|
9c80617dd2 | ||
|
bec69381ed | ||
|
f0c5c4d695 | ||
|
91cdece3bd | ||
|
7e7827ae0e | ||
|
c54ca1c6fe | ||
|
2f93daa0ed | ||
|
b746aa9ce1 | ||
|
ffd29692ea | ||
|
4639241b30 | ||
|
798bb751dc | ||
|
d83c96d392 | ||
|
3277cf682a | ||
|
e4c4f1a75d | ||
|
759dc4cdc2 | ||
|
61e236f594 | ||
|
ac0cf3dc3c | ||
|
17369bf41a | ||
|
a29b90fd80 | ||
|
5bc07ee22f | ||
|
d40b350e7c | ||
|
d829e69d30 | ||
|
3712785d80 | ||
|
1e93d9ab8f | ||
|
ce02d6dd79 | ||
|
1eaaa4cc07 | ||
|
06d495b3a3 | ||
|
9617ae9948 | ||
|
6da081660e | ||
|
b2dfe3d40e | ||
|
d91f5ddd2c | ||
|
7ef239b2b2 | ||
|
043272ea38 | ||
|
fd46d793b2 | ||
|
b49e55b76a | ||
|
288eccd3f4 | ||
|
717b065de1 | ||
|
d12f243130 | ||
|
fbb850778b | ||
|
2be7a30579 | ||
|
8cebde68d5 | ||
|
44397bfc09 | ||
|
42afac8f8a | ||
|
661076be05 | ||
|
84e5fa3db3 | ||
|
29df624abe | ||
|
6eb4d9162f | ||
|
9056238f57 | ||
|
d2cf7b43a8 | ||
|
ea2c0a8c10 | ||
|
09e4749aeb | ||
|
ae159ba532 | ||
|
43b41d9fcb | ||
|
b2fef109a5 | ||
|
3b6b453f43 | ||
|
d4c23d96f2 | ||
|
279a6efa41 | ||
|
ea1fd5fde9 | ||
|
461cd3f4f5 | ||
|
b4eb831c66 | ||
|
fb0c469ea2 | ||
|
5df459e867 | ||
|
89723fb141 | ||
|
f716262886 | ||
|
274768163b | ||
|
340e652f5f | ||
|
c988578748 | ||
|
31a3f23e2e | ||
|
75b584cd8c | ||
|
b91f6943b3 | ||
|
180b172f53 | ||
|
19e5a1a214 | ||
|
84c10634f8 | ||
|
65a687441e | ||
|
38fb51bb1c | ||
|
335d69168c | ||
|
0326363bb9 | ||
|
9f8fa7d70a | ||
|
c2beaa30e3 | ||
|
50ffebbf34 | ||
|
68386ffaec | ||
|
757cb786ed | ||
|
7c2fc8c06e | ||
|
4f035ed607 | ||
|
31d24bd5c0 | ||
|
d26a105326 | ||
|
9a04312cd8 | ||
|
f26a136c43 | ||
|
1f5ecb2436 | ||
|
ecb31a6d1c | ||
|
1ab02400c1 | ||
|
0c77357774 | ||
|
a49cf8e291 | ||
|
0e3f71624a | ||
|
771a5b7f25 | ||
|
20e8a6920b | ||
|
2e9069c904 | ||
|
9fe5a76e5d | ||
|
47ee0f1816 | ||
|
199d671600 | ||
|
137170defe | ||
|
5d637558c3 | ||
|
b84bc60672 | ||
|
90784d1dc5 | ||
|
d97c76b70e | ||
|
2726d07fe6 | ||
|
34d7614195 | ||
|
ea07e19e63 | ||
|
81cdebde45 | ||
|
f24e0158af | ||
|
a2fdd78abc | ||
|
767af90b33 | ||
|
1f91f0e1ad | ||
|
26925154db | ||
|
e5fb940781 | ||
|
159a942425 | ||
|
223f14c2e8 | ||
|
0a03d50287 | ||
|
fc4dd74f99 | ||
|
be07b97dc3 | ||
|
f1cc987f22 | ||
|
573c0b5952 | ||
|
f1fdabeadb | ||
|
c5f49cd61f | ||
|
a4f5eabb70 | ||
|
3e0a5d2c24 | ||
|
128963876f | ||
|
6bc30b18c7 | ||
|
d2c9e63211 | ||
|
437fc56c6c | ||
|
19e0d43dee | ||
|
4150a9b3bd | ||
|
d4ad7eb23f | ||
|
c8b871fd65 | ||
|
673ab50447 | ||
|
d84e8a3464 | ||
|
cf1289a683 | ||
|
a16c4b6441 | ||
|
099bcfbb8b | ||
|
187b8cf455 | ||
|
aa5638ca24 | ||
|
5f10cb5115 | ||
|
dfd27fa02c | ||
|
359c248233 | ||
|
9b650163e8 | ||
|
2d9aafa231 | ||
|
153787a6a1 | ||
|
f40c266f3a | ||
|
22c72ad7ec | ||
|
4e2a92bb1d | ||
|
09df53adab | ||
|
1007c1ee57 | ||
|
ad656b925f | ||
|
cb886c4cda | ||
|
5646c7a1b0 | ||
|
6db9d57c46 | ||
|
f60cdc2608 | ||
|
a13fbd9dd4 | ||
|
daf8e58ce0 | ||
|
581a919044 | ||
|
bec4582d5c | ||
|
e73c55f25e | ||
|
6a88c48f3f | ||
|
f26270ea93 | ||
|
13b22ae2b1 | ||
|
6847751043 | ||
|
f93c8bd7f9 | ||
|
0e15b47814 | ||
|
3c024f9bb5 | ||
|
15f39f9b26 | ||
|
e9878a991d | ||
|
9cc102e562 | ||
|
830d2af01e | ||
|
12a4226f9d | ||
|
dc3dc06108 | ||
|
6d9ce1c630 | ||
|
fdef535e42 | ||
|
6a5e495beb | ||
|
d615bcda76 | ||
|
403699de57 | ||
|
53d6c63d12 | ||
|
dbb17155c3 | ||
|
f02948c343 | ||
|
e037cfc467 | ||
|
0b2f6f9993 | ||
|
1b3a65c728 | ||
|
680a3539fe | ||
|
2d6ccfa12e | ||
|
63630162da | ||
|
f518ebbf85 | ||
|
2284034acb | ||
|
e102da4503 | ||
|
0ef9708643 | ||
|
c6dbab229d | ||
|
9eb2ba58f6 | ||
|
f572ecc091 | ||
|
ee48c3ac78 | ||
|
d31680e91f | ||
|
d2e10a651e | ||
|
99daaa08d5 | ||
|
1dcb93c84c | ||
|
7e7fdc7f68 | ||
|
6a600204de | ||
|
1156f87031 | ||
|
263d1cb2d7 | ||
|
2d21e706f2 | ||
|
027c2640fc | ||
|
4d5a8cdfa8 | ||
|
a5d69d9ea4 | ||
|
6a8152be4f | ||
|
6fa379fbd4 | ||
|
b588b6e126 | ||
|
afe01820e5 | ||
|
7c7ab64e15 | ||
|
b193e2d715 | ||
|
3db2bbc939 | ||
|
fc7b5f1484 | ||
|
5b0e31c37f | ||
|
940af44802 | ||
|
72a941e648 | ||
|
90231ef84d | ||
|
7f58d4b0e3 | ||
|
de78d5b485 | ||
|
ee304249fb | ||
|
c508c1e414 | ||
|
90806206f5 | ||
|
8d150c2069 | ||
|
2cf9c787e7 | ||
|
be9b75eb03 | ||
|
cff734a76c | ||
|
a90cc5f160 | ||
|
64b43be9cb | ||
|
372942d5e3 | ||
|
eff9389648 | ||
|
967f9d8842 | ||
|
adefa0d702 | ||
|
1a1c5bd585 | ||
|
0db71cff61 | ||
|
f7d7bcec2d | ||
|
55dae217e3 | ||
|
de0877b2d7 | ||
|
dd652296dc | ||
|
a7e184247a | ||
|
c1395df89d | ||
|
47fa27b085 | ||
|
c2a62c6796 | ||
|
7de1419606 | ||
|
31a99eab05 | ||
|
fa3deeffda | ||
|
3a3846bdac | ||
|
a216d59098 | ||
|
69d1d7ec1e | ||
|
7f5392389e | ||
|
dcb9534e77 | ||
|
b7bc950719 | ||
|
6d659322b5 | ||
|
8fb7cc8469 | ||
|
dd35c097c8 | ||
|
b0077f815d | ||
|
df9ccf3dff | ||
|
907ae94b6b | ||
|
76895be395 | ||
|
2a80097612 | ||
|
e3cad1c2b3 | ||
|
5b3f6900b0 | ||
|
ce1247e001 | ||
|
8a91045f0d | ||
|
16cc8373b8 | ||
|
2708b98d20 | ||
|
d4cb85a9fd | ||
|
bc3131c826 | ||
|
c4d68b7e66 | ||
|
0c4e536fd9 | ||
|
7791216be6 | ||
|
b63bf7287e | ||
|
3d389a8365 | ||
|
f624963458 | ||
|
75f1fae1d6 | ||
|
52f433d751 | ||
|
8b6db431d6 | ||
|
1bacb6c1df | ||
|
af2b50d2c0 | ||
|
368f890ff1 | ||
|
fd60748301 | ||
|
8845451039 | ||
|
52c8fad43a | ||
|
9d02438348 | ||
|
97bd1564c4 | ||
|
76c6a0eb70 | ||
|
82aab9a984 | ||
|
fd19dcebf6 | ||
|
9b57063572 | ||
|
0b338e4cf3 | ||
|
e4c8fb0de4 | ||
|
27c904ff0b | ||
|
fc8a4c9d19 | ||
|
f2cb4fa0a0 | ||
|
6a1cc038ab | ||
|
8eb6824671 | ||
|
8f07c057c0 | ||
|
16ff84d4dc | ||
|
b4652b3fc3 | ||
|
62ea9d7983 | ||
|
5f198df4e0 | ||
|
376ef7c25a | ||
|
ca1b581cc7 | ||
|
b48e67e1aa | ||
|
c21da0a19b | ||
|
a783caa798 | ||
|
62e706e512 | ||
|
9c7b28fd6d | ||
|
4aa6c6d606 | ||
|
c422656f75 | ||
|
e9dd75dd00 | ||
|
3afbf3283d | ||
|
f1b1f2f28e | ||
|
1826a50b4b | ||
|
4852b1234c | ||
|
283116e5ac | ||
|
b90f964abf | ||
|
86b3db5155 | ||
|
c0f58be85f | ||
|
566b4a4ce4 | ||
|
6feef1debf | ||
|
90c6adffd3 | ||
|
dc9f331754 | ||
|
4c4c3c70d5 | ||
|
ff838600e0 | ||
|
18eaf954a1 | ||
|
ac0886249d | ||
|
e897970784 | ||
|
0239707d00 | ||
|
75860df0ef | ||
|
68d41e0e14 | ||
|
e2dcc0a797 | ||
|
566ac2e940 | ||
|
821d2c387c | ||
|
eacec2c899 | ||
|
dc039b02f9 | ||
|
361dcb75d1 | ||
|
2671fd32d3 | ||
|
dd039b30c4 | ||
|
743c2ca43f | ||
|
4539a53fe0 | ||
|
330a1134b5 | ||
|
a1dd92da6f | ||
|
ca5e86d80b | ||
|
9a6d121594 | ||
|
056ef0b0ed | ||
|
5aa7578356 | ||
|
df29a0dc05 | ||
|
230ec1ad5f | ||
|
278de0c1f9 | ||
|
08477ce2c9 | ||
|
26bc189c51 | ||
|
eeaab84500 | ||
|
dbec56401b | ||
|
3a6358ce77 | ||
|
6b75a7e6da | ||
|
c065ffbbea | ||
|
53207e40e9 | ||
|
a5643411f3 | ||
|
5cf9a82a18 | ||
|
b7e474e8ef | ||
|
e2dd68f7cc | ||
|
d6ae0b1cfa | ||
|
579de2f392 | ||
|
24ac8eb746 | ||
|
ca5126e994 | ||
|
3288ede608 | ||
|
ae03baa50a | ||
|
b5bade108b | ||
|
e21e58e954 | ||
|
2079e1f8ad | ||
|
0f75ca3b8e | ||
|
0301971980 | ||
|
f9b30553b8 | ||
|
c6e0abf7b6 | ||
|
908783bcb0 | ||
|
2623781dac | ||
|
ba38e011eb | ||
|
7040379c76 | ||
|
58fde11e93 | ||
|
9cc91b533b | ||
|
a24642ba87 | ||
|
56028cd7ce | ||
|
4097dff43e | ||
|
fff5ab6013 | ||
|
e582e978a8 | ||
|
d0baf0f254 | ||
|
91f0a5092b | ||
|
1cb0b4cb20 | ||
|
8afe71337f | ||
|
cf1962ebaf | ||
|
9084e1aa50 | ||
|
9d36091075 | ||
|
c9a42ba45b | ||
|
43c17a95f5 | ||
|
25b0e40b9c | ||
|
c903ffcb22 | ||
|
fcd9b949aa | ||
|
53fc691139 | ||
|
8a019132d7 | ||
|
9cdb8cf15f | ||
|
3dbd1bb898 | ||
|
44f35024f8 | ||
|
d115b48ef1 | ||
|
a6e47fa7e8 | ||
|
63161e1cfa | ||
|
bd4831d0d6 | ||
|
002b313322 | ||
|
cd02aa3922 | ||
|
c956784f99 | ||
|
70214478c6 | ||
|
6231759d5a | ||
|
8e48b88e60 | ||
|
4d8d6d12fb | ||
|
27da4a90cf | ||
|
daa3e73e0d | ||
|
f34fcb32c3 | ||
|
9b7fe66403 | ||
|
109d7f0a2f | ||
|
f2e225a6cf | ||
|
1b7ae587cc | ||
|
06e32ddf9a | ||
|
3122bf25ce | ||
|
c55a17bcea | ||
|
9357cb6647 | ||
|
17fc44d993 | ||
|
09bdc9a2bd | ||
|
3afb3b1a5c | ||
|
867ab3b358 | ||
|
00db70764d | ||
|
94da3526d7 | ||
|
b214aae757 | ||
|
895bab5e26 | ||
|
19d8ebb4a6 | ||
|
fa63687cd6 | ||
|
b3e1860b6a | ||
|
4531433d60 | ||
|
43637ea7ae | ||
|
c672438faa | ||
|
99067fb611 | ||
|
b7aa8117ec | ||
|
7d5d29af1e | ||
|
f515b56e3f | ||
|
c178347990 | ||
|
dc0868262e | ||
|
403d8a75ed | ||
|
95287f66d6 | ||
|
126f54ddd3 | ||
|
6c1b5359cf | ||
|
14194c90d5 | ||
|
5ae814c616 | ||
|
7cd07ebd39 | ||
|
8f7ebbbb26 | ||
|
6ae673d4e1 | ||
|
3bcdcdd9c8 | ||
|
0d7bc2164f | ||
|
94b6c27859 | ||
|
8805e24618 | ||
|
de6464a581 | ||
|
b319279118 | ||
|
c4c89a9650 | ||
|
05717e63d1 | ||
|
f738e4d84e | ||
|
66f5a9acfa | ||
|
79454cab17 | ||
|
975acaadab | ||
|
9f704e7f75 | ||
|
e685fd55a8 | ||
|
f8e3818dea | ||
|
73c8112613 | ||
|
72cd1342fb | ||
|
7d60b9a4b5 | ||
|
101be80d7e | ||
|
91a470d2aa | ||
|
37a83eeab9 | ||
|
00a8482762 | ||
|
a98cdf6005 | ||
|
efca89a224 | ||
|
0521d053ce | ||
|
2be91dbfe7 | ||
|
7746786d71 | ||
|
d24618b5ec | ||
|
89c68b6487 | ||
|
7558fc3d60 | ||
|
e2d54225da | ||
|
6ba9442940 | ||
|
7ccdb4c71b | ||
|
642231da51 | ||
|
dbcb01b10f | ||
|
1b9f2e1a7c | ||
|
04f0905515 | ||
|
05f2694b1d | ||
|
e5794bdc8c | ||
|
a2512a4ad8 | ||
|
3540000c7c | ||
|
5edc4a4c5c | ||
|
aff11fcfb0 | ||
|
52c5300328 | ||
|
218e544bbe | ||
|
71f1e67289 | ||
|
a19f57c6d6 | ||
|
343966a2ae | ||
|
4547427ac3 | ||
|
fd21c9f406 | ||
|
679cbde646 | ||
|
47dfe41264 | ||
|
bd96726c82 | ||
|
3b31cb1170 | ||
|
5f6e51f913 | ||
|
7f9af7b6e4 | ||
|
28cb3fe34d | ||
|
22c867f11d | ||
|
d5fe01d61d | ||
|
655d4f4fb9 | ||
|
8987593f11 | ||
|
e5976fab60 | ||
|
291af7b417 | ||
|
848fad9f06 | ||
|
e9a4d522b7 | ||
|
831d4bb41f | ||
|
5b019d5e85 | ||
|
99ffd7ca72 | ||
|
d865de0628 | ||
|
89f5bad863 | ||
|
72fe14e78f | ||
|
59b8b18268 | ||
|
3940b8724b | ||
|
bc6a08308e | ||
|
3de72bd99b | ||
|
81824aeb94 | ||
|
35efa386b9 | ||
|
1ddc8e9d10 | ||
|
65208e0a89 | ||
|
42122ed06d | ||
|
65f442aa67 | ||
|
7756c810b7 | ||
|
74b7519545 | ||
|
5a24b517c5 | ||
|
05f13ed780 | ||
|
0b99e58e6d | ||
|
f5853f2040 | ||
|
335d38bd5d | ||
|
c259a97a74 | ||
|
246c001f84 | ||
|
490092afee | ||
|
827cca6273 | ||
|
bca25d8539 | ||
|
ddd268cbb9 | ||
|
400688e94d | ||
|
cba829b17b | ||
|
31d7cd175f | ||
|
2af253ae3e | ||
|
8bf9cacfdd | ||
|
fa5d55a4b8 | ||
|
d2765d0ca5 | ||
|
15b10eea9e | ||
|
97044a5466 | ||
|
3abf373e59 | ||
|
52143e21b6 | ||
|
ac0ec8354d | ||
|
44132f76d5 | ||
|
d59fbb87f5 | ||
|
f9edf3474b | ||
|
86a9f5b4de | ||
|
06ee557d4b | ||
|
020f3db87b | ||
|
f93b437207 | ||
|
f2375237a8 | ||
|
7171faf620 | ||
|
4b937b34b8 | ||
|
7ce2e155f8 | ||
|
706b51ca95 | ||
|
91148c89a4 | ||
|
a1aa765677 | ||
|
3a0756ca25 | ||
|
c3e097e4be | ||
|
45049fb0a5 | ||
|
19317dc9fd | ||
|
0bf93d83f0 | ||
|
faab978e3b | ||
|
99698bd712 | ||
|
3dfedbe8c2 | ||
|
e4b2599300 | ||
|
d9c5c9b110 | ||
|
5ceae3e166 | ||
|
6571b6a0c8 | ||
|
2c5062bebe | ||
|
d18277f17f | ||
|
1731bd0b10 | ||
|
fade9afe97 | ||
|
804488abf0 | ||
|
ca3dbbb80a | ||
|
0c0df14a0a | ||
|
5c883cc054 | ||
|
7d2cb232b3 | ||
|
d35c997b10 | ||
|
19a8636379 | ||
|
791172abd7 | ||
|
f37755540b | ||
|
7a1e1ccb78 | ||
|
4879e0db00 | ||
|
a51a848569 | ||
|
e1192befcf | ||
|
29ea7360fa | ||
|
76a1c16b9f | ||
|
ad090890bb | ||
|
18df28b325 | ||
|
249352ff67 | ||
|
5efb5b33e7 | ||
|
2d549b3300 | ||
|
17a279171e | ||
|
f99a6e75b7 | ||
|
5999884be9 | ||
|
d07501aaae | ||
|
b66d1fe7d1 | ||
|
a10aaae7c4 | ||
|
c7d8f5fb68 | ||
|
a5d56f4137 | ||
|
9b3ac1fcaf | ||
|
48bfb3ef36 | ||
|
9341e47bd5 | ||
|
ce50248cf1 | ||
|
e40d9b9d22 | ||
|
0638866838 | ||
|
ced352f04f | ||
|
c70288dd1e | ||
|
29df880eff | ||
|
a4d2155fff | ||
|
a290b73d6d | ||
|
34b360509f | ||
|
7c6a9f2e60 | ||
|
f862ded8d9 | ||
|
7a873d6728 | ||
|
56bd87652d | ||
|
256da7eba0 | ||
|
6baaf55b06 | ||
|
5c5e1d6faa | ||
|
fea47d1609 | ||
|
9a7e232da5 | ||
|
4cd1ba675c | ||
|
038ad92f00 | ||
|
bf4d4d9266 | ||
|
64ae24facd | ||
|
12dc0531e0 | ||
|
81b00d3ac7 | ||
|
127ceefa02 | ||
|
db4e8ce50d | ||
|
21bd04092c | ||
|
c3087cae5e | ||
|
81d3639570 | ||
|
0c4b7d1616 | ||
|
021bff58e8 | ||
|
ff0f5b2fe3 | ||
|
ec22a6600d | ||
|
67cf6f46d8 | ||
|
73eaeb7c7b | ||
|
70184c4843 | ||
|
b2d8310b25 | ||
|
c5028eaaa6 | ||
|
d041ca1742 | ||
|
4e04accf3a | ||
|
13edc4c51d | ||
|
088890d091 | ||
|
97bec7a0e2 | ||
|
1f5a3f67db | ||
|
0b8b79139a | ||
|
1e5dcfbab7 | ||
|
df66539da3 | ||
|
b8fd2c741b | ||
|
db652ec391 | ||
|
51abf427ef | ||
|
67608b15c5 | ||
|
6a235c8c40 | ||
|
56f38abebc | ||
|
37998366c2 | ||
|
325d826e0c | ||
|
1cf87f6baf | ||
|
934bbde5aa | ||
|
eafb156c9a | ||
|
b5f09d297d | ||
|
ff81aba162 | ||
|
0d86557149 | ||
|
22e195be7b | ||
|
a674afd059 | ||
|
f6a078f683 | ||
|
b004ef791b | ||
|
f62a31a05c | ||
|
dbf79c29f5 | ||
|
9715414e7a | ||
|
25a7a246ba | ||
|
338c679287 | ||
|
56bf115511 | ||
|
da87972ca4 | ||
|
abfd018a46 | ||
|
b9b0dd906f | ||
|
f36d1aca7a | ||
|
6c12feac62 | ||
|
41a8367f21 | ||
|
b6b18b4a3b | ||
|
9cd2bdc49f | ||
|
df6238ba6c | ||
|
aeeb56839d | ||
|
5dfcc5125f | ||
|
0146e72157 | ||
|
78c2ffb51c | ||
|
2d08b7112a | ||
|
d90a77be42 | ||
|
6da48391a5 | ||
|
1f97f714c1 | ||
|
2c14b0313f | ||
|
385d0a9ebe | ||
|
6b5c92ea99 | ||
|
502910205b | ||
|
b7e77c1bcd | ||
|
5e219bdd7e | ||
|
0131b83288 | ||
|
c96ed0564d | ||
|
58f98125e0 | ||
|
1184ddd01b | ||
|
bcdc7273aa | ||
|
369252503c | ||
|
06efcf3289 | ||
|
30fe4e7991 | ||
|
7fdceaf5bb | ||
|
575ece31ab | ||
|
13f8354513 | ||
|
6c46e18856 | ||
|
48f269db43 | ||
|
63c6a497c2 | ||
|
e2512168a4 | ||
|
91f89815f2 | ||
|
db2b93ea24 | ||
|
cd550a6fbc | ||
|
0e2a809eeb | ||
|
ae66dc9111 | ||
|
19fabe456b | ||
|
8eb58f9799 | ||
|
a8d7cb9549 | ||
|
4fd12f1b19 | ||
|
87477278b8 | ||
|
999a8fc6c0 | ||
|
7e0abe0401 | ||
|
94a81dbb8d | ||
|
c4f7c5a98b | ||
|
ac7a4c9d5c | ||
|
fd426df7c2 | ||
|
31c4277689 | ||
|
4774c17ae6 | ||
|
5bbd76db6a | ||
|
a3db731826 | ||
|
8358488fed | ||
|
bcb411caed | ||
|
fcbdb8cd03 | ||
|
7d2cb1529a | ||
|
fb0919beea | ||
|
0ed2d1a8f7 | ||
|
83f34a98c5 | ||
|
d0fdbfb3c0 | ||
|
9de1c098c0 | ||
|
c9fb63603e | ||
|
93ad401c7d | ||
|
76fa9b64ec | ||
|
ad04197287 | ||
|
5e554bb4a2 | ||
|
358e6978a4 | ||
|
f9fb6ed02a | ||
|
f0637c7dd7 | ||
|
5557c57252 | ||
|
63524be319 | ||
|
5437dd55e8 | ||
|
985f55fd6b | ||
|
927886334b | ||
|
56df38d999 | ||
|
911c5deeb0 | ||
|
bcd07f1e47 | ||
|
bf9f83f13a | ||
|
7591326959 | ||
|
d95f6175f0 | ||
|
6e70c7f57a | ||
|
a7c6b3d445 | ||
|
36ad810d01 | ||
|
9f80b55d46 | ||
|
d42fda388a | ||
|
4d49280012 | ||
|
c26c4c9daa | ||
|
1781a4de65 | ||
|
07a21fee09 | ||
|
538a48ed99 | ||
|
5a1454d4e2 | ||
|
0e283acc9a | ||
|
9ebe5222fb | ||
|
182b8d7d2f | ||
|
e45810c827 | ||
|
d1d7c6bb79 | ||
|
9615351261 | ||
|
4fed1377aa | ||
|
2b9359dcbb | ||
|
0673f29a9b | ||
|
4c05a9f251 | ||
|
1f655ad61d | ||
|
61f95f437a | ||
|
4582d3f6ef | ||
|
1d6f3de87d | ||
|
eb6b15fcd4 | ||
|
d20e045ce9 | ||
|
36a4a21d57 | ||
|
30e4bb6322 | ||
|
6671972ab7 | ||
|
40e61b5f59 | ||
|
f7ec6ff23e | ||
|
a42feafef2 | ||
|
f8ddf98488 | ||
|
04f7449f12 | ||
|
8df88919e0 | ||
|
41f1858ff7 | ||
|
e40dfbb124 | ||
|
7b17567102 | ||
|
c8e0705632 | ||
|
74ae848008 | ||
|
2fef301055 | ||
|
a4b3e2b72a | ||
|
3b161e83a6 | ||
|
5368c49fa2 | ||
|
061219d348 | ||
|
0156f16b4f | ||
|
276b1d8865 | ||
|
7530079516 | ||
|
9e32ae42ee | ||
|
522a8e6a40 | ||
|
37e58f5fe7 | ||
|
955c774602 | ||
|
e58bfaedcd | ||
|
c4a641cd8e | ||
|
4d4c35cc80 | ||
|
711c8e8596 | ||
|
103c04cc66 | ||
|
f0681039d1 | ||
|
49a8e056f6 | ||
|
efe974b8e9 | ||
|
89e2342b02 | ||
|
ac1ca126d7 | ||
|
2a7bca9cba | ||
|
10cf73fd3f | ||
|
430c4e3eda | ||
|
be8af96311 | ||
|
7d19464ce4 | ||
|
911d23dfe6 | ||
|
e64183e2d9 | ||
|
eba0c58d47 | ||
|
48b86b6642 | ||
|
2fb370982b | ||
|
03776af0b9 | ||
|
907a1239f5 | ||
|
a19be1431e | ||
|
8dcfbc68cb | ||
|
a28d6d2259 | ||
|
ba1541d6b3 | ||
|
70e09ae2aa | ||
|
f1c4cd308b | ||
|
7c167c6720 | ||
|
73baee03a3 | ||
|
2da75bb732 | ||
|
3bd3a69640 | ||
|
1d4d067e83 | ||
|
e5590beaa2 | ||
|
e273cd5954 | ||
|
49a4b2aee3 | ||
|
33817b25c8 | ||
|
e143f129a9 | ||
|
5c7171778b | ||
|
6a41540d0c | ||
|
689e70c474 | ||
|
f5d92f1478 | ||
|
2feada51ee | ||
|
9b5649c6ce | ||
|
871507a94f | ||
|
36d6ee67c9 | ||
|
54df05d951 | ||
|
80d1478924 | ||
|
3036a03aa6 | ||
|
eac74aacde | ||
|
0413c070f7 | ||
|
5b6a1cdd74 | ||
|
ada9a8d0b8 | ||
|
58fe9a6924 | ||
|
ec61c84939 | ||
|
f2dbbe91d0 | ||
|
d90cc05d58 | ||
|
0f0a6ebcc2 | ||
|
b127acf797 | ||
|
cbff6672b4 | ||
|
729ba22e8a | ||
|
6809fd5e31 | ||
|
1ab7a3ef93 | ||
|
a1ff39c9cb | ||
|
a8d8272edf | ||
|
d655e679d9 | ||
|
6016d6b207 | ||
|
fa297d57ec | ||
|
8c711ca594 | ||
|
ba1bf7a542 | ||
|
11dd9ebfd9 | ||
|
515e58de5b | ||
|
f69dcdd90d | ||
|
de79b0f0ec | ||
|
23eabe0da7 | ||
|
502f1a18ae | ||
|
3f9ab71f46 | ||
|
f2385cfb75 | ||
|
40ef5b4c26 | ||
|
4e8dad0435 | ||
|
84884cbc78 | ||
|
73a79dc4a8 | ||
|
4c7e004e7c | ||
|
7c0ed492fe | ||
|
eeb5893a48 | ||
|
8a6fce107f | ||
|
e5ac0fbddc | ||
|
a8997b7cf3 | ||
|
be5333f68a | ||
|
cd58c75265 | ||
|
8fb0a9a126 | ||
|
aa346af7a5 | ||
|
30ec67e84d | ||
|
e5f0f2b66a | ||
|
2558cfdc8c | ||
|
3bc3c32767 | ||
|
9e70259899 | ||
|
9dddd4f5dc | ||
|
bb2358e779 | ||
|
325e4ec9e0 | ||
|
efec3589ad | ||
|
87a5c12b54 | ||
|
fc5f20b442 | ||
|
bc41d0ad9d | ||
|
17e2d726b9 | ||
|
043f5acf0d | ||
|
225b1a5d61 | ||
|
1efb23e26d | ||
|
c3d86065fa | ||
|
e15956c3fe | ||
|
f1855f4cf8 | ||
|
0acbbf8550 | ||
|
40ef5b2d7e | ||
|
1d67aaf141 | ||
|
1a1da4c0d0 | ||
|
146c51502c | ||
|
4cc6159479 | ||
|
3f3fd2585f | ||
|
42075ed23c | ||
|
a7bf1964de | ||
|
47d71a6022 | ||
|
b65e87d17a | ||
|
f5b5ba5905 | ||
|
9d26e2af70 | ||
|
166e062f3b | ||
|
e2cdaa10be | ||
|
5c937a5352 | ||
|
3ef1f049e3 | ||
|
849a13853e | ||
|
88b488857c | ||
|
ebda02a777 | ||
|
227e359e42 | ||
|
6438ea5414 | ||
|
e94d43566a | ||
|
9657fc410e | ||
|
06eb2165ea | ||
|
89086a8003 | ||
|
4592a7d79d | ||
|
09b8fadc70 | ||
|
65f21c659a | ||
|
5cf7f9c461 | ||
|
159bbade2f | ||
|
6eaf1f6128 | ||
|
399cc03a5f | ||
|
bf0850c6c3 | ||
|
22ccb06434 | ||
|
0943d39817 | ||
|
982757244f | ||
|
59373045a8 | ||
|
128f059724 | ||
|
016b49b94d | ||
|
f35b848bf6 | ||
|
ae485e4dd5 | ||
|
8d77b0ffc1 | ||
|
66e2742c94 | ||
|
5f1ae01222 | ||
|
d9deee78e7 | ||
|
84a46d5fb7 | ||
|
04e76bb7d0 | ||
|
f382d51804 | ||
|
bcf1a1c09f | ||
|
d9a76befee | ||
|
52e929b062 | ||
|
8aa5febfb6 | ||
|
b38f213cc0 | ||
|
eacd5c06d4 | ||
|
179921e60d | ||
|
0a7c90dc7f | ||
|
a34aae40df | ||
|
b242ff0b18 | ||
|
90b8bff52c | ||
|
771b22331c | ||
|
fe01b6f1da | ||
|
8981b398b2 | ||
|
785d5704aa | ||
|
aa8f14171a | ||
|
72cb12bc3e | ||
|
62b3f2729e | ||
|
b76838f9bf | ||
|
305782347d | ||
|
cde450312d | ||
|
615fc69a81 | ||
|
aab5a11c91 | ||
|
bad854ab05 | ||
|
85e52ff6ed | ||
|
0f5bab48b9 | ||
|
4c926d8f87 | ||
|
621b1a4add | ||
|
91ed70ef8d | ||
|
89868d1a5a | ||
|
562fd3d1fe | ||
|
7c8dd388d8 | ||
|
b65bd23d08 | ||
|
bad17d01ef | ||
|
d5f5e0ca5a | ||
|
aa70e7e102 | ||
|
9ede3740a8 | ||
|
4658c3d712 | ||
|
90636231e2 | ||
|
9bc365f32a | ||
|
b130aeda29 | ||
|
62a61ef5bc | ||
|
4d21966fc7 | ||
|
66e717ea21 | ||
|
9c85c42b98 | ||
|
957ca17b84 | ||
|
56a3b29f65 | ||
|
1944c7cc2f | ||
|
8eb9001c37 | ||
|
a2705a3651 | ||
|
d07b3550c5 | ||
|
9a795b4df8 | ||
|
bdde8b39c0 | ||
|
2c0267bd25 | ||
|
2ff0e9fce3 | ||
|
a7c99c6862 | ||
|
17913cef32 | ||
|
03143318c1 | ||
|
77f25deaf9 | ||
|
3b54c31cde | ||
|
a6ac39b6b5 | ||
|
2bc85ecae3 | ||
|
1452a01260 | ||
|
1f5d49a873 | ||
|
d7e3883319 | ||
|
8c79600728 | ||
|
3706ae58e4 | ||
|
a632ed7f2d | ||
|
2cfe92d092 | ||
|
851e0fe3a3 | ||
|
70af5dbeaa | ||
|
00d9db0bc9 | ||
|
d8056a1a4b | ||
|
778ea82d56 | ||
|
df5b758c0a | ||
|
8c1772e7c6 | ||
|
88c8292cce | ||
|
ebe8740f72 | ||
|
188dc6ac50 | ||
|
2fbedbfd30 | ||
|
4b2bbfcad9 | ||
|
b21f12b5c0 | ||
|
9b80f0767e | ||
|
97c6e2d27c | ||
|
9493986fac | ||
|
ba84128e6c | ||
|
ec805d6abd | ||
|
4a89a0b245 | ||
|
8273b52898 | ||
|
ec1ae08419 | ||
|
cccb84b71b | ||
|
a2b13d6ff0 | ||
|
37c286144f | ||
|
bd08154028 | ||
|
457768b953 | ||
|
1a56b083dc | ||
|
0a26c2cea5 | ||
|
9ebd0a4558 | ||
|
fb3c178593 | ||
|
6f028961c0 | ||
|
0486865f56 | ||
|
694bdb6ea1 | ||
|
9e747579e1 | ||
|
a77095f7a4 | ||
|
5077072747 | ||
|
b1fcfe2e13 | ||
2220e48c32 | |||
|
7027e97c69 | ||
|
d928cf5015 | ||
|
54721633c8 | ||
|
04ad65761e | ||
|
2b80a0b1e0 | ||
|
5afe52f4a6 | ||
|
cecc830d1d | ||
|
c28cf9bd01 | ||
|
540a3956b3 | ||
|
3bc8b030d9 | ||
|
c719ac44eb | ||
|
9ea6c87f44 | ||
|
683810a452 | ||
|
750d0bee6c | ||
|
6bc00219a6 | ||
|
1721530fd3 | ||
|
bd50675633 | ||
|
acf784f4f6 | ||
|
cd4f307b89 | ||
|
8e98546190 | ||
|
8560a51950 | ||
|
a4b463fc99 | ||
|
28e3645fd0 | ||
|
f28f26ecc7 | ||
|
6210eef3a9 | ||
|
d26fa43e5f | ||
|
865491831d | ||
|
bc2f76e895 | ||
|
ad5c0c0cde | ||
|
4dd44ec9d1 | ||
|
864945a2ac | ||
|
7ce154d597 | ||
|
c0e0b97ae6 | ||
|
94e5567f4b | ||
|
20f1ae62f7 | ||
|
7b33b223b6 | ||
|
f9a488fc67 | ||
|
c5174b1b22 | ||
|
5bd4236090 | ||
|
e4572d348d | ||
|
08a5be7b1f | ||
|
463d555484 | ||
|
3290b71ba8 | ||
|
e9d47d2627 | ||
|
c0d1a90a53 | ||
|
4694135e7d | ||
|
ef54685e2f | ||
|
445f4c44a7 | ||
|
f78e91bad5 | ||
|
d53e400e3d | ||
|
b385ac7ed3 | ||
|
7f2144fee0 | ||
|
a6c2445f47 | ||
|
3c5a2810c7 | ||
|
d347a283ec | ||
|
b263961d50 | ||
|
d444ef5f6b | ||
|
01d37e0835 | ||
|
9caac2439f | ||
|
141ada2fd2 | ||
|
d51e2b712e | ||
|
f0b1a0bbce | ||
|
af22c9acd9 | ||
|
6e5d11ce36 | ||
|
7a2d8017f3 | ||
|
39c0d81ef1 | ||
|
6cb9089604 | ||
|
4e1c5ce424 | ||
|
f88dd57bc7 | ||
|
13e0e52955 | ||
|
cf9d7e99d7 | ||
|
df51c42fb0 | ||
|
1a19f9ef21 | ||
|
64307379ab | ||
|
1c291cddc8 | ||
|
3b016baa87 | ||
|
abb44a7924 | ||
|
639d88d762 | ||
|
3c31867fe6 | ||
|
3af30ba5b6 | ||
|
8f3180031c | ||
|
691ba8cd9f | ||
|
8dfae8835d | ||
|
f2d980594a | ||
|
1346197605 | ||
|
e05b8da533 | ||
|
8f47849887 | ||
|
2e13bcd8bd | ||
|
4512962412 | ||
|
19d3e58d3f | ||
|
19ae0ccada | ||
|
e638a094d8 | ||
|
73a7f4c8da | ||
|
3cb031df99 | ||
|
14bdfbce2f | ||
|
da1442d375 | ||
|
6a46132fd7 | ||
|
ee0a2a0020 | ||
|
32ca7e11ec | ||
|
336165d7ea | ||
|
a86e90e49a | ||
|
23aa8bba64 | ||
|
e2a13f4c35 | ||
|
b71aeda651 | ||
|
c20c538677 | ||
|
b6bdf5421d | ||
|
d309610f44 | ||
|
64c6aefe63 | ||
|
2b199b712f | ||
|
2267b58ed2 | ||
|
7517106633 | ||
|
c92dfd53d9 | ||
|
67dc725385 | ||
|
a12dc45229 | ||
|
b1b9e65b7b | ||
|
84374cdd53 | ||
|
f7e47e620c | ||
|
9e19ab190d | ||
|
3fde9d84bb | ||
|
ad25c7373e | ||
|
8f8b1cc8df | ||
|
2d262cae3b | ||
|
fd13c58250 | ||
|
2dfe5746af | ||
|
2df02ae39e | ||
|
7710e6a1c3 | ||
|
66e4584d2b | ||
|
0a104b57a1 | ||
|
d839260b73 | ||
|
c559678dca | ||
|
a073137b30 | ||
|
a7fc728b7a | ||
|
6fef804fe1 | ||
|
258941646e | ||
|
50568cbe36 | ||
|
d47ecb5d57 | ||
|
3e8089275d | ||
|
6f37de6d29 | ||
|
1284237019 | ||
|
1837e3874c | ||
|
296c526e16 | ||
|
1658c61995 | ||
|
f55eae0a95 | ||
|
e75b2e3f79 | ||
|
86e41b070a | ||
|
c3d25e3a38 | ||
|
9d17ea22d6 | ||
|
05fc0a5163 | ||
|
7fa75f224c | ||
|
167407e192 | ||
|
179511be17 | ||
|
d3f112ac06 | ||
|
33a0820c4b | ||
|
57198f5cb0 | ||
|
ca48a5cc86 | ||
|
f25c51d560 | ||
|
2eeec4d45e | ||
|
889422ecbd | ||
|
7cda8b00bc | ||
|
182f4bf5cc | ||
|
5d393147d9 | ||
|
a7a98ca157 | ||
|
c379808e54 | ||
|
c647066c53 | ||
|
adb1d89693 | ||
|
3c3bf11126 | ||
|
b96bae08af | ||
|
59908a46ed | ||
|
bb34b82d49 | ||
|
761967c8ba | ||
|
8de6f1070d | ||
|
62ba2f1a1f | ||
|
b3db28291f | ||
|
013485b4b0 | ||
|
9072f9cccb | ||
|
f14cc2d702 | ||
|
3955344fa6 | ||
|
d4aa49fd34 | ||
|
6c53bc1ab9 | ||
|
17e9d5e2fb | ||
|
90fc7d0092 | ||
|
f4fe02f798 | ||
|
1eadf1354a | ||
|
a48a2cdb38 | ||
|
aa444080d7 | ||
|
2e53898aa3 | ||
|
3371bb3251 | ||
|
4d4dd4fe4f | ||
|
bbc94179b3 | ||
|
68dff35b23 | ||
|
7d40b380e2 | ||
|
4c67de3ebd | ||
|
5bfa1cda17 | ||
|
5e9b2e7ad2 | ||
|
3a85ce6a97 | ||
|
d7cfa37821 | ||
|
11205154bd | ||
|
474e70fa92 | ||
|
04fa1ecf01 | ||
|
517cc2c88a | ||
|
687d93882a | ||
|
b5898d41aa | ||
|
ea51885361 | ||
|
55fe70ab33 | ||
|
144706a4ab | ||
|
15ad0e2972 | ||
|
1812ebbac8 | ||
|
ece6b3c41c | ||
|
98a9cd41e4 | ||
|
37d904e1a3 | ||
|
5c1c00dccd | ||
|
6f8457381a | ||
|
d69bb8b906 | ||
|
bcf9dc2c30 | ||
|
6ef882efd0 | ||
|
666899bb45 | ||
|
07302dfdfe | ||
|
1278e1e1d3 | ||
|
a0eabf36a8 | ||
|
af244e109c | ||
|
88d7b736e2 | ||
|
bd148897f8 | ||
|
9232961b61 | ||
|
0334515a43 | ||
|
6fb98f2195 | ||
|
665b661a2b | ||
|
d6c7d9abf3 | ||
|
aa19c56933 | ||
|
269dcf1852 | ||
|
d7a6e80227 | ||
|
712f22f6d3 | ||
|
a54061249d | ||
|
d50470712e | ||
|
74fcec1a62 | ||
|
d4e64bcc01 | ||
|
2f2c2ac683 | ||
|
bf1f815ca9 | ||
|
76c987701f | ||
|
dfd447f333 | ||
|
abe3a0454c | ||
|
0006c33e1b | ||
|
72feb1ff8c | ||
|
1ea9a43902 | ||
|
d3b32361ae | ||
|
146669e317 | ||
|
4113b441b0 | ||
|
0d0a6e462e | ||
|
d40731aa76 | ||
|
257b2e7890 | ||
|
03190046fa | ||
|
9a6529d6f7 | ||
|
9154692d63 | ||
|
a8c66ba244 | ||
|
5ee0b7633b | ||
|
b82fdbb278 | ||
|
09b674b5ca | ||
|
c636e14ec9 | ||
|
b8871daa8f | ||
|
253a4c9e02 | ||
|
4bc0126745 | ||
|
0c325feabc | ||
|
61a989612a | ||
|
39f426c789 | ||
|
c2e548ba40 | ||
|
20985d684c | ||
|
7894c8474b | ||
|
7e03213957 | ||
|
85e67e5fa1 | ||
|
66a124d842 | ||
|
8a69d23994 | ||
|
71a21e2ba0 | ||
|
e6d4aab553 | ||
|
d71cbf6f40 | ||
|
f23e6aa14f | ||
|
c8da6ee20c | ||
|
32e860de27 | ||
|
ab60726787 | ||
|
d3590b466a | ||
|
b8545d1643 | ||
|
7da3cb93ed | ||
|
b063f1c5e2 | ||
|
b0188dfaea | ||
|
e45c29235d | ||
|
2c4b0cad74 | ||
|
fd8c4bdb9d | ||
|
f85bf8ce64 | ||
|
d7eec9d23f | ||
|
b4d37a2036 | ||
|
e94d2d0151 | ||
|
a2f7e6bc12 | ||
|
f8504ea55b | ||
|
d7e7ba30ba | ||
|
d61d5ce0f7 | ||
|
57e0eeedc0 | ||
|
295ee803fc | ||
|
a3cdfd7f9e | ||
|
962c2f1a62 | ||
|
056035c273 | ||
|
643de3cbab | ||
|
ec9ca08aa1 | ||
|
350221f48c | ||
|
51971f0454 | ||
|
af03941a11 | ||
|
7bb8a908b9 | ||
|
f769b45c11 | ||
|
bc5cfbd2e9 | ||
|
b8729aa2f2 | ||
|
7bf9669a4e | ||
|
b3bbd15033 | ||
|
6b6058c252 | ||
|
7a8ee11040 | ||
|
9073f0a4d8 | ||
|
e87d780f1f | ||
|
8dd9623c19 | ||
|
0d896764f6 | ||
|
3f01bc51b5 | ||
|
be040ee4e9 | ||
|
9e7b0e0e1e | ||
|
77ab5596b3 | ||
|
ef91275756 | ||
|
a43283e9fc | ||
|
1501e11bca | ||
|
5fd6133327 | ||
|
3190d05377 | ||
|
e561355e8d | ||
|
3400a433f9 | ||
|
cbeda98276 | ||
|
ee20f551f2 | ||
|
7fff782dc2 | ||
|
e7a4df1bed | ||
|
eaebecb8fb | ||
|
4e013c7e0a | ||
|
dc81cdbb0c | ||
|
c29093377f | ||
|
724e59fc09 | ||
|
ccefdd6c3c | ||
|
084487e1d8 | ||
|
5f99660f19 | ||
|
420b1831e3 | ||
|
439564be83 | ||
|
a110e56439 | ||
|
e66f65c93f | ||
|
ab390d0b00 | ||
|
acd4c031c8 | ||
|
31bc7bcf81 | ||
|
c6c9a30506 | ||
|
2cfb4804a5 | ||
|
af356d9db0 | ||
|
291097f3cd | ||
|
3c6e1e7602 | ||
|
4480836e6c | ||
|
9694d8a2ba | ||
|
1592ab4e73 | ||
|
a3a0d8f49a | ||
|
7ac6f1e45a | ||
|
adca9ed616 | ||
|
8817890a05 | ||
|
981407edfc | ||
|
5c247672ad | ||
|
d426831b3f | ||
|
b8d36705ab | ||
|
b58ef5282c | ||
|
5696f79bee | ||
|
829bc6ff28 | ||
|
170708bfb7 | ||
|
033e3e9303 | ||
|
54105ddd08 | ||
|
9ca8c46992 | ||
|
2a14b2590f | ||
|
a572552866 | ||
|
85beae3a98 | ||
|
b86921e313 | ||
|
dd2570e2bd | ||
|
4b39c1039f | ||
|
b54b607c51 | ||
|
d4f2021177 | ||
|
e7d914882a | ||
|
a955e201c1 | ||
|
995c19c71e | ||
|
027a145e1e | ||
|
0fc46cc3bb | ||
|
4f47481202 | ||
|
394694e006 | ||
|
63bfece294 | ||
|
f267368db9 | ||
|
e809962a79 | ||
|
9c968622a1 | ||
|
4924b5cd5e | ||
|
c0c2f41703 | ||
|
03b90c85f6 | ||
|
e8256833e1 | ||
|
e0f320ee1c | ||
|
4806cb1b8b | ||
|
6308dd55aa | ||
|
3007925281 | ||
|
3c234f73df | ||
|
dede9a8d88 | ||
|
ffb3d4edde | ||
|
7453700296 | ||
|
8eb231461c | ||
|
79301a8083 | ||
|
cbfc532c6f | ||
|
a0025ec3ed | ||
|
0c43db3cf8 | ||
|
1999237b68 | ||
|
d04fb32429 | ||
|
39d67b0903 | ||
|
5b244ed9ba | ||
|
78857844ef | ||
|
c66f996aab | ||
|
b202fcc475 | ||
|
096f5dc306 | ||
|
0250506e3f | ||
|
1c1c0098ab | ||
|
e67c6f2572 | ||
|
5e757605ba | ||
|
b08ac9cba1 | ||
|
bc9d81c23b | ||
|
2e58cd94d8 | ||
|
27c7f56829 | ||
|
89c7ea1786 | ||
|
4b1d0ced70 | ||
|
fc333f3af8 | ||
|
2c832e51c2 | ||
|
b9f541c154 | ||
|
10cabc1b73 | ||
|
78c8ec846d | ||
|
8124d7e4f4 | ||
|
1dd6745f8f | ||
|
578c11bf42 | ||
|
47566d249a | ||
|
aaca096258 | ||
|
2c73d01c2a | ||
|
79839b5552 | ||
|
8c99b3193d | ||
|
b2abaadc04 | ||
|
89c4910a81 | ||
|
45c4a390c6 | ||
|
1077e598f1 | ||
|
5936ad2306 | ||
|
8d15806e44 | ||
|
5d2ae9ed05 | ||
|
e303acf65f | ||
|
7365889ba6 | ||
|
7f4eaee1a2 | ||
|
0aca46400f | ||
|
3d671a120d | ||
|
9e0f2f746a | ||
|
7cd3b19017 | ||
|
b91dcec0b8 | ||
|
e676a43add | ||
|
de4f839c08 | ||
|
4eb58d36dd | ||
|
1e4c86df89 | ||
|
c00ce243a7 | ||
|
2fed9ee48d | ||
|
3f4a096332 | ||
|
01438fd3bf | ||
|
53e031eec5 | ||
|
1c7ae83b83 | ||
|
7635c007d7 | ||
|
a1d367c5b0 | ||
|
dcf6b36c73 | ||
|
83d4211ffd | ||
|
9fe69bd96d | ||
|
314dcf7fb6 | ||
|
1f47ce7927 | ||
|
5815cbe40a | ||
|
4f9c47eab5 | ||
|
9636c200ac | ||
|
2e8f2990a2 | ||
|
8ec78160de | ||
|
749aba93fe | ||
|
95f8503e6d | ||
|
109f542e07 | ||
|
2aaecfee9e | ||
|
79303d6883 | ||
|
66b7b48a17 | ||
|
2a8dac0670 | ||
|
a0e0b89289 | ||
|
2608e3f1fc | ||
|
5b563b9afc | ||
|
87a8c4a731 | ||
|
8822ce5a07 | ||
|
bcd23a0faf | ||
|
66a9b40b2a | ||
|
5eea28af45 | ||
|
ab306f9c0e | ||
|
c6b1bfb1c2 | ||
|
ee91b0759e | ||
|
0e2fcaa4a6 | ||
|
3e886cdb6f | ||
|
fa78fae0df | ||
|
2a2485d469 | ||
|
e08d7f3d1d | ||
|
1fe4677a3b | ||
|
049f919de9 | ||
|
1eab703af3 | ||
|
c8b4b5f28a | ||
|
f4c6898ba1 | ||
|
6abfadfc24 | ||
|
d69e604de0 | ||
|
5b960f5c1c | ||
|
c125c7ead6 | ||
|
2083d74d89 | ||
|
a8ae4d9a4b | ||
|
2c6ac7cff2 | ||
|
6e8d0f5282 | ||
|
79d7058ebe | ||
|
cd3f32622b | ||
|
f448b8c892 | ||
|
6177044381 | ||
|
e187e4b61a | ||
|
fb8b3071f9 | ||
|
4296155a58 | ||
|
ffe7f2d66e | ||
|
cb88a6cf2d | ||
|
ca5b2eeecd | ||
|
baad22b35a | ||
|
e39d00956b | ||
|
3c9c3fc926 | ||
|
b84d948611 | ||
|
426b9df9b1 | ||
|
3e29dbb9c3 | ||
|
35ba9efce1 | ||
|
fd4c0d9670 | ||
|
2f26421110 | ||
|
06c721cea1 | ||
|
5d1c32701c | ||
|
ae84b8aadd | ||
|
17bb595eb9 | ||
|
4504caa0cc | ||
|
dd3cc0c5fa | ||
|
b13529e662 | ||
|
7455ddaf90 | ||
|
01bcbdad68 | ||
|
2b95f43520 | ||
|
980ec42289 | ||
|
73c57c71f2 | ||
|
403374bd2d | ||
|
050950d80b | ||
|
270d33babf | ||
|
c2bc79ff11 | ||
|
a762763aa0 | ||
|
96a374618b | ||
|
2ab18ae1da | ||
|
d32418239a | ||
|
dc351df0b8 | ||
|
657d1d762b | ||
|
7397504d81 | ||
|
36c6aba3d7 | ||
|
a6eca31e7d | ||
|
dc0db65ae4 | ||
|
431ecd407e | ||
|
0cb9263e63 | ||
|
44c27a5d38 | ||
|
b49621f0ca | ||
|
4f544de332 | ||
|
7ea2f37b89 | ||
|
3c4311e14f | ||
|
f437ea1e09 | ||
|
02933e1962 | ||
|
61717855c3 | ||
|
9b1659830b | ||
|
4fba6b0551 | ||
|
72f080e74d | ||
|
444de7646d | ||
|
7fc28b2203 | ||
|
d66a7f3651 | ||
|
485b54b514 | ||
|
5c043919e1 | ||
|
62ff842f3f | ||
|
d6477bfdc4 | ||
|
0fd234f6ac | ||
|
169e592cbc | ||
|
fae6c974d1 | ||
|
1c6f5e4011 | ||
|
38775a42a7 | ||
|
de5d61d64e | ||
|
cc146f4f1f | ||
|
a8ab289ccf | ||
|
cf67a26611 | ||
|
bbcfe4878f | ||
|
465dc9d69f | ||
|
4a2bcf1071 | ||
|
ff01f6a27b | ||
|
223b14f953 | ||
|
51bca60e80 | ||
|
ee9176893e | ||
|
49bd488e5e | ||
|
787204b178 | ||
|
79fc66558c | ||
|
1347589eec | ||
|
071b343635 | ||
|
ca6c635885 | ||
|
e16e822a89 | ||
|
72b4e66a7f | ||
|
392a4de64a | ||
|
8f2c959cdd | ||
|
1ba6fa9b1a | ||
|
4b5d64f8ef | ||
|
7ac8f61cdb | ||
|
b7a8edb352 | ||
|
3619f5e9bb | ||
|
1bc384bb1f | ||
|
30b2985314 | ||
|
119d485a05 | ||
|
a73f87575b | ||
|
65e615133e | ||
|
2f8422a18e | ||
|
6a4ca127a4 | ||
|
1f4afe63e7 | ||
|
3f8aff1a99 | ||
|
266e349d1f | ||
|
52b4623222 | ||
|
c2810a1dcb | ||
|
6fe0044adb | ||
|
eab2e2c368 | ||
|
e5ce0ac19d | ||
|
9600ef346d | ||
|
467393647e | ||
|
73abafb2c4 | ||
|
97420631e8 | ||
|
5a80b002c1 | ||
|
713a9529d6 | ||
|
e054675230 | ||
|
b58ea7a34c | ||
|
46c5e1c4ad | ||
|
e2dcb1765f | ||
|
9c7ed43a24 | ||
|
08adb4f9f3 | ||
|
c73f9cea1d | ||
|
35099d0dbc | ||
|
c2d725386e | ||
|
b97ef045e8 | ||
|
b760316218 | ||
|
e135acf25d | ||
|
67abfc4885 | ||
|
7e385af846 | ||
|
cf062e2329 | ||
|
fa073b41f9 | ||
|
12fafd84bb | ||
|
73a0542276 | ||
|
763a4dfe9e | ||
|
6fec702f1e | ||
|
e00266dee7 | ||
|
f1df262409 | ||
|
fb396883d5 | ||
|
0780a05ab4 | ||
|
f03d007535 | ||
|
b8bcde0dfa | ||
|
cc58d5f7d3 | ||
|
3bab328926 | ||
|
496ede7fb3 | ||
|
45907d66c0 | ||
|
bc335f6617 | ||
|
3e0f25f05f | ||
|
3a455a7860 | ||
|
059bb67ced | ||
|
e539df5268 | ||
|
9424526288 | ||
|
65001b7478 | ||
|
a05dcbf573 | ||
|
6762abc498 | ||
|
7eb8ef8b2e | ||
|
99e87a0b6e | ||
|
575a65d2cc | ||
|
86605fec02 | ||
|
284dd96b66 | ||
|
2187657def | ||
|
54739f10a5 | ||
|
10ea04ace2 | ||
|
0e80393ef4 | ||
|
c283b50186 | ||
|
a2b7adb64c | ||
|
54d26ea6a0 | ||
|
142facec09 | ||
|
473a64f33c | ||
|
f5b3f392d1 | ||
|
2a41bee642 | ||
|
dbf8c8af85 | ||
|
75ab8a3d76 | ||
|
948872b727 | ||
|
080fcef10d | ||
|
6109a1cf6c | ||
|
c5fde43f03 | ||
|
e9c4857c9c | ||
|
8e4fcd24d6 | ||
|
ab6ad1e235 | ||
|
a87ecb7d8d | ||
|
97836d7c5b | ||
|
4fbda06fdb | ||
|
5383c2d4c8 | ||
|
575d8ac6ba | ||
|
a8252242ed | ||
|
d7233745d9 | ||
|
d5acf53929 | ||
|
cac377f7ac | ||
|
29fe06adac | ||
|
5335651a51 | ||
|
1fbffc27c7 | ||
|
d3c7c7ca9b | ||
|
931412a355 | ||
|
6657a684e8 | ||
|
5af3f9733e | ||
|
0d39dcd229 | ||
|
73b009b87b | ||
|
93fd1a4e31 | ||
|
8e8113d743 | ||
|
20617f6ac0 | ||
|
713dd277bc | ||
|
b39137c17a | ||
|
fae79926c1 | ||
|
da0d86603a | ||
|
de6f6f6d4c | ||
|
bb9eeccb10 | ||
|
5dc91715b1 | ||
|
a24e0743bb | ||
|
adc00664c5 | ||
|
b4ed005665 | ||
|
c8ead748ee | ||
|
c6c226aa24 | ||
|
0fa24209ad | ||
|
4d84c188ec | ||
|
fc34a743d9 | ||
|
92b6ea8f29 | ||
|
97e6a595be | ||
|
83cb96bbdd | ||
|
5a68d1fdd8 | ||
|
5d34b374dc | ||
|
589eff8f78 | ||
|
2eb4119789 | ||
|
94d6efcc98 | ||
|
ecd80ffe14 | ||
|
265598cc32 | ||
|
3ed4c89014 | ||
|
1773009e4b | ||
|
3061fbc9ff | ||
|
3ced7c5cd9 | ||
|
aa65dac3d1 | ||
|
83ea279b7a | ||
|
135aba64a7 | ||
|
ed57c01825 | ||
|
980427e000 | ||
|
4e93e724fb | ||
|
f5d189526c | ||
|
97091cba2b | ||
|
4e416d5671 | ||
|
426c48847b | ||
|
01cc551305 | ||
|
2da00ac706 | ||
|
1ad5c362a7 | ||
|
6116f99459 | ||
|
511842d7f0 | ||
|
6b15bc50a6 | ||
|
db6722c510 | ||
|
3e3f75dc72 | ||
|
426bd60d8a | ||
|
9ac324b16a | ||
|
49c15ab117 | ||
|
fb7e48c426 | ||
|
7df892535b | ||
|
7068578b6a | ||
|
d86ac8ec6a | ||
|
27a07d0956 | ||
|
9ab4fda816 | ||
|
34f22ee7de | ||
|
585f62317a | ||
|
06579df52a | ||
|
a49efc321e | ||
|
6fc4e0540b | ||
|
7cd3425845 | ||
|
7ed0f92a54 | ||
|
a300234748 | ||
|
9367e21b8a | ||
|
0de5eed457 | ||
|
e98d6a26ad | ||
|
1c5e5a0a2c | ||
|
7322454a8f | ||
|
0f663f5a0a | ||
|
d453ecd7d7 | ||
|
bfa0d05c82 | ||
|
471b28efea | ||
|
2b6976eefc | ||
|
4d787aa371 | ||
|
4cc0700626 | ||
|
046f028fb0 | ||
|
a5e4b8d6d6 | ||
|
a67bab334c | ||
|
f984d19131 | ||
|
8d4d223ae0 | ||
|
46e6ccf74e | ||
|
627f53e79a | ||
|
1559ca5038 | ||
|
61a1fd0c04 | ||
|
d34da9cc7e | ||
|
007ab86545 | ||
|
d264afed5e | ||
|
9b4110e72d | ||
|
bbb8db97b1 | ||
|
eeddec136d | ||
|
679724bade | ||
|
50f36f0597 | ||
|
8ba95c75e9 | ||
|
e630803708 | ||
|
9a4479d4f7 | ||
|
4727036fa9 | ||
|
4637dac594 | ||
|
3004ed34ec | ||
|
09df54f2a7 | ||
|
353526b5c1 | ||
|
7fa3e8ffdc | ||
|
f478d8961f | ||
|
84282fb7ef | ||
|
2ecf4fee58 | ||
|
2aac7906f4 | ||
|
1a45b068f9 | ||
|
2b8b4a1413 | ||
|
5f6be281b6 | ||
|
f86cc95ebe | ||
|
e07bcaf596 | ||
|
9b2e4213a8 | ||
|
e88e4b36cc | ||
|
690ff93a30 | ||
|
4b664f80e8 | ||
|
41755c8b3e | ||
|
24f422ba20 | ||
|
d29bf769d9 | ||
|
2a83e0ef87 | ||
|
f16761d20f | ||
|
3261c0721d | ||
|
c2e1c791ed | ||
|
b50d4550a5 | ||
|
98744a822d | ||
|
9ec1e6ca6a | ||
|
23e595cee3 | ||
|
d8ae6e9d61 | ||
|
5625be5edf | ||
|
18d6a0003e | ||
|
ac4d240a9b | ||
|
f0a4428f56 | ||
|
7480d4f7bb | ||
|
28c788f38e | ||
|
3233400d70 | ||
|
8baf7d9406 | ||
|
66d5e9e3b3 | ||
|
50d8a3df1d | ||
|
5beb60d9cb | ||
|
872bd66c8a | ||
|
5c7ee1b6b5 | ||
|
700f47a837 | ||
|
0c86934445 | ||
|
32946dd68a | ||
|
445e1cdf29 | ||
|
a416d216bc | ||
|
66cb7674ff | ||
|
4884bff617 | ||
|
d2b0b0207d | ||
|
9e3b3dccb6 | ||
|
4fbf44f0b5 | ||
|
c3f60fbecd | ||
|
f5c11163f8 | ||
|
8ded299457 | ||
|
30ec680ac1 | ||
|
b32e205252 | ||
|
13abd91b89 | ||
|
b5d112954d | ||
|
6a9ed726e8 | ||
|
b19420d10d | ||
|
5d5aeacb74 | ||
|
b6aa675463 | ||
|
a586e8d6b9 | ||
|
4df9852a50 | ||
|
7c9916d936 | ||
|
0039c5d4ad | ||
|
e7e295ff1f | ||
|
265f40be18 | ||
|
ee446b4c4a | ||
|
f749e8471d | ||
|
b329e8d39a | ||
|
c64d8ec7ac | ||
|
bddb5021d4 | ||
|
36b930cc8d | ||
|
cf196d6458 | ||
|
7d13a6fcfe | ||
|
becae1963c | ||
|
a71b6d4a88 | ||
|
28a0eaeb04 | ||
|
b82bdeac48 | ||
|
f0d95f41ab | ||
|
7da64b8e7e | ||
|
c0b7e55350 | ||
|
dc91d0e8f9 | ||
|
970eb2203a | ||
|
0c19d06c2c | ||
|
d90f952fad | ||
|
ae9b805f4e | ||
|
2b2753407f | ||
|
3e01098577 | ||
|
b285afc4f0 | ||
|
7777c878dd | ||
|
c95d5ca018 | ||
|
93938b1f18 | ||
|
4725ca8210 | ||
|
6a1f326a98 | ||
|
72ba935400 | ||
|
441aa2a489 | ||
|
1ecd68695b | ||
|
677b92e9e7 | ||
|
3a8ec9f7b9 | ||
|
ac7ecbecca | ||
|
f3a7661b87 | ||
|
4a541142f7 | ||
|
134a5f7ed8 | ||
|
35b6834a56 | ||
|
500946dee4 | ||
|
6a0464501b | ||
|
60417ee134 | ||
|
eb05976c7d | ||
|
8b1fbd8847 | ||
|
323d1be1c1 | ||
|
43e7260bcf | ||
|
1bc9d17c59 | ||
|
f5cddbb6a3 | ||
|
46a6ce0fe8 | ||
|
f579951426 | ||
|
27a8e049bc | ||
|
61d516be83 | ||
|
0a5ac9d70a | ||
|
15a430f16d | ||
|
ebce25371a | ||
|
6692227f6d | ||
|
c6ce7b9eff | ||
|
bf4d846fef | ||
|
eab76e06c2 | ||
|
7062911366 | ||
|
1a1ec8fd8f | ||
|
560e5b0ee2 | ||
|
806c44a012 | ||
|
440f18dea3 | ||
|
6c6800e83a | ||
|
9fa5ecd854 | ||
|
35ecb94d99 | ||
|
8e17641efd | ||
|
24b00866e3 | ||
|
7294947ed7 | ||
|
24e15b714f | ||
|
26765973a8 | ||
|
74712cc30b | ||
|
1350097394 | ||
|
94f9d61aba | ||
|
f75cf166ed | ||
|
430aabc1e7 | ||
|
20e1211887 | ||
|
5b19e7974a | ||
|
e775c66514 | ||
|
d02a476bd1 | ||
|
075a9c8b0c | ||
|
de8e837306 | ||
|
b0b9a59b9c | ||
|
a9d55004f0 | ||
|
4eb8871527 | ||
|
3d382c4fcd | ||
|
35f812ab72 | ||
|
7d650e8e82 | ||
|
88d94b1bd6 | ||
|
4d6b21eae4 | ||
|
76b4007fc9 | ||
|
71b3bb8dce | ||
|
8bfa07b188 | ||
|
b8b1e2c0b5 | ||
|
ce22671a01 | ||
|
d249d2e5bc | ||
|
b4832d120f | ||
|
af5d1da345 | ||
|
e68ff03130 | ||
|
efe6a8c1f0 | ||
|
35028304e6 | ||
|
e019409a3e | ||
|
13e908b6f9 | ||
|
e8646037c1 | ||
|
ef33d4f6ec | ||
|
2e6d4b2557 | ||
|
06ed2375f1 | ||
|
8227ec3861 | ||
|
9bd2b61f36 | ||
|
98ac4967e2 | ||
|
00e1853eec | ||
|
8a6b7072ba | ||
|
83669f617d | ||
|
26c671b985 | ||
|
5f60e92a55 | ||
|
c7a9fccc14 | ||
|
78f8df6680 | ||
|
264bff4577 | ||
|
e113c56cae | ||
|
7db903e7c8 | ||
|
04582fd27f | ||
|
eee196e090 | ||
|
92c97487a8 | ||
|
fb809d174d | ||
|
6292abaa03 | ||
|
2d46de8fe1 | ||
|
8dd6195cfe | ||
|
71ae37ab0d | ||
|
1dfd6954b8 | ||
|
3c5a23d7da | ||
|
54f3c77ff6 | ||
|
37c289aa72 | ||
|
8a06430026 | ||
|
dd11a38f71 | ||
|
afebc7cdfc | ||
|
9b826307e1 | ||
|
531b2a5c63 | ||
|
3deb80f2f2 | ||
|
df67dd6a44 | ||
|
903dd9f506 | ||
|
4c20f5bad9 | ||
|
2dc80c445c | ||
|
9614d3cbba | ||
|
0e9764fe39 | ||
|
1444883b9a | ||
|
bacc9c5e7c | ||
|
0e24afd0d2 | ||
|
02698404fa | ||
|
8d9028356e | ||
|
df213fba3f | ||
|
cc2e1887ea | ||
|
f70963541f | ||
|
927ec00b31 | ||
|
7a6987ba86 | ||
|
8a50ab27fb | ||
|
a65616403d | ||
|
7f903fb5ad | ||
|
0da63b89a1 | ||
|
afe8c6735a | ||
|
530ebac5d1 | ||
|
f175fb6654 | ||
|
718d0a7d1d | ||
|
8b224bb375 | ||
|
9edcdaf2ad | ||
|
0d0508c0a3 | ||
|
928eef60a0 | ||
|
269299bb64 | ||
|
2a7f05fca8 | ||
|
c3fdb3e187 | ||
|
65a1bad4ba | ||
|
155856d10e | ||
|
2c5948aedd | ||
|
739bb08f4b | ||
|
f9173548fa | ||
|
38422daf64 | ||
|
a34784bd38 | ||
|
043e9bf340 | ||
|
877e303e74 | ||
|
c9a9658279 | ||
|
2b30755c4b | ||
|
77281b6146 | ||
|
f4487c6c8f | ||
|
2ab6711364 | ||
|
de8459d753 | ||
|
07d2e1c3bd | ||
|
6a04b57ca6 | ||
|
f7ec1274bf | ||
|
a10c6ff33a | ||
|
663cbe84d3 | ||
|
2cda2ea697 | ||
|
b346a16262 | ||
|
12670632cf | ||
|
eee142fbec |
17
.github/workflows/eslint.yml
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
name: ESlint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
eslint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install yarn dependencies
|
||||
run: cd app && yarn install --frozen-lockfile
|
||||
- name: Run linter
|
||||
run: cd app && yarn lint
|
10
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
|||
.env
|
||||
*.swp
|
||||
*~
|
||||
|
||||
|
@ -7,8 +8,12 @@ debian/files
|
|||
debian/yunohost-admin*
|
||||
|
||||
# npm files
|
||||
src/node_modules
|
||||
src/npm-debug.log
|
||||
node_modules
|
||||
npm-debug.log
|
||||
|
||||
dist
|
||||
|
||||
# old
|
||||
|
||||
# Symlink to ca.crt file
|
||||
ca.crt
|
||||
|
@ -16,5 +21,4 @@ ca.crt
|
|||
# Debug CSS file
|
||||
src/css/style.css
|
||||
|
||||
src/bower_components
|
||||
src/dist
|
||||
|
|
|
@ -1,78 +0,0 @@
|
|||
YunoHost web administration contributors
|
||||
========================================
|
||||
|
||||
YunoHost is built and maintained by the YunoHost project community.
|
||||
Everyone is encouraged to submit issues and changes, and to contribute in other ways -- see https://yunohost.org/contribute to find out how.
|
||||
|
||||
--
|
||||
|
||||
Initial YunoHost web administration was built by Kload, for YunoHost v2.
|
||||
|
||||
Most of code was written by opi, with help of numerous contributors.
|
||||
|
||||
Translation is made by a bunch of lovely people over the world.
|
||||
|
||||
We would like to thank anyone who ever helped the YunoHost project, and especially the web administration project <3
|
||||
|
||||
|
||||
YunoHost Administration Contributors
|
||||
------------------------------------
|
||||
|
||||
- opi
|
||||
- Kload
|
||||
- Jérôme Lebleu
|
||||
- Julien 'ju' Malik
|
||||
- Hugo Roy
|
||||
- Laurent 'Bram' Peuch
|
||||
- Valentin 'zamentur' / 'ljf' Grimaud
|
||||
- M5oul
|
||||
- thardev
|
||||
|
||||
|
||||
YunoHost Administration Translators
|
||||
-----------------------------------
|
||||
|
||||
If you want to help translation, please visit https://translate.yunohost.org/projects/yunohost/yunohost-admin/
|
||||
|
||||
### Dutch
|
||||
|
||||
- DUBWiSE
|
||||
- dosch
|
||||
|
||||
### English
|
||||
|
||||
- Bugsbane
|
||||
|
||||
### French
|
||||
|
||||
- Étienne Deparis
|
||||
- Jean-Baptiste Holcroft
|
||||
- Jérôme Lebleu
|
||||
- ljf (zamentur)
|
||||
- opi
|
||||
|
||||
### German
|
||||
|
||||
- david.bartke
|
||||
- Felix Bartels
|
||||
- Fabian Gruber (burst3r)
|
||||
|
||||
### Hindi
|
||||
|
||||
- Anmol
|
||||
|
||||
### Italian
|
||||
|
||||
- bricabrac
|
||||
- danneso
|
||||
- Thomas Bille
|
||||
- Vincent
|
||||
|
||||
### Portuguese
|
||||
|
||||
- Deleted User
|
||||
|
||||
### Spanish
|
||||
|
||||
- Juanu
|
||||
- rokaz
|
54
README.md
|
@ -1,41 +1,41 @@
|
|||
# YunoHost Admin
|
||||
<h1 align="center">YunoHost Admin</h1>
|
||||
|
||||
[YunoHost](https://yunohost.org) administration web interface (JS client for the API).
|
||||
<div align="center">
|
||||

|
||||
[](https://github.com/YunoHost/yunohost-admin/actions/workflows/eslint.yml)
|
||||
[](https://github.com/YunoHost/yunohost/blob/dev/LICENSE)
|
||||
|
||||
This client is a part of the YunoHost projet, and can not be installed directly. Please visit YunoHost website for [installation instructions](https://yunohost.org/install).
|
||||
[YunoHost logo](https://yunohost.org) administration web interface (VueJS client for the API).
|
||||
|
||||
## Bug tracker
|
||||
This client is a part of the YunoHost project, and can not be installed directly.
|
||||
Please visit the YunoHost website for [installation instructions](https://yunohost.org/install).
|
||||
|
||||
Please report issues on the [YunoHost Bugtracker](https://dev.yunohost.org/projects/yunohost/issues), no registration needed.
|
||||

|
||||
</div>
|
||||
|
||||
## Translate
|
||||
## Issues
|
||||
|
||||
[](https://translate.yunohost.org/engage/yunohost/?utm_source=widget)
|
||||
- [Please report issues on YunoHost bugtracker](https://github.com/YunoHost/issues).
|
||||
|
||||
## Contributing
|
||||
## Translation
|
||||
|
||||
Feel free to improve the plugin and send us a pull request.
|
||||
You can help translate Yunohost-Admin on our [translation platform](https://translate.yunohost.org/engage/yunohost/?utm_source=widget)
|
||||
|
||||
We use `gulp` to compile Less files and minify the JavaScript. Assuming [nodejs](http://nodejs.org/) is installed, you can install dependencies and run a build with:
|
||||
<div align="center"><img alt="View of the translation rate for the different languages available in YunoHost" src="https://translate.yunohost.org/widgets/yunohost/-/admin/horizontal-auto.svg" alt="Translation status" /></div>
|
||||
|
||||
```sh
|
||||
cd src
|
||||
npm install
|
||||
npm run build
|
||||
## Developpers
|
||||
|
||||
Contributions are welcome!
|
||||
|
||||
In order to contribute you will need to setup a development environment using [ynh-dev](https://github.com/YunoHost/ynh-dev) (see the README).
|
||||
Once you have a environment running and are attached to it (with `./ynh-dev start`) you will be able to run:
|
||||
|
||||
```bash
|
||||
./ynh-dev use-git yunohost-admin
|
||||
```
|
||||
|
||||
Alternatively you can run `npm run build-dev` which improves building speed by bypassing compression tasks.
|
||||
This command will install all dependencies and start a dev server (based on [webpack-dev-server](https://github.com/webpack/webpack-dev-server)) with Hot-Module-Replacement (live updates on code modification without reloading the page nor rebuilding the whole code). After the build step, click on the "Network:" link and you are good to go.
|
||||
|
||||
You can also install [Vue Devtools](https://addons.mozilla.org/fr/firefox/addon/vue-js-devtools/) (module for Firefox but also exists for Chromium/Chrome) if you want component trees, performance views and so on.
|
||||
|
||||
On a YunoHost instance, the web admin files are located at `/usr/share/yunohost/admin`.
|
||||
|
||||
**Note:** The `.ms` - moustache - files are cached by the browser. You have to
|
||||
reach them manually some times you modify them. (e.g. go to
|
||||
https://example.com/yunohost/admin/views/domain/domain_list.ms)
|
||||
|
||||
## Dependencies
|
||||
|
||||
* Bootstrap 3.3.6
|
||||
* Font-Awesome 4.5.0
|
||||
* Handlebars 1.3.0
|
||||
* Sammy 0.7.6
|
||||
* Jquery-Cookie 2.1.0
|
||||
|
|
18
app/.eslintrc.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
module.exports = {
|
||||
root: true,
|
||||
env: {
|
||||
es2021: true,
|
||||
node: true,
|
||||
},
|
||||
extends: [
|
||||
'plugin:vue/strongly-recommended',
|
||||
'eslint:recommended',
|
||||
'plugin:prettier/recommended',
|
||||
],
|
||||
rules: {
|
||||
'no-unused-vars': [
|
||||
'warn',
|
||||
{ varsIgnorePattern: '^_', destructuredArrayIgnorePattern: '^_' },
|
||||
],
|
||||
},
|
||||
}
|
1
app/.prettierignore
Normal file
|
@ -0,0 +1 @@
|
|||
dist/
|
19
app/.prettierrc
Normal file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"semi": false,
|
||||
"tabWidth": 2,
|
||||
"singleQuote": true,
|
||||
"overrides": [
|
||||
{
|
||||
"files": "**/*.json",
|
||||
"options": {
|
||||
"tabWidth": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": "./*.json",
|
||||
"options": {
|
||||
"tabWidth": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
27
app/index.html
Normal file
|
@ -0,0 +1,27 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=yes"
|
||||
/>
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<meta name="referrer" content="no-referrer" />
|
||||
<link rel="icon" href="/favicon.png" />
|
||||
<title>YunoHost Admin</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>
|
||||
We're sorry but YunoHost Admin doesn't work properly without JavaScript
|
||||
enabled. Please enable it to continue.
|
||||
</strong>
|
||||
</noscript>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.js"></script>
|
||||
</body>
|
||||
</html>
|
56
app/package.json
Normal file
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"name": "yunohost-admin",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"description": "YunoHost Admin web interface",
|
||||
"author": "Yunohost",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"lint:js": "eslint --ext \".ts,.vue,.cjs,.js\" --ignore-path ../.gitignore .",
|
||||
"lint:prettier": "prettier --check .",
|
||||
"lint": "yarn lint:js && yarn lint:prettier",
|
||||
"lintfix": "prettier --write --list-different . && yarn lint:js --fix"
|
||||
},
|
||||
"dependencies": {
|
||||
"@fontsource/fira-code": "^4.5.13",
|
||||
"@fontsource/firago": "^4.5.3",
|
||||
"bootstrap-vue": "^2.22.0",
|
||||
"date-fns": "^2.29.3",
|
||||
"fork-awesome": "^1.2.0",
|
||||
"simple-evaluate": "^1.4.6",
|
||||
"vue": "^2.7.14",
|
||||
"vue-i18n": "^8.28.2",
|
||||
"vue-router": "^3.6.5",
|
||||
"vue-showdown": "^2.4.1",
|
||||
"vuelidate": "^0.7.7",
|
||||
"vuex": "^3.6.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue2": "^2.2.0",
|
||||
"bootstrap": "^4.6.0",
|
||||
"eslint": "^8.36.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"eslint-plugin-vue": "^9.10.0",
|
||||
"popper.js": "^1.16.0",
|
||||
"portal-vue": "^2.1.7",
|
||||
"prettier": "^3.2.5",
|
||||
"sass": "^1.60.0",
|
||||
"vite": "^4.5.3"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%",
|
||||
"last 2 versions",
|
||||
"not dead"
|
||||
],
|
||||
"bugs": {
|
||||
"url": "https://github.com/YunoHost/issues"
|
||||
},
|
||||
"homepage": "https://github.com/YunoHost/yunohost-admin",
|
||||
"license": "AGPL-3.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/YunoHost/yunohost-admin"
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
272
app/src/App.vue
Normal file
|
@ -0,0 +1,272 @@
|
|||
<template>
|
||||
<div id="app" class="container">
|
||||
<!-- HEADER -->
|
||||
<header>
|
||||
<BNavbar>
|
||||
<BNavbarBrand
|
||||
:to="{ name: 'home' }"
|
||||
:disabled="waiting"
|
||||
exact
|
||||
exact-active-class="active"
|
||||
>
|
||||
<span v-if="theme">
|
||||
<img alt="YunoHost logo" src="./assets/logo_light.png" width="40" />
|
||||
</span>
|
||||
<span v-else>
|
||||
<img alt="YunoHost logo" src="./assets/logo_dark.png" width="40" />
|
||||
</span>
|
||||
</BNavbarBrand>
|
||||
|
||||
<BNavbarNav class="ml-auto">
|
||||
<li class="nav-item">
|
||||
<BButton :href="ssoLink" variant="primary" size="sm" block>
|
||||
{{ $t('user_interface_link') }} <YIcon iname="user" />
|
||||
</BButton>
|
||||
</li>
|
||||
|
||||
<li class="nav-item" v-show="connected">
|
||||
<BButton
|
||||
@click.prevent="logout"
|
||||
variant="outline-dark"
|
||||
block
|
||||
size="sm"
|
||||
>
|
||||
{{ $t('logout') }} <YIcon iname="sign-out" />
|
||||
</BButton>
|
||||
</li>
|
||||
</BNavbarNav>
|
||||
</BNavbar>
|
||||
</header>
|
||||
|
||||
<!-- MAIN -->
|
||||
<ViewLockOverlay>
|
||||
<YBreadcrumb />
|
||||
|
||||
<main id="main">
|
||||
<!-- The `key` on RouterView make sure that if a link points to a page that
|
||||
use the same component as the previous one, it will be refreshed -->
|
||||
<Transition v-if="transitions" :name="transitionName">
|
||||
<RouterView class="animated" :key="routerKey" />
|
||||
</Transition>
|
||||
<RouterView v-else class="static" :key="routerKey" />
|
||||
</main>
|
||||
</ViewLockOverlay>
|
||||
|
||||
<!-- HISTORY CONSOLE -->
|
||||
<HistoryConsole />
|
||||
|
||||
<!-- FOOTER -->
|
||||
<footer class="py-3 mt-auto">
|
||||
<nav>
|
||||
<BNav class="justify-content-center">
|
||||
<BNavItem
|
||||
href="https://yunohost.org/docs"
|
||||
target="_blank"
|
||||
link-classes="text-secondary"
|
||||
>
|
||||
<YIcon iname="book" /> {{ $t('footer.documentation') }}
|
||||
</BNavItem>
|
||||
<BNavItem
|
||||
href="https://yunohost.org/help"
|
||||
target="_blank"
|
||||
link-classes="text-secondary"
|
||||
>
|
||||
<YIcon iname="life-ring" /> {{ $t('footer.help') }}
|
||||
</BNavItem>
|
||||
<BNavItem
|
||||
href="https://donate.yunohost.org/"
|
||||
target="_blank"
|
||||
link-classes="text-secondary"
|
||||
>
|
||||
<YIcon iname="heart" /> {{ $t('footer.donate') }}
|
||||
</BNavItem>
|
||||
|
||||
<BNavText
|
||||
v-if="yunohost"
|
||||
id="yunohost-version"
|
||||
class="ml-md-auto text-center"
|
||||
>
|
||||
<span v-html="$t('footer_version', yunohost)" />
|
||||
</BNavText>
|
||||
</BNav>
|
||||
</nav>
|
||||
</footer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
import { HistoryConsole, ViewLockOverlay } from '@/views/_partials'
|
||||
|
||||
export default {
|
||||
name: 'App',
|
||||
|
||||
components: {
|
||||
HistoryConsole,
|
||||
ViewLockOverlay,
|
||||
},
|
||||
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'connected',
|
||||
'yunohost',
|
||||
'routerKey',
|
||||
'transitions',
|
||||
'transitionName',
|
||||
'waiting',
|
||||
'theme',
|
||||
'ssoLink',
|
||||
]),
|
||||
},
|
||||
|
||||
methods: {
|
||||
async logout() {
|
||||
this.$store.dispatch('LOGOUT')
|
||||
},
|
||||
},
|
||||
|
||||
// This hook is only triggered at page first load
|
||||
created() {
|
||||
this.$store.dispatch('ON_APP_CREATED')
|
||||
},
|
||||
|
||||
mounted() {
|
||||
// Unlock copypasta on log view
|
||||
const copypastaCode = ['ArrowDown', 'ArrowDown', 'ArrowUp', 'ArrowUp']
|
||||
let copypastastep = 0
|
||||
document.addEventListener('keydown', ({ key }) => {
|
||||
if (key === copypastaCode[copypastastep++]) {
|
||||
if (copypastastep === copypastaCode.length) {
|
||||
document
|
||||
.querySelectorAll('.unselectable')
|
||||
.forEach((element) => element.classList.remove('unselectable'))
|
||||
copypastastep = 0
|
||||
}
|
||||
} else {
|
||||
copypastastep = 0
|
||||
}
|
||||
})
|
||||
|
||||
// Konamicode ;P
|
||||
const konamiCode = [
|
||||
'ArrowUp',
|
||||
'ArrowUp',
|
||||
'ArrowDown',
|
||||
'ArrowDown',
|
||||
'ArrowLeft',
|
||||
'ArrowRight',
|
||||
'ArrowLeft',
|
||||
'ArrowRight',
|
||||
'b',
|
||||
'a',
|
||||
]
|
||||
let konamistep = 0
|
||||
document.addEventListener('keydown', ({ key }) => {
|
||||
if (key === konamiCode[konamistep++]) {
|
||||
if (konamistep === konamiCode.length) {
|
||||
this.$store.commit('SET_SPINNER', 'nyancat')
|
||||
konamistep = 0
|
||||
}
|
||||
} else {
|
||||
konamistep = 0
|
||||
}
|
||||
})
|
||||
|
||||
// April fools easter egg ;)
|
||||
const today = new Date()
|
||||
if (today.getDate() === 1 && today.getMonth() + 1 === 4) {
|
||||
this.$store.commit('SET_SPINNER', 'magikarp')
|
||||
}
|
||||
|
||||
// Halloween easter egg ;)
|
||||
if (today.getDate() === 31 && today.getMonth() + 1 === 10) {
|
||||
this.$store.commit('SET_SPINNER', 'spookycat')
|
||||
}
|
||||
|
||||
document.documentElement.setAttribute('dark-theme', this.theme) // updates the data-theme attribute
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
// Global import of Bootstrap and custom styles
|
||||
@import '@/scss/main.scss';
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// generic style for <html>, <body> and <#app> is in `scss/main.scss`
|
||||
header {
|
||||
border-bottom: $thin-border;
|
||||
padding-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
|
||||
.navbar {
|
||||
padding: 1rem 0;
|
||||
|
||||
img {
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
.navbar-nav {
|
||||
flex-direction: column;
|
||||
|
||||
li {
|
||||
margin: 0.2rem 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main {
|
||||
position: relative;
|
||||
|
||||
// Routes transition
|
||||
.animated {
|
||||
transition: all 0.15s ease-in-out;
|
||||
}
|
||||
.slide-left-enter,
|
||||
.slide-right-leave-active {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
transform: translate(100vw, 0);
|
||||
}
|
||||
.slide-left-leave-active,
|
||||
.slide-right-enter {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
transform: translate(-100vw, 0);
|
||||
}
|
||||
// hack to hide last transition provoqued by the <RouterView> element change
|
||||
// while disabling the transitions in ToolWebAdmin
|
||||
.static ~ .animated {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
#console {
|
||||
// Allows the console to be tabbed before the footer links while remaining visually
|
||||
// the last element of the page
|
||||
order: 3;
|
||||
}
|
||||
|
||||
footer {
|
||||
border-top: $thin-border;
|
||||
font-size: $font-size-sm;
|
||||
margin-top: 2rem;
|
||||
|
||||
.nav-item {
|
||||
& + .nav-item a::before {
|
||||
content: '•';
|
||||
width: 1rem;
|
||||
display: inline-block;
|
||||
margin-left: -1.15rem;
|
||||
}
|
||||
&:first-child {
|
||||
margin-left: -1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
238
app/src/api/api.js
Normal file
|
@ -0,0 +1,238 @@
|
|||
/**
|
||||
* API module.
|
||||
* @module api
|
||||
*/
|
||||
|
||||
import store from '@/store'
|
||||
import { openWebSocket, getResponseData, handleError } from './handlers'
|
||||
|
||||
/**
|
||||
* Options available for an API call.
|
||||
*
|
||||
* @typedef {Object} Options
|
||||
* @property {Boolean} wait - If `true`, will display the waiting modal.
|
||||
* @property {Boolean} websocket - if `true`, will open a websocket connection.
|
||||
* @property {Boolean} initial - if `true` and an error occurs, the dismiss button will trigger a go back in history.
|
||||
* @property {Boolean} asFormData - if `true`, will send the data with a body encoded as `"multipart/form-data"` instead of `"x-www-form-urlencoded"`).
|
||||
*/
|
||||
|
||||
/**
|
||||
* Representation of an API call for `api.fetchAll`
|
||||
*
|
||||
* @typedef {Array} Query
|
||||
* @property {String} 0 - "method"
|
||||
* @property {String|Object} 1 - "uri", uri to call as string or as an object for cached uris.
|
||||
* @property {Object|null} 2 - "data"
|
||||
* @property {Options} 3 - "options"
|
||||
*/
|
||||
|
||||
/**
|
||||
* Converts an object literal into an `URLSearchParams` that can be turned into a
|
||||
* query string or used as a body in a `fetch` call.
|
||||
*
|
||||
* @param {Object} obj - An object literal to convert.
|
||||
* @param {Object} options
|
||||
* @param {Boolean} [options.addLocale=false] - Option to append the locale to the query string.
|
||||
* @return {URLSearchParams}
|
||||
*/
|
||||
export function objectToParams(
|
||||
obj,
|
||||
{ addLocale = false } = {},
|
||||
formData = false,
|
||||
) {
|
||||
const urlParams = formData ? new FormData() : new URLSearchParams()
|
||||
for (const [key, value] of Object.entries(obj)) {
|
||||
if (Array.isArray(value)) {
|
||||
value.forEach((v) => urlParams.append(key, v))
|
||||
} else {
|
||||
urlParams.append(key, value)
|
||||
}
|
||||
}
|
||||
if (addLocale) {
|
||||
urlParams.append('locale', store.getters.locale)
|
||||
}
|
||||
return urlParams
|
||||
}
|
||||
|
||||
export default {
|
||||
options: {
|
||||
credentials: 'include',
|
||||
mode: 'cors',
|
||||
headers: {
|
||||
// FIXME is it important to keep this previous `Accept` header ?
|
||||
// 'Accept': 'application/json, text/javascript, */*; q=0.01',
|
||||
// Auto header is :
|
||||
// "Accept": "*/*",
|
||||
|
||||
'X-Requested-With': 'XMLHttpRequest',
|
||||
},
|
||||
},
|
||||
|
||||
/**
|
||||
* Generic method to fetch the api without automatic response handling.
|
||||
*
|
||||
* @param {String} method - a method between 'GET', 'POST', 'PUT' and 'DELETE'.
|
||||
* @param {String} uri
|
||||
* @param {Object} [data={}] - data to send as body.
|
||||
* @param {Options} [options={ wait = true, websocket = true, initial = false, asFormData = false }]
|
||||
* @return {Promise<Object|Error>} Promise that resolve the api response data or an error.
|
||||
*/
|
||||
async fetch(
|
||||
method,
|
||||
uri,
|
||||
data = {},
|
||||
humanKey = null,
|
||||
{ wait = true, websocket = true, initial = false, asFormData = false } = {},
|
||||
) {
|
||||
// `await` because Vuex actions returns promises by default.
|
||||
const request = await store.dispatch('INIT_REQUEST', {
|
||||
method,
|
||||
uri,
|
||||
humanKey,
|
||||
initial,
|
||||
wait,
|
||||
websocket,
|
||||
})
|
||||
|
||||
if (websocket) {
|
||||
await openWebSocket(request)
|
||||
}
|
||||
|
||||
let options = this.options
|
||||
if (method === 'GET') {
|
||||
uri += `${uri.includes('?') ? '&' : '?'}locale=${store.getters.locale}`
|
||||
} else {
|
||||
options = {
|
||||
...options,
|
||||
method,
|
||||
body: objectToParams(data, { addLocale: true }, true),
|
||||
}
|
||||
}
|
||||
|
||||
const response = await fetch('/yunohost/api/' + uri, options)
|
||||
const responseData = await getResponseData(response)
|
||||
store.dispatch('END_REQUEST', { request, success: response.ok, wait })
|
||||
|
||||
return response.ok
|
||||
? responseData
|
||||
: handleError(request, response, responseData)
|
||||
},
|
||||
|
||||
/**
|
||||
* Api multiple queries helper.
|
||||
* Those calls will act as one (declare optional waiting for one but still create history entries for each)
|
||||
* Calls are synchronous since the API can't handle multiple calls.
|
||||
*
|
||||
* @param {Array<Query>} queries - An array of queries with special representation.
|
||||
* @param {Object} [options={}]
|
||||
* @param {Boolean}
|
||||
* @return {Promise<Array|Error>} Promise that resolve the api responses data or an error.
|
||||
*/
|
||||
async fetchAll(queries, { wait, initial } = {}) {
|
||||
const results = []
|
||||
if (wait) store.commit('SET_WAITING', true)
|
||||
try {
|
||||
for (const [method, uri, data, humanKey, options = {}] of queries) {
|
||||
if (wait) options.wait = false
|
||||
if (initial) options.initial = true
|
||||
results.push(
|
||||
await this[method.toLowerCase()](uri, data, humanKey, options),
|
||||
)
|
||||
}
|
||||
} finally {
|
||||
// Stop waiting even if there is an error.
|
||||
if (wait) store.commit('SET_WAITING', false)
|
||||
}
|
||||
|
||||
return results
|
||||
},
|
||||
|
||||
/**
|
||||
* Api get helper function.
|
||||
*
|
||||
* @param {String|Object} uri
|
||||
* @param {null} [data=null] - for convenience in muliple calls, just pass null.
|
||||
* @param {Options} [options={}] - options to apply to the call (default is `{ websocket: false, wait: false }`)
|
||||
* @return {Promise<Object|Error>} Promise that resolve the api response data or an error.
|
||||
*/
|
||||
get(uri, data = null, humanKey = null, options = {}) {
|
||||
options = { websocket: false, wait: false, ...options }
|
||||
if (typeof uri === 'string')
|
||||
return this.fetch('GET', uri, null, humanKey, options)
|
||||
return store.dispatch('GET', { ...uri, humanKey, options })
|
||||
},
|
||||
|
||||
/**
|
||||
* Api post helper function.
|
||||
*
|
||||
* @param {String|Object} uri
|
||||
* @param {String} [data={}] - data to send as body.
|
||||
* @param {Options} [options={}] - options to apply to the call
|
||||
* @return {Promise<Object|Error>} Promise that resolve the api response data or an error.
|
||||
*/
|
||||
post(uri, data = {}, humanKey = null, options = {}) {
|
||||
if (typeof uri === 'string')
|
||||
return this.fetch('POST', uri, data, humanKey, options)
|
||||
return store.dispatch('POST', { ...uri, data, humanKey, options })
|
||||
},
|
||||
|
||||
/**
|
||||
* Api put helper function.
|
||||
*
|
||||
* @param {String|Object} uri
|
||||
* @param {String} [data={}] - data to send as body.
|
||||
* @param {Options} [options={}] - options to apply to the call
|
||||
* @return {Promise<Object|Error>} Promise that resolve the api response data or an error.
|
||||
*/
|
||||
put(uri, data = {}, humanKey = null, options = {}) {
|
||||
if (typeof uri === 'string')
|
||||
return this.fetch('PUT', uri, data, humanKey, options)
|
||||
return store.dispatch('PUT', { ...uri, data, humanKey, options })
|
||||
},
|
||||
|
||||
/**
|
||||
* Api delete helper function.
|
||||
*
|
||||
* @param {String|Object} uri
|
||||
* @param {String} [data={}] - data to send as body.
|
||||
* @param {Options} [options={}] - options to apply to the call (default is `{ websocket: false, wait: false }`)
|
||||
* @return {Promise<Object|Error>} Promise that resolve the api response data or an error.
|
||||
*/
|
||||
delete(uri, data = {}, humanKey = null, options = {}) {
|
||||
if (typeof uri === 'string')
|
||||
return this.fetch('DELETE', uri, data, humanKey, options)
|
||||
return store.dispatch('DELETE', { ...uri, data, humanKey, options })
|
||||
},
|
||||
|
||||
/**
|
||||
* Api reconnection helper. Resolve when server is reachable or fail after n attemps
|
||||
*
|
||||
* @param {Number} attemps - number of attemps before rejecting
|
||||
* @param {Number} delay - delay between calls to the API in ms.
|
||||
* @param {Number} initialDelay - delay before calling the API for the first time in ms.
|
||||
* @return {Promise<undefined|Error>}
|
||||
*/
|
||||
tryToReconnect({ attemps = 5, delay = 2000, initialDelay = 0 } = {}) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const api = this
|
||||
|
||||
function reconnect(n) {
|
||||
api
|
||||
.get('logout', {}, { key: 'reconnecting' })
|
||||
.then(resolve)
|
||||
.catch((err) => {
|
||||
if (err.name === 'APIUnauthorizedError') {
|
||||
resolve()
|
||||
} else if (n < 1) {
|
||||
reject(err)
|
||||
} else {
|
||||
setTimeout(() => reconnect(n - 1), delay)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (initialDelay > 0) setTimeout(() => reconnect(attemps), initialDelay)
|
||||
else reconnect(attemps)
|
||||
})
|
||||
},
|
||||
}
|
113
app/src/api/errors.js
Normal file
|
@ -0,0 +1,113 @@
|
|||
/**
|
||||
* API errors definitionss.
|
||||
* @module api/errors
|
||||
*/
|
||||
|
||||
import i18n from '@/i18n'
|
||||
|
||||
class APIError extends Error {
|
||||
constructor(request, { url, status, statusText }, { error }) {
|
||||
super(
|
||||
error
|
||||
? error.replaceAll('\n', '<br>')
|
||||
: i18n.t('error_server_unexpected'),
|
||||
)
|
||||
const urlObj = new URL(url)
|
||||
this.name = 'APIError'
|
||||
this.code = status
|
||||
this.status = statusText
|
||||
this.method = request.method
|
||||
this.request = request
|
||||
this.path = urlObj.pathname + urlObj.search
|
||||
}
|
||||
|
||||
log() {
|
||||
/* eslint-disable-next-line */
|
||||
console.error(`${this.name} (${this.code}): ${this.uri}\n${this.message}`)
|
||||
}
|
||||
}
|
||||
|
||||
// Log (Special error to trigger a redirect to a log page)
|
||||
class APIErrorLog extends APIError {
|
||||
constructor(method, response, errorData) {
|
||||
super(method, response, errorData)
|
||||
this.logRef = errorData.log_ref
|
||||
this.name = 'APIErrorLog'
|
||||
}
|
||||
}
|
||||
|
||||
// 0 — (means "the connexion has been closed" apparently)
|
||||
class APIConnexionError extends APIError {
|
||||
constructor(method, response) {
|
||||
super(method, response, { error: i18n.t('error_connection_interrupted') })
|
||||
this.name = 'APIConnexionError'
|
||||
}
|
||||
}
|
||||
|
||||
// 400 — Bad Request
|
||||
class APIBadRequestError extends APIError {
|
||||
constructor(method, response, errorData) {
|
||||
super(method, response, errorData)
|
||||
this.name = 'APIBadRequestError'
|
||||
this.key = errorData.error_key
|
||||
this.data = errorData
|
||||
}
|
||||
}
|
||||
|
||||
// 401 — Unauthorized
|
||||
class APIUnauthorizedError extends APIError {
|
||||
constructor(method, response, errorData) {
|
||||
super(method, response, { error: i18n.t('unauthorized') })
|
||||
this.name = 'APIUnauthorizedError'
|
||||
}
|
||||
}
|
||||
|
||||
// 404 — Not Found
|
||||
class APINotFoundError extends APIError {
|
||||
constructor(method, response, errorData) {
|
||||
errorData.error = i18n.t('api_not_found')
|
||||
super(method, response, errorData)
|
||||
this.name = 'APINotFoundError'
|
||||
}
|
||||
}
|
||||
|
||||
// 500 — Server Internal Error
|
||||
class APIInternalError extends APIError {
|
||||
constructor(method, response, errorData) {
|
||||
super(method, response, errorData)
|
||||
this.traceback = errorData.traceback || null
|
||||
this.name = 'APIInternalError'
|
||||
}
|
||||
}
|
||||
|
||||
// 502 — Bad gateway (means API is down)
|
||||
class APINotRespondingError extends APIError {
|
||||
constructor(method, response) {
|
||||
super(method, response, { error: i18n.t('api_not_responding') })
|
||||
this.name = 'APINotRespondingError'
|
||||
}
|
||||
}
|
||||
|
||||
// Temp factory
|
||||
const errors = {
|
||||
[undefined]: APIError,
|
||||
log: APIErrorLog,
|
||||
0: APIConnexionError,
|
||||
400: APIBadRequestError,
|
||||
401: APIUnauthorizedError,
|
||||
404: APINotFoundError,
|
||||
500: APIInternalError,
|
||||
502: APINotRespondingError,
|
||||
}
|
||||
|
||||
export {
|
||||
errors as default,
|
||||
APIError,
|
||||
APIErrorLog,
|
||||
APIBadRequestError,
|
||||
APIConnexionError,
|
||||
APIInternalError,
|
||||
APINotFoundError,
|
||||
APINotRespondingError,
|
||||
APIUnauthorizedError,
|
||||
}
|
108
app/src/api/handlers.js
Normal file
|
@ -0,0 +1,108 @@
|
|||
/**
|
||||
* API handlers.
|
||||
* @module api/handlers
|
||||
*/
|
||||
|
||||
import store from '@/store'
|
||||
import errors, { APIError } from './errors'
|
||||
|
||||
/**
|
||||
* Try to get response content as json and if it's not as text.
|
||||
*
|
||||
* @param {Response} response - A fetch `Response` object.
|
||||
* @return {(Object|String)} Parsed response's json or response's text.
|
||||
*/
|
||||
export async function getResponseData(response) {
|
||||
// FIXME the api should always return json as response
|
||||
const responseText = await response.text()
|
||||
try {
|
||||
return JSON.parse(responseText)
|
||||
} catch {
|
||||
return responseText
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens a WebSocket connection to the server in case it sends messages.
|
||||
* Currently, the connection is closed by the server right after an API call so
|
||||
* we have to open it for every calls.
|
||||
* Messages are dispatch to the store so it can handle them.
|
||||
*
|
||||
* @param {Object} request - Request info data.
|
||||
* @return {Promise<Event>} Promise that resolve on websocket 'open' or 'error' event.
|
||||
*/
|
||||
export function openWebSocket(request) {
|
||||
return new Promise((resolve) => {
|
||||
const ws = new WebSocket(
|
||||
`wss://${store.getters.host}/yunohost/api/messages`,
|
||||
)
|
||||
ws.onmessage = ({ data }) => {
|
||||
store.dispatch('DISPATCH_MESSAGE', {
|
||||
request,
|
||||
messages: JSON.parse(data),
|
||||
})
|
||||
}
|
||||
// ws.onclose = (e) => {}
|
||||
ws.onopen = resolve
|
||||
// Resolve also on error so the actual fetch may be called.
|
||||
ws.onerror = resolve
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for API errors.
|
||||
*
|
||||
* @param {Object} request - Request info data.
|
||||
* @param {Response} response - A consumed fetch `Response` object.
|
||||
* @param {Object|String} errorData - The response parsed json/text.
|
||||
* @throws Will throw a `APIError` with request and response data.
|
||||
*/
|
||||
export async function handleError(request, response, errorData) {
|
||||
let errorCode = response.status in errors ? response.status : undefined
|
||||
if (typeof errorData === 'string') {
|
||||
// FIXME API: Patching errors that are plain text or html.
|
||||
errorData = { error: errorData }
|
||||
}
|
||||
if ('log_ref' in errorData) {
|
||||
// Define a special error so it won't get caught as a `APIBadRequestError`.
|
||||
errorCode = 'log'
|
||||
}
|
||||
|
||||
// This error can be catched by a view otherwise it will be catched by the `onUnhandledAPIError` handler.
|
||||
throw new errors[errorCode](request, response, errorData)
|
||||
}
|
||||
|
||||
/**
|
||||
* If an APIError is not catched by a view it will be dispatched to the store so the
|
||||
* error can be displayed in the error modal.
|
||||
*
|
||||
* @param {APIError} error
|
||||
*/
|
||||
export function onUnhandledAPIError(error) {
|
||||
error.log()
|
||||
store.dispatch('HANDLE_ERROR', error)
|
||||
}
|
||||
|
||||
/**
|
||||
* Global catching of unhandled promise's rejections.
|
||||
* Those errors (thrown or rejected from inside a promise) can't be catched by
|
||||
* `window.onerror`.
|
||||
*/
|
||||
export function registerGlobalErrorHandlers() {
|
||||
window.addEventListener('unhandledrejection', (e) => {
|
||||
const error = e.reason
|
||||
if (error instanceof APIError) {
|
||||
onUnhandledAPIError(error)
|
||||
// Seems like there's a bug in Firefox and the error logging in not prevented.
|
||||
e.preventDefault()
|
||||
}
|
||||
})
|
||||
|
||||
// Keeping this in case it is needed.
|
||||
|
||||
// Global catching of errors occuring inside vue components.
|
||||
// Vue.config.errorHandler = (err, vm, info) => {}
|
||||
|
||||
// Global catching of regular js errors.
|
||||
// window.onerror = (message, source, lineno, colno, error) => {}
|
||||
}
|
2
app/src/api/index.js
Normal file
|
@ -0,0 +1,2 @@
|
|||
export { default, objectToParams } from './api'
|
||||
export { handleError, registerGlobalErrorHandlers } from './handlers'
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
app/src/assets/logo_dark.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
app/src/assets/logo_light.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
app/src/assets/spinners/magikarp.gif
Normal file
After Width: | Height: | Size: 391 B |
BIN
app/src/assets/spinners/nyancat.gif
Normal file
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
BIN
app/src/assets/spinners/pacman_light.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
app/src/assets/spinners/spookycat.gif
Normal file
After Width: | Height: | Size: 7.4 KiB |
75
app/src/components/AdressInputSelect.vue
Normal file
|
@ -0,0 +1,75 @@
|
|||
<template>
|
||||
<BInputGroup v-bind="$attrs">
|
||||
<InputItem
|
||||
:id="id"
|
||||
:value="value.localPart"
|
||||
:placeholder="placeholder"
|
||||
:state="state"
|
||||
:aria-describedby="id + 'local-part-desc'"
|
||||
@input="onInput('localPart', $event)"
|
||||
@blur="$parent.$emit('touch')"
|
||||
/>
|
||||
|
||||
<BInputGroupAppend>
|
||||
<BInputGroupText>{{ value.separator }}</BInputGroupText>
|
||||
</BInputGroupAppend>
|
||||
|
||||
<BInputGroupAppend>
|
||||
<SelectItem
|
||||
:value="value.domain"
|
||||
:choices="choices"
|
||||
:aria-describedby="id + 'domain-desc'"
|
||||
@input="onInput('domain', $event)"
|
||||
@blur="$parent.$emit('touch')"
|
||||
/>
|
||||
</BInputGroupAppend>
|
||||
|
||||
<span
|
||||
class="sr-only"
|
||||
:id="id + 'local-part-desc'"
|
||||
v-t="'address.local_part_description.' + type"
|
||||
/>
|
||||
<span
|
||||
class="sr-only"
|
||||
:id="id + 'domain-desc'"
|
||||
v-t="'address.domain_description.' + type"
|
||||
/>
|
||||
</BInputGroup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'AdressInputSelect',
|
||||
|
||||
inheritAttrs: false,
|
||||
|
||||
props: {
|
||||
// `value` is actually passed thru the `v-model` directive
|
||||
value: { type: Object, required: true },
|
||||
choices: { type: Array, required: true },
|
||||
placeholder: { type: String, default: null },
|
||||
id: { type: String, default: null },
|
||||
state: { type: null, default: null },
|
||||
type: { type: String, default: 'email' },
|
||||
},
|
||||
|
||||
methods: {
|
||||
onInput(key, value) {
|
||||
this.$emit('input', {
|
||||
...this.value,
|
||||
[key]: value,
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.input-group-append ~ .input-group-append {
|
||||
flex-basis: 40%;
|
||||
}
|
||||
select {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
</style>
|
85
app/src/components/CardCollapse.vue
Normal file
|
@ -0,0 +1,85 @@
|
|||
<template>
|
||||
<BCard v-bind="$attrs" no-body :class="_class">
|
||||
<template #header>
|
||||
<slot name="header">
|
||||
<h2>
|
||||
<BButton
|
||||
v-b-toggle="id"
|
||||
:variant="variant"
|
||||
class="card-collapse-button"
|
||||
>
|
||||
{{ title }}
|
||||
<YIcon class="ml-auto" iname="chevron-right" />
|
||||
</BButton>
|
||||
</h2>
|
||||
</slot>
|
||||
</template>
|
||||
|
||||
<BCollapse :id="id" :visible="visible" role="region">
|
||||
<slot name="default" />
|
||||
</BCollapse>
|
||||
</BCard>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'CardCollapse',
|
||||
|
||||
props: {
|
||||
id: { type: String, required: true },
|
||||
title: { type: String, required: true },
|
||||
variant: { type: String, default: 'white' },
|
||||
visible: { type: Boolean, default: false },
|
||||
flush: { type: Boolean, default: false },
|
||||
},
|
||||
|
||||
computed: {
|
||||
_class() {
|
||||
const baseClass = 'card-collapse'
|
||||
return [
|
||||
baseClass,
|
||||
{
|
||||
[`${baseClass}-flush`]: this.flush,
|
||||
[`${baseClass}-${this.variant}`]: this.variant,
|
||||
},
|
||||
]
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.card-collapse {
|
||||
.card-header {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
&-button {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
padding-top: $spacer * 0.5;
|
||||
padding-bottom: $spacer * 0.5;
|
||||
border-radius: 0;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
&-flush {
|
||||
border-radius: 0;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
& + & {
|
||||
margin-top: 0;
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
@each $color, $value in $theme-colors {
|
||||
&-#{$color} {
|
||||
background-color: $value;
|
||||
color: color-yiq($value);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
86
app/src/components/CardDeckFeed.vue
Normal file
|
@ -0,0 +1,86 @@
|
|||
<script>
|
||||
// Implementation of the feed pattern
|
||||
// https://www.w3.org/WAI/ARIA/apg/patterns/feed/
|
||||
|
||||
export default {
|
||||
name: 'CardDeckFeed',
|
||||
|
||||
props: {
|
||||
stacks: { type: Number, default: 21 },
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
busy: false,
|
||||
range: this.stacks,
|
||||
childrenCount: this.$slots.default.length,
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
getTopParent(prev) {
|
||||
return prev.parentElement === this.$refs.feed
|
||||
? prev
|
||||
: this.getTopParent(prev.parentElement)
|
||||
},
|
||||
|
||||
onScroll() {
|
||||
const elem = this.$refs.feed
|
||||
if (
|
||||
window.innerHeight >
|
||||
elem.clientHeight + elem.getBoundingClientRect().top - 200
|
||||
) {
|
||||
this.busy = true
|
||||
this.range = Math.min(this.range + this.stacks, this.childrenCount)
|
||||
this.$nextTick().then(() => {
|
||||
this.busy = false
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
onKeydown(e) {
|
||||
if (['PageUp', 'PageDown'].includes(e.code)) {
|
||||
e.preventDefault()
|
||||
const key = e.code === 'PageUp' ? 'previous' : 'next'
|
||||
const sibling = this.getTopParent(e.target)[`${key}ElementSibling`]
|
||||
if (sibling) {
|
||||
sibling.focus()
|
||||
sibling.scrollIntoView({ block: 'center' })
|
||||
}
|
||||
}
|
||||
// FIXME Add `Home` and `End` shorcuts
|
||||
},
|
||||
},
|
||||
|
||||
mounted() {
|
||||
window.addEventListener('scroll', this.onScroll)
|
||||
this.$refs.feed.addEventListener('keydown', this.onKeydown)
|
||||
this.onScroll()
|
||||
},
|
||||
|
||||
beforeUpdate() {
|
||||
const slots = this.$slots.default
|
||||
if (this.childrenCount !== slots.length) {
|
||||
this.range = this.stacks
|
||||
this.childrenCount = slots.length
|
||||
}
|
||||
},
|
||||
|
||||
render(h) {
|
||||
return h(
|
||||
'BCardGroup',
|
||||
{
|
||||
attrs: { role: 'feed', 'aria-busy': this.busy.toString() },
|
||||
props: { deck: true },
|
||||
ref: 'feed',
|
||||
},
|
||||
this.$slots.default.slice(0, this.range),
|
||||
)
|
||||
},
|
||||
|
||||
beforeDestroy() {
|
||||
window.removeEventListener('scroll', this.onScroll)
|
||||
this.$refs.feed.removeEventListener('keydown', this.onKeydown)
|
||||
},
|
||||
}
|
||||
</script>
|
111
app/src/components/ConfigPanel.vue
Normal file
|
@ -0,0 +1,111 @@
|
|||
<template>
|
||||
<AbstractForm
|
||||
v-if="panel"
|
||||
v-bind="{
|
||||
id: panel.id + '-form',
|
||||
validation,
|
||||
serverError: panel.serverError,
|
||||
}"
|
||||
@submit.prevent.stop="onApply"
|
||||
:no-footer="!panel.hasApplyButton"
|
||||
>
|
||||
<slot name="tab-top" />
|
||||
|
||||
<template v-if="panel.help" #disclaimer>
|
||||
<div class="alert alert-info" v-html="help" />
|
||||
</template>
|
||||
|
||||
<slot name="tab-before" />
|
||||
|
||||
<template v-for="section in panel.sections">
|
||||
<Component
|
||||
v-if="section.visible"
|
||||
:is="section.name ? 'section' : 'div'"
|
||||
:key="section.id"
|
||||
class="panel-section"
|
||||
>
|
||||
<BCardTitle v-if="section.name" title-tag="h3">
|
||||
{{ section.name }}
|
||||
<small v-if="section.help">{{ section.help }}</small>
|
||||
</BCardTitle>
|
||||
|
||||
<template v-for="(field, fname) in section.fields">
|
||||
<!-- FIXME rework the whole component chain to avoid direct mutation of the `forms` props -->
|
||||
<!-- eslint-disable -->
|
||||
<Component
|
||||
v-if="field.visible"
|
||||
:is="field.is"
|
||||
v-bind="field.props"
|
||||
v-model="forms[panel.id][fname]"
|
||||
:validation="validation[fname]"
|
||||
:key="fname"
|
||||
@action.stop="onAction(section.id, fname, section.fields)"
|
||||
/>
|
||||
<!-- eslint-enable -->
|
||||
</template>
|
||||
</Component>
|
||||
</template>
|
||||
|
||||
<slot name="tab-after" />
|
||||
</AbstractForm>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { filterObject } from '@/helpers/commons'
|
||||
|
||||
export default {
|
||||
name: 'ConfigPanel',
|
||||
|
||||
props: {
|
||||
tabId: { type: String, required: true },
|
||||
panels: { type: Array, default: undefined },
|
||||
forms: { type: Object, default: undefined },
|
||||
v: { type: Object, default: undefined },
|
||||
},
|
||||
|
||||
computed: {
|
||||
panel() {
|
||||
return this.panels.find((panel) => panel.id === this.tabId)
|
||||
},
|
||||
|
||||
validation() {
|
||||
return this.v.forms[this.panel.id]
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
onApply() {
|
||||
const panelId = this.panel.id
|
||||
|
||||
this.$emit('submit', {
|
||||
id: panelId,
|
||||
form: this.forms[panelId],
|
||||
})
|
||||
},
|
||||
|
||||
onAction(sectionId, actionId, actionFields) {
|
||||
const panelId = this.panel.id
|
||||
const actionFieldsKeys = Object.keys(actionFields)
|
||||
|
||||
this.$emit('submit', {
|
||||
id: panelId,
|
||||
form: filterObject(this.forms[panelId], ([key]) =>
|
||||
actionFieldsKeys.includes(key),
|
||||
),
|
||||
action: [panelId, sectionId, actionId].join('.'),
|
||||
name: actionId,
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.card-title {
|
||||
margin-bottom: 1em;
|
||||
border-bottom: solid $border-width $gray-500;
|
||||
}
|
||||
::v-deep .panel-section:not(:last-child) {
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
</style>
|
72
app/src/components/ConfigPanels.vue
Normal file
|
@ -0,0 +1,72 @@
|
|||
<template>
|
||||
<div class="config-panel">
|
||||
<RoutableTabs
|
||||
v-if="routes_.length > 1"
|
||||
:routes="routes_"
|
||||
v-bind="{ panels, forms, v: $v, ...$attrs }"
|
||||
v-on="$listeners"
|
||||
>
|
||||
<template #tab-top>
|
||||
<slot name="tab-top" />
|
||||
</template>
|
||||
<template #tab-before>
|
||||
<slot name="tab-before" />
|
||||
</template>
|
||||
<template #tab-after>
|
||||
<slot name="tab-after" />
|
||||
</template>
|
||||
</RoutableTabs>
|
||||
|
||||
<YCard v-else :title="routes_[0].text" :icon="routes_[0].icon">
|
||||
<slot name="tab-top" />
|
||||
<slot name="tab-before" />
|
||||
<slot name="tab-after" />
|
||||
</YCard>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { validationMixin } from 'vuelidate'
|
||||
|
||||
export default {
|
||||
name: 'ConfigPanels',
|
||||
|
||||
inheritAttrs: false,
|
||||
|
||||
components: {
|
||||
RoutableTabs: () => import('@/components/RoutableTabs.vue'),
|
||||
},
|
||||
|
||||
mixins: [validationMixin],
|
||||
|
||||
props: {
|
||||
panels: { type: Array, default: undefined },
|
||||
forms: { type: Object, default: undefined },
|
||||
validations: { type: Object, default: undefined },
|
||||
errors: { type: Object, default: undefined }, // never used
|
||||
routes: { type: Array, default: null },
|
||||
noRedirect: { type: Boolean, default: false },
|
||||
},
|
||||
|
||||
computed: {
|
||||
routes_() {
|
||||
if (this.routes) return this.routes
|
||||
return this.panels.map((panel) => ({
|
||||
to: { params: { tabId: panel.id } },
|
||||
text: panel.name,
|
||||
icon: panel.icon || 'wrench',
|
||||
}))
|
||||
},
|
||||
},
|
||||
|
||||
validations() {
|
||||
return { forms: this.validations }
|
||||
},
|
||||
|
||||
created() {
|
||||
if (!this.noRedirect && !this.$route.params.tabId) {
|
||||
this.$router.replace({ params: { tabId: this.panels[0].id } })
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
76
app/src/components/LazyRenderer.vue
Normal file
|
@ -0,0 +1,76 @@
|
|||
<template>
|
||||
<div class="lazy-renderer" :style="`min-height: ${fixedMinHeight}px`">
|
||||
<slot v-if="render" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'LazyRenderer',
|
||||
|
||||
props: {
|
||||
unrender: { type: Boolean, default: true },
|
||||
minHeight: { type: Number, default: 0 },
|
||||
renderDelay: { type: Number, default: 100 },
|
||||
unrenderDelay: { type: Number, default: 2000 },
|
||||
rootMargin: { type: String, default: '300px' },
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
observer: null,
|
||||
render: false,
|
||||
fixedMinHeight: this.minHeight,
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
let unrenderTimer
|
||||
let renderTimer
|
||||
|
||||
this.observer = new IntersectionObserver(
|
||||
(entries) => {
|
||||
let intersecting = entries[0].isIntersecting
|
||||
|
||||
// Fix for weird bug when typing fast in app search or on slow client.
|
||||
// Intersection is triggered but even if the element is indeed in the viewport,
|
||||
// isIntersecting is `false`, so we have to manually check this…
|
||||
// FIXME Would be great to find out why this is happening
|
||||
if (!intersecting && this.$el.offsetTop < window.innerHeight) {
|
||||
intersecting = true
|
||||
}
|
||||
|
||||
if (intersecting) {
|
||||
clearTimeout(unrenderTimer)
|
||||
// Show the component after a delay (to avoid rendering while scrolling fast)
|
||||
renderTimer = setTimeout(
|
||||
() => {
|
||||
this.render = true
|
||||
},
|
||||
this.unrender ? this.renderDelay : 0,
|
||||
)
|
||||
|
||||
if (!this.unrender) {
|
||||
// Stop listening to intersections after first appearance if unrendering is not activated
|
||||
this.observer.disconnect()
|
||||
}
|
||||
} else if (this.unrender) {
|
||||
clearTimeout(renderTimer)
|
||||
// Hide the component after a delay if it's no longer in the viewport
|
||||
unrenderTimer = setTimeout(() => {
|
||||
this.fixedMinHeight = this.$el.clientHeight
|
||||
this.render = false
|
||||
}, this.unrenderDelay)
|
||||
}
|
||||
},
|
||||
{ rootMargin: this.rootMargin },
|
||||
)
|
||||
|
||||
this.observer.observe(this.$el)
|
||||
},
|
||||
|
||||
beforeDestroy() {
|
||||
this.observer.disconnect()
|
||||
},
|
||||
}
|
||||
</script>
|
84
app/src/components/MessageListGroup.vue
Normal file
|
@ -0,0 +1,84 @@
|
|||
<template>
|
||||
<BListGroup
|
||||
v-bind="$attrs"
|
||||
flush
|
||||
:class="{ 'fixed-height': fixedHeight, bordered: bordered }"
|
||||
@scroll="onScroll"
|
||||
>
|
||||
<YListGroupItem
|
||||
v-if="limit && messages.length > limit"
|
||||
variant="info"
|
||||
v-t="'api.partial_logs'"
|
||||
/>
|
||||
|
||||
<YListGroupItem
|
||||
v-for="({ color, text }, i) in reducedMessages"
|
||||
:key="i"
|
||||
:variant="color"
|
||||
size="xs"
|
||||
>
|
||||
<span v-html="text" />
|
||||
</YListGroupItem>
|
||||
</BListGroup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'MessageListGroup',
|
||||
|
||||
props: {
|
||||
messages: { type: Array, required: true },
|
||||
fixedHeight: { type: Boolean, default: false },
|
||||
bordered: { type: Boolean, default: false },
|
||||
autoScroll: { type: Boolean, default: false },
|
||||
limit: { type: Number, default: null },
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
auto: true,
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
reducedMessages() {
|
||||
const len = this.messages.length
|
||||
if (!this.limit || len <= this.limit) {
|
||||
return this.messages
|
||||
}
|
||||
return this.messages.slice(len - this.limit)
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
scrollToEnd() {
|
||||
if (!this.auto) return
|
||||
this.$nextTick(() => {
|
||||
this.$el.scrollTo(0, this.$el.lastElementChild.offsetTop)
|
||||
})
|
||||
},
|
||||
|
||||
onScroll({ target }) {
|
||||
this.auto = target.scrollHeight === target.scrollTop + target.clientHeight
|
||||
},
|
||||
},
|
||||
|
||||
created() {
|
||||
if (this.autoScroll) {
|
||||
this.$watch('messages', this.scrollToEnd)
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.fixed-height {
|
||||
max-height: 20vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.bordered {
|
||||
border: $card-border-width solid $card-border-color;
|
||||
@include border-radius($card-border-radius);
|
||||
}
|
||||
</style>
|
141
app/src/components/QueryHeader.vue
Normal file
|
@ -0,0 +1,141 @@
|
|||
<template>
|
||||
<div class="query-header w-100" v-on="$listeners" v-bind="$attrs">
|
||||
<!-- STATUS -->
|
||||
<span
|
||||
class="status"
|
||||
:class="['bg-' + color, statusSize]"
|
||||
:aria-label="$t('api.query_status.' + request.status)"
|
||||
/>
|
||||
|
||||
<!-- REQUEST DESCRIPTION -->
|
||||
<strong class="request-desc">
|
||||
{{ request.humanRoute }}
|
||||
</strong>
|
||||
|
||||
<div v-if="request.errors || request.warnings">
|
||||
<!-- WEBSOCKET ERRORS COUNT -->
|
||||
<span class="count" v-if="request.errors">
|
||||
{{ request.errors }}<YIcon iname="bug" class="text-danger ml-1" />
|
||||
</span>
|
||||
<!-- WEBSOCKET WARNINGS COUNT -->
|
||||
<span class="count" v-if="request.warnings">
|
||||
{{ request.warnings
|
||||
}}<YIcon iname="warning" class="text-warning ml-1" />
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- VIEW ERROR BUTTON -->
|
||||
<BButton
|
||||
v-if="showError && request.error"
|
||||
size="sm"
|
||||
pill
|
||||
class="error-btn ml-auto py-0"
|
||||
variant="danger"
|
||||
@click="reviewError"
|
||||
>
|
||||
<small v-t="'api_error.view_error'" />
|
||||
</BButton>
|
||||
|
||||
<!-- TIME DISPLAY -->
|
||||
<time
|
||||
v-if="showTime"
|
||||
:datetime="hour(request.date)"
|
||||
:class="request.error ? 'ml-2' : 'ml-auto'"
|
||||
>
|
||||
{{ hour(request.date) }}
|
||||
</time>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'QueryHeader',
|
||||
|
||||
props: {
|
||||
request: { type: Object, required: true },
|
||||
statusSize: { type: String, default: '' },
|
||||
showTime: { type: Boolean, default: false },
|
||||
showError: { type: Boolean, default: false },
|
||||
},
|
||||
|
||||
computed: {
|
||||
color() {
|
||||
const statuses = {
|
||||
pending: 'primary',
|
||||
success: 'success',
|
||||
warning: 'warning',
|
||||
error: 'danger',
|
||||
}
|
||||
return statuses[this.request.status]
|
||||
},
|
||||
|
||||
errorsCount() {
|
||||
return this.request.messages.filter(({ type }) => type === 'danger')
|
||||
.length
|
||||
},
|
||||
|
||||
warningsCount() {
|
||||
return this.request.messages.filter(({ type }) => type === 'warning')
|
||||
.length
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
reviewError() {
|
||||
this.$store.dispatch('REVIEW_ERROR', this.request)
|
||||
},
|
||||
|
||||
hour(date) {
|
||||
return new Date(date).toLocaleTimeString()
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: $font-size-sm;
|
||||
}
|
||||
|
||||
.error-btn {
|
||||
height: 1.25rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-width: 70px;
|
||||
}
|
||||
|
||||
.status {
|
||||
display: inline-block;
|
||||
border-radius: 50%;
|
||||
width: 0.75rem;
|
||||
min-width: 0.75rem;
|
||||
height: 0.75rem;
|
||||
margin-right: 0.25rem;
|
||||
|
||||
&.lg {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
time {
|
||||
min-width: 3.5rem;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.count {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(xs) {
|
||||
.xs-hide .request-desc {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
122
app/src/components/RecursiveListGroup.vue
Normal file
|
@ -0,0 +1,122 @@
|
|||
<template>
|
||||
<BListGroup :flush="flush" :style="{ '--depth': tree.depth }">
|
||||
<template v-for="(node, i) in tree.children">
|
||||
<BListGroupItem
|
||||
:key="node.id"
|
||||
class="list-group-item-action"
|
||||
:class="getClasses(node, i)"
|
||||
@click="$router.push(node.data.to)"
|
||||
>
|
||||
<slot name="default" v-bind="node" />
|
||||
|
||||
<BButton
|
||||
v-if="node.children"
|
||||
size="xs"
|
||||
variant="outline-secondary"
|
||||
:aria-expanded="node.data.opened ? 'true' : 'false'"
|
||||
:aria-controls="'collapse-' + node.id"
|
||||
:class="node.data.opened ? 'not-collapsed' : 'collapsed'"
|
||||
class="ml-2"
|
||||
@click.stop="node.data.opened = !node.data.opened"
|
||||
>
|
||||
<span class="sr-only">{{ toggleText }}</span>
|
||||
<YIcon iname="chevron-right" />
|
||||
</BButton>
|
||||
</BListGroupItem>
|
||||
|
||||
<BCollapse
|
||||
v-if="node.children"
|
||||
:key="'collapse-' + node.id"
|
||||
v-model="node.data.opened"
|
||||
:id="'collapse-' + node.id"
|
||||
>
|
||||
<RecursiveListGroup
|
||||
:tree="node"
|
||||
:last="last !== undefined ? last : i === tree.children.length - 1"
|
||||
flush
|
||||
>
|
||||
<!-- PASS THE DEFAULT SLOT WITH SCOPE TO NEXT NESTED COMPONENT -->
|
||||
<template slot="default" slot-scope="scope">
|
||||
<slot name="default" v-bind="scope" />
|
||||
</template>
|
||||
</RecursiveListGroup>
|
||||
</BCollapse>
|
||||
</template>
|
||||
</BListGroup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'RecursiveListGroup',
|
||||
|
||||
props: {
|
||||
tree: { type: Object, required: true },
|
||||
flush: { type: Boolean, default: false },
|
||||
last: { type: Boolean, default: undefined },
|
||||
toggleText: { type: String, default: null },
|
||||
},
|
||||
|
||||
methods: {
|
||||
getClasses(node, i) {
|
||||
const children = node.height > 0
|
||||
const opened = children && node.data.opened
|
||||
const last =
|
||||
this.last !== false &&
|
||||
(!children || !opened) &&
|
||||
i === this.tree.children.length - 1
|
||||
return { collapsible: children, uncollapsible: !children, opened, last }
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.list-group {
|
||||
.collapse {
|
||||
&:not(.show) + .list-group-item {
|
||||
border-end-start-radius: $border-radius;
|
||||
}
|
||||
&.show + .list-group-item {
|
||||
border-start-start-radius: $border-radius;
|
||||
}
|
||||
|
||||
+ .list-group-item {
|
||||
border-block-start-width: 1px !important;
|
||||
}
|
||||
}
|
||||
|
||||
&-item {
|
||||
&-action {
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: unset;
|
||||
}
|
||||
|
||||
&.collapsible.opened {
|
||||
border-end-start-radius: $border-radius;
|
||||
}
|
||||
&.collapsible:not(.opened, .last) {
|
||||
border-block-end-width: 0;
|
||||
}
|
||||
|
||||
&.last {
|
||||
border-block-end-width: $list-group-border-width;
|
||||
border-end-start-radius: $border-radius;
|
||||
}
|
||||
}
|
||||
|
||||
&-flush .list-group-item {
|
||||
margin-inline-start: calc(1rem * var(--depth));
|
||||
border-inline-end: $list-group-border-width solid $list-group-border-color;
|
||||
border-inline-start: $list-group-border-width solid $list-group-border-color;
|
||||
text-decoration: none;
|
||||
background-color: $list-group-hover-bg;
|
||||
|
||||
@include hover-focus() {
|
||||
background-color: darken($list-group-hover-bg, 3%);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
45
app/src/components/RoutableTabs.vue
Normal file
|
@ -0,0 +1,45 @@
|
|||
<template>
|
||||
<BCard no-body>
|
||||
<BCardHeader header-tag="nav">
|
||||
<BNav card-header fill pills>
|
||||
<BNavItem
|
||||
v-for="route in routes"
|
||||
:key="route.text"
|
||||
:to="route.to"
|
||||
exact
|
||||
exact-active-class="active"
|
||||
>
|
||||
<YIcon v-if="route.icon" :iname="route.icon" />
|
||||
{{ route.text }}
|
||||
</BNavItem>
|
||||
</BNav>
|
||||
</BCardHeader>
|
||||
|
||||
<!-- Bind extra props to the child view and forward child events to parent -->
|
||||
<RouterView v-bind="$attrs" v-on="$listeners">
|
||||
<template #tab-top>
|
||||
<slot name="tab-top" />
|
||||
</template>
|
||||
<template #tab-before>
|
||||
<slot name="tab-before" />
|
||||
</template>
|
||||
<template #tab-after>
|
||||
<slot name="tab-after" />
|
||||
</template>
|
||||
</RouterView>
|
||||
</BCard>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'RoutableTabs',
|
||||
|
||||
// Thanks to `v-bind="$attrs"` and `inheritAttrs: false`, this component can forward
|
||||
// arbitrary attributes (props) directly to its children.
|
||||
inheritAttrs: false,
|
||||
|
||||
props: {
|
||||
routes: { type: Array, required: true },
|
||||
},
|
||||
}
|
||||
</script>
|
79
app/src/components/globals/AbstractForm.vue
Normal file
|
@ -0,0 +1,79 @@
|
|||
<template>
|
||||
<div>
|
||||
<BCardBody>
|
||||
<slot name="disclaimer" />
|
||||
|
||||
<BForm
|
||||
:id="id"
|
||||
:inline="inline"
|
||||
:class="formClasses"
|
||||
@submit.prevent="onSubmit"
|
||||
novalidate
|
||||
>
|
||||
<slot name="default" />
|
||||
|
||||
<slot name="server-error" v-bind="{ errorFeedback }">
|
||||
<BAlert v-if="errorFeedback" variant="danger" class="my-3" icon="ban">
|
||||
<div v-html="errorFeedback" />
|
||||
</BAlert>
|
||||
</slot>
|
||||
</BForm>
|
||||
</BCardBody>
|
||||
|
||||
<BCardFooter v-if="!noFooter">
|
||||
<slot name="footer">
|
||||
<BButton type="submit" variant="success" :form="id">
|
||||
{{ submitText || $t('save') }}
|
||||
</BButton>
|
||||
</slot>
|
||||
</BCardFooter>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'AbstractForm',
|
||||
|
||||
props: {
|
||||
id: { type: String, default: 'ynh-form' },
|
||||
submitText: { type: String, default: null },
|
||||
validation: { type: Object, default: null },
|
||||
serverError: { type: String, default: '' },
|
||||
inline: { type: Boolean, default: false },
|
||||
formClasses: { type: [Array, String, Object], default: null },
|
||||
noFooter: { type: Boolean, default: false },
|
||||
},
|
||||
|
||||
computed: {
|
||||
errorFeedback() {
|
||||
if (this.serverError) return this.serverError
|
||||
else if (this.validation && this.validation.$anyError) {
|
||||
return this.$i18n.t('form_errors.invalid_form')
|
||||
} else return ''
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
onSubmit(e) {
|
||||
const v = this.validation
|
||||
if (v) {
|
||||
v.$touch()
|
||||
if (v.$pending || v.$invalid) return
|
||||
}
|
||||
this.$emit('submit', e)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.card-footer {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
|
||||
& > *:not(:first-child) {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
}
|
||||
</style>
|
74
app/src/components/globals/CardForm.vue
Normal file
|
@ -0,0 +1,74 @@
|
|||
<template>
|
||||
<YCard v-bind="$attrs" class="card-form">
|
||||
<template #default>
|
||||
<slot name="disclaimer" />
|
||||
|
||||
<BForm
|
||||
:id="id"
|
||||
:inline="inline"
|
||||
:class="formClasses"
|
||||
@submit.prevent="onSubmit"
|
||||
novalidate
|
||||
>
|
||||
<slot name="default" />
|
||||
|
||||
<slot name="server-error">
|
||||
<BAlert
|
||||
variant="danger"
|
||||
class="my-3"
|
||||
icon="ban"
|
||||
:show="errorFeedback !== ''"
|
||||
>
|
||||
<div v-html="errorFeedback" />
|
||||
</BAlert>
|
||||
</slot>
|
||||
</BForm>
|
||||
</template>
|
||||
|
||||
<template v-if="!noFooter" #buttons>
|
||||
<slot name="buttons">
|
||||
<BButton type="submit" variant="success" :form="id">
|
||||
{{ submitText ? submitText : $t('save') }}
|
||||
</BButton>
|
||||
</slot>
|
||||
</template>
|
||||
</YCard>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'CardForm',
|
||||
|
||||
props: {
|
||||
id: { type: String, default: 'ynh-form' },
|
||||
submitText: { type: String, default: null },
|
||||
validation: { type: Object, default: null },
|
||||
serverError: { type: String, default: '' },
|
||||
inline: { type: Boolean, default: false },
|
||||
formClasses: { type: [Array, String, Object], default: null },
|
||||
noFooter: { type: Boolean, default: false },
|
||||
},
|
||||
|
||||
computed: {
|
||||
errorFeedback() {
|
||||
if (this.serverError) return this.serverError
|
||||
else if (this.validation && this.validation.$anyError) {
|
||||
return this.$i18n.t('form_errors.invalid_form')
|
||||
} else return ''
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
onSubmit(e) {
|
||||
const v = this.validation
|
||||
if (v) {
|
||||
v.$touch()
|
||||
if (v.$pending || v.$invalid) return
|
||||
}
|
||||
this.$emit('submit', e)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss"></style>
|
60
app/src/components/globals/DescriptionRow.vue
Normal file
|
@ -0,0 +1,60 @@
|
|||
<template>
|
||||
<BRow no-gutters class="description-row">
|
||||
<BCol v-bind="cols_">
|
||||
<slot name="term">
|
||||
<strong>{{ term }}</strong>
|
||||
</slot>
|
||||
</BCol>
|
||||
|
||||
<BCol>
|
||||
<slot name="default">
|
||||
{{ details }}
|
||||
</slot>
|
||||
</BCol>
|
||||
</BRow>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'DescriptionRow',
|
||||
|
||||
props: {
|
||||
term: { type: String, default: null },
|
||||
details: { type: String, default: null },
|
||||
cols: { type: Object, default: () => ({ md: 4, xl: 3 }) },
|
||||
},
|
||||
|
||||
computed: {
|
||||
cols_() {
|
||||
return Object.assign({ md: 4, xl: 3 }, this.cols)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.description-row {
|
||||
@include media-breakpoint-up(md) {
|
||||
margin: 0.25rem 0;
|
||||
&:hover {
|
||||
background-color: rgba($black, 0.05);
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(sm) {
|
||||
flex-direction: column;
|
||||
|
||||
&:not(:last-of-type) {
|
||||
margin-bottom: 0.5rem;
|
||||
padding-bottom: 0.5rem;
|
||||
border-bottom: $border-width solid $card-border-color;
|
||||
}
|
||||
}
|
||||
|
||||
.col {
|
||||
display: flex;
|
||||
align-self: start;
|
||||
}
|
||||
}
|
||||
</style>
|
65
app/src/components/globals/ExplainWhat.vue
Normal file
|
@ -0,0 +1,65 @@
|
|||
<template>
|
||||
<span class="explain-what">
|
||||
<slot name="default" />
|
||||
<span class="explain-what-popover-container">
|
||||
<BButton :id="id" href="#" variant="light">
|
||||
<YIcon iname="question" />
|
||||
<span class="sr-only">
|
||||
{{ $t('details_about', { subject: title }) }}
|
||||
</span>
|
||||
</BButton>
|
||||
<BPopover
|
||||
placement="auto"
|
||||
:target="id"
|
||||
triggers="focus"
|
||||
custom-class="explain-what-popover"
|
||||
:variant="variant"
|
||||
:title="title"
|
||||
>
|
||||
<span v-html="content" />
|
||||
</BPopover>
|
||||
</span>
|
||||
</span>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ExplainWhat',
|
||||
|
||||
props: {
|
||||
id: { type: String, required: true },
|
||||
title: { type: String, required: true },
|
||||
content: { type: String, required: true },
|
||||
variant: { type: String, default: 'info' },
|
||||
},
|
||||
|
||||
computed: {
|
||||
cols_() {
|
||||
return Object.assign({ md: 4, xl: 3 }, this.cols)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.explain-what {
|
||||
line-height: 1.2;
|
||||
|
||||
.btn {
|
||||
padding: 0;
|
||||
margin-left: 0.1rem;
|
||||
border-radius: 50rem;
|
||||
line-height: inherit;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
&-popover {
|
||||
background-color: $white;
|
||||
border-width: 2px;
|
||||
|
||||
::v-deep .popover-body {
|
||||
color: $dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
144
app/src/components/globals/FormField.vue
Normal file
|
@ -0,0 +1,144 @@
|
|||
<template>
|
||||
<!-- v-bind="$attrs" allow to pass default attrs not specified in this component slots -->
|
||||
<BFormGroup
|
||||
v-bind="attrs"
|
||||
:id="_id"
|
||||
:label-for="$attrs['label-for'] || props.id"
|
||||
:state="state"
|
||||
@touch="touch"
|
||||
>
|
||||
<!-- Make field props and state available as scoped slot data -->
|
||||
<slot v-bind="{ self: { ...props, state }, touch }">
|
||||
<!-- if no component was passed as slot, render a component from the props -->
|
||||
<Component
|
||||
:is="component"
|
||||
v-bind="props"
|
||||
v-on="$listeners"
|
||||
:value="value"
|
||||
:state="state"
|
||||
:required="validation ? 'required' in validation : false"
|
||||
/>
|
||||
</slot>
|
||||
|
||||
<template #invalid-feedback>
|
||||
<span v-html="errorMessage" />
|
||||
</template>
|
||||
|
||||
<template #description>
|
||||
<!-- Render description -->
|
||||
<template v-if="description || link">
|
||||
<div class="d-flex">
|
||||
<BLink v-if="link" :to="link" :href="link.href" class="ml-auto">
|
||||
{{ link.text }}
|
||||
</BLink>
|
||||
</div>
|
||||
|
||||
<VueShowdown
|
||||
v-if="description"
|
||||
:markdown="description"
|
||||
flavor="github"
|
||||
:class="{
|
||||
['alert p-1 px-2 alert-' + descriptionVariant]: descriptionVariant,
|
||||
}"
|
||||
/>
|
||||
</template>
|
||||
<!-- Slot available to overwrite the one above -->
|
||||
<slot name="description" />
|
||||
</template>
|
||||
</BFormGroup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'FormField',
|
||||
|
||||
inheritAttrs: false,
|
||||
|
||||
props: {
|
||||
// Component props (other <form-group> related attrs are passed thanks to $attrs)
|
||||
id: { type: String, default: null },
|
||||
description: { type: String, default: null },
|
||||
descriptionVariant: { type: String, default: null },
|
||||
link: { type: Object, default: null },
|
||||
// Rendered field component props
|
||||
component: { type: String, default: 'InputItem' },
|
||||
value: { type: null, default: null },
|
||||
props: { type: Object, default: () => ({}) },
|
||||
validation: { type: Object, default: null },
|
||||
},
|
||||
|
||||
computed: {
|
||||
_id() {
|
||||
if (this.id) return this.id
|
||||
const childId = this.props.id || this.$attrs['label-for']
|
||||
return childId ? childId + '_group' : null
|
||||
},
|
||||
|
||||
attrs() {
|
||||
const attrs = { ...this.$attrs }
|
||||
if ('label' in attrs) {
|
||||
const defaultAttrs = {
|
||||
'label-cols-md': 4,
|
||||
'label-cols-lg': 3,
|
||||
'label-class': ['font-weight-bold', 'py-0'],
|
||||
}
|
||||
if (!('label-cols' in attrs)) {
|
||||
for (const attr in defaultAttrs) {
|
||||
if (!(attr in attrs)) attrs[attr] = defaultAttrs[attr]
|
||||
}
|
||||
} else if (!('label-class' in attrs)) {
|
||||
attrs['label-class'] = defaultAttrs['label-class']
|
||||
}
|
||||
}
|
||||
return attrs
|
||||
},
|
||||
|
||||
state() {
|
||||
// Need to set state as null if no error, else component turn green
|
||||
if (this.validation) {
|
||||
return this.validation.$anyError === true ? false : null
|
||||
}
|
||||
return null
|
||||
},
|
||||
|
||||
errorMessage() {
|
||||
const validation = this.validation
|
||||
if (validation && validation.$anyError) {
|
||||
const [type, errData] = this.findError(validation.$params, validation)
|
||||
return this.$i18n.t('form_errors.' + type, errData)
|
||||
}
|
||||
return ''
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
touch(name) {
|
||||
if (this.validation) {
|
||||
// For fields that have multiple elements
|
||||
if (name) {
|
||||
this.validation[name].$touch()
|
||||
} else {
|
||||
this.validation.$touch()
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
findError(params, obj, parent = obj) {
|
||||
for (const key in params) {
|
||||
if (!obj[key]) {
|
||||
return [key, obj.$params[key]]
|
||||
}
|
||||
if (obj[key].$anyError) {
|
||||
return this.findError(obj[key].$params, obj[key], parent)
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .invalid-feedback code {
|
||||
background-color: $gray-200;
|
||||
}
|
||||
</style>
|
70
app/src/components/globals/ReadOnlyField.vue
Normal file
|
@ -0,0 +1,70 @@
|
|||
<template>
|
||||
<BRow no-gutters class="description-row">
|
||||
<BCol v-bind="cols_" class="font-weight-bold">
|
||||
{{ label }}
|
||||
</BCol>
|
||||
|
||||
<BCol>
|
||||
<!-- FIXME not sure about rendering html -->
|
||||
<div v-html="text" />
|
||||
</BCol>
|
||||
</BRow>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ReadOnlyField',
|
||||
|
||||
inheritAttrs: false,
|
||||
|
||||
props: {
|
||||
label: { type: String, required: true },
|
||||
component: { type: String, default: 'InputItem' },
|
||||
value: { type: null, default: null },
|
||||
cols: { type: Object, default: () => ({ md: 4, lg: 3 }) },
|
||||
},
|
||||
|
||||
computed: {
|
||||
cols_() {
|
||||
return Object.assign({ md: 4, lg: 3 }, this.cols)
|
||||
},
|
||||
|
||||
text() {
|
||||
return this.parseValue(this.value)
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
parseValue(value) {
|
||||
const item = this.component
|
||||
if (item === 'FileItem') value = value.file ? value.file.name : null
|
||||
if (item === 'CheckboxItem') value = this.$i18n.t(value ? 'yes' : 'no')
|
||||
if (item === 'TextAreaItem') value = value.replaceAll('\n', '<br>')
|
||||
if (Array.isArray(value)) {
|
||||
value = value.length
|
||||
? value.join(this.$i18n.t('words.separator'))
|
||||
: null
|
||||
}
|
||||
if ([null, undefined, ''].includes(this.value))
|
||||
value = this.$i18n.t('words.none')
|
||||
return value
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.description-row {
|
||||
@include media-breakpoint-up(md) {
|
||||
margin: 1rem 0;
|
||||
}
|
||||
@include media-breakpoint-down(sm) {
|
||||
flex-direction: column;
|
||||
&:not(:last-of-type) {
|
||||
margin-bottom: 0.5rem;
|
||||
padding-bottom: 0.5rem;
|
||||
border-bottom: $border-width solid $card-border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
99
app/src/components/globals/TopBar.vue
Normal file
|
@ -0,0 +1,99 @@
|
|||
<template>
|
||||
<BButtonToolbar :aria-label="label" id="top-bar">
|
||||
<div id="top-bar-left" class="top-bar-group" v-if="hasLeftSlot">
|
||||
<slot name="group-left" />
|
||||
</div>
|
||||
|
||||
<div id="top-bar-right" class="top-bar-group" v-if="hasRightSlot || button">
|
||||
<slot v-if="hasRightSlot" name="group-right" />
|
||||
|
||||
<BButton v-else variant="success" :to="button.to">
|
||||
<YIcon v-if="button.icon" :iname="button.icon" /> {{ button.text }}
|
||||
</BButton>
|
||||
</div>
|
||||
</BButtonToolbar>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'TopBar',
|
||||
|
||||
props: {
|
||||
label: { type: String, default: null },
|
||||
button: {
|
||||
type: Object,
|
||||
default: null,
|
||||
validator(value) {
|
||||
return ['text', 'to'].every((prop) => prop in value)
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
hasLeftSlot: null,
|
||||
hasRightSlot: null,
|
||||
}
|
||||
},
|
||||
|
||||
created() {
|
||||
this.$nextTick(() => {
|
||||
this.hasLeftSlot = 'group-left' in this.$slots
|
||||
this.hasRightSlot = 'group-right' in this.$slots
|
||||
})
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
#top-bar {
|
||||
margin-bottom: 1rem;
|
||||
flex-wrap: wrap-reverse;
|
||||
|
||||
.top-bar-group {
|
||||
display: flex;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(xs) {
|
||||
.top-bar-group {
|
||||
flex-direction: column-reverse;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(sm) {
|
||||
flex-direction: column-reverse;
|
||||
|
||||
#top-bar-right {
|
||||
margin-bottom: 0.75rem;
|
||||
|
||||
::v-deep > * {
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
.top-bar-group {
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
#top-bar-left {
|
||||
flex-grow: 2;
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
#top-bar-right {
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
::v-deep .btn {
|
||||
margin-left: 0.5rem;
|
||||
&.dropdown-toggle-split {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
85
app/src/components/globals/ViewBase.vue
Normal file
|
@ -0,0 +1,85 @@
|
|||
<template>
|
||||
<div>
|
||||
<TopBar v-if="hasTopBar">
|
||||
<template #group-left>
|
||||
<slot name="top-bar-group-left" />
|
||||
</template>
|
||||
<template #group-right>
|
||||
<slot name="top-bar-group-right" />
|
||||
</template>
|
||||
</TopBar>
|
||||
<slot v-else name="top-bar" />
|
||||
|
||||
<slot name="top" v-bind="{ loading: isLoading }" />
|
||||
|
||||
<BSkeletonWrapper :loading="isLoading">
|
||||
<template #loading>
|
||||
<slot name="skeleton">
|
||||
<Component :is="skeleton" />
|
||||
</slot>
|
||||
</template>
|
||||
|
||||
<!-- Empty div to be able to receive multiple components -->
|
||||
<div>
|
||||
<slot name="default" v-bind="{ loading: isLoading }" />
|
||||
</div>
|
||||
</BSkeletonWrapper>
|
||||
|
||||
<slot name="bot" v-bind="{ loading: isLoading }" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import api from '@/api'
|
||||
|
||||
export default {
|
||||
name: 'ViewBase',
|
||||
|
||||
props: {
|
||||
queries: { type: Array, default: null },
|
||||
queriesWait: { type: Boolean, default: false },
|
||||
skeleton: { type: [String, Array], default: null },
|
||||
// Optional prop to take control of the loading value
|
||||
loading: { type: Boolean, default: null },
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
fallback_loading:
|
||||
this.loading === null && this.queries !== null ? true : null,
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
isLoading() {
|
||||
if (this.loading !== null) return this.loading
|
||||
return this.fallback_loading
|
||||
},
|
||||
|
||||
hasTopBar() {
|
||||
return ['top-bar-group-left', 'top-bar-group-right'].some(
|
||||
(slotName) => slotName in this.$slots,
|
||||
)
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
fetchQueries({ triggerLoading = false } = {}) {
|
||||
if (triggerLoading) {
|
||||
this.fallback_loading = true
|
||||
}
|
||||
|
||||
api
|
||||
.fetchAll(this.queries, { wait: this.queriesWait, initial: true })
|
||||
.then((responses) => {
|
||||
this.$emit('queries-response', ...responses)
|
||||
this.fallback_loading = false
|
||||
})
|
||||
},
|
||||
},
|
||||
|
||||
created() {
|
||||
if (this.queries) this.fetchQueries()
|
||||
},
|
||||
}
|
||||
</script>
|
76
app/src/components/globals/ViewSearch.vue
Normal file
|
@ -0,0 +1,76 @@
|
|||
<template>
|
||||
<ViewBase v-bind="$attrs" v-on="$listeners" :skeleton="skeleton">
|
||||
<template v-if="hasCustomTopBar" #top-bar>
|
||||
<slot name="top-bar" />
|
||||
</template>
|
||||
<template v-if="!hasCustomTopBar" #top-bar-group-left>
|
||||
<BInputGroup class="w-100">
|
||||
<BInputGroupPrepend is-text>
|
||||
<YIcon iname="search" />
|
||||
</BInputGroupPrepend>
|
||||
|
||||
<BFormInput
|
||||
id="top-bar-search"
|
||||
:value="search"
|
||||
@input="$emit('update:search', $event)"
|
||||
:placeholder="
|
||||
$t('search.for', { items: $tc('items.' + itemsName, 2) })
|
||||
"
|
||||
:disabled="!items"
|
||||
/>
|
||||
</BInputGroup>
|
||||
</template>
|
||||
<template v-if="!hasCustomTopBar" #top-bar-group-right>
|
||||
<slot name="top-bar-buttons" />
|
||||
</template>
|
||||
|
||||
<template #top>
|
||||
<slot name="top" />
|
||||
</template>
|
||||
|
||||
<template #default>
|
||||
<BAlert v-if="items === null || filteredItems === null" variant="warning">
|
||||
<slot name="alert-message">
|
||||
<YIcon iname="exclamation-triangle" />
|
||||
{{
|
||||
$tc(
|
||||
items === null ? 'items_verbose_count' : 'search.not_found',
|
||||
0,
|
||||
{ items: $tc('items.' + itemsName, 0) },
|
||||
)
|
||||
}}
|
||||
</slot>
|
||||
</BAlert>
|
||||
|
||||
<slot v-else name="default" />
|
||||
</template>
|
||||
|
||||
<template #bot>
|
||||
<slot name="bot" />
|
||||
</template>
|
||||
|
||||
<template #skeleton>
|
||||
<slot name="skeleton" />
|
||||
</template>
|
||||
</ViewBase>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ViewSearch',
|
||||
|
||||
props: {
|
||||
items: { type: null, required: true },
|
||||
itemsName: { type: String, required: true },
|
||||
filteredItems: { type: null, required: true },
|
||||
search: { type: String, default: null },
|
||||
skeleton: { type: String, default: 'ListGroupSkeleton' },
|
||||
},
|
||||
|
||||
computed: {
|
||||
hasCustomTopBar() {
|
||||
return 'top-bar' in this.$slots
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
36
app/src/components/globals/YAlert.vue
Normal file
|
@ -0,0 +1,36 @@
|
|||
<template>
|
||||
<Component
|
||||
v-bind="$attrs"
|
||||
:is="alert ? 'BAlert' : 'div'"
|
||||
:variant="alert ? variant : null"
|
||||
:class="{ ['alert alert-' + variant]: !alert }"
|
||||
class="yuno-alert d-flex flex-column flex-md-row align-items-center"
|
||||
>
|
||||
<YIcon :iname="_icon" class="mr-md-3 mb-md-0 mb-2 md" />
|
||||
|
||||
<div class="w-100">
|
||||
<slot name="default" />
|
||||
</div>
|
||||
</Component>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { DEFAULT_STATUS_ICON } from '@/helpers/yunohostArguments'
|
||||
|
||||
export default {
|
||||
name: 'YAlert',
|
||||
|
||||
props: {
|
||||
alert: { type: Boolean, default: false },
|
||||
variant: { type: String, default: 'info' },
|
||||
icon: { type: String, default: null },
|
||||
},
|
||||
|
||||
computed: {
|
||||
_icon() {
|
||||
if (this.icon) return this.icon
|
||||
return DEFAULT_STATUS_ICON[this.variant]
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
36
app/src/components/globals/YBreadcrumb.vue
Normal file
|
@ -0,0 +1,36 @@
|
|||
<template>
|
||||
<BBreadcrumb v-if="breadcrumb.length">
|
||||
<BBreadcrumbItem to="/">
|
||||
<span class="sr-only">{{ $t('home') }}</span>
|
||||
<YIcon iname="home" />
|
||||
</BBreadcrumbItem>
|
||||
|
||||
<BBreadcrumbItem
|
||||
v-for="({ name, text }, i) in breadcrumb"
|
||||
:key="name"
|
||||
:to="{ name }"
|
||||
:active="i === breadcrumb.length - 1"
|
||||
>
|
||||
{{ text }}
|
||||
</BBreadcrumbItem>
|
||||
</BBreadcrumb>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'YBreadcrumb',
|
||||
|
||||
computed: {
|
||||
...mapGetters(['breadcrumb']),
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.breadcrumb {
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
}
|
||||
</style>
|
112
app/src/components/globals/YCard.vue
Normal file
|
@ -0,0 +1,112 @@
|
|||
<template>
|
||||
<BCard v-bind="$attrs" :no-body="collapsable ? true : $attrs['no-body']">
|
||||
<template #header>
|
||||
<div class="w-100 d-flex align-items-center flex-wrap custom-header">
|
||||
<slot name="header">
|
||||
<Component :is="titleTag" class="custom-header-title">
|
||||
<YIcon v-if="icon" :iname="icon" class="mr-2" />{{ title }}
|
||||
</Component>
|
||||
<slot name="header-next" />
|
||||
</slot>
|
||||
|
||||
<div
|
||||
v-if="hasButtons"
|
||||
class="mt-2 w-100 custom-header-buttons"
|
||||
:class="{
|
||||
[`ml-${buttonUnbreak}-auto mt-${buttonUnbreak}-0 w-${buttonUnbreak}-auto`]:
|
||||
buttonUnbreak,
|
||||
}"
|
||||
>
|
||||
<slot name="header-buttons" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<BButton
|
||||
v-if="collapsable"
|
||||
@click="visible = !visible"
|
||||
size="sm"
|
||||
variant="outline-secondary"
|
||||
class="align-self-center ml-auto"
|
||||
:class="{
|
||||
'not-collapsed': visible,
|
||||
collapsed: !visible,
|
||||
[`ml-${buttonUnbreak}-2`]: buttonUnbreak,
|
||||
}"
|
||||
>
|
||||
<YIcon iname="chevron-right" />
|
||||
<span class="sr-only">{{ $t('words.collapse') }}</span>
|
||||
</BButton>
|
||||
</template>
|
||||
|
||||
<BCollapse v-if="collapsable" :visible="visible">
|
||||
<slot v-if="'no-body' in $attrs" name="default" />
|
||||
<BCardBody v-else>
|
||||
<slot name="default" />
|
||||
</BCardBody>
|
||||
</BCollapse>
|
||||
<template v-else>
|
||||
<slot name="default" />
|
||||
</template>
|
||||
|
||||
<template #footer v-if="'buttons' in $slots">
|
||||
<slot name="buttons" />
|
||||
</template>
|
||||
</BCard>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'YCard',
|
||||
|
||||
props: {
|
||||
id: { type: String, default: 'ynh-form' },
|
||||
title: { type: String, default: null },
|
||||
titleTag: { type: String, default: 'h2' },
|
||||
icon: { type: String, default: null },
|
||||
collapsable: { type: Boolean, default: false },
|
||||
collapsed: { type: Boolean, default: false },
|
||||
buttonUnbreak: { type: String, default: 'md' },
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
visible: !this.collapsed,
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
hasButtons() {
|
||||
return 'header-buttons' in this.$slots
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.card-header {
|
||||
display: flex;
|
||||
|
||||
.custom-header {
|
||||
& > :first-child {
|
||||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
.btn + .btn {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.card-footer {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
|
||||
& > *:not(:first-child) {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
}
|
||||
.collapse:not(.show) + .card-footer {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
56
app/src/components/globals/YIcon.vue
Normal file
|
@ -0,0 +1,56 @@
|
|||
<template>
|
||||
<span
|
||||
:class="['icon fa fa-' + iname, variant ? 'variant ' + variant : '']"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'YIcon',
|
||||
props: {
|
||||
iname: { type: String, required: true },
|
||||
variant: { type: String, default: null },
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.icon {
|
||||
font-size: inherit;
|
||||
min-width: 1rem;
|
||||
text-align: center;
|
||||
|
||||
&.lg {
|
||||
width: 3rem;
|
||||
font-size: 1.5rem;
|
||||
min-width: 3rem;
|
||||
}
|
||||
|
||||
&.md {
|
||||
width: 1.25rem;
|
||||
font-size: 1.25rem;
|
||||
min-width: 1.25rem;
|
||||
}
|
||||
|
||||
&.fs-sm {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
&.variant {
|
||||
font-size: 0.8rem;
|
||||
width: 1.35rem;
|
||||
min-width: 1.35rem;
|
||||
height: 1.35rem;
|
||||
line-height: 165%;
|
||||
border-radius: 50rem;
|
||||
|
||||
@each $color, $value in $theme-colors {
|
||||
&.#{$color} {
|
||||
background-color: $value;
|
||||
color: color-yiq($value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
108
app/src/components/globals/YListGroupItem.vue
Normal file
|
@ -0,0 +1,108 @@
|
|||
<template>
|
||||
<BListGroupItem class="yuno-list-group-item" :class="_class" v-bind="$attrs">
|
||||
<div v-if="!noStatus" class="yuno-list-group-item-status">
|
||||
<YIcon v-if="_icon" :iname="_icon" :class="['icon-' + variant]" />
|
||||
</div>
|
||||
|
||||
<div class="yuno-list-group-item-content">
|
||||
<slot name="default" />
|
||||
</div>
|
||||
</BListGroupItem>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { DEFAULT_STATUS_ICON } from '@/helpers/yunohostArguments'
|
||||
|
||||
export default {
|
||||
name: 'YListGroupItem',
|
||||
|
||||
props: {
|
||||
variant: { type: String, default: 'white' },
|
||||
icon: { type: String, default: null },
|
||||
noIcon: { type: Boolean, default: false },
|
||||
noStatus: { type: Boolean, default: false },
|
||||
size: { type: String, default: 'md' },
|
||||
faded: { type: Boolean, default: false },
|
||||
},
|
||||
|
||||
computed: {
|
||||
_icon() {
|
||||
return this.noIcon ? null : this.icon || DEFAULT_STATUS_ICON[this.variant]
|
||||
},
|
||||
|
||||
_class() {
|
||||
const baseClass = 'yuno-list-group-item-'
|
||||
return [
|
||||
baseClass + this.size,
|
||||
baseClass + this.variant,
|
||||
{ [baseClass + 'faded']: this.faded },
|
||||
]
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.yuno-list-group-item {
|
||||
display: flex;
|
||||
padding: 0;
|
||||
|
||||
&-status {
|
||||
width: 2rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
&-content {
|
||||
width: 100%;
|
||||
padding: $list-group-item-padding-y $list-group-item-padding-x;
|
||||
}
|
||||
|
||||
@each $color, $value in $theme-colors {
|
||||
&-#{$color} {
|
||||
color: theme-color-level($color, 6);
|
||||
|
||||
[dark-theme='true'] & {
|
||||
color: theme-color-level($color, -6);
|
||||
}
|
||||
|
||||
.yuno-list-group-item-status {
|
||||
background-color: $value;
|
||||
color: color-yiq($value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-sm,
|
||||
&-xs {
|
||||
font-size: $font-size-sm;
|
||||
|
||||
.yuno-list-group-item-status {
|
||||
width: 1.25rem;
|
||||
}
|
||||
|
||||
.yuno-list-group-item-content {
|
||||
padding: $tooltip-padding-y $tooltip-padding-x;
|
||||
}
|
||||
}
|
||||
|
||||
&-xs {
|
||||
.yuno-list-group-item-status {
|
||||
width: 0.4rem;
|
||||
|
||||
.icon {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.yuno-list-group-item-content {
|
||||
color: $black;
|
||||
}
|
||||
}
|
||||
|
||||
&-faded > * {
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
</style>
|
134
app/src/components/globals/YSpinner.vue
Normal file
|
@ -0,0 +1,134 @@
|
|||
<template>
|
||||
<div :class="['custom-spinner', spinner]" />
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'YSpinner',
|
||||
|
||||
computed: {
|
||||
...mapGetters(['spinner']),
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.custom-spinner {
|
||||
animation: 8s linear infinite;
|
||||
background-repeat: no-repeat;
|
||||
|
||||
&.pacman {
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
background-image: url('../../assets/spinners/pacman_dark.gif');
|
||||
animation-name: back-and-forth-pacman;
|
||||
|
||||
[dark-theme='true'] & {
|
||||
background-image: url('../../assets/spinners/pacman_light.gif');
|
||||
}
|
||||
|
||||
@keyframes back-and-forth-pacman {
|
||||
0%,
|
||||
100% {
|
||||
transform: scale(1);
|
||||
margin-left: 0;
|
||||
}
|
||||
49% {
|
||||
transform: scale(1);
|
||||
margin-left: calc(100% - 24px);
|
||||
}
|
||||
50% {
|
||||
transform: scale(-1);
|
||||
margin-left: calc(100% - 24px);
|
||||
}
|
||||
99% {
|
||||
transform: scale(-1);
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.magikarp {
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
background-image: url('../../assets/spinners/magikarp.gif');
|
||||
animation-name: back-and-forth-magikarp;
|
||||
|
||||
@keyframes back-and-forth-magikarp {
|
||||
0%,
|
||||
100% {
|
||||
transform: scale(1, 1);
|
||||
margin-left: 0;
|
||||
}
|
||||
49% {
|
||||
transform: scale(1, 1);
|
||||
margin-left: calc(100% - 32px);
|
||||
}
|
||||
50% {
|
||||
transform: scale(-1, 1);
|
||||
margin-left: calc(100% - 32px);
|
||||
}
|
||||
99% {
|
||||
transform: scale(-1, 1);
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.nyancat {
|
||||
height: 40px;
|
||||
width: 100px;
|
||||
background-image: url('../../assets/spinners/nyancat.gif');
|
||||
animation-name: back-and-forth-nyancat;
|
||||
|
||||
@keyframes back-and-forth-nyancat {
|
||||
0%,
|
||||
100% {
|
||||
transform: scale(1, 1);
|
||||
margin-left: 0;
|
||||
}
|
||||
49% {
|
||||
transform: scale(1, 1);
|
||||
margin-left: calc(100% - 100px);
|
||||
}
|
||||
50% {
|
||||
transform: scale(-1, 1);
|
||||
margin-left: calc(100% - 100px);
|
||||
}
|
||||
99% {
|
||||
transform: scale(-1, 1);
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.spookycat {
|
||||
height: 40px;
|
||||
width: 65px;
|
||||
background-image: url('../../assets/spinners/spookycat.gif');
|
||||
animation-name: back-and-forth-spookycat;
|
||||
|
||||
@keyframes back-and-forth-spookycat {
|
||||
0%,
|
||||
100% {
|
||||
transform: scale(1, 1);
|
||||
margin-left: 0;
|
||||
}
|
||||
49% {
|
||||
transform: scale(1, 1);
|
||||
margin-left: calc(100% - 100px);
|
||||
}
|
||||
50% {
|
||||
transform: scale(-1, 1);
|
||||
margin-left: calc(100% - 100px);
|
||||
}
|
||||
99% {
|
||||
transform: scale(-1, 1);
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
39
app/src/components/globals/formItems/ButtonItem.vue
Normal file
|
@ -0,0 +1,39 @@
|
|||
<template>
|
||||
<BButton
|
||||
:id="id"
|
||||
:variant="type"
|
||||
@click="$emit('action', $event)"
|
||||
:disabled="!enabled"
|
||||
class="d-block mb-3"
|
||||
>
|
||||
<YIcon :iname="icon_" class="mr-2" />
|
||||
<span v-html="label" />
|
||||
</BButton>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ButtonItem',
|
||||
|
||||
props: {
|
||||
label: { type: String, default: null },
|
||||
id: { type: String, default: null },
|
||||
type: { type: String, default: 'success' },
|
||||
icon: { type: String, default: null },
|
||||
enabled: { type: [Boolean, String], default: true },
|
||||
},
|
||||
|
||||
computed: {
|
||||
icon_() {
|
||||
const icons = {
|
||||
success: 'thumbs-up',
|
||||
info: 'info',
|
||||
warning: 'exclamation',
|
||||
danger: 'times',
|
||||
}
|
||||
|
||||
return this.icon || icons[this.type]
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
30
app/src/components/globals/formItems/CheckboxItem.vue
Normal file
|
@ -0,0 +1,30 @@
|
|||
<template>
|
||||
<BFormCheckbox
|
||||
v-model="checked"
|
||||
v-on="$listeners"
|
||||
:id="id"
|
||||
:aria-describedby="$parent.id + '__BV_description_'"
|
||||
switch
|
||||
>
|
||||
{{ label || $t(labels[checked]) }}
|
||||
</BFormCheckbox>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'CheckboxItem',
|
||||
|
||||
props: {
|
||||
value: { type: Boolean, required: true },
|
||||
id: { type: String, default: null },
|
||||
label: { type: String, default: null },
|
||||
labels: { type: Object, default: () => ({ true: 'yes', false: 'no' }) },
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
checked: this.value,
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
16
app/src/components/globals/formItems/DisplayTextItem.vue
Normal file
|
@ -0,0 +1,16 @@
|
|||
<template>
|
||||
<div>
|
||||
<p v-text="label" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'DisplayTextItem',
|
||||
|
||||
props: {
|
||||
id: { type: String, default: null },
|
||||
label: { type: String, default: null },
|
||||
},
|
||||
}
|
||||
</script>
|
90
app/src/components/globals/formItems/FileItem.vue
Normal file
|
@ -0,0 +1,90 @@
|
|||
<template>
|
||||
<BButtonGroup class="w-100">
|
||||
<BButton
|
||||
v-if="!this.required && this.value.file !== null"
|
||||
@click="clearFiles"
|
||||
variant="danger"
|
||||
>
|
||||
<span class="sr-only">{{ $t('delete') }}</span>
|
||||
<YIcon iname="trash" />
|
||||
</BButton>
|
||||
|
||||
<BFormFile
|
||||
:value="value.file"
|
||||
ref="input-file"
|
||||
:id="id"
|
||||
:required="required"
|
||||
:placeholder="_placeholder"
|
||||
:accept="accept"
|
||||
:drop-placeholder="dropPlaceholder"
|
||||
:state="state"
|
||||
:browse-text="$t('words.browse')"
|
||||
@input="onInput"
|
||||
@blur="$parent.$emit('touch', name)"
|
||||
@focusout.native="$parent.$emit('touch', name)"
|
||||
/>
|
||||
</BButtonGroup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getFileContent } from '@/helpers/commons'
|
||||
|
||||
export default {
|
||||
name: 'FileItem',
|
||||
|
||||
props: {
|
||||
id: { type: String, default: null },
|
||||
value: { type: Object, default: () => ({ file: null }) },
|
||||
placeholder: { type: String, default: 'Choose a file or drop it here...' },
|
||||
dropPlaceholder: { type: String, default: null },
|
||||
accept: { type: String, default: null },
|
||||
state: { type: Boolean, default: null },
|
||||
required: { type: Boolean, default: false },
|
||||
name: { type: String, default: null },
|
||||
},
|
||||
|
||||
computed: {
|
||||
_placeholder: function () {
|
||||
return this.value.file === null ? this.placeholder : this.value.file.name
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
onInput(file) {
|
||||
const value = {
|
||||
file,
|
||||
content: '',
|
||||
current: false,
|
||||
removed: false,
|
||||
}
|
||||
// Update the value with the new File and an empty content for now
|
||||
this.$emit('input', value)
|
||||
|
||||
// Asynchronously load the File content and update the value again
|
||||
getFileContent(file).then((content) => {
|
||||
this.$emit('input', { ...value, content })
|
||||
})
|
||||
},
|
||||
|
||||
clearFiles() {
|
||||
this.$refs['input-file'].reset()
|
||||
this.$emit('input', {
|
||||
file: null,
|
||||
content: '',
|
||||
current: false,
|
||||
removed: true,
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .custom-file-label {
|
||||
color: $input-placeholder-color;
|
||||
|
||||
.btn-danger + .b-form-file & {
|
||||
color: $input-color;
|
||||
}
|
||||
}
|
||||
</style>
|
49
app/src/components/globals/formItems/InputItem.vue
Normal file
|
@ -0,0 +1,49 @@
|
|||
<template>
|
||||
<BFormInput
|
||||
:value="value"
|
||||
:id="id"
|
||||
:placeholder="placeholder"
|
||||
:type="type"
|
||||
:state="state"
|
||||
:required="required"
|
||||
:min="min"
|
||||
:max="max"
|
||||
:step="step"
|
||||
:trim="trim"
|
||||
:autocomplete="autocomplete_"
|
||||
v-on="$listeners"
|
||||
@blur="$parent.$emit('touch', name)"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'InputItem',
|
||||
|
||||
props: {
|
||||
value: { type: [String, Number], default: null },
|
||||
id: { type: String, default: null },
|
||||
placeholder: { type: String, default: null },
|
||||
type: { type: String, default: 'text' },
|
||||
required: { type: Boolean, default: false },
|
||||
state: { type: Boolean, default: null },
|
||||
min: { type: Number, default: null },
|
||||
max: { type: Number, default: null },
|
||||
step: { type: Number, default: null },
|
||||
trim: { type: Boolean, default: true },
|
||||
autocomplete: { type: String, default: null },
|
||||
pattern: { type: Object, default: null },
|
||||
name: { type: String, default: null },
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
autocomplete_: this.autocomplete
|
||||
? this.autocomplete
|
||||
: this.type === 'password'
|
||||
? 'new-password'
|
||||
: null,
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
14
app/src/components/globals/formItems/MarkdownItem.vue
Normal file
|
@ -0,0 +1,14 @@
|
|||
<template>
|
||||
<VueShowdown :markdown="label" flavor="github" />
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'MarkdownItem',
|
||||
|
||||
props: {
|
||||
id: { type: String, default: null },
|
||||
label: { type: String, default: null },
|
||||
},
|
||||
}
|
||||
</script>
|
41
app/src/components/globals/formItems/ReadOnlyAlertItem.vue
Normal file
|
@ -0,0 +1,41 @@
|
|||
<template>
|
||||
<BAlert
|
||||
class="d-flex flex-column flex-md-row align-items-center"
|
||||
:variant="type"
|
||||
show
|
||||
>
|
||||
<YIcon :iname="icon_" class="mr-md-3 mb-md-0 mb-2" :variant="type" />
|
||||
|
||||
<VueShowdown
|
||||
:markdown="label"
|
||||
flavor="github"
|
||||
tag="span"
|
||||
class="markdown"
|
||||
/>
|
||||
</BAlert>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ReadOnlyAlertItem',
|
||||
|
||||
props: {
|
||||
id: { type: String, default: null },
|
||||
label: { type: String, default: null },
|
||||
type: { type: String, default: null },
|
||||
icon: { type: String, default: null },
|
||||
},
|
||||
|
||||
computed: {
|
||||
icon_() {
|
||||
const icons = {
|
||||
success: 'thumbs-up',
|
||||
info: 'info',
|
||||
warning: 'exclamation',
|
||||
danger: 'times',
|
||||
}
|
||||
return this.icon || icons[this.type]
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
24
app/src/components/globals/formItems/SelectItem.vue
Normal file
|
@ -0,0 +1,24 @@
|
|||
<template>
|
||||
<BFormSelect
|
||||
:value="value"
|
||||
:id="id"
|
||||
:options="choices"
|
||||
:required="required"
|
||||
v-on="$listeners"
|
||||
@blur.native="$emit('blur', value)"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'SelectItem',
|
||||
|
||||
props: {
|
||||
value: { type: [String, null], default: null },
|
||||
id: { type: String, default: null },
|
||||
choices: { type: [Array, Object], required: true },
|
||||
required: { type: Boolean, default: false },
|
||||
name: { type: String, default: null },
|
||||
},
|
||||
}
|
||||
</script>
|
37
app/src/components/globals/formItems/TagsItem.vue
Normal file
|
@ -0,0 +1,37 @@
|
|||
<template>
|
||||
<BFormTags
|
||||
v-model="tags"
|
||||
:id="id"
|
||||
:placeholder="placeholder"
|
||||
:required="required"
|
||||
separator=" ,;"
|
||||
:limit="limit"
|
||||
remove-on-delete
|
||||
:state="state"
|
||||
:options="options"
|
||||
v-on="$listeners"
|
||||
@blur="$parent.$emit('touch', name)"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'TagsItem',
|
||||
|
||||
data() {
|
||||
return {
|
||||
tags: this.value,
|
||||
}
|
||||
},
|
||||
props: {
|
||||
value: { type: Array, default: null },
|
||||
id: { type: String, default: null },
|
||||
placeholder: { type: String, default: null },
|
||||
limit: { type: Number, default: null },
|
||||
required: { type: Boolean, default: false },
|
||||
state: { type: Boolean, default: null },
|
||||
name: { type: String, default: null },
|
||||
options: { type: Array, default: null },
|
||||
},
|
||||
}
|
||||
</script>
|
191
app/src/components/globals/formItems/TagsSelectizeItem.vue
Normal file
|
@ -0,0 +1,191 @@
|
|||
<template>
|
||||
<div class="tags-selectize">
|
||||
<BFormTags
|
||||
v-bind="$attrs"
|
||||
v-on="$listeners"
|
||||
:value="value"
|
||||
:id="id"
|
||||
size="lg"
|
||||
class="p-0 border-0"
|
||||
no-outer-focus
|
||||
>
|
||||
<template #default="{ tags, disabled, addTag, removeTag }">
|
||||
<ul
|
||||
v-if="!noTags && tags.length > 0"
|
||||
class="list-inline d-inline-block mb-2"
|
||||
>
|
||||
<li
|
||||
v-for="tag in tags"
|
||||
:key="id + '-' + tag"
|
||||
class="list-inline-item"
|
||||
>
|
||||
<BFormTag
|
||||
@remove="onRemoveTag({ option: tag, removeTag })"
|
||||
:title="tag"
|
||||
:disabled="disabled || disabledItems.includes(tag)"
|
||||
class="border border-dark mb-2"
|
||||
>
|
||||
<YIcon v-if="tagIcon" :iname="tagIcon" /> {{ tag }}
|
||||
</BFormTag>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<BDropdown
|
||||
ref="dropdown"
|
||||
variant="outline-dark"
|
||||
block
|
||||
menu-class="w-100"
|
||||
@keydown.native="onDropdownKeydown"
|
||||
>
|
||||
<template #button-content>
|
||||
<YIcon iname="search-plus" /> {{ label }}
|
||||
</template>
|
||||
|
||||
<BDropdownGroup class="search-group">
|
||||
<BDropdownForm @submit.stop.prevent="() => {}">
|
||||
<BFormGroup
|
||||
:label="$t('search.for', { items: itemsName })"
|
||||
label-cols-md="auto"
|
||||
label-size="sm"
|
||||
:label-for="id + '-search-input'"
|
||||
:invalid-feedback="
|
||||
$tc('search.not_found', 0, {
|
||||
items: $tc('items.' + itemsName, 0),
|
||||
})
|
||||
"
|
||||
:state="searchState"
|
||||
:disabled="disabled"
|
||||
class="mb-0"
|
||||
>
|
||||
<BFormInput
|
||||
ref="search-input"
|
||||
v-model="search"
|
||||
:id="id + '-search-input'"
|
||||
type="search"
|
||||
size="sm"
|
||||
autocomplete="off"
|
||||
/>
|
||||
</BFormGroup>
|
||||
</BDropdownForm>
|
||||
<BDropdownDivider />
|
||||
</BDropdownGroup>
|
||||
|
||||
<BDropdownItemButton
|
||||
v-for="option in availableOptions"
|
||||
:key="option"
|
||||
@click="onAddTag({ option, addTag })"
|
||||
>
|
||||
{{ option }}
|
||||
</BDropdownItemButton>
|
||||
<BDropdownText v-if="!criteria && availableOptions.length === 0">
|
||||
<YIcon iname="exclamation-triangle" />
|
||||
{{
|
||||
$tc('items_verbose_items_left', 0, {
|
||||
items: $tc('items.' + itemsName, 0),
|
||||
})
|
||||
}}
|
||||
</BDropdownText>
|
||||
</BDropdown>
|
||||
</template>
|
||||
</BFormTags>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'TagsSelectizeItem',
|
||||
|
||||
inheritAttrs: false,
|
||||
|
||||
props: {
|
||||
value: { type: Array, required: true },
|
||||
options: { type: Array, required: true },
|
||||
id: { type: String, required: true },
|
||||
placeholder: { type: String, default: null },
|
||||
limit: { type: Number, default: null },
|
||||
name: { type: String, default: null },
|
||||
itemsName: { type: String, required: true },
|
||||
disabledItems: { type: Array, default: () => [] },
|
||||
// By default `addTag` and `removeTag` have to be executed manually by listening to 'tag-update'.
|
||||
auto: { type: Boolean, default: false },
|
||||
noTags: { type: Boolean, default: false },
|
||||
label: { type: String, default: null },
|
||||
tagIcon: { type: String, default: null },
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
search: '',
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
criteria() {
|
||||
return this.search.trim().toLowerCase()
|
||||
},
|
||||
|
||||
availableOptions() {
|
||||
const criteria = this.criteria
|
||||
const options = this.options.filter((opt) => {
|
||||
return (
|
||||
this.value.indexOf(opt) === -1 && !this.disabledItems.includes(opt)
|
||||
)
|
||||
})
|
||||
if (criteria) {
|
||||
return options.filter((opt) => opt.toLowerCase().indexOf(criteria) > -1)
|
||||
}
|
||||
return options
|
||||
},
|
||||
|
||||
searchState() {
|
||||
return this.criteria && this.availableOptions.length === 0 ? false : null
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
onAddTag({ option, addTag }) {
|
||||
this.$emit('tag-update', { action: 'add', option, applyMethod: addTag })
|
||||
this.search = ''
|
||||
if (this.auto) {
|
||||
addTag(option)
|
||||
}
|
||||
},
|
||||
|
||||
onRemoveTag({ option, removeTag }) {
|
||||
this.$emit('tag-update', {
|
||||
action: 'remove',
|
||||
option,
|
||||
applyMethod: removeTag,
|
||||
})
|
||||
if (this.auto) {
|
||||
removeTag(option)
|
||||
}
|
||||
},
|
||||
|
||||
onDropdownKeydown(e) {
|
||||
// Allow to start searching after dropdown opening
|
||||
if (
|
||||
!['Tab', 'Space'].includes(e.code) &&
|
||||
e.target === this.$refs.dropdown.$el.lastElementChild
|
||||
) {
|
||||
this.$refs['search-input'].focus()
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .dropdown-menu {
|
||||
max-height: 300px;
|
||||
overflow-y: auto;
|
||||
padding-top: 0;
|
||||
|
||||
.search-group {
|
||||
padding-top: 0.5rem;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background-color: $white;
|
||||
}
|
||||
}
|
||||
</style>
|
28
app/src/components/globals/formItems/TextAreaItem.vue
Normal file
|
@ -0,0 +1,28 @@
|
|||
<template>
|
||||
<BFormTextarea
|
||||
:value="value"
|
||||
:id="id"
|
||||
:placeholder="placeholder"
|
||||
:required="required"
|
||||
:state="state"
|
||||
rows="4"
|
||||
v-on="$listeners"
|
||||
@blur="$parent.$emit('touch', name)"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'TextAreaItem',
|
||||
|
||||
props: {
|
||||
value: { type: String, default: null },
|
||||
id: { type: String, default: null },
|
||||
placeholder: { type: String, default: null },
|
||||
type: { type: String, default: 'text' },
|
||||
required: { type: Boolean, default: false },
|
||||
state: { type: Boolean, default: null },
|
||||
name: { type: String, default: null },
|
||||
},
|
||||
}
|
||||
</script>
|
32
app/src/components/globals/skeletons/CardButtonsSkeleton.vue
Normal file
|
@ -0,0 +1,32 @@
|
|||
<template>
|
||||
<BCard>
|
||||
<template #header>
|
||||
<BSkeleton width="30%" height="36px" class="m-0" />
|
||||
</template>
|
||||
|
||||
<div v-for="count in itemCount" :key="count">
|
||||
<template v-if="randint(0, 1)">
|
||||
<BSkeleton width="100%" height="24px" />
|
||||
<BSkeleton :width="randint(15, 60) + '%'" height="24px" />
|
||||
</template>
|
||||
<BSkeleton v-else :width="randint(45, 100) + '%'" height="24px" />
|
||||
|
||||
<BSkeleton :width="randint(20, 30) + '%'" height="38px" class="mt-3" />
|
||||
<hr />
|
||||
</div>
|
||||
</BCard>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { randint } from '@/helpers/commons'
|
||||
|
||||
export default {
|
||||
name: 'CardButtonsSkeleton',
|
||||
|
||||
props: {
|
||||
itemCount: { type: Number, default: 5 },
|
||||
},
|
||||
|
||||
methods: { randint },
|
||||
}
|
||||
</script>
|
64
app/src/components/globals/skeletons/CardFormSkeleton.vue
Normal file
|
@ -0,0 +1,64 @@
|
|||
<template>
|
||||
<BCard>
|
||||
<template #header>
|
||||
<BSkeleton width="30%" height="36px" class="m-0" />
|
||||
</template>
|
||||
|
||||
<template v-for="count in itemCount">
|
||||
<BRow :key="count" :class="{ 'd-block': cols === null }">
|
||||
<BCol v-bind="cols">
|
||||
<div style="height: 38px" class="d-flex align-items-center">
|
||||
<BSkeleton
|
||||
class="m-0"
|
||||
:width="randint(45, 100) + '%'"
|
||||
height="24px"
|
||||
/>
|
||||
</div>
|
||||
</BCol>
|
||||
|
||||
<BCol>
|
||||
<div
|
||||
class="w100 d-flex justify-content-between"
|
||||
v-if="count % 2 === 0"
|
||||
>
|
||||
<BSkeleton width="100%" height="38px" />
|
||||
|
||||
<BSkeleton width="38px" height="38px" class="ml-2" />
|
||||
</div>
|
||||
|
||||
<BSkeleton v-else width="100%" height="38px" />
|
||||
|
||||
<BSkeleton :width="randint(15, 35) + '%'" height="19px" />
|
||||
</BCol>
|
||||
</BRow>
|
||||
|
||||
<hr :key="count + '-hr'" />
|
||||
</template>
|
||||
|
||||
<template #footer>
|
||||
<div class="d-flex justify-content-end w-100">
|
||||
<BSkeleton width="100px" height="38px" />
|
||||
</div>
|
||||
</template>
|
||||
</BCard>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { randint } from '@/helpers/commons'
|
||||
|
||||
export default {
|
||||
name: 'CardFormSkeleton',
|
||||
|
||||
props: {
|
||||
itemCount: { type: Number, default: 5 },
|
||||
cols: {
|
||||
type: [Object, null],
|
||||
default() {
|
||||
return { md: 4, lg: 2 }
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
methods: { randint },
|
||||
}
|
||||
</script>
|
30
app/src/components/globals/skeletons/CardInfoSkeleton.vue
Normal file
|
@ -0,0 +1,30 @@
|
|||
<template>
|
||||
<BCard>
|
||||
<template #header>
|
||||
<BSkeleton width="30%" height="36px" class="m-0" />
|
||||
</template>
|
||||
|
||||
<BRow v-for="i in itemCount" :key="i" no-gutters>
|
||||
<BCol cols="5" md="3" xl="3">
|
||||
<BSkeleton :width="randint(45, 95) + '%'" height="19px" />
|
||||
</BCol>
|
||||
<BCol>
|
||||
<BSkeleton :width="randint(10, 60) + '%'" height="19px" />
|
||||
</BCol>
|
||||
</BRow>
|
||||
</BCard>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { randint } from '@/helpers/commons'
|
||||
|
||||
export default {
|
||||
name: 'CardInfoSkeleton',
|
||||
|
||||
props: {
|
||||
itemCount: { type: Number, default: 5 },
|
||||
},
|
||||
|
||||
methods: { randint },
|
||||
}
|
||||
</script>
|
34
app/src/components/globals/skeletons/CardListSkeleton.vue
Normal file
|
@ -0,0 +1,34 @@
|
|||
<template>
|
||||
<BCard no-body>
|
||||
<template #header>
|
||||
<BSkeleton width="30%" height="36px" class="m-0" />
|
||||
</template>
|
||||
|
||||
<BListGroup flush>
|
||||
<BListGroupItem v-for="count in itemCount" :key="count" class="d-flex">
|
||||
<div style="width: 20%">
|
||||
<BSkeleton
|
||||
:width="randint(50, 100) + '%'"
|
||||
height="24px"
|
||||
class="mr-3"
|
||||
/>
|
||||
</div>
|
||||
<BSkeleton :width="randint(30, 80) + '%'" height="24px" class="m-0" />
|
||||
</BListGroupItem>
|
||||
</BListGroup>
|
||||
</BCard>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { randint } from '@/helpers/commons'
|
||||
|
||||
export default {
|
||||
name: 'CardListSkeleton',
|
||||
|
||||
props: {
|
||||
itemCount: { type: Number, default: 5 },
|
||||
},
|
||||
|
||||
methods: { randint },
|
||||
}
|
||||
</script>
|
22
app/src/components/globals/skeletons/ListGroupSkeleton.vue
Normal file
|
@ -0,0 +1,22 @@
|
|||
<template>
|
||||
<BListGroup>
|
||||
<BListGroupItem v-for="count in itemCount" :key="count">
|
||||
<BSkeleton :width="randint(15, 25) + '%'" height="24px" class="mb-2" />
|
||||
<BSkeleton :width="randint(25, 50) + '%'" height="24px" class="m-0" />
|
||||
</BListGroupItem>
|
||||
</BListGroup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { randint } from '@/helpers/commons'
|
||||
|
||||
export default {
|
||||
name: 'ListGroupSkeleton',
|
||||
|
||||
props: {
|
||||
itemCount: { type: Number, default: 5 },
|
||||
},
|
||||
|
||||
methods: { randint },
|
||||
}
|
||||
</script>
|
137
app/src/helpers/commons.js
Normal file
|
@ -0,0 +1,137 @@
|
|||
/**
|
||||
* Allow to set a timeout on a `Promise` expected response.
|
||||
* The returned Promise will be rejected if the original Promise is not resolved or
|
||||
* rejected before the delay.
|
||||
*
|
||||
* @param {Promise} promise - A promise (like a fetch call).
|
||||
* @param {Number} delay - delay after which the promise is rejected
|
||||
* @return {Promise}
|
||||
*/
|
||||
export function timeout(promise, delay) {
|
||||
return new Promise((resolve, reject) => {
|
||||
// FIXME reject(new Error('api_not_responding')) for post-install
|
||||
setTimeout(() => reject, delay)
|
||||
promise.then(resolve, reject)
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if passed value is an object literal.
|
||||
*
|
||||
* @param {*} value - Anything.
|
||||
* @return {Boolean}
|
||||
*/
|
||||
export function isObjectLiteral(value) {
|
||||
return (
|
||||
value !== null &&
|
||||
value !== undefined &&
|
||||
Object.is(value.constructor, Object)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if value is "empty" (`null`, `undefined`, `''`, `[]`, '{}').
|
||||
* Note: `0` is not considered "empty" in that helper.
|
||||
*
|
||||
* @param {*} value - Anything.
|
||||
* @return {Boolean}
|
||||
*/
|
||||
export function isEmptyValue(value) {
|
||||
if (typeof value === 'number') return false
|
||||
return !value || value.length === 0 || Object.keys(value).length === 0
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an flattened object literal, with all keys at first level and removing nested ones.
|
||||
*
|
||||
* @param {Object} obj - An object literal to flatten.
|
||||
* @param {Object} [flattened={}] - An object literal to add passed obj keys/values.
|
||||
* @return {Object}
|
||||
*/
|
||||
export function flattenObjectLiteral(obj, flattened = {}) {
|
||||
function flatten(objLit) {
|
||||
for (const key in objLit) {
|
||||
const value = objLit[key]
|
||||
if (isObjectLiteral(value)) {
|
||||
flatten(value)
|
||||
} else {
|
||||
flattened[key] = value
|
||||
}
|
||||
}
|
||||
}
|
||||
flatten(obj)
|
||||
return flattened
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an new Object filtered with passed filter function.
|
||||
* Each entry `[key, value]` will be forwarded to the `filter` function.
|
||||
*
|
||||
* @param {Object} obj - object to filter.
|
||||
* @param {Function} filter - the filter function to call for each entry.
|
||||
* @return {Object}
|
||||
*/
|
||||
export function filterObject(obj, filter) {
|
||||
return Object.fromEntries(
|
||||
Object.entries(obj).filter((...args) => filter(...args)),
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an new array containing items that are in first array but not in the other.
|
||||
*
|
||||
* @param {Array} [arr1=[]]
|
||||
* @param {Array} [arr2=[]]
|
||||
* @return {Array}
|
||||
*/
|
||||
export function arrayDiff(arr1 = [], arr2 = []) {
|
||||
return arr1.filter((item) => !arr2.includes(item))
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a new string with escaped HTML (`&<>"'` replaced by entities).
|
||||
*
|
||||
* @param {String} unsafe
|
||||
* @return {String}
|
||||
*/
|
||||
export function escapeHtml(unsafe) {
|
||||
return unsafe
|
||||
.replace(/&/g, '&')
|
||||
.replace(/</g, '<')
|
||||
.replace(/>/g, '>')
|
||||
.replace(/"/g, '"')
|
||||
.replace(/'/g, ''')
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a random integer between `min` and `max`.
|
||||
*
|
||||
* @param {Number} min
|
||||
* @param {Number} max
|
||||
* @return {Number}
|
||||
*/
|
||||
export function randint(min, max) {
|
||||
return Math.floor(Math.random() * (max - min + 1)) + min
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a File content.
|
||||
*
|
||||
* @param {File} file
|
||||
* @param {Object} [extraParams] - Optionnal params
|
||||
* @param {Boolean} [extraParams.base64] - returns a base64 representation of the file.
|
||||
* @return {Promise<String>}
|
||||
*/
|
||||
export function getFileContent(file, { base64 = false } = {}) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const reader = new FileReader()
|
||||
reader.onerror = reject
|
||||
reader.onload = () => resolve(reader.result)
|
||||
|
||||
if (base64) {
|
||||
reader.readAsDataURL(file)
|
||||
} else {
|
||||
reader.readAsText(file)
|
||||
}
|
||||
})
|
||||
}
|
209
app/src/helpers/data/tree.js
Normal file
|
@ -0,0 +1,209 @@
|
|||
/**
|
||||
* A Node that can have a parent and children.
|
||||
*/
|
||||
export class Node {
|
||||
constructor(data) {
|
||||
this.data = data
|
||||
this.depth = 0
|
||||
this.height = 0
|
||||
this.parent = null
|
||||
// this.id = null
|
||||
// this.children = null
|
||||
}
|
||||
|
||||
/**
|
||||
* Invokes the specified `callback` for this node and each descendant in pre-order
|
||||
* traversal, such that a given node is only visited after all of its ancestors
|
||||
* have already been visited.
|
||||
* The specified function is passed the current descendant, the zero-based traversal
|
||||
* index, and this node.
|
||||
* Code taken and adapted from d3.js https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/eachBefore.js.
|
||||
*
|
||||
* @param {function} callback
|
||||
* @return {Object}
|
||||
*/
|
||||
eachBefore(callback) {
|
||||
const nodes = []
|
||||
let index = -1
|
||||
let node = this
|
||||
|
||||
while (node) {
|
||||
callback(node, ++index, this)
|
||||
if (node.children) {
|
||||
nodes.push(...node.children)
|
||||
}
|
||||
node = nodes.pop()
|
||||
}
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
/**
|
||||
* Invokes the specified `callback` for this node and each descendant in post-order
|
||||
* traversal, such that a given node s only visited after all of its descendants
|
||||
* have already been visited
|
||||
* The specified function is passed the current descendant, the zero-based traversal
|
||||
* index, and this node.
|
||||
* Code taken and adapted from d3.js https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/eachAfter.js.
|
||||
*
|
||||
* @param {function} callback
|
||||
* @return {Object}
|
||||
*/
|
||||
eachAfter(callback) {
|
||||
const nodes = []
|
||||
const next = []
|
||||
let node = this
|
||||
|
||||
while (node) {
|
||||
next.push(node)
|
||||
if (node.children) {
|
||||
nodes.push(...node.children)
|
||||
}
|
||||
node = nodes.pop()
|
||||
}
|
||||
|
||||
let index = 0
|
||||
for (let i = next.length - 1; i >= 0; i--) {
|
||||
callback(next[i], index++, this)
|
||||
}
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a deep copied and filtered tree of itself.
|
||||
* Specified filter function is passed each nodes in post-order traversal and must
|
||||
* return `true` or `false` like a regular filter function.
|
||||
*
|
||||
* @param {Function} callback - filter callback function to invoke on each nodes
|
||||
* @param {Object} args
|
||||
* @param {String} [args.idKey='name'] - the key name where we can find the node identity.
|
||||
* @param {String} [args.parentIdKey='name'] - the key name where we can find the parent identity.
|
||||
* @return {Node}
|
||||
*/
|
||||
filter(callback) {
|
||||
// Duplicates this tree and iter on nodes from leaves to root (post-order traversal)
|
||||
return hierarchy(this).eachAfter((node, i) => {
|
||||
// Since we create a new hierarchy from another, nodes's `data` contains the
|
||||
// whole dupplicated node. Overwrite node's `data` by node's original `data`.
|
||||
node.data = node.data.data
|
||||
|
||||
if (node.children) {
|
||||
// Removed flagged children
|
||||
node.children = node.children.filter((child) => !child.remove)
|
||||
if (!node.children.length) delete node.children
|
||||
}
|
||||
|
||||
// Perform filter callback on non-root nodes
|
||||
const match = node.data ? callback(node, i, this) : true
|
||||
// Flag node if there's no match in node nor in its children
|
||||
if (!match && !node.children) {
|
||||
node.remove = true
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a new hierarchy from the specified tabular `dataset`.
|
||||
* The specified `dataset` must be an array of objects that contains at least a
|
||||
* `name` property and an optional `parent` property referencing its parent `name`.
|
||||
* Code taken and adapted from d3.js https://github.com/d3/d3-hierarchy/blob/main/src/stratify.js#L16.
|
||||
*
|
||||
* @param {Array} dataset
|
||||
* @param {Object} args
|
||||
* @param {String} [args.idKey='name'] - the key name where we can find the node identity.
|
||||
* @param {String} [args.parentIdKey='name'] - the key name where we can find the parent identity.
|
||||
* @return {Node}
|
||||
*/
|
||||
export function stratify(
|
||||
dataset,
|
||||
{ idKey = 'name', parentIdKey = 'parent' } = {},
|
||||
) {
|
||||
const root = new Node(null, true)
|
||||
root.children = []
|
||||
const nodesMap = new Map()
|
||||
|
||||
// Creates all nodes that will be arranged in a hierarchy
|
||||
const nodes = dataset.map((d) => {
|
||||
const node = new Node(d)
|
||||
node.id = d[idKey]
|
||||
nodesMap.set(node.id, node)
|
||||
if (d[parentIdKey]) {
|
||||
node.parent = d[parentIdKey]
|
||||
}
|
||||
return node
|
||||
})
|
||||
|
||||
// Build a hierarchy from nodes
|
||||
nodes.forEach((node, i) => {
|
||||
const parentId = node.parent
|
||||
if (parentId) {
|
||||
const parent = nodesMap.get(parentId)
|
||||
if (!parent) throw new Error('Missing parent node: ' + parentId)
|
||||
if (parent.children) parent.children.push(node)
|
||||
else parent.children = [node]
|
||||
node.parent = parent
|
||||
} else {
|
||||
node.parent = root
|
||||
root.children.push(node)
|
||||
}
|
||||
})
|
||||
|
||||
root.eachBefore((node) => {
|
||||
// Compute node depth
|
||||
if (node.parent) {
|
||||
node.depth = node.parent.depth + 1
|
||||
// Remove parent key if parent is root (node with no data)
|
||||
if (!node.parent.data) delete node.parent
|
||||
}
|
||||
computeNodeHeight(node)
|
||||
})
|
||||
return root
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a root node from the specified hierarchical `data`.
|
||||
* The specified `data` must be an object representing the root node and its children.
|
||||
* If given a `Node` object this will return a deep copy of it.
|
||||
* Code taken and adapted from d3.js https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/index.js#L15.
|
||||
*
|
||||
* @param {Node|Object} data - object representing a root node (a simple { id, children } object or a `Node`)
|
||||
* @return {Node}
|
||||
*/
|
||||
export function hierarchy(data) {
|
||||
const root = new Node(data)
|
||||
const nodes = []
|
||||
let node = root
|
||||
|
||||
while (node) {
|
||||
if (node.data.children) {
|
||||
node.children = node.data.children.map((child_) => {
|
||||
const child = new Node(child_)
|
||||
child.id = child_.id
|
||||
child.parent = node === root ? null : node
|
||||
child.depth = node.depth + 1
|
||||
nodes.push(child)
|
||||
return child
|
||||
})
|
||||
}
|
||||
node = nodes.pop()
|
||||
}
|
||||
|
||||
root.eachBefore(computeNodeHeight)
|
||||
return root
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute the node height by iterating on parents
|
||||
* Code taken from d3.js https://github.com/d3/d3-hierarchy/blob/main/src/hierarchy/index.js#L62.
|
||||
*
|
||||
* @param {Node} node
|
||||
*/
|
||||
function computeNodeHeight(node) {
|
||||
let height = 0
|
||||
do {
|
||||
node.height = height
|
||||
node = node.parent
|
||||
} while (node && node.height < ++height)
|
||||
}
|
15
app/src/helpers/filters/date.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
import formatDistanceToNow from 'date-fns/formatDistanceToNow'
|
||||
import format from 'date-fns/format'
|
||||
|
||||
import { dateFnsLocale as locale } from '@/i18n/helpers'
|
||||
|
||||
export function distanceToNow(date, addSuffix = true, isTimestamp = false) {
|
||||
return formatDistanceToNow(new Date(isTimestamp ? date * 1000 : date), {
|
||||
addSuffix,
|
||||
locale,
|
||||
})
|
||||
}
|
||||
|
||||
export function readableDate(date, isTimestamp = false) {
|
||||
return format(new Date(isTimestamp ? date * 1000 : date), 'PPPpp', { locale })
|
||||
}
|
15
app/src/helpers/filters/human.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
export function humanSize(bytes) {
|
||||
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB']
|
||||
if (bytes === 0) return 'n/a'
|
||||
const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)))
|
||||
return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i]
|
||||
}
|
||||
|
||||
export function humanPermissionName(text) {
|
||||
return text
|
||||
.split('.')[1]
|
||||
.replace('_', ' ')
|
||||
.replace(/\w\S*/g, (part) => {
|
||||
return part.charAt(0).toUpperCase() + part.substr(1).toLowerCase()
|
||||
})
|
||||
}
|
81
app/src/helpers/validators/customValidators.js
Normal file
|
@ -0,0 +1,81 @@
|
|||
import { helpers } from 'vuelidate/lib/validators'
|
||||
|
||||
// Unicode ranges are taken from https://stackoverflow.com/a/37668315
|
||||
const nonAsciiWordCharacters =
|
||||
'\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC'
|
||||
|
||||
const alphalownumdot_ = helpers.regex('alphalownumdot_', /^[a-z0-9_.]+$/)
|
||||
|
||||
const domain = helpers.regex(
|
||||
'domain',
|
||||
new RegExp(
|
||||
`^(?:[\\da-z${nonAsciiWordCharacters}]+(?:-*[\\da-z${nonAsciiWordCharacters}]+)*\\.)+(?:(?:xn--)?[\\da-z${nonAsciiWordCharacters}]{2,})$`,
|
||||
),
|
||||
)
|
||||
|
||||
const dynDomain = helpers.regex(
|
||||
'dynDomain',
|
||||
new RegExp(`^(?:xn--)?[\\da-z-${nonAsciiWordCharacters}]+$`),
|
||||
)
|
||||
|
||||
const emailLocalPart = helpers.regex('emailLocalPart', /^[\w+.-]+$/)
|
||||
|
||||
const emailForwardLocalPart = helpers.regex(
|
||||
'emailForwardLocalPart',
|
||||
/^[\w+.-]+$/,
|
||||
)
|
||||
|
||||
const email = (value) =>
|
||||
helpers.withParams({ type: 'email', value }, (value) => {
|
||||
const [localPart, domainPart] = value.split('@')
|
||||
if (!domainPart) return !helpers.req(value) || false
|
||||
return (
|
||||
!helpers.req(value) || (emailLocalPart(localPart) && domain(domainPart))
|
||||
)
|
||||
})(value)
|
||||
|
||||
// Same as email but with `+` allowed.
|
||||
const emailForward = (value) =>
|
||||
helpers.withParams({ type: 'emailForward', value }, (value) => {
|
||||
const [localPart, domainPart] = value.split('@')
|
||||
if (!domainPart) return !helpers.req(value) || false
|
||||
return (
|
||||
!helpers.req(value) ||
|
||||
(emailForwardLocalPart(localPart) && domain(domainPart))
|
||||
)
|
||||
})(value)
|
||||
|
||||
const appRepoUrl = helpers.regex(
|
||||
'appRepoUrl',
|
||||
/^https:\/\/[a-zA-Z0-9-_.]+\/[a-zA-Z0-9-_./~]+\/[a-zA-Z0-9-_.]+_ynh(\/?(-\/)?tree\/[a-zA-Z0-9-_.]+)?(\.git)?\/?$/,
|
||||
)
|
||||
|
||||
const includes = (items) => (item) =>
|
||||
helpers.withParams(
|
||||
{ type: 'includes', value: item },
|
||||
(item) => !helpers.req(item) || (items ? items.includes(item) : false),
|
||||
)(item)
|
||||
|
||||
const name = helpers.regex(
|
||||
'name',
|
||||
new RegExp(`^(?:[A-Za-z${nonAsciiWordCharacters}]{1,30}[ ,.'-]{0,3})+$`),
|
||||
)
|
||||
|
||||
const unique = (items) => (item) =>
|
||||
helpers.withParams({ type: 'unique', arg: items, value: item }, (item) =>
|
||||
items ? !helpers.req(item) || !items.includes(item) : true,
|
||||
)(item)
|
||||
|
||||
export {
|
||||
alphalownumdot_,
|
||||
domain,
|
||||
dynDomain,
|
||||
email,
|
||||
emailForward,
|
||||
emailForwardLocalPart,
|
||||
emailLocalPart,
|
||||
appRepoUrl,
|
||||
includes,
|
||||
name,
|
||||
unique,
|
||||
}
|
12
app/src/helpers/validators/index.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
// helper module to expose custom and vuelidate validators.
|
||||
export * from './customValidators'
|
||||
export {
|
||||
between,
|
||||
helpers,
|
||||
integer,
|
||||
maxValue,
|
||||
minLength,
|
||||
minValue,
|
||||
required,
|
||||
sameAs,
|
||||
} from 'vuelidate/lib/validators'
|
572
app/src/helpers/yunohostArguments.js
Normal file
|
@ -0,0 +1,572 @@
|
|||
import i18n from '@/i18n'
|
||||
import store from '@/store'
|
||||
import evaluate from 'simple-evaluate'
|
||||
import * as validators from '@/helpers/validators'
|
||||
import {
|
||||
isObjectLiteral,
|
||||
isEmptyValue,
|
||||
flattenObjectLiteral,
|
||||
getFileContent,
|
||||
} from '@/helpers/commons'
|
||||
|
||||
const NO_VALUE_FIELDS = [
|
||||
'ReadOnlyField',
|
||||
'ReadOnlyAlertItem',
|
||||
'MarkdownItem',
|
||||
'DisplayTextItem',
|
||||
'ButtonItem',
|
||||
]
|
||||
|
||||
export const DEFAULT_STATUS_ICON = {
|
||||
[null]: null,
|
||||
danger: 'times',
|
||||
error: 'times',
|
||||
info: 'info',
|
||||
success: 'check',
|
||||
warning: 'warning',
|
||||
}
|
||||
|
||||
/**
|
||||
* Tries to find a translation corresponding to the user's locale/fallback locale in a
|
||||
* Yunohost argument or simply return the string if it's not an object literal.
|
||||
*
|
||||
* @param {(Object|String|undefined)} field - A field value containing a translation object or string
|
||||
* @return {String}
|
||||
*/
|
||||
export function formatI18nField(field) {
|
||||
if (typeof field === 'string') return field
|
||||
const { locale, fallbackLocale } = store.state
|
||||
return field ? field[locale] || field[fallbackLocale] || field.en : ''
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string size declaration to a M value.
|
||||
*
|
||||
* @param {String} sizeStr - A size declared like '500M' or '56k'
|
||||
* @return {Number}
|
||||
*/
|
||||
export function sizeToM(sizeStr) {
|
||||
const unit = sizeStr.slice(-1)
|
||||
const value = sizeStr.slice(0, -1)
|
||||
if (unit === 'M') return parseInt(value)
|
||||
if (unit === 'b') return Math.ceil(value / (1024 * 1024))
|
||||
if (unit === 'k') return Math.ceil(value / 1024)
|
||||
if (unit === 'G') return Math.ceil(value * 1024)
|
||||
if (unit === 'T') return Math.ceil(value * 1024 * 1024)
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a formatted address element to be used by AdressInputSelect component.
|
||||
*
|
||||
* @param {String} address - A string representing an adress (subdomain or email)
|
||||
* @return {Object} - `{ localPart, separator, domain }`.
|
||||
*/
|
||||
export function adressToFormValue(address) {
|
||||
const separator = address.includes('@') ? '@' : '.'
|
||||
const [localPart, domain] = address.split(separator)
|
||||
return { localPart, separator, domain }
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluate config panel string expression that can contain regular expressions.
|
||||
* Expression are evaluated with the config panel form as context.
|
||||
*
|
||||
* @param {String} expression - A String to evaluate.
|
||||
* @param {Object} forms - A nested form used in config panels.
|
||||
* @return {Boolean} - expression evaluation result.
|
||||
*/
|
||||
export function evaluateExpression(expression, form, nested = true) {
|
||||
if (!expression) return true
|
||||
if (expression === '"false"') return false
|
||||
|
||||
const context = nested
|
||||
? Object.values(form).reduce((merged, next) => ({ ...merged, ...next }))
|
||||
: form
|
||||
|
||||
for (const key in context) {
|
||||
if (isObjectLiteral(context[key]) && 'file' in context[key]) {
|
||||
context[key] = context[key].content
|
||||
}
|
||||
}
|
||||
|
||||
// Allow to use match(var,regexp) function
|
||||
const matchRe = /match(\s*(\w+)\s*,\s*"([^"]+)"\s*)/g
|
||||
for (const matched of expression.matchAll(matchRe)) {
|
||||
const [fullMatch, varMatch, regExpMatch] = matched
|
||||
const varName = varMatch + '__re' + matched.index
|
||||
context[varName] = new RegExp(regExpMatch, 'm').test(context[varMatch])
|
||||
expression = expression.replace(fullMatch, varName)
|
||||
}
|
||||
|
||||
try {
|
||||
return !!evaluate(context, expression)
|
||||
} catch {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// Adds a property to an Object that will dynamically returns a expression evaluation result.
|
||||
function addEvaluationGetter(prop, obj, expr, ctx, nested) {
|
||||
Object.defineProperty(obj, prop, {
|
||||
get: () => evaluateExpression(expr, ctx, nested),
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Format app install, actions and config panel argument into a data structure that
|
||||
* will be automaticly transformed into a component on screen.
|
||||
*
|
||||
* @param {Object} arg - a yunohost arg options written by a packager.
|
||||
* @return {Object} an formated argument containing formItem props, validation and base value.
|
||||
*/
|
||||
export function formatYunoHostArgument(arg) {
|
||||
let value =
|
||||
arg.value !== undefined
|
||||
? arg.value
|
||||
: arg.current_value !== undefined
|
||||
? arg.current_value
|
||||
: null
|
||||
const validation = {}
|
||||
const error = { message: null }
|
||||
arg.ask = formatI18nField(arg.ask)
|
||||
const field = {
|
||||
is: arg.readonly ? 'ReadOnlyField' : 'FormField',
|
||||
visible: [undefined, true, '"true"'].includes(arg.visible),
|
||||
props: {
|
||||
label: arg.ask,
|
||||
component: undefined,
|
||||
props: {},
|
||||
},
|
||||
}
|
||||
|
||||
const defaultProps = ['id', 'placeholder:example']
|
||||
const components = [
|
||||
{
|
||||
types: ['string', 'path'],
|
||||
name: 'InputItem',
|
||||
props: defaultProps.concat(['autocomplete', 'trim', 'choices']),
|
||||
},
|
||||
{
|
||||
types: ['email', 'url', 'date', 'time', 'color'],
|
||||
name: 'InputItem',
|
||||
props: defaultProps.concat(['type', 'trim']),
|
||||
},
|
||||
{
|
||||
types: ['password'],
|
||||
name: 'InputItem',
|
||||
props: defaultProps.concat(['type', 'autocomplete', 'trim']),
|
||||
callback: function () {
|
||||
if (!arg.help) {
|
||||
arg.help = i18n.t('good_practices_about_admin_password')
|
||||
}
|
||||
arg.example = '••••••••••••'
|
||||
validation.passwordLenght = validators.minLength(8)
|
||||
},
|
||||
},
|
||||
{
|
||||
types: ['number', 'range'],
|
||||
name: 'InputItem',
|
||||
props: defaultProps.concat(['type', 'min', 'max', 'step']),
|
||||
callback: function () {
|
||||
if (!isNaN(parseInt(arg.min))) {
|
||||
validation.minValue = validators.minValue(parseInt(arg.min))
|
||||
}
|
||||
if (!isNaN(parseInt(arg.max))) {
|
||||
validation.maxValue = validators.maxValue(parseInt(arg.max))
|
||||
}
|
||||
validation.numValue = validators.integer
|
||||
},
|
||||
},
|
||||
{
|
||||
types: ['select', 'user', 'domain', 'app', 'group'],
|
||||
name: 'SelectItem',
|
||||
props: ['id', 'choices'],
|
||||
callback: function () {
|
||||
if (arg.type !== 'select') {
|
||||
field.props.link = {
|
||||
name: arg.type + '-list',
|
||||
text: i18n.t(`manage_${arg.type}s`),
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
types: ['file'],
|
||||
name: 'FileItem',
|
||||
props: defaultProps.concat(['accept']),
|
||||
callback: function () {
|
||||
value = {
|
||||
// in case of already defined file, we receive only the file path (not the actual file)
|
||||
file: value ? new File([''], value) : null,
|
||||
content: '',
|
||||
current: !!value,
|
||||
removed: false,
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
types: ['text'],
|
||||
name: 'TextAreaItem',
|
||||
props: defaultProps,
|
||||
},
|
||||
{
|
||||
types: ['tags'],
|
||||
name: 'TagsItem',
|
||||
props: defaultProps.concat([
|
||||
'limit',
|
||||
'placeholder',
|
||||
'options:choices',
|
||||
'tagIcon:icon',
|
||||
]),
|
||||
callback: function () {
|
||||
if (arg.choices && arg.choices.length) {
|
||||
this.name = 'TagsSelectizeItem'
|
||||
Object.assign(field.props.props, {
|
||||
auto: true,
|
||||
itemsName: '',
|
||||
label: arg.placeholder,
|
||||
})
|
||||
}
|
||||
if (typeof value === 'string') {
|
||||
value = value.split(',')
|
||||
} else if (!value) {
|
||||
value = []
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
types: ['boolean'],
|
||||
name: 'CheckboxItem',
|
||||
props: ['id', 'choices'],
|
||||
callback: function () {
|
||||
if (value !== null && value !== undefined) {
|
||||
value = ['1', 'yes', 'y', 'true'].includes(
|
||||
String(value).toLowerCase(),
|
||||
)
|
||||
} else if (arg.default !== null && arg.default !== undefined) {
|
||||
value = ['1', 'yes', 'y', 'true'].includes(
|
||||
String(arg.default).toLowerCase(),
|
||||
)
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
types: ['alert'],
|
||||
name: 'ReadOnlyAlertItem',
|
||||
props: ['type:style', 'label:ask', 'icon'],
|
||||
renderSelf: true,
|
||||
},
|
||||
{
|
||||
types: ['markdown'],
|
||||
name: 'MarkdownItem',
|
||||
props: ['label:ask'],
|
||||
renderSelf: true,
|
||||
},
|
||||
{
|
||||
types: ['display_text'],
|
||||
name: 'DisplayTextItem',
|
||||
props: ['label:ask'],
|
||||
renderSelf: true,
|
||||
},
|
||||
{
|
||||
types: ['button'],
|
||||
name: 'ButtonItem',
|
||||
props: ['type:style', 'label:ask', 'icon', 'enabled'],
|
||||
renderSelf: true,
|
||||
},
|
||||
]
|
||||
|
||||
// Default type management if no one is filled
|
||||
if (arg.type !== 'tags' && arg.choices && arg.choices.length) {
|
||||
arg.type = 'select'
|
||||
}
|
||||
if (arg.type === undefined) {
|
||||
arg.type = 'string'
|
||||
}
|
||||
|
||||
// Search the component bind to the type
|
||||
const component = components.find((element) =>
|
||||
element.types.includes(arg.type),
|
||||
)
|
||||
if (component === undefined) throw new TypeError('Unknown type: ' + arg.type)
|
||||
|
||||
// Callback use for specific behaviour
|
||||
if (component.callback) component.callback()
|
||||
field.props.component = component.name
|
||||
// Affect properties to the field Item
|
||||
for (let prop of component.props) {
|
||||
prop = prop.split(':')
|
||||
const propName = prop[0]
|
||||
const argName = prop.slice(-1)[0]
|
||||
if (argName in arg) {
|
||||
field.props.props[propName] = arg[argName]
|
||||
}
|
||||
}
|
||||
|
||||
// Required (no need for checkbox its value can't be null)
|
||||
if (
|
||||
!component.renderSelf &&
|
||||
arg.type !== 'boolean' &&
|
||||
arg.optional !== true
|
||||
) {
|
||||
validation.required = validators.required
|
||||
}
|
||||
if (arg.pattern && arg.type !== 'tags') {
|
||||
validation.pattern = validators.helpers.regex(
|
||||
formatI18nField(arg.pattern.error),
|
||||
new RegExp(arg.pattern.regexp),
|
||||
)
|
||||
}
|
||||
|
||||
if (!component.renderSelf && !arg.readonly) {
|
||||
// Bind a validation with what the server may respond
|
||||
validation.remote = validators.helpers.withParams(error, (v) => {
|
||||
const result = !error.message
|
||||
error.message = null
|
||||
return result
|
||||
})
|
||||
}
|
||||
|
||||
// Default value if still `null`
|
||||
if (value === null && arg.current_value) {
|
||||
value = arg.current_value
|
||||
}
|
||||
if (value === null && arg.default) {
|
||||
value = arg.default
|
||||
}
|
||||
|
||||
// Help message
|
||||
if (arg.help) {
|
||||
field.props.description = formatI18nField(arg.help)
|
||||
}
|
||||
|
||||
// Help message
|
||||
if (arg.helpLink) {
|
||||
field.props.link = {
|
||||
href: arg.helpLink.href,
|
||||
text: i18n.t(arg.helpLink.text),
|
||||
}
|
||||
}
|
||||
|
||||
if (component.renderSelf) {
|
||||
field.is = field.props.component
|
||||
field.props = field.props.props
|
||||
}
|
||||
|
||||
return {
|
||||
value,
|
||||
field,
|
||||
// Return null instead of empty object if there's no validation
|
||||
validation: Object.keys(validation).length === 0 ? null : validation,
|
||||
error,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Format app install, actions and config panel manifest args into a form that can be used
|
||||
* as v-model values, fields that can be passed to a FormField component and validations.
|
||||
*
|
||||
* @param {Array} args - a yunohost arg array written by a packager.
|
||||
* @param {Object|null} forms - nested form used as the expression evualuations context.
|
||||
* @return {Object} an object containing all parsed values to be used in vue views.
|
||||
*/
|
||||
export function formatYunoHostArguments(args, forms) {
|
||||
const form = {}
|
||||
const fields = {}
|
||||
const validations = {}
|
||||
const errors = {}
|
||||
|
||||
for (const arg of args) {
|
||||
const { value, field, validation, error } = formatYunoHostArgument(arg)
|
||||
fields[arg.id] = field
|
||||
form[arg.id] = value
|
||||
if (validation) validations[arg.id] = validation
|
||||
errors[arg.id] = error
|
||||
|
||||
if ('visible' in arg && typeof arg.visible === 'string') {
|
||||
addEvaluationGetter(
|
||||
'visible',
|
||||
field,
|
||||
arg.visible,
|
||||
forms || form,
|
||||
forms !== undefined,
|
||||
)
|
||||
}
|
||||
|
||||
if ('enabled' in arg && typeof arg.enabled === 'string') {
|
||||
addEvaluationGetter(
|
||||
'enabled',
|
||||
field.props,
|
||||
arg.enabled,
|
||||
forms || form,
|
||||
forms !== undefined,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
return { form, fields, validations, errors }
|
||||
}
|
||||
|
||||
export function formatYunoHostConfigPanels(data) {
|
||||
const result = {
|
||||
panels: [],
|
||||
forms: {},
|
||||
validations: {},
|
||||
errors: {},
|
||||
}
|
||||
|
||||
for (const { id: panelId, name, help, sections } of data.panels) {
|
||||
const panel = {
|
||||
id: panelId,
|
||||
sections: [],
|
||||
serverError: '',
|
||||
hasApplyButton: false,
|
||||
}
|
||||
result.forms[panelId] = {}
|
||||
result.validations[panelId] = {}
|
||||
result.errors[panelId] = {}
|
||||
|
||||
if (name) panel.name = formatI18nField(name)
|
||||
if (help) panel.help = formatI18nField(help)
|
||||
|
||||
for (const _section of sections) {
|
||||
const section = {
|
||||
id: _section.id,
|
||||
isActionSection: _section.is_action_section,
|
||||
visible: [undefined, true, '"true"'].includes(_section.visible),
|
||||
}
|
||||
if (_section.help) section.help = formatI18nField(_section.help)
|
||||
if (_section.name) section.name = formatI18nField(_section.name)
|
||||
if (_section.visible && ![false, '"false"'].includes(_section.visible)) {
|
||||
addEvaluationGetter('visible', section, _section.visible, result.forms)
|
||||
}
|
||||
|
||||
const { form, fields, validations, errors } = formatYunoHostArguments(
|
||||
_section.options,
|
||||
result.forms,
|
||||
)
|
||||
// Merge all sections forms to the panel to get a unique form
|
||||
Object.assign(result.forms[panelId], form)
|
||||
Object.assign(result.validations[panelId], validations)
|
||||
Object.assign(result.errors[panelId], errors)
|
||||
section.fields = fields
|
||||
panel.sections.push(section)
|
||||
|
||||
if (
|
||||
!section.isActionSection &&
|
||||
Object.values(fields).some(
|
||||
(field) => !NO_VALUE_FIELDS.includes(field.is),
|
||||
)
|
||||
) {
|
||||
panel.hasApplyButton = true
|
||||
}
|
||||
}
|
||||
|
||||
result.panels.push(panel)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a front-end value to its API equivalent. This function returns a Promise or an
|
||||
* Object `{ key: Promise }` if `key` is supplied. When parsing a form, all those
|
||||
* objects must be merged to define the final sent form.
|
||||
*
|
||||
* Convert Boolean to '1' (true) or '0' (false),
|
||||
* Concatenate two parts adresses (subdomain or email for example) into a single string,
|
||||
* Convert File to its Base64 representation or set its value to '' to ask for a removal.
|
||||
*
|
||||
* @param {*} value
|
||||
* @return {*}
|
||||
*/
|
||||
export function formatFormDataValue(value, key = null) {
|
||||
if (Array.isArray(value)) {
|
||||
return Promise.all(value.map((value_) => formatFormDataValue(value_))).then(
|
||||
(resolvedValues) => ({ [key]: resolvedValues }),
|
||||
)
|
||||
}
|
||||
|
||||
let result = value
|
||||
if (typeof value === 'boolean') result = value ? 1 : 0
|
||||
if (isObjectLiteral(value) && 'file' in value) {
|
||||
// File has to be deleted
|
||||
if (value.removed) result = ''
|
||||
// File has not changed (will not be sent)
|
||||
else if (value.current || value.file === null) result = null
|
||||
else {
|
||||
return getFileContent(value.file, { base64: true }).then((content) => {
|
||||
return {
|
||||
[key]: content.replace(/data:[^;]*;base64,/, ''),
|
||||
[key + '[name]']: value.file.name,
|
||||
}
|
||||
})
|
||||
}
|
||||
} else if (isObjectLiteral(value) && 'separator' in value) {
|
||||
result = Object.values(value).join('')
|
||||
}
|
||||
|
||||
// Returns a resolved Promise for non async values
|
||||
return Promise.resolve(key ? { [key]: result } : result)
|
||||
}
|
||||
|
||||
/**
|
||||
* Convinient helper to properly parse a front-end form to its API equivalent.
|
||||
* This parse each values asynchronously, allow to inject keys into the final form and
|
||||
* make sure every async values resolves before resolving itself.
|
||||
*
|
||||
* @param {Object} formData
|
||||
* @return {Object}
|
||||
*/
|
||||
function formatFormDataValues(formData) {
|
||||
const promisedValues = Object.entries(formData).map(([key, value]) => {
|
||||
return formatFormDataValue(value, key)
|
||||
})
|
||||
|
||||
return Promise.all(promisedValues).then((resolvedValues) => {
|
||||
return resolvedValues.reduce((form, obj) => ({ ...form, ...obj }), {})
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a form produced by a vue view to be sent to the server.
|
||||
*
|
||||
* @param {Object} formData - An object literal containing form values.
|
||||
* @param {Object} [extraParams] - Optionnal params
|
||||
* @param {Array} [extraParams.extract] - An array of keys that should be extracted from the form.
|
||||
* @param {Boolean} [extraParams.flatten=false] - Flattens or not the passed formData.
|
||||
* @param {Boolean} [extraParams.removeEmpty=true] - Removes "empty" values from the object.
|
||||
* @return {Object} the parsed data to be sent to the server, with extracted values if specified.
|
||||
*/
|
||||
export async function formatFormData(
|
||||
formData,
|
||||
{
|
||||
extract = null,
|
||||
flatten = false,
|
||||
removeEmpty = true,
|
||||
removeNull = false,
|
||||
} = {},
|
||||
) {
|
||||
const output = {
|
||||
data: {},
|
||||
extracted: {},
|
||||
}
|
||||
|
||||
const values = await formatFormDataValues(formData)
|
||||
for (const key in values) {
|
||||
const type = extract && extract.includes(key) ? 'extracted' : 'data'
|
||||
const value = values[key]
|
||||
if (removeEmpty && isEmptyValue(value)) {
|
||||
continue
|
||||
} else if (removeNull && [null, undefined].includes(value)) {
|
||||
continue
|
||||
} else if (flatten && isObjectLiteral(value)) {
|
||||
flattenObjectLiteral(value, output[type])
|
||||
} else {
|
||||
output[type][key] = value
|
||||
}
|
||||
}
|
||||
|
||||
const { data, extracted } = output
|
||||
return extract ? { data, ...extracted } : data
|
||||
}
|
89
app/src/i18n/helpers.js
Normal file
|
@ -0,0 +1,89 @@
|
|||
import store from '@/store'
|
||||
import i18n from '@/i18n'
|
||||
import supportedLocales from './supportedLocales'
|
||||
|
||||
let dateFnsLocale
|
||||
const loadedLanguages = []
|
||||
|
||||
/**
|
||||
* Returns the first two supported locales that can be found in the `localStorage` or
|
||||
* in the user browser settings.
|
||||
*
|
||||
* @return {string[]}
|
||||
*/
|
||||
function getDefaultLocales() {
|
||||
const locale = store.getters.locale
|
||||
const fallbackLocale = store.getters.fallbackLocale
|
||||
if (locale && fallbackLocale) return [locale, fallbackLocale]
|
||||
|
||||
const navigatorLocales = navigator.languages || [navigator.language]
|
||||
const defaultLocales = []
|
||||
const supported = Object.keys(supportedLocales)
|
||||
for (const locale of navigatorLocales) {
|
||||
if (supported.includes(locale) && !defaultLocales.includes(locale)) {
|
||||
defaultLocales.push(locale)
|
||||
} else {
|
||||
const lang = locale.split('-')[0]
|
||||
if (supported.includes(lang) && !defaultLocales.includes(lang)) {
|
||||
defaultLocales.push(lang)
|
||||
}
|
||||
}
|
||||
if (defaultLocales.length === 2) break
|
||||
}
|
||||
|
||||
return defaultLocales
|
||||
}
|
||||
|
||||
function updateDocumentLocale(locale) {
|
||||
document.documentElement.lang = locale
|
||||
// FIXME can't currently change document direction easily since bootstrap still doesn't handle rtl.
|
||||
// document.dir = locale === 'ar' ? 'rtl' : 'ltr'
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a translation file and adds its content to the i18n plugin `messages`.
|
||||
*
|
||||
* @return {Promise<string>} Promise that resolve the given locale string
|
||||
*/
|
||||
function loadLocaleMessages(locale) {
|
||||
if (loadedLanguages.includes(locale)) {
|
||||
return Promise.resolve(locale)
|
||||
}
|
||||
return import(`@/i18n/locales/${locale}.json`).then((messages) => {
|
||||
i18n.setLocaleMessage(locale, messages.default)
|
||||
loadedLanguages.push(locale)
|
||||
return locale
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a date-fns locale object
|
||||
*/
|
||||
async function loadDateFnsLocale(locale) {
|
||||
const dateFnsLocaleName = supportedLocales[locale].dateFnsLocale || locale
|
||||
dateFnsLocale = (
|
||||
await import(
|
||||
`../../node_modules/date-fns/esm/locale/${dateFnsLocaleName}/index.js`
|
||||
)
|
||||
).default
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize all locales
|
||||
*/
|
||||
function initDefaultLocales() {
|
||||
// Get defined locales from `localStorage` or `navigator`
|
||||
const [locale, fallbackLocale] = getDefaultLocales()
|
||||
|
||||
store.dispatch('UPDATE_LOCALE', locale)
|
||||
store.dispatch('UPDATE_FALLBACKLOCALE', fallbackLocale || 'en')
|
||||
return loadLocaleMessages('en')
|
||||
}
|
||||
|
||||
export {
|
||||
initDefaultLocales,
|
||||
updateDocumentLocale,
|
||||
loadLocaleMessages,
|
||||
loadDateFnsLocale,
|
||||
dateFnsLocale,
|
||||
}
|
12
app/src/i18n/index.js
Normal file
|
@ -0,0 +1,12 @@
|
|||
/**
|
||||
* i18n plugin module.
|
||||
* @module i18n
|
||||
*/
|
||||
|
||||
import Vue from 'vue'
|
||||
import VueI18n from 'vue-i18n'
|
||||
|
||||
// Plugin Initialization
|
||||
Vue.use(VueI18n)
|
||||
|
||||
export default new VueI18n({})
|
626
app/src/i18n/locales/ar.json
Normal file
|
@ -0,0 +1,626 @@
|
|||
{
|
||||
"action": "الإجراء",
|
||||
"add": "إضافة",
|
||||
"administration_password": "كلمة السر الإدارية",
|
||||
"api_not_responding": "واجهة برمجة تطبيقات API الخاصة بـ YunoHost لا تستجيب. ربما 'yunohost-api' معطّلة أو تم إعادة تشغيلها؟",
|
||||
"app_info_access_desc": "الفِرَق / المستخدمون المصرّح لهم للنفاذ إلى هذا التطبيق:",
|
||||
"app_info_default_desc": "تحويل مسار جذر النطاق نحو هذا البرنامج ({domain}).",
|
||||
"app_info_changeurl_desc": "يقوم بتغيير عنوان رابط النفاذ إلى هذا البرنامج (النطاق و/أو المسار).",
|
||||
"app_info_change_url_disabled_tooltip": "لم تُهيأ هذه الخاصية لإعدادها في هذا البرنامج بعدُ",
|
||||
"app_info_uninstall_desc": "حذف هذا البرنامج.",
|
||||
"app_install_custom_no_manifest": "No manifest.json file",
|
||||
"app_make_default": "تعيينه كافتراضي",
|
||||
"app_state_inprogress": "لا يعمل بعد",
|
||||
"applications": "التطبيقات",
|
||||
"archive_empty": "النسخة الإحتياطية فارغة",
|
||||
"backup": "النسخ الإحتياطي",
|
||||
"backup_action": "النسخ الإحتياطي",
|
||||
"backup_content": "محتوى النسخة الإحتياطية",
|
||||
"backup_create": "إنشاء نسخة إحتياطية",
|
||||
"backup_new": "نسخة إحتياطية جديدة",
|
||||
"begin": "إبدأ",
|
||||
"both": "كِلاهُما",
|
||||
"check": "تحقق",
|
||||
"close": "إغلاق",
|
||||
"confirm_app_change_url": "متأكد مِن أنك تود تغيير عنوان رابط النفاذ إلى البرنامج ؟",
|
||||
"confirm_app_default": "أمتأكد مِن أنك تود تعيين هذا التطبيق كبرنامج إفتراضي ؟",
|
||||
"confirm_change_maindomain": "متأكد من أنك تريد تغيير النطاق الرئيسي ؟",
|
||||
"confirm_delete": "هل تود حقًا حذف {name} ؟",
|
||||
"confirm_firewall_allow": "متأكد مِن أنك تود فتح منفذ {port} ؟ (بروتوكول : {protocol}، إتصال : {connection})",
|
||||
"confirm_firewall_disallow": "متأكد مِن أنك تود إغلاق منفذ {port} ؟ (بروتوكول : {protocol}، إتصال : {connection})",
|
||||
"confirm_install_custom_app": "إنّ خيار تنصيب تطبيقات خارجية قد يؤثر على أمان نظامكم. ربما وجب عليكم ألا تقوموا بالتنصيب إلا إن كنتم حقا مدركون بما أنتم فاعلين. هل أنتم مستعدون للمخاطرة؟",
|
||||
"confirm_install_domain_root": "هل أنت متأكد أنك تريد تثبيت هذا التطبيق على \"/\"؟ لن يكون بامكانك تثبيت أي تطبيق آخر على {domain}",
|
||||
"confirm_postinstall": "إنك بصدد إطلاق خطوة ما بعد التنصيب على النطاق {domain}. سوف تستغرق العملية بضع دقائق، لذلك *يُرجى عدم إيقاف العملية*.",
|
||||
"confirm_restore": "متأكد مِن أنك تريد استعادة {name} ؟",
|
||||
"confirm_service_start": "متأكد مِن أنك تريد تشغيل {name} ؟",
|
||||
"confirm_service_stop": "متأكد من أنك تود إيقاف {name} ؟",
|
||||
"confirm_uninstall": "متأكد مِن أنك تريد إلغاء تنصيب {name} ؟",
|
||||
"confirm_update_apps": "متأكد مِن أنك تريد تحديث كافة التطبيقات؟",
|
||||
"confirm_update_specific_app": "متأكد مِن أنك تود تحديث {app} ؟",
|
||||
"confirm_upnp_enable": "متأكد مِن أنك تريد تفعيل الـ UPnP ؟",
|
||||
"confirm_upnp_disable": "متأكد مِن أنك تريد تعطيل الـ UPnP ؟",
|
||||
"confirm_reboot_action_reboot": "متأكد من أنك تريد إعادة تشغيل الخادم ؟",
|
||||
"confirm_reboot_action_shutdown": "متأكد من أنك تريد إيقاف تشغيل الخادم ؟",
|
||||
"connection": "الدخول",
|
||||
"created_at": "تم إنشاؤه على",
|
||||
"custom_app_install": "تنصيب برنامج خاص",
|
||||
"delete": "حذف",
|
||||
"description": "الوصف",
|
||||
"domain_dns_conf_is_just_a_recommendation": "يُظهر هذا القِسم الإعدادات *المستحسَنة*. فهي *لا* تقوم بتهيئة نظام أسماء النطاقات مكانكم. فالمسؤولية هي على عاتقكم لتهيئة منطقة نظام أسماء النطاقات عند المصدر أي عند مكتب التسجيل الخاص بكم وفقا لهذه التوصية.",
|
||||
"diagnosis": "التشخيص",
|
||||
"disable": "تعطيل",
|
||||
"dns": "خدمة أسماء النطاقات",
|
||||
"domain_add": "إضافة نطاق",
|
||||
"domain_default_desc": "إسم النطاق الإفتراضي هو النطاق الذي مِن خلاله يقوم المستخدِمون بتسجيل دخولهم.",
|
||||
"domain_default_longdesc": "هذا هو إسم نطاقك الإفتراضي.",
|
||||
"domain_delete_longdesc": "حذف هذا النطاق",
|
||||
"domain_dns_config": "إعدادات خدمة أسماء النطاقات",
|
||||
"domain_dns_longdesc": "الإطلاع على إعدادات خدمة أسماء النطاقات",
|
||||
"domain_name": "إسم النطاق",
|
||||
"domains": "أسماء النطاقات",
|
||||
"download": "التنزيل",
|
||||
"enable": "تشغيل",
|
||||
"error_modify_something": "يجب عليك تغيير شيء ما",
|
||||
"error_server_unexpected": "طرأ هناك خطأ غير متوقع في الخادم",
|
||||
"firewall": "الجدار الناري",
|
||||
"footer_version": "مدعوم بـ <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
|
||||
"form_input_example": "مثال : {example}",
|
||||
"home": "الرئيسية",
|
||||
"hook_adminjs_group_configuration": "إعدادات النظام",
|
||||
"hook_conf_ldap": "قاعدة بيانات المستخدمين",
|
||||
"hook_conf_ynh_certs": "شهادات الأمان SSL",
|
||||
"hook_data_home": "بيانات المستخدم",
|
||||
"hook_data_home_desc": "بيانات المستخدم في /home/USER",
|
||||
"hook_data_mail": "البريد",
|
||||
"hook_data_mail_desc": "الرسائل الإلكترونية الخامة المحفوظة على السيرفر",
|
||||
"id": "ID",
|
||||
"infos": "معلومات",
|
||||
"install": "تنصيب",
|
||||
"install_name": "تثبيت {id}",
|
||||
"install_time": "تاريخ التنصيب",
|
||||
"installation_complete": "إكتملت عملية التنصيب",
|
||||
"installed": "مُنصّب",
|
||||
"ipv4": "IPv4",
|
||||
"ipv6": "IPv6",
|
||||
"label": "التسمية",
|
||||
"label_for_manifestname": "تسمية لـ {name}",
|
||||
"local_archives": "الأرشيف المحلي",
|
||||
"login": "تسجيل الدخول",
|
||||
"logout": "الخروج",
|
||||
"mailbox_quota_description": "على سبيل المثال, 700M هو حجم CD، و 4700M هو حجم DVD.",
|
||||
"mailbox_quota_placeholder": "قصد التعطيل أتركه فارغا أو قم بإدخال 0.",
|
||||
"manage_apps": "إدارة التطبيقات",
|
||||
"manage_domains": "إدراة أسماء النطاقات",
|
||||
"manage_users": "إدارة المستخدمين",
|
||||
"multi_instance": "يمكن تنصيبه عدة مرات",
|
||||
"next": "التالي",
|
||||
"no": "لا",
|
||||
"ok": "موافق",
|
||||
"open": "فتح",
|
||||
"operations": "الإجراءات",
|
||||
"password": "كلمة السر",
|
||||
"password_confirmation": "تأكيد كلمة السر",
|
||||
"path": "المسار",
|
||||
"port": "المنفذ",
|
||||
"ports": "المنافذ",
|
||||
"postinstall_domain": "سوف يصبح هذا إسم النطاق الرئيسي المرتبط بخادوم واي يونوهوست YunoHost و الذي مِن خلاله يُمكن للمستخدمين النفاذ إلى بوابة المصادقة قصد تسجيل دخولهم. إسم النطاق هذا سيكون ظاهرا لكافة المستخدمين، لذا يتوجّب اختياره بعناية.",
|
||||
"postinstall_intro_1": "هنيئًا ! تمت عملية تنصيب YunoHost بنجاح.",
|
||||
"postinstall_intro_2": "لم يتبقى إلّا إكمال خطوتين لازمتين لتفعيل خدمات السيرفر.",
|
||||
"postinstall_intro_3": "يمكنكم الحصول على مزيد مِن التفاصيل بزيارة <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>صفحة التعليمات المخصصة لذلك</a>",
|
||||
"previous": "السابق",
|
||||
"protocol": "Protocol",
|
||||
"restore": "إستعادة",
|
||||
"running": "يشتغل",
|
||||
"save": "حفظك",
|
||||
"service_start_on_boot": "تُطلَق عند بداية التشغيل",
|
||||
"services": "الخدمات",
|
||||
"set_default": "تعيينه كافتراضي",
|
||||
"size": "الحجم",
|
||||
"start": "تشغيل",
|
||||
"status": "الحالة",
|
||||
"stop": "إيقاف التشغيل",
|
||||
"system": "النظام",
|
||||
"system_apps_nothing": "كافة التطبيقات حديثة!",
|
||||
"system_packages_nothing": "كافة حزم النظام حديثة!",
|
||||
"system_update": "تحديث النظام",
|
||||
"system_upgrade_btn": "ترقية",
|
||||
"system_upgrade_all_applications_btn": "تحديث كافة التطبيقات",
|
||||
"system_upgrade_all_packages_btn": "تحديث كافة الحُزم",
|
||||
"tcp": "TCP",
|
||||
"tools": "الأدوات",
|
||||
"tools_reboot": "إعادة تشغيل الخادم",
|
||||
"tools_reboot_btn": "إعادة التشغيل",
|
||||
"tools_shutdown": "إيقاف تشغيل خادمك",
|
||||
"tools_shutdown_btn": "إطفاء",
|
||||
"tools_shutdown_reboot": "إيقاف التشغيل/إعادة التشغيل",
|
||||
"udp": "UDP",
|
||||
"unauthorized": "غير مسموح",
|
||||
"uninstall": "إلغاء التنصيب",
|
||||
"upnp": "UPnP",
|
||||
"upnp_disabled": "UPnP معطّل.",
|
||||
"upnp_enabled": "UPnP يشتغل.",
|
||||
"url": "عنوان الرابط",
|
||||
"user_email": "البريد الإلكتروني",
|
||||
"user_emailaliases": "Mail aliases",
|
||||
"user_emailforward": "تحويل البريد",
|
||||
"user_fullname": "الإسم الكامل",
|
||||
"user_interface_link": "واجهة المستخدم",
|
||||
"user_mailbox_quota": "مساحة علبة البريد",
|
||||
"user_mailbox_use": "المساحة المستعمَلة في علبة البريد",
|
||||
"user_new_forward": "newforward@myforeigndomain.org",
|
||||
"user_username": "إسم المستخدم",
|
||||
"user_username_edit": "تعديل حساب {name}",
|
||||
"users": "المستخدمون",
|
||||
"users_new": "مستخدم جديد",
|
||||
"users_no": "لا يوجد أي مستخدم.",
|
||||
"yes": "نعم",
|
||||
"certificate_manage": "إدارة شهادات أمان SSL",
|
||||
"certificate": "الشهادة",
|
||||
"migrations": "الارتحال",
|
||||
"migrations_pending": "الترحيلات المعلقة",
|
||||
"migrations_done": "الترحيلات السابقة",
|
||||
"migrations_no_pending": "لا توجد هناك أية ترحيلات معلقة",
|
||||
"migrations_no_done": "لا توجد هناك أية ترحيلات في السابق",
|
||||
"run": "شَغِّل",
|
||||
"skip": "تخطي",
|
||||
"confirm_migrations_skip": "إنّ تخطي التهجير غير مستحسَن. متأكد مِن أنك تريد ذلك ؟",
|
||||
"all_apps": "كافة التطبيقات",
|
||||
"only_working_apps": "إلاّ التطبيقات التي تعمل",
|
||||
"logs": "السِجلات",
|
||||
"logs_history": "سِجِل الأوامر التي تم تنفيذها على النظام",
|
||||
"logs_service": "سِجِلات الخدمات",
|
||||
"logs_app": "سِجِلات التطبيقات",
|
||||
"logs_error": "خطأ",
|
||||
"logs_ended_at": "انتهى",
|
||||
"logs_started_at": "البداية",
|
||||
"logs_path": "المسار",
|
||||
"logs_context": "السياق",
|
||||
"logs_share_with_yunopaste": "شاركه عبر YunoPaste",
|
||||
"logs_more": "اظهر المزيد مِن الأسطر",
|
||||
"select_all": "تحديد الكل",
|
||||
"version": "الإصدار",
|
||||
"logs_operation": "الإجراءات التي طرأت على النظام عبر YunoHost",
|
||||
"logs_no_logs_registered": "لم يُسجَّل هناك أي حدث في سِجِل هذه الفئة",
|
||||
"license": "الرخصة",
|
||||
"orphaned": "غير مصان",
|
||||
"from_to": "مِن {0} إلى {1}",
|
||||
"only_highquality_apps": "إلا التطبيقات ذات الجودة العالية",
|
||||
"only_decent_quality_apps": "إلا التطبيقات ذات الجودة الحسنة",
|
||||
"confirm_update_system": "أمتأكد مِن أنك تريد تحديث كافة حزم النظام؟",
|
||||
"experimental_warning": "تحذير: هذه الميزة تجريبية ولا يجب اعتبارها مستقرة ، يجب ألا تستخدمها إلا إذا كنت تعرف ما تفعله.",
|
||||
"logs_package": "سِجلّ إدارة حزم ديبيان",
|
||||
"error_connection_interrupted": "أغلَق الخادم الاتصال بدلاً من الاستجابة. هل تم إعادة تشغيل NGINX أو تم إيقاف تشغيل واجهة برمجة تطبيقات yunohost-api لسبب ما؟",
|
||||
"warnings": "{count} تحذيرات",
|
||||
"unignore": "إلغاء التجاهل",
|
||||
"since": "منذ",
|
||||
"restart": "إعادة التشغيل",
|
||||
"rerun_diagnosis": "إعادة تشغيل الفحص مجددًا",
|
||||
"logs_access": "قائمة تصريحات النفاذ المسموحة والمرفوضة",
|
||||
"others": "أخرى",
|
||||
"nobody": "لا أحد",
|
||||
"last_ran": "آخر تشغيل:",
|
||||
"issues": "{count} مشاكل",
|
||||
"ignored": "تم تجاهل {count}",
|
||||
"ignore": "تجاهل",
|
||||
"permissions": "التصريحات",
|
||||
"groups_and_permissions_manage": "إدارة الفِرَق والتصريحات",
|
||||
"groups_and_permissions": "الفِرَق والتصريحات",
|
||||
"group_new": "فريق جديد",
|
||||
"group_add_permission": "إضافة إذن",
|
||||
"group_add_member": "إضافة مستخدم",
|
||||
"group_all_users": "كل المستخدمين",
|
||||
"group_name": "اسم الفريق",
|
||||
"group": "الفريق",
|
||||
"everything_good": "كل شيء على ما يرام!",
|
||||
"run_first_diagnosis": "شغّل الفحص الأوّلي",
|
||||
"details": "التفاصيل",
|
||||
"confirm_service_restart": "أمتأكد مِن أنك تريد إعادة تشغيل {name}؟",
|
||||
"configuration": "الإعداد",
|
||||
"catalog": "الفهرس",
|
||||
"app_state_lowquality": "جودة ضعيفة",
|
||||
"all": "كلها",
|
||||
"group_explain_visitors": "هذا فريق خاص بالزوار المجهولين",
|
||||
"group_visitors": "الزوار",
|
||||
"postinstall": {
|
||||
"force": "فرض ما بعد التنصيب",
|
||||
"title": "ما بعد التنصيب",
|
||||
"user": {
|
||||
"title": "إنشاء أول مستخدم (مدير)"
|
||||
}
|
||||
},
|
||||
"postinstall_set_domain": "اختيار اسم النطاق الرئيسي",
|
||||
"words": {
|
||||
"browse": "استكشف",
|
||||
"default": "افتراضي",
|
||||
"link": "الرابط",
|
||||
"none": "لا شيء",
|
||||
"separator": "، ",
|
||||
"collapse": "طيّ",
|
||||
"valid": "صالح"
|
||||
},
|
||||
"app_install_parameters": "إعدادات التنصيب",
|
||||
"code": "الشفرة المصدرية",
|
||||
"common": {
|
||||
"firstname": "الاسم",
|
||||
"lastname": "اللقب"
|
||||
},
|
||||
"domain": {
|
||||
"config": {
|
||||
"edit": "تعديل اعدادات اسم النطاق",
|
||||
"title": "ضبط اسم النطاق"
|
||||
},
|
||||
"dns": {
|
||||
"auto_config": "ضبط تلقائي لتسجيلات خدمة أسماء النطاقات",
|
||||
"push": "إرسال التسجيلات إلى سِجِلّ أسماء النطاقات",
|
||||
"auto_config_ok": "يبدو أن الضبط التلقائي على ما يرام!",
|
||||
"edit": "تعديل إعدادات نظام أسماء النطاقات",
|
||||
"auto_config_zone": "منطقة DNS الحالية",
|
||||
"methods": {
|
||||
"auto": "تلقائي",
|
||||
"handled_in_parent": "يُدار في اسم النطاق الرئيسي",
|
||||
"manual": "يدوي",
|
||||
"none": "لا شيء",
|
||||
"semi_auto": "نصف آلي"
|
||||
},
|
||||
"manual_config": "تسجيلات نظام أسماء النطاقات المقترَحة للإعداد اليدوي",
|
||||
"push_force": "الكتابة فوق السجلات الموجودة"
|
||||
},
|
||||
"info": {
|
||||
"apps_on_domain": "التطبيقات المُنصّبة على اسم النطاق",
|
||||
"certificate_authority": "الهيئة الموثِّقة لشهادة SSL",
|
||||
"registrar": "مكتب التسجيل"
|
||||
},
|
||||
"toggle_subdomains": "عرض أسماء النطاقات الفرعية",
|
||||
"types": {
|
||||
"main_domain": "اسم النطاق الرئيسي"
|
||||
},
|
||||
"cert": {
|
||||
"valid_for": "صالحة لمدة {days}",
|
||||
"types": {
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"other": "آخر/مجهول",
|
||||
"selfsigned": "موقّعة ذاتيا"
|
||||
}
|
||||
},
|
||||
"see_parent_domain": "إطّلع على اسم النطاق الرئيسي"
|
||||
},
|
||||
"placeholder": {
|
||||
"domain": "my-domain.com",
|
||||
"groupname": "اسم فريقي",
|
||||
"firstname": "فلان",
|
||||
"lastname": "الفلاني",
|
||||
"username": "foulanealallani",
|
||||
"fullname": "فلان علان",
|
||||
"file": "استعراض ملف أو سحبه وإفلاته"
|
||||
},
|
||||
"human_routes": {
|
||||
"domains": {
|
||||
"add": "إضافة اسم النطاق '{name}'",
|
||||
"delete": "حذف اسم النطاق '{name}'",
|
||||
"set_default": "تعيين '{name}' كاسم نطاق افتراضي",
|
||||
"update_config": "تحديث لوح '{id}' لضبط اسم النطاق '{name}'",
|
||||
"cert_install": "تنصيب شهادة لـ '{name}'",
|
||||
"cert_renew": "تجديد شهادة '{name}'",
|
||||
"push_dns_changes": "دفع سجلات DNS إلى مكتب التسجيل لـ '{name}'"
|
||||
},
|
||||
"services": {
|
||||
"start": "تشغيل خدمة '{name}'",
|
||||
"stop": "إيقاف خدمة '{name}'",
|
||||
"restart": "إعادة تشغيل الخدمة '{name}'"
|
||||
},
|
||||
"groups": {
|
||||
"create": "انشاء فريق '{name}'",
|
||||
"delete": "حذف الفريق '{name}'",
|
||||
"remove": "حذف '{user}' مِن الفريق '{name}'",
|
||||
"add": "إضافة '{user}' إلى الفريق '{name}'"
|
||||
},
|
||||
"update": "البحث عن تحديثات",
|
||||
"apps": {
|
||||
"install": "تنصيب التطبيق '{name}'",
|
||||
"uninstall": "إلغاء تنصيب التطبيق '{name}'",
|
||||
"change_url": "تعديل الرابط الشبكي للوصول إلى '{name}'",
|
||||
"set_default": "تحويل جذر النطاق '{domain}' إلى '{name}'",
|
||||
"dismiss_notification": "تجاهل إشعارات '{name}'"
|
||||
},
|
||||
"backups": {
|
||||
"create": "إنشاء نسخة احتياطية",
|
||||
"delete": "حذف النسخة الإحتياطية '{name}'",
|
||||
"restore": "استعادة النسخة الإحتياطية '{name}'"
|
||||
},
|
||||
"diagnosis": {
|
||||
"ignore": {
|
||||
"error": "تجاهل خطأ",
|
||||
"warning": "تجاهل تحذير"
|
||||
},
|
||||
"run": "تنفيذ الفحص",
|
||||
"run_specific": "إطلاق الفحص '{description}'",
|
||||
"unignore": {
|
||||
"warning": "إلغاء تجاهل التحذير",
|
||||
"error": "إلغاء تجاهل خطأ"
|
||||
}
|
||||
},
|
||||
"postinstall": "تنفيذ ما بعد التنصيب",
|
||||
"upgrade": {
|
||||
"apps": "تحديث كافة التطبيقات",
|
||||
"app": "تحديث التطبيق '{app}'",
|
||||
"system": "تحديث النظام"
|
||||
},
|
||||
"users": {
|
||||
"delete": "حذف المستخدم '{name}'",
|
||||
"update": "تحديث المستخدم '{name}'",
|
||||
"create": "إنشاء المستخدم '{name}'"
|
||||
},
|
||||
"reboot": "إعادة تشغيل الخادم",
|
||||
"shutdown": "إطفاء الخادم",
|
||||
"reconnecting": "محاولة إعادة الإتصال",
|
||||
"firewall": {
|
||||
"upnp": "{action} UPnP",
|
||||
"ports": "{action} منفذ {port} ({protocol}, {connection})"
|
||||
},
|
||||
"permissions": {
|
||||
"add": "السماح لـ '{name}' بالنفاذ إلى '{perm}'"
|
||||
},
|
||||
"migrations": {
|
||||
"skip": "تجاهل التهجيرات",
|
||||
"run": "إطلاق الهجرات"
|
||||
},
|
||||
"settings": {
|
||||
"update": "تحديث الإعدادات العامة لـ '{panel}'"
|
||||
},
|
||||
"share_logs": "توليد رابط لسِجِل '{name}'"
|
||||
},
|
||||
"confirm_app_install": "متأكد من أنك تريد تنصيب هذا التطبيق؟",
|
||||
"footer": {
|
||||
"help": "بحاجة إلى مساعدة؟",
|
||||
"donate": "تبرّع",
|
||||
"documentation": "المستندات"
|
||||
},
|
||||
"tools_webadmin": {
|
||||
"experimental": "الوضع التجريبي",
|
||||
"fallback_language": "اللغة المرجعية",
|
||||
"language": "اللغة",
|
||||
"fallback_language_description": "اللغة التي سيتم استخدامها إن كانت الترجمة غير متوفرة في اللغة الرئيسية.",
|
||||
"theme": "الإنتقال إلى الوضع المظلم",
|
||||
"transitions": "تمكين الحركة عند الإنتقال بين الصفحات",
|
||||
"cache": "التخزين المؤقت",
|
||||
"cache_description": "تذكّرْ تعطيل ذاكرة التخزين المؤقت إن كنت تُخطّطُ للعَمَل مَع واجهةِ سطر الأوامر بينما تُبحِر على واجهة الويب الإدارية هذه (Web-admin)."
|
||||
},
|
||||
"api_error": {
|
||||
"view_error": "أظهر الخطأ",
|
||||
"error_message": "رسالة الخطأ:",
|
||||
"sorry": "نعتذر عن ذلك.",
|
||||
"server_said": "أثناء تنفيذ الإجراء، أجاب الخادم كالتالي:",
|
||||
"info": "المعلومات التالية قد تكون مفيدة للشخص الذي يساعدك:"
|
||||
},
|
||||
"app_show_categories": "اظهر كافة الفئات",
|
||||
"cancel": "إلغاء",
|
||||
"perform": "تنفيذ",
|
||||
"readme": "اقرأني",
|
||||
"tools_webadmin_settings": "إعدادات واجهة الويب الإدارية",
|
||||
"search": {
|
||||
"for": "البحث عن {items}…"
|
||||
},
|
||||
"users_import": "استيراد مستخدمين",
|
||||
"users_export": "تصدير المستخدمين",
|
||||
"users_import_csv_file": "ملف CSV",
|
||||
"users_import_update": "تحديث المستخدمين الموجودين",
|
||||
"yunohost_admin": "مدير YunoHost",
|
||||
"api": {
|
||||
"processing": "يقوم الخادم بتنفيذ الإجراء…",
|
||||
"query_status": {
|
||||
"error": "فشل",
|
||||
"pending": "جارٍ",
|
||||
"success": "انتهى بنجاح",
|
||||
"warning": "اكتمل بنجاح مع وجود أخطاء أو تنبيهات"
|
||||
},
|
||||
"reconnecting": {
|
||||
"title": "محاولة الإتصال بالخادم…",
|
||||
"reason": {
|
||||
"unknown": "تم اغلاق الاتصال بالخادم لأسباب مجهولة.",
|
||||
"reboot": "يُعاد تشغيل خادمك ولن يُمكن النفاذ إليه لفترة من الوقت. سيتاح الولوج إليه عند تتمة إعادة تشغيله.",
|
||||
"upgrade_system": "تم إغلاق الاتصال بالخادم بسبب ترقية يونوهوست.في انتظار إمكانية الوصول للخادم مرة أخرى…",
|
||||
"shutdown": "تم إيقاف تشغيل خادمك ولم يعد قابلا للوصول إليه.قم بتشغيله مرة أخرى وسيتاح لك تسجيل الدخول بمجرد إمكانية الوصول إليه."
|
||||
},
|
||||
"failed": "يبدو أن الخادم لا يستجيب. يمكنك محاولة إعادة الاتصال مرة أخرى أو محاولة تشغيل`systemctl restart yunohost-api` من خلال ssh.",
|
||||
"success": "يمكن الآن الوصول إلى الخادم! يمكنك محاولة تسجيل الدخول"
|
||||
},
|
||||
"partial_logs": "[…] (تحقق من السجل للحصول على السجلات الكاملة)"
|
||||
},
|
||||
"dead": "غير نشط",
|
||||
"unknown": "مجهول",
|
||||
"address": {
|
||||
"domain_description": {
|
||||
"domain": "اختر اسم نطاق.",
|
||||
"email": "اختر اسم نطاق لبريدك الإلكتروني."
|
||||
},
|
||||
"local_part_description": {
|
||||
"domain": "اختر اسم نطاق فرعي.",
|
||||
"email": "اختر جزءًا محليًا لبريدك الإلكتروني."
|
||||
}
|
||||
},
|
||||
"enabled": "مفعّل",
|
||||
"error": "خطأ",
|
||||
"experimental": "تجريبي",
|
||||
"api_errors_titles": {
|
||||
"APINotRespondingError": "إنّ واجهة برمجة التطبيقات لـ YunoHost لا تجيب",
|
||||
"APIError": "صادف YunoHost خطأ غير متوقع",
|
||||
"APIBadRequestError": "واجه YunoHost خطأ",
|
||||
"APIInternalError": "صادف YunoHost خطأ محليا",
|
||||
"APIConnexionError": "صادف YunoHost خطأ في الإتصال",
|
||||
"APINotFoundError": "تعذر على YunoHost API العثور على مسار"
|
||||
},
|
||||
"api_waiting": "في انتظار ردّ الخادم…",
|
||||
"app_choose_category": "اختر فئة",
|
||||
"retry": "حاول مجددا",
|
||||
"permission_main": "التسمية الرئيسية",
|
||||
"user_emailforward_add": "إضافة عنوان بريد إلكتروني للتحويل",
|
||||
"select_none": "الغاء اختيار الكل",
|
||||
"go_back": "العودة",
|
||||
"form_errors": {
|
||||
"pattern": "{type}",
|
||||
"remote": "{message}",
|
||||
"invalid_form": "تحتوي الإستمارة على بعض الأخطاء.",
|
||||
"passwordMatch": "كلمات السر لا تتطابق.",
|
||||
"required": "هذا الحقل مطلوب.",
|
||||
"appRepoUrl": "يُتوقع أن تبدو الروابط الشبكية لمستودعات تطبيقات YuNoHost على الشكل التالي: https://domain.tld/path/to/repo_ynh",
|
||||
"alpha": "يجب أن تحتوي السلسلة على حروف فقط.",
|
||||
"notInUsers": "المستخدم '{value}' موجود مِن قَبل.",
|
||||
"number": "يجب أن تكون القيمة رقمًا.",
|
||||
"passwordLenght": "يجب أن تتكوّن الكلمة السرية على الأقل من 8 حروف.",
|
||||
"between": "يتوجّب أن تكون القيمة ما بين {min} و {max}.",
|
||||
"maxValue": "يجب أن تكون القيمة عددًا أصغر مِن أو يساوي {max}.",
|
||||
"name": "لا ينبغي أن تحتوي الأسماء على حروف خاصة باستثناء <code> ,.'-</code>",
|
||||
"minValue": "يجب أن تكون القيمة عددًا أكبر مِن أو يساوي {min}.",
|
||||
"dynDomain": "اسم نطاق غير صالح: يجب أن يتكون من أحرف أبجدية رقمية صغيرة وأحرف شرطة فقط",
|
||||
"domain": "اسم نطاق غير صالح: يجب أن يتكون من أحرف أبجدية رقمية صغيرة وأحرف نقطية وشرطة فقط"
|
||||
},
|
||||
"history": {
|
||||
"methods": {
|
||||
"POST": "تشغيل/إنشاء",
|
||||
"PUT": "تعديل",
|
||||
"GET": "قراءة",
|
||||
"DELETE": "حذف"
|
||||
},
|
||||
"title": "التاريخ",
|
||||
"last_action": "آخر إجراء:",
|
||||
"is_empty": "لا شيء في التاريخ في الوقت الحالي."
|
||||
},
|
||||
"users_import_delete": "حذف المستخدمين غير المُدرَجين",
|
||||
"group_admins": "المُدراء",
|
||||
"users_import_delete_others": "حذف المستخدمين غير المُدرَجين",
|
||||
"hook_data_xmpp": "بيانات XMPP",
|
||||
"app": {
|
||||
"integration": {
|
||||
"title": "إدماج YunoHost",
|
||||
"multi_instance": {
|
||||
"false": "لا يمكن تنصيبه إلا مرة واحدة",
|
||||
"true": "يمكن تنصيبه عدة مرات"
|
||||
},
|
||||
"sso": {
|
||||
"false": "نظام إثبات الهوية SSO غير متوفر",
|
||||
"true": "نظام إثبات الهوية SSO متوفر",
|
||||
"?": "لا توجد معلومات حول تكامل تسجيل الدخول الأحادي"
|
||||
},
|
||||
"archs": "البِنَى المدعومة:",
|
||||
"ldap": {
|
||||
"false": "لا يستخدم حسابات يونو هوست لتسجيل الدخول (LDAP)",
|
||||
"true": "استخدم حسابات YunoHost لتسجيل الدخول (LDAP)"
|
||||
},
|
||||
"resources": "الاستخدام النموذجي للموارد: {ram} RAM ، قرص {disk}"
|
||||
},
|
||||
"links": {
|
||||
"admindoc": "الدليل الرسمي للمدير",
|
||||
"code": "المستودع الرسمي الشفرة المصدرية",
|
||||
"forum": "المواضيع المتعلقة بهذا التطبيق على منتدى YunoHost",
|
||||
"package": "مستودع حزمة YunoHost",
|
||||
"title": "الروابط",
|
||||
"userdoc": "الدليل الرسمي للمستخدم",
|
||||
"website": "الموقع الرسمي",
|
||||
"license": "الرخصة"
|
||||
},
|
||||
"potential_alternative_to": "بديل محتمل لـ:",
|
||||
"upgrade": {
|
||||
"confirm": {
|
||||
"apps": "التطبيقات التي سيتم تحديثها",
|
||||
"title": "تأكيد تحديث التطبيقات"
|
||||
},
|
||||
"continue": "الاستمرار إلى التطبيق التالي",
|
||||
"notifs": {
|
||||
"pre": {
|
||||
"title": "كن حذرا!",
|
||||
"alert": "يجب عليك التحقق من هذه الإشعارات قبل الترقية، فقد تكون هناك أشياء مهمة يجب معرفتها."
|
||||
},
|
||||
"post": {
|
||||
"alert": "يبدو أن التحديث سار على ما يرام!\nإليك بعض المعلومات التي يعتقد مشرف الحُزْمَة أنه من المهم معرفتها حول هذه الترقية.\nيمكنك العثور عليها في صفحة المعلومات الخاصة بالتطبيق.",
|
||||
"title": "إشعارات ما بعد الترقية لـ '{name}'"
|
||||
}
|
||||
},
|
||||
"stop": "إلغاء تحديث التطبيقات التالية"
|
||||
},
|
||||
"installed_version": "النسخة المُنصَّبة:",
|
||||
"open_this_app": "إفتح هذا التطبيق",
|
||||
"doc": {
|
||||
"about": {
|
||||
"title": "عن",
|
||||
"description": "الوصف"
|
||||
},
|
||||
"admin": {
|
||||
"title": "دليل المدير"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "الإشعارات",
|
||||
"post_upgrade": "ملاحظات ما بعد التحديث",
|
||||
"post_install": "ملاحظات ما بعد التنصيب",
|
||||
"understood": "فهمت"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"forum": "ابحث أو إطرح سؤالك في المنتدى!",
|
||||
"problem": "مشكلة مع هذا التطبيق؟",
|
||||
"config_panel_error_please_report": "الرجاء إبلاغ فريق YunoHost عن هذا الخطأ قصد تصحيحه!",
|
||||
"config_panel_error": "خطأ ما يمنع لوح الضبط من الظهور:"
|
||||
},
|
||||
"install": {
|
||||
"license": "الرخصة: {license}",
|
||||
"notifs": {
|
||||
"pre": {
|
||||
"warning": "ما عليك معرفته قبل التنصيب",
|
||||
"critical": "لا يمكن تنصيب التطبيق",
|
||||
"danger": "مِن المحتمَل أن ينجرّ عن تنصيب التطبيق مشاكل"
|
||||
},
|
||||
"post": {
|
||||
"title": "إشعارات ما بعد التثبيت لـ '{name}'",
|
||||
"alert": "يبدو أن عملية التثبيت تمت بنجاح!\n إليك بعض الإشعارات التي يعتبرها مسؤول الحُزْمَة مهمة للتعرف عليها.\nيمكنك قراءتها ثانية في صفحة معلومات التطبيق."
|
||||
}
|
||||
},
|
||||
"version": "الإصدار الحالي: {version}",
|
||||
"problems": {
|
||||
"ignore": "أفهم تمامًا أنّ هذا التنصيب قد يُكسّر نظام التشغيل ولكنني أريد التجريب.",
|
||||
"install": "هذا التطبيق مُنصّب مِن قبل ولا يمكن تنصيبه إلّا مرة واحدة."
|
||||
},
|
||||
"try_demo": "تجريب العرض التوضيحي"
|
||||
},
|
||||
"antifeatures": "لدى هذا التطبيق ميزات قد لا تُعجبك:"
|
||||
},
|
||||
"hook_conf_manually_modified_files": "ملفات ضبط تم تعديلها يدويا",
|
||||
"hook_conf_ynh_settings": "إعدادات YunoHost",
|
||||
"logs_suboperations": "الإجراءات الفرعية",
|
||||
"permission_show_tile_enabled": "مرئي كلوحة على بوابة المستخدم",
|
||||
"tools_yunohost_settings": "إعدادات YuNoHost",
|
||||
"permission_corresponding_url": "العنوان التشعبي URL المقابل",
|
||||
"manage_groups": "إدارة الفِرَق",
|
||||
"user_emailaliases_add": "إضافة عنوان بريد إلكتروني مستعار",
|
||||
"wrong_password_or_username": "اسم المستخدم أو كلمة المرور خاطئة",
|
||||
"app_manage_label_and_tiles": "إدارة الملصقات واللوحات",
|
||||
"items": {
|
||||
"installed_apps": "لا توجد تطبيقات مثبّة | تطبيق مُنصّب | {c} تطبيقات مُنصّبة",
|
||||
"apps": "لا تطبيق | تطبيق | {c} تطبيقات",
|
||||
"users": "بدون مستخدم | مستخدم | {c} مستخدمين"
|
||||
},
|
||||
"domain_dns_push_managed_in_parent_domain": "تتم إدارة ميزة سجلات DNS التلقائية في النطاق الرئيسي <a href='#/domains/{parent_domain}/dns'> {parent_domain} </a>.",
|
||||
"tip_about_user_email": "يتم إنشاء المستخدمين باستخدام عنوان بريد إلكتروني مرتبط (وحساب XMPP) بالشكل التالي username@domain.tld. يمكن لاحقا للمدير أو المستخدم إضافة أسماء مستعارة إضافية للبريد الإلكتروني وإعادة توجيهات للبريد الإلكتروني.",
|
||||
"app_state_broken": "مُكسَّر",
|
||||
"diagnosis_explanation": "ستحاول ميزة التشخيص تحديد المشكلات الشائعة في الجوانب المختلفة لخادمك للتأكد من أن كل شيء يعمل بسلاسة. يتم تشغيل التشخيص تلقائيًا مرتين يوميًا ويتم إرسال بريد إلكتروني إلى المدير في حالة العثور على مشكلات. لاحظ أن بعض الفحوصات قد لا تكون ذات صلة إذا كنت لا ترغب في استخدام بعض الميزات المحددة (على سبيل المثال XMPP) أو قد تفشل إذا كان لديك إعداد معقد. في مثل هذه الحالات ، وإن كنت تعرف ما تفعله ، فلا بأس في تجاهل المشكلات أو التحذيرات المرتبطة.",
|
||||
"diagnosis_first_run": "ستحاول ميزة التشخيص تحديد المشكلات الشائعة في الجوانب المختلفة لخادمك للتأكد من أن كل شيء يعمل بسلاسة. فضلًا لا داعي للذعر إن رأيت مجموعة من الأخطاء مباشرة بعد إعداد خادمك: يُفترض للميزة مساعدتك في تحديد المشكلات وإرشادك لإصلاحها. سيتم أيضًا تشغيل التشخيص تلقائيًا مرتين يوميًا ويتم إرسال بريد إلكتروني إلى المدير إن تم العثور على مشكلات.",
|
||||
"app_state_broken_explanation": "إنّ هذا التطبيق مكسَّر حاليا ولا يمكن تنصيبه حسب الفحوصات الآلية لـ YunoHost",
|
||||
"details_about": "إظهار المزيد من التفاصيل حول {subject}",
|
||||
"disabled": "مُعطَّل",
|
||||
"migrations_disclaimer_check_message": "قرأتُ وفهمتُ وثيقة إخلاء المسؤولية",
|
||||
"day_validity": " انتهت مدة صلاحيتها | يوم واحد | {count} أيام",
|
||||
"label_for_manifestname_help": "هذا هو الاسم المعروض في بوابة المستخدمين. ويمكن تغيير ذلك فيما بعد.",
|
||||
"good_practices_about_user_password": "إنّك مُقبِل على تعيين كلمة مرور جديدة للمستخدم. يجب أن تتكون كلمة المرور من 8 أحرف على الأقل ، أخذا بعين الاعتبار أنه يوصى باستخدام كلمة مرور أطول (مثل عبارة مرور) و / أو مجموعة من الأحرف (الأحرف الكبيرة والصغيرة والأرقام والأحرف الخاصة).",
|
||||
"group_explain_all_users": "هذا فريق خاص يتضمّن كافة حسابات المستخدِمين على الخادم",
|
||||
"group_specific_permissions": "تصريحات للمستخدمين الفرديين",
|
||||
"hook_data_xmpp_desc": "إعدادات غرف الدردشة والمستخدمين والملفات المحملة",
|
||||
"mailbox_quota_example": "700M قرص مضغوط و 4700M قرص DVD",
|
||||
"pending_migrations": "هناك عمليات ترحيل في انتظار أن تكتمل. يرجى الانتقال إلى <a href='#/tools/migrations'>Tools > Migrations لتشغيلها</a>.",
|
||||
"group_format_name_help": "يمكنك استخدام الأحرف الأبجدية الرقمية والشرطة السفلية",
|
||||
"users_import_confirm_destructive": "هل أنت متحقِّق أنك تريد حذف المستخدمين الذين ليسوا موجودين في هذا المِلَفّ؟",
|
||||
"users_import_update_desc": "إذا تم اختياره، سيجري تحديث جميع المستخدمين الموجودين في مِلَفّ CSV بالقيمة الجديدة",
|
||||
"purge_user_data_warning": "تطهير بيانات المستخدم لا رجعة فيه. تيقن من أنك تعرف ما تفعله!",
|
||||
"app_state_highquality_explanation": "تم دمج هذا التطبيق بشكل جيد مع YunoHost لمدة عام على الأقل.",
|
||||
"migrations_disclaimer_not_checked": "يتطلب هذا الترحيل مراجعة إخلاء المسؤولية الخاص به قبل تنفيذه.",
|
||||
"traceback": "التتبع",
|
||||
"api_not_found": "يبدو أن واجهة الويب الإدارية قد حاولت الاستعلام عن شيء غير موجود.",
|
||||
"users_import_delete_desc": "إذا تم تحديده، سيتم حذف (وإزالة) جميع المستخدمين الحاليين غير الموجودين في مِلَفّ CSV."
|
||||
}
|
9
app/src/i18n/locales/bn_BD.json
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"action": "কৃয়া",
|
||||
"add": "যুক্ত করুন",
|
||||
"administration_password": "পরিচালনাকারীর পাসওয়ার্ড",
|
||||
"all_apps": "সকল অ্যাপ্লিকেশান",
|
||||
"api_not_responding": "এপিআই সাড়া দিচ্ছে না?",
|
||||
"password": "পাসওয়ার্ড",
|
||||
"ok": "ঠিক আছে"
|
||||
}
|
695
app/src/i18n/locales/ca.json
Normal file
|
@ -0,0 +1,695 @@
|
|||
{
|
||||
"action": "Acció",
|
||||
"add": "Afegir",
|
||||
"administration_password": "Contrasenya d'administració",
|
||||
"api_not_responding": "L'API de YunoHost no respon. Pot ser que «yunohost-api» estigui caigut o s'hagi reiniciat?",
|
||||
"app_info_access_desc": "Grups / usuaris autoritzats actualment a accedir a aquesta aplicació:",
|
||||
"app_info_default_desc": "Redirigeix l'arrel del domini a aquesta aplicació ({domain}).",
|
||||
"app_info_changeurl_desc": "Canvia l'adreça d'accés (URL) d'aquesta aplicació (domini i/o camí).",
|
||||
"app_info_change_url_disabled_tooltip": "Encara no s'ha implementat aquesta funcionalitat per a aquesta aplicació",
|
||||
"app_info_uninstall_desc": "Eliminar aquesta aplicació.",
|
||||
"app_install_custom_no_manifest": "No s'ha trobat el fitxer manifest.json",
|
||||
"app_make_default": "Establir com a predeterminat",
|
||||
"app_state_inprogress": "encara no funciona",
|
||||
"applications": "Aplicacions",
|
||||
"archive_empty": "Arxiu buit",
|
||||
"backup": "Còpia de seguretat",
|
||||
"backup_action": "Fer còpia de seguretat",
|
||||
"backup_content": "Contingut de la còpia de seguretat",
|
||||
"backup_create": "Crear una còpia de seguretat",
|
||||
"backup_new": "Nova còpia de seguretat",
|
||||
"begin": "Començar",
|
||||
"both": "Ambdós",
|
||||
"check": "Comprovar",
|
||||
"close": "Tancar",
|
||||
"confirm_app_change_url": "Està segur de voler canviar l'adreça d'accés (URL) d'aquesta aplicació?",
|
||||
"confirm_app_default": "Està segur de voler fer aquesta aplicació predeterminada?",
|
||||
"confirm_change_maindomain": "Està segur de voler canviar el domini principal?",
|
||||
"confirm_delete": "Està segur de voler eliminar {name}?",
|
||||
"confirm_firewall_allow": "Està segur de voler obrir el port {port}? (protocol: {protocol}, connexió: {connection})",
|
||||
"confirm_firewall_disallow": "Està segur de voler tancar el port {port}? (protocol: {protocol}, connexió: {connection})",
|
||||
"confirm_install_custom_app": "ATENCIÓ! La instal·lació d'aplicacions de terceres parts pot comprometre la integritat i seguretat del seu sistema. No hauríeu d'instal·lar-ne a no ser que sapigueu el que feu. Esteu segurs de voler córrer aquest risc?",
|
||||
"confirm_install_domain_root": "Segur voleu instal·lar aquesta aplicació a «/»? No podreu instal·lar cap altra aplicació a {domain}",
|
||||
"confirm_migrations_skip": "Saltar-se les migracions no està recomanat. Està segur de voler continuar?",
|
||||
"confirm_postinstall": "Està a punt de començar el procés de post-instal·lació en el domini {domain}. Pot tardar uns minuts, *no interrompi la operació*.",
|
||||
"confirm_restore": "Està segur de voler restaurar {name}?",
|
||||
"confirm_service_start": "Està segur de voler iniciar {name}?",
|
||||
"confirm_service_stop": "Està segur de voler parar {name}?",
|
||||
"confirm_uninstall": "Està segur de voler desinstal·lar {name}?",
|
||||
"confirm_update_apps": "Està segur de voler actualitzar totes les aplicacions?",
|
||||
"confirm_update_specific_app": "Està segur de voler actualitzar {app}?",
|
||||
"confirm_upnp_enable": "Està segur de voler activar UPnP?",
|
||||
"confirm_upnp_disable": "Està segur de voler desactivar UPnP?",
|
||||
"confirm_reboot_action_reboot": "Està segur de voler reiniciar el servidor?",
|
||||
"confirm_reboot_action_shutdown": "Està segur de voler apagar el servidor?",
|
||||
"connection": "Connexió",
|
||||
"created_at": "Creat a",
|
||||
"custom_app_install": "Instal·lar una aplicació personalitzada",
|
||||
"delete": "Suprimir",
|
||||
"description": "Descripció",
|
||||
"domain_dns_conf_is_just_a_recommendation": "Aquesta secció mostra la configuració *recomanada*. Aquesta pàgina *no* configura el DNS. És la vostra responsabilitat configurar la zona DNS al vostre registrador DNS en acord amb aquesta recomanació.",
|
||||
"diagnosis": "Diagnòstic",
|
||||
"disable": "Desactivar",
|
||||
"dns": "DNS",
|
||||
"domain_add": "Afegir domini",
|
||||
"domain_default_desc": "Els usuaris iniciaran sessió al domini predeterminat.",
|
||||
"domain_default_longdesc": "Aquest és el seu domini predeterminat.",
|
||||
"domain_delete_longdesc": "Eliminar aquest domini",
|
||||
"domain_dns_config": "Configuració de DNS",
|
||||
"domain_dns_longdesc": "Veure la configuració DNS",
|
||||
"domain_name": "Nom del domini",
|
||||
"domains": "Dominis",
|
||||
"download": "Descarregar",
|
||||
"enable": "Activar",
|
||||
"error_modify_something": "Heu de modificar quelcom",
|
||||
"error_server_unexpected": "Error inesperat en el servidor",
|
||||
"firewall": "Tallafoc",
|
||||
"footer_version": "Propulsat per <a href='https://yunohost.org'> YunoHost</a> {version} ({repo}).",
|
||||
"form_input_example": "Exemple: {example}",
|
||||
"home": "Inici",
|
||||
"hook_adminjs_group_configuration": "Configuració del sistema",
|
||||
"hook_conf_ldap": "Base de dades d’usuaris",
|
||||
"hook_conf_ynh_certs": "Certificats SSL",
|
||||
"hook_data_home": "Dades d'usuari",
|
||||
"hook_data_home_desc": "Les dades d'usuari són a /home/USUARI",
|
||||
"hook_data_mail": "Correu",
|
||||
"hook_data_mail_desc": "Correus guardats en el servidor",
|
||||
"id": "ID",
|
||||
"infos": "Informació",
|
||||
"install": "Instal·lar",
|
||||
"install_name": "Instal·lar {id}",
|
||||
"install_time": "Temps d'instal·lació",
|
||||
"installation_complete": "Instal·lació completada",
|
||||
"installed": "Instal·lar",
|
||||
"ipv4": "IPv4",
|
||||
"ipv6": "IPv6",
|
||||
"label": "Etiqueta",
|
||||
"label_for_manifestname": "Etiqueta per {name}",
|
||||
"local_archives": "Arxius locals",
|
||||
"login": "Iniciar sessió",
|
||||
"logout": "Tancar sessió",
|
||||
"mailbox_quota_description": "Per exemple, 700M és un CD i 4700M és un DVD.",
|
||||
"mailbox_quota_placeholder": "Deixar en blanc o a 0 per desactivar.",
|
||||
"manage_apps": "Gestionar les aplicacions",
|
||||
"manage_domains": "Gestionar els dominis",
|
||||
"manage_users": "Gestionar els usuaris",
|
||||
"migrations": "Migracions",
|
||||
"migrations_pending": "Migracions en espera",
|
||||
"migrations_done": "Migracions anteriors",
|
||||
"migrations_no_pending": "No hi ha migracions en espera",
|
||||
"migrations_no_done": "No hi ha migracions anteriors",
|
||||
"multi_instance": "Es pot instal·lar diverses vegades",
|
||||
"next": "Següent",
|
||||
"no": "No",
|
||||
"ok": "OK",
|
||||
"open": "Obrir",
|
||||
"operations": "Operacions",
|
||||
"password": "Contrasenya",
|
||||
"password_confirmation": "Confirmar contrasenya",
|
||||
"path": "Camí",
|
||||
"port": "Port",
|
||||
"ports": "Ports",
|
||||
"postinstall_domain": "Aquest és el primer nom de domini vinculat al vostre servidor YunoHost, però també el que utilitzaran els usuaris del servidor per accedir al portal d'autenticació. Així doncs serà visible per tothom, escolliu-lo amb cura.",
|
||||
"postinstall_intro_1": "Felicitats! YunoHost s'ha instal·lat correctament.",
|
||||
"postinstall_intro_2": "Falten dos passos més per activar els serveis del seu servidor.",
|
||||
"postinstall_intro_3": "Pot obtenir més informació visitant <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>la pàgina de documentació</a>",
|
||||
"previous": "Precedent",
|
||||
"protocol": "Protocol",
|
||||
"restore": "Restaurar",
|
||||
"running": "En execució",
|
||||
"save": "Desar",
|
||||
"service_start_on_boot": "Iniciar a l'engegada",
|
||||
"services": "Serveis",
|
||||
"set_default": "Establir com a predeterminat",
|
||||
"size": "Talla",
|
||||
"skip": "Passar",
|
||||
"start": "Engegar",
|
||||
"status": "Estat",
|
||||
"stop": "Aturar",
|
||||
"system": "Sistema",
|
||||
"system_apps_nothing": "Totes les aplicacions estan actualitzades!",
|
||||
"system_packages_nothing": "Tots els paquets del sistema estan actualitzats!",
|
||||
"system_update": "Actualització del sistema",
|
||||
"system_upgrade_btn": "Actualització",
|
||||
"system_upgrade_all_applications_btn": "Actualitza totes les aplicacions",
|
||||
"system_upgrade_all_packages_btn": "Actualitza tots els paquets",
|
||||
"tcp": "TCP",
|
||||
"tools": "Eines",
|
||||
"tools_reboot": "Reiniciar el servidor",
|
||||
"tools_reboot_btn": "Reiniciar",
|
||||
"tools_shutdown": "Apagar el servidor",
|
||||
"tools_shutdown_btn": "Apagar",
|
||||
"tools_shutdown_reboot": "Apagar/Reiniciar",
|
||||
"udp": "UDP",
|
||||
"unauthorized": "No autoritzat",
|
||||
"uninstall": "Desinstal·lar",
|
||||
"upnp": "UPnP",
|
||||
"upnp_disabled": "UPnP està desactivat.",
|
||||
"upnp_enabled": "UPnP està activat.",
|
||||
"url": "URL",
|
||||
"user_email": "Correu electrònic",
|
||||
"user_emailaliases": "Àlies de correu",
|
||||
"user_fullname": "Nom complet",
|
||||
"user_interface_link": "Interfície d'usuari",
|
||||
"user_mailbox_quota": "Quota de correu",
|
||||
"user_mailbox_use": "Espai utilitzat",
|
||||
"user_username": "Nom d'usuari",
|
||||
"user_username_edit": "Editar el compte de {name}",
|
||||
"users": "Usuaris",
|
||||
"users_new": "Nou usuari",
|
||||
"users_no": "No hi ha usuaris.",
|
||||
"yes": "Sí",
|
||||
"certificate_manage": "Administrar el certificat SSL",
|
||||
"certificate": "Certificat",
|
||||
"run": "Executar",
|
||||
"user_emailforward": "Reenviament de E-mail",
|
||||
"user_new_forward": "noureenviar@dominiextern.org",
|
||||
"all_apps": "Totes les aplicacions",
|
||||
"confirm_install_app_lowquality": "Atenció: aquesta aplicació funciona però encara no està ben integrada a YunoHost. Algunes característiques com la identificació única i la còpia de seguretat i restauració de l'aplicació poden no estar presents.",
|
||||
"confirm_install_app_inprogress": "ATENCIÓ! Aquesta aplicació encara és experimental (si no és que no funciona directament) i és probable que trenqui el sistema! No hauríeu d'instal·lar-la a no ser que sapigueu el que feu. Esteu segurs de voler córrer aquest risc?",
|
||||
"error_connection_interrupted": "El servidor a tancat la connexió en lloc de respondre. S'han reiniciat o aturat nginx o yunohost-api per alguna raó?",
|
||||
"experimental_warning": "Atenció: aquesta característica és experimental i no es considera estable, no l'hauríeu d'utilitzar a excepció de saber el que feu.",
|
||||
"good_practices_about_admin_password": "Esteu a punt de definir una nova contrasenya d'administrador. La contrasenya ha de tenir un mínim de 8 caràcters ; tot i que és de bona pràctica utilitzar una contrasenya més llarga (és a dir una frase de contrasenya) i/o utilitzar diferents tipus de caràcters (majúscules, minúscules, dígits i caràcters especials).",
|
||||
"good_practices_about_user_password": "Esteu a punt de definir una nova contrasenya d'usuari. La contrasenya ha de tenir un mínim de 8 caràcters ; tot i que és de bona pràctica utilitzar una contrasenya més llarga (és a dir una frase de contrasenya) i/o utilitzar diferents tipus de caràcters (majúscules, minúscules, dígits i caràcters especials).",
|
||||
"only_working_apps": "Només aplicacions que funcionen",
|
||||
"logs": "Registres",
|
||||
"logs_operation": "Operacions fetes al sistema amb YunoHost",
|
||||
"logs_history": "Historial de l'ordre executada al sistema",
|
||||
"logs_package": "Historial d'administració dels paquets debian",
|
||||
"logs_system": "Registres del nucli i d'altres esdeveniments de baix nivell",
|
||||
"logs_access": "Llista d'accessos i bloquejos",
|
||||
"logs_service": "Registres dels serveis",
|
||||
"logs_app": "Registres de les aplicacions",
|
||||
"logs_no_logs_registered": "No hi ha cap registre per aquesta categoria",
|
||||
"logs_error": "Error",
|
||||
"logs_ended_at": "Fi",
|
||||
"logs_started_at": "Principi",
|
||||
"logs_path": "Camí",
|
||||
"logs_context": "Context",
|
||||
"logs_share_with_yunopaste": "Comparteix amb YunoPaste",
|
||||
"logs_more": "Mostra més línies",
|
||||
"select_all": "Selecciona-ho tot",
|
||||
"select_none": "No en seleccionis cap",
|
||||
"purge_user_data_checkbox": "Purga les dades de {name}? (Això suprimirà el contingut de la carpeta home i mail.)",
|
||||
"purge_user_data_warning": "Purgar les dades de l'usuari no és reversible. Assegureu-vos de saber el que esteu fent!",
|
||||
"version": "Versió",
|
||||
"confirm_update_system": "Esteu segurs de voler actualitzar tots els paquets del sistema?",
|
||||
"app_state_inprogress_explanation": "El desenvolupador d'aquesta aplicació ha dit que encara no està preparada per fer-ne un ús en producció. SIGUEU PRUDENTS!",
|
||||
"app_state_highquality_explanation": "Aquesta aplicació està ben integrada amb YunoHost des de fa almenys un any.",
|
||||
"license": "Llicència",
|
||||
"only_highquality_apps": "Només aplicacions d'alta qualitat",
|
||||
"only_decent_quality_apps": "Només aplicacións de qualitat decent",
|
||||
"orphaned": "No mantinguda",
|
||||
"orphaned_details": "Aquesta aplicació no ha estat mantinguda des de fa temps. Pot ser que funcioni, però no rebrà actualitzacions fins que algú es faci voluntari per ocupar-se'n. No dubteu en contribuir reviure-la!",
|
||||
"from_to": "de {0} fins a {1}",
|
||||
"group": "Grup",
|
||||
"group_name": "Nom del grup",
|
||||
"group_all_users": "Tots els usuaris",
|
||||
"group_visitors": "Visitants",
|
||||
"group_format_name_help": "Podeu utilitzar caràcters alfanumèrics i l'espai",
|
||||
"group_add_member": "Afegir usuari",
|
||||
"group_explain_all_users": "Aquest és un grup especial que conté tots els comptes d'usuari del servidor",
|
||||
"group_add_permission": "Afegir permís",
|
||||
"group_new": "Nou grup",
|
||||
"group_explain_visitors": "Aquest és un grup especial que representa els visitants anònims",
|
||||
"group_specific_permissions": "Permisos d'usuari individual",
|
||||
"groups_and_permissions": "Grups i permisos",
|
||||
"groups_and_permissions_manage": "Gestionar grups i usuaris",
|
||||
"permissions": "Permisos",
|
||||
"nobody": "Ningú",
|
||||
"rerun_diagnosis": "Tornar a fer el diagnòstic",
|
||||
"details": "Detalls",
|
||||
"everything_good": "Tot està bé!",
|
||||
"ignore": "Ignorar",
|
||||
"ignored": "{count} ignorat",
|
||||
"last_ran": "Executat per última vegada:",
|
||||
"warnings": "{count} avisos",
|
||||
"words": {
|
||||
"default": "Predeterminat",
|
||||
"link": "Vincle",
|
||||
"collapse": "Col·lapsar",
|
||||
"separator": ", ",
|
||||
"valid": "Vàlid",
|
||||
"none": "Cap",
|
||||
"browse": "Explora"
|
||||
},
|
||||
"unignore": "No ignorar",
|
||||
"configuration": "Configuració",
|
||||
"since": "des de",
|
||||
"others": "Altres",
|
||||
"catalog": "Catàleg",
|
||||
"app_state_lowquality_explanation": "Aquesta aplicació pot funcionar, però encara té problemes, o bé encara no està completament integrada a YunoHost, o bé no respecta les bones pràctiques.",
|
||||
"app_state_lowquality": "baixa qualitat",
|
||||
"all": "Tot",
|
||||
"run_first_diagnosis": "Executa el diagnòstic inicial",
|
||||
"diagnosis_first_run": "La funció de diagnòstic intentarà identificar problemes habituals de diferents aspectes del servidor per tal d'assegurar que tot funcioni de la millor manera possible. No tingueu por si veieu uns quants errors just després de configurar el servidor: està precisament fet per ajudar a identificar els problemes i oferir una guia de com arreglar-los. El diagnòstic també s'executarà dues vegades al dia i s'enviarà un correu a l'administrador si es troben errors.",
|
||||
"confirm_service_restart": "Esteu segur de voler reiniciar {name}?",
|
||||
"group_explain_visitors_needed_for_external_client": "Vigileu ja que s'ha de permetre els visitants en algunes aplicacions si voleu utilitzar-les amb clients externs. És el cas, per exemple, de Nextcloud si voleu utilitzar el client de sincronització en el telèfon mòbil o en l'ordinador.",
|
||||
"restart": "Reiniciar",
|
||||
"issues": "{count} problemes",
|
||||
"operation_failed_explanation": "Aquesta operació ha fallat! Ens sap molt greu :( Podeu intentar <a href='https://yunohost.org/help'>demanar ajuda</a>. Si us plau doneu *el registre complet* de l'operació a la gent que intenta ajudar-vos. Podeu fer-ho fent clic al botó verd \"Compartir amb Yunopaste\". Quan compartiu els registres, YunoHost intentarà anonimitzar automàticament dades privades com els noms de domini i les IPs.",
|
||||
"diagnosis_explanation": "La funció de diagnòstic intentarà identificar els errors més comuns en diferents aspectes del servidor per verificar que tot funciona correctament. El diagnòstic s'executa automàticament dues vegades al dia i s'envia un correu electrònic a l'administrador si es troben errors. Tingueu en compte que no tots els tests seran rellevants si no s'utilitzen algunes funcions específiques (com per exemple XMPP) o pot ser que falli si teniu un sistema amb una configuració complexa. En aquests casos, i si sabeu el que feu, podeu ignorar els problemes o avisos corresponents.",
|
||||
"pending_migrations": "Hi ha algunes migracions pendents esperant per ser executades. Aneu a <a href='#/tools/migrations'>Eines > Migracions</a> per fer-les.",
|
||||
"logs_suboperations": "Sub-operacions",
|
||||
"tip_about_user_email": "Els usuaris es creen amb una adreça de correu electrònic associada (i compte de XMPP) amb el format usari@domini.tld. L'administrador i l'usuari poden afegir a posteriori adreces de correu addicionals i reenviament de correus.",
|
||||
"permission_show_tile_enabled": "Mostrar la «tile» en el portal de l'usuari",
|
||||
"permission_main": "Etiqueta principal",
|
||||
"permission_corresponding_url": "URL corresponent",
|
||||
"app_manage_label_and_tiles": "Gestionar etiquetes i «tiles»",
|
||||
"items": {
|
||||
"backups": "cap còpia de seguretat | còpia de seguretat | {c} còpies de seguretat",
|
||||
"apps": "cap aplicació | app | {c} aplicacions",
|
||||
"installed_apps": "cap aplicació instal·lada | aplicació instal·lada | {c} aplicacions instal·lades",
|
||||
"services": "cap servei | servei | {c} serveis",
|
||||
"logs": "cap registre | registre | {c} registres",
|
||||
"groups": "cap grup | grup | {c} grups",
|
||||
"domains": "cap domini | domini | {c} dominis",
|
||||
"users": "cap usuari | usuari | {c} usuaris",
|
||||
"permissions": "cap permís | permís | {c} permisos"
|
||||
},
|
||||
"history": {
|
||||
"methods": {
|
||||
"DELETE": "eliminar",
|
||||
"PUT": "modificar",
|
||||
"POST": "crear/executar",
|
||||
"GET": "llegir"
|
||||
},
|
||||
"last_action": "Última acció:",
|
||||
"title": "Historial",
|
||||
"is_empty": "De moment res a l'historial."
|
||||
},
|
||||
"form_errors": {
|
||||
"required": "Aquest camp és obligatori.",
|
||||
"passwordMatch": "Les contrasenyes no són iguals.",
|
||||
"passwordLenght": "La contrasenya ha de tenir 8 caràcters com a mínim.",
|
||||
"number": "El valor ha de ser un nombre.",
|
||||
"notInUsers": "L'usuari «{value}» ja existeix.",
|
||||
"minValue": "El valor ha de ser un nombre superior o igual a {min}.",
|
||||
"name": "Els noms no poden incloure caràcters especials ha excepció de <code>,.'-</code>",
|
||||
"email": "Correu electrònic no vàlid: ha de ser caràcters alfanumèrics i <code>_.</code> exclusivament (per exemple someone@example.com, s0me-1@example.com)",
|
||||
"dynDomain": "Nom de domini no vàlid: Ha de contenir caràcters alfanumèrics en minúscules i guionets exclusivament",
|
||||
"domain": "Nom de domini no vàlid: Ha de contenir caràcters alfanumèrics en minúscules, punts i guionets exclusivament",
|
||||
"between": "El valor ha d'estar entre {min} i {max}.",
|
||||
"alphalownumdot_": "Només pot contenir caràcters alfanumèrics en minúscules i la barra baixa.",
|
||||
"alpha": "Només pot contenir caràcters alfanumèrics.",
|
||||
"remote": "{message}",
|
||||
"pattern": "{type}",
|
||||
"invalid_form": "El formulari conté alguns errors.",
|
||||
"emailForward": "Reenviament de correu electrònic no vàlid: només ha de ser caràcters alfanumèrics i <code>_.-+</code> (p. ex., nom+etiqueta@example.com, _n.0-m+etiqueta@example.com)",
|
||||
"appRepoUrl": "S'espera que els URL del dipòsit d'aplicacions de YunoHost siguin com https://domini.tld/cami/al/diposit_ynh",
|
||||
"maxValue": "El valor ha de ser un nombre igual o inferior a {max}."
|
||||
},
|
||||
"footer": {
|
||||
"donate": "Fer una donació",
|
||||
"help": "Necessiteu ajuda?",
|
||||
"documentation": "Documentació"
|
||||
},
|
||||
"experimental": "Experimental",
|
||||
"error": "Error",
|
||||
"enabled": "Activat",
|
||||
"domain_delete_forbidden_desc": "No podeu eliminar «{domain}» ja que és el domini principal, heu d'escollir un altre domini (o <a href='#/domains/add'>afegir-ne un de nou</a>) i fer-lo el domini principal per a poder eliminar aquest.",
|
||||
"domain_add_dyndns_forbidden": "Ja us heu registrat o subscrit a un domini DynDNS del projecte YunoHost. Per disseny, aquesta funció està limitada a un d'aquests dominis per servidor. Si voleu afegir un subdomini del vostre domini ja subscrit, utilitzeu l'opció «Afegir un domini que tinc o un subdomini» anterior. Si voleu utilitzar un domini completament diferent, primer heu d'eliminar el vostre domini DynDNS existent. Els dominis DynDNS són bons quan comenceu amb l'allotjament automàtic, però a mitjà/llarg termini, us recomanem comprar el vostre propi nom de domini a algun registrador per tenir la propietat total del vostre domini.",
|
||||
"disabled": "Desactivat",
|
||||
"dead": "Inactiu",
|
||||
"day_validity": " Expirat | 1 dia | {count} dies",
|
||||
"confirm_app_install": "Esteu segurs de voler instal·lar aquesta aplicació?",
|
||||
"common": {
|
||||
"lastname": "Cognom",
|
||||
"firstname": "Nom"
|
||||
},
|
||||
"code": "Codi",
|
||||
"cancel": "Cancel·lar",
|
||||
"app_show_categories": "Mostrar les categories",
|
||||
"app_choose_category": "Escolliu una categoria",
|
||||
"api_waiting": "Esperant la resposta del servidor…",
|
||||
"api_errors_titles": {
|
||||
"APIConnexionError": "YunoHost ha tingut un error de connexió",
|
||||
"APINotRespondingError": "L'API de YunoHost no respon",
|
||||
"APIInternalError": "YunoHost ha trobat un error intern",
|
||||
"APIBadRequestError": "YunoHost ha trobat un error",
|
||||
"APIError": "YunoHost ha trobat un error inesperat",
|
||||
"APINotFoundError": "L'API de YunoHost no ha pogut trobar una ruta"
|
||||
},
|
||||
"api_error": {
|
||||
"sorry": "Ens sap molt greu això.",
|
||||
"info": "La informació següent pot ser útil per a la persona que us ajudi:",
|
||||
"help": "Podeu buscar ajuda <a href=\"https://forum.yunohost.org/\">al fòrum</a> o <a href=\"https://chat.yunohost.org/\">al chat</a> per arreglar la situació, o reportar l'error <a href=\"https://github.com/YunoHost/issues\">al bugtracker</a>.",
|
||||
"error_message": "Missatge d'error:",
|
||||
"server_said": "Mentre processava l'acció, el servidor ha dit:",
|
||||
"view_error": "Mostra l'error"
|
||||
},
|
||||
"address": {
|
||||
"local_part_description": {
|
||||
"email": "Escolliu una part local per al vostre correu electrònic.",
|
||||
"domain": "Escolliu un subdomini."
|
||||
},
|
||||
"domain_description": {
|
||||
"email": "Escolliu un domini per al correu electrònic.",
|
||||
"domain": "Escolliu un domini."
|
||||
}
|
||||
},
|
||||
"api": {
|
||||
"processing": "El servidor està processant l'acció…",
|
||||
"partial_logs": "[…] (consulteu l'historial per obtenir els registres complets)",
|
||||
"query_status": {
|
||||
"error": "Sense èxit",
|
||||
"pending": "En progrés",
|
||||
"success": "Completat correctament",
|
||||
"warning": "Completat correctament amb errors o alertes"
|
||||
},
|
||||
"reconnecting": {
|
||||
"reason": {
|
||||
"reboot": "El vostre servidor s'està reiniciant i no s'hi podrà accedir durant algun temps. Tan bon punt se n'hi pugui apareixerà un missatge d'inici de sessió.",
|
||||
"shutdown": "El vostre servidor s'està tancant i ja no és accessible. Torneu-lo a activar i tan bon punt s'hi pugui accedir apareixerà un missatge d'inici de sessió.",
|
||||
"unknown": "La connexió amb el servidor s'ha tancat per motius desconeguts.",
|
||||
"upgrade_system": "La connexió amb el servidor s'ha tancat a causa de l'actualització de YunoHost. S'està esperant que el servidor torni a ser accessible…"
|
||||
},
|
||||
"title": "S'està intentant comunicar amb el servidor…",
|
||||
"failed": "Sembla que el servidor no respon. Podeu provar de tornar a connectar-vos o provar d'executar `systemctl restart yunohost-api` mitjançant ssh.",
|
||||
"success": "Ja es pot accedir al servidor! Podeu provar d'iniciar sessió"
|
||||
}
|
||||
},
|
||||
"app_install_parameters": "Paràmetres de la instal·lació",
|
||||
"app_state_broken": "trencada",
|
||||
"app": {
|
||||
"installed_version": "Versió instal·lada:",
|
||||
"open_this_app": "Obre aquesta aplicació",
|
||||
"antifeatures": "Aquesta aplicació té funcions que potser no us agraden:",
|
||||
"doc": {
|
||||
"about": {
|
||||
"title": "Sobre",
|
||||
"description": "Descripció"
|
||||
},
|
||||
"admin": {
|
||||
"title": "Document d'administració"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Notificacions",
|
||||
"post_upgrade": "Notes post-actualització",
|
||||
"post_install": "Notes post-instal·lació",
|
||||
"understood": "Entés"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"forum": "Busca o pregunta al fòrum!",
|
||||
"problem": "Hi ha algun problema amb aquesta aplicació?",
|
||||
"config_panel_error": "Un error impedeix que es mostri el panell de configuració:",
|
||||
"config_panel_error_please_report": "Informeu d'aquest error a l'equip de YunoHost per solucionar-lo!"
|
||||
},
|
||||
"install": {
|
||||
"license": "Llicència: {license}",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"title": "Notificacions post-instal·lació per a '{name}'",
|
||||
"alert": "Sembla que la instal·lació ha anat bé!\n Aquí hi ha algunes notificacions que l'empaquetador considera important conèixer.\n Podeu tornar a llegir-lo a la pàgina d'informació de l'aplicació."
|
||||
},
|
||||
"pre": {
|
||||
"warning": "Coses a saber abans de la instal·lació",
|
||||
"danger": "La instal·lació de l'aplicació probablement comportarà problemes",
|
||||
"critical": "L'aplicació no es pot instal·lar"
|
||||
}
|
||||
},
|
||||
"problems": {
|
||||
"arch": "Aquesta aplicació només es pot instal·lar en arquitectures específiques ({required}), però l'arquitectura del vostre servidor és {current}.",
|
||||
"broken": "Aquesta aplicació està trencada segons les proves automàtiques de YunoHost i és probable que trenqui el sistema! Probablement NO hauries d'instal·lar-la tret que sàpigues què estàs fent.",
|
||||
"ignore": "Entenc que aquesta instal·lació pot trencar el meu sistema però vull provar.",
|
||||
"inprogress": "Aquesta aplicació encara és experimental (o explícitament no funcional) i és probable que trenqui el vostre sistema! Probablement NO hauries d'instal·lar-la tret que sàpigues què estàs fent.",
|
||||
"install": "Ja està instal·lada i no es pot instal·lar més d'una vegada.",
|
||||
"lowquality": "Aquesta aplicació pot funcionar, però no està ben integrada a YunoHost. És possible que algunes funcions, com ara l'inici de sessió únic i la còpia de seguretat/restauració, no estiguin disponibles o no respectin les bones pràctiques.",
|
||||
"version": "Aquesta aplicació requereix YunoHost >= {required} però la vostra versió instal·lada actual és {current}, considereu primer actualitzar YunoHost.",
|
||||
"ram": "Aquesta aplicació requereix {required} de RAM per instal·lar/actualitzar, però només hi ha {current} disponibles ara mateix. Fins i tot si aquesta aplicació es pot executar, el seu procés d'instal·lació requereix una gran quantitat de memòria RAM, de manera que el servidor es pot congelar i fallar miserablement.",
|
||||
"thirdparty": "Aquesta aplicació no forma part del catàleg oficial de YunoHost, la instal·lació d'aplicacions de tercers pot comprometre la integritat i la seguretat del vostre sistema. Probablement NO hauries d'instal·lar-la tret que sàpigues què estàs fent."
|
||||
},
|
||||
"try_demo": "Prova la demostració",
|
||||
"version": "Versió actual: {version}"
|
||||
},
|
||||
"integration": {
|
||||
"archs": "Arquitectures suportades:",
|
||||
"ldap": {
|
||||
"false": "No utilitza comptes de YunoHost per iniciar sessió (LDAP)",
|
||||
"true": "Utilitza comptes de YunoHost per iniciar sessió (LDAP)",
|
||||
"?": "No hi ha informació sobre la integració LDAP"
|
||||
},
|
||||
"resources": "Ús de recursos típic: {ram} RAM, {disk} disc",
|
||||
"sso": {
|
||||
"false": "L'inici de sessió únic (SSO) no està disponible",
|
||||
"true": "L'inici de sessió únic (SSO) està disponible",
|
||||
"?": "No hi ha informació sobre la integració SSO"
|
||||
},
|
||||
"title": "Integració YunoHost",
|
||||
"multi_instance": {
|
||||
"false": "Només es pot instal·lar una vegada",
|
||||
"true": "Es pot instal·lar diverses vegades"
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"admindoc": "Documentació oficial d'administració",
|
||||
"code": "Repositori oficial de codi",
|
||||
"forum": "Temes sobre aquesta aplicació al fòrum de YunoHost",
|
||||
"package": "Repositori de paquets YunoHost",
|
||||
"title": "Vincles",
|
||||
"userdoc": "Documentació oficial d'usuari",
|
||||
"website": "Pàgina web oficial",
|
||||
"license": "Llicència de l'aplicació",
|
||||
"package_license": "Llicència del paquet de YunoHost"
|
||||
},
|
||||
"potential_alternative_to": "Alternativa potencial a:",
|
||||
"upgrade": {
|
||||
"confirm": {
|
||||
"apps": "Aplicacions que s'actualitzaran",
|
||||
"title": "Confirmeu les actualitzacions d'aplicacions"
|
||||
},
|
||||
"notifs": {
|
||||
"pre": {
|
||||
"alert": "Hauríeu de comprovar aquestes notificacions abans d'actualitzar, és possible que hi hagi coses importants a saber.",
|
||||
"title": "Estàs avisat/da!"
|
||||
},
|
||||
"post": {
|
||||
"alert": "Sembla que l'actualització ha anat bé!\n Aquí hi ha algunes notificacions que l'empaquetador considera important conèixer sobre aquesta actualització.\n Podeu tornar a llegir-ho a la pàgina d'informació de l'aplicació.",
|
||||
"title": "Notificacions post-actualització per a \"{name}\""
|
||||
}
|
||||
},
|
||||
"continue": "Continueu amb l'aplicació següent",
|
||||
"stop": "Cancel·la les properes actualitzacions de l'aplicació"
|
||||
},
|
||||
"uninstall": {
|
||||
"purge_desc": "Elimina el directori de dades associat a l'aplicació (normalment són dades que heu penjat amb l'aplicació)."
|
||||
}
|
||||
},
|
||||
"api_not_found": "Sembla que l'administrador web ha intentat consultar alguna cosa que no existeix.",
|
||||
"details_about": "Mostra més detalls sobre {subject}",
|
||||
"app_state_broken_explanation": "Aquesta aplicació actualment està trencada i no es pot instal·lar segons les proves automàtiques de YunoHost",
|
||||
"confirm_group_add_access_permission": "Esteu segur que voleu concedir accés a {perm} a {name}? Aquest accés augmenta significativament la superfície d'atac si {name} és una persona malintencionada. Només ho hauríeu de fer si CONFIEU en aquesta persona/grup.",
|
||||
"confirm_install_app_broken": "ADVERTIMENT! Aquesta aplicació està trencada segons les proves automàtiques de YunoHost i és probable que trenqui el vostre sistema! Probablement NO hauries d'instal·lar-la tret que sàpigues què estàs fent. Estàs disposat/da a córrer aquest risc?",
|
||||
"domain": {
|
||||
"add": {
|
||||
"dyn_dns_password_desc": "Aquesta contrasenya us permetrà recuperar més tard el control del domini si torneu a instal·lar el vostre sistema. Si ja heu registrat aquest domini anteriorment, feu servir la vostra contrasenya de recuperació aquí per recuperar-lo.",
|
||||
"dyn_dns_password": "Contrasenya de recuperació del domini",
|
||||
"from_registrar": "Vull afegir un domini que tinc o un subdomini",
|
||||
"from_yunohost": "No tinc cap domini, vull registrar/utilitzar un domini DynDNS gratuït proporcionat pel projecte YunoHost",
|
||||
"from_local": "Vull un domini per a ús local / només de prova",
|
||||
"from_local_desc": "Si no voleu un nom de domini públic \"real\", podeu utilitzar qualsevol cosa que acabi en <code>.local</code> o <code>.test</code>. Els noms de domini que acaben en <code>.local</code> són especials en el sentit que es poden resoldre automàticament a la xarxa local, suposant que els clients admeten el protocol Bonjour. Alternativament, és possible que hàgiu de modificar el fitxer <code>/etc/hosts</code> (o l'equivalent a Windows) a cada client des del qual vulgueu utilitzar aquest domini, o bé configurar les entrades de DNS locals al vostre encaminador d'Internet.",
|
||||
"from_registrar_desc": "Haureu de configurar manualment els registres DNS al vostre registrador per finalitzar la configuració d'aquest domini. El diagnòstic de YunoHost us guiarà sobre quins registres DNS heu de configurar exactament.",
|
||||
"from_yunohost_desc": "El projecte YunoHost manté un servei gratuït 'DynDNS'. Està limitat a un d'aquests dominis per servidor (tot i que també podeu afegir subdominis més tard utilitzant l'altra opció \"Afegeix un domini que tinc o un subdomini\" anterior). La configuració de DNS serà gestionada automàticament per YunoHost. Això és ideal quan comenceu amb l'allotjament automàtic en general i encara no voleu invertir en un nom de domini. Tanmateix, a mitjà/llarg termini, us recomanem que compreu el vostre propi nom de domini a algun registrador per tenir la propietat total del vostre domini."
|
||||
},
|
||||
"cert": {
|
||||
"types": {
|
||||
"other": "Altre/Desconegut",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"selfsigned": "Autosignat"
|
||||
},
|
||||
"valid_for": "vàlid durant {days}"
|
||||
},
|
||||
"info": {
|
||||
"registrar": "Registrador",
|
||||
"certificate_authority": "Autoritat de certificació SSL",
|
||||
"apps_on_domain": "Aplicacions instal·lades al domini",
|
||||
"dyn_dns_remove_and_unsubscribe": "També cancel·leu el registre del domini del servei dyndns de YunoHost"
|
||||
},
|
||||
"config": {
|
||||
"edit": "Edita la configuració del domini",
|
||||
"title": "Configuració del domini"
|
||||
},
|
||||
"dns": {
|
||||
"auto_config": "Configuració automàtica d'entrades DNS",
|
||||
"push_force_warning": "Sembla que algunes entrades DNS que YunoHost hauria establert ja es troben a la configuració del registrador. Podeu utilitzar l'opció de sobreescriure si sabeu el que esteu fent.",
|
||||
"auto_config_ignored": "ignorat, no serà modificat per YunoHost tret que marqueu l'opció de sobreescriure",
|
||||
"auto_config_zone": "Zona DNS actual",
|
||||
"methods": {
|
||||
"handled_in_parent": "Gestionat al domini principal",
|
||||
"manual": "Manual",
|
||||
"none": "Cap",
|
||||
"auto": "Automàtic",
|
||||
"semi_auto": "Semiautomàtic"
|
||||
},
|
||||
"push_force_confirm": "Esteu segur que voleu forçar l'impuls de totes les entrades DNS suggerides? Tingueu en compte que pot sobreescriure entrades predeterminades importants o establertes manualment per vosaltres o el vostre registrador.",
|
||||
"push_force": "Sobreescriu les entrades existents",
|
||||
"manual_config": "Entrades DNS suggerides per a la configuració manual",
|
||||
"auto_config_ok": "La configuració automàtica sembla estar bé!",
|
||||
"edit": "Editeu la configuració del DNS",
|
||||
"info": "La configuració automàtica d'entrades DNS és una característica experimental. <br>Penseu en desar la vostra zona DNS actual des de la interfície del vostre registrador de DNS abans d'enviar les entrades des d'aquí.",
|
||||
"push": "Envieu les entrades DNS al registrador"
|
||||
},
|
||||
"explain": {
|
||||
"main_domain": "El domini principal és el domini des del qual els usuaris es poden connectar al portal (mitjançant \"{domain}/yunohost/sso\").<br>Per tant, no és possible suprimir-lo.<br>Si voleu suprimir \"{domain}\", primer hauràs de triar o afegir un altre domini i configurar-lo com a domini principal."
|
||||
},
|
||||
"see_parent_domain": "Vegeu el domini principal",
|
||||
"toggle_subdomains": "Commuta els subdominis",
|
||||
"types": {
|
||||
"main_domain": "Domini principal"
|
||||
}
|
||||
},
|
||||
"hook_conf_ynh_settings": "Configuracions de YunoHost",
|
||||
"group_admins": "Administradors",
|
||||
"human_routes": {
|
||||
"apps": {
|
||||
"action_config": "Executeu l'acció \"{action}\" de la configuració de l'aplicació \"{name}\"",
|
||||
"install": "Instal·la l'aplicació \"{name}\"",
|
||||
"change_url": "Canvia l'URL d'accés de \"{name}\"",
|
||||
"dismiss_notification": "Ignora la notificació per a \"{name}\"",
|
||||
"update_config": "Actualitza el tauler \"{id}\" de la configuració de l'aplicació \"{name}\"",
|
||||
"change_label": "Canvia l'etiqueta de \"{prevName}\" per a \"{nextName}\"",
|
||||
"set_default": "Redirigeix l'arrel del domini \"{domain}\" a \"{name}\"",
|
||||
"uninstall": "Desinstal·la l'aplicació \"{name}\""
|
||||
},
|
||||
"domains": {
|
||||
"push_dns_changes": "Envieu les entrades DNS al registrador de \"{name}\"",
|
||||
"update_config": "Actualitza el tauler \"{id}\" de la configuració del domini \"{name}\"",
|
||||
"add": "Afegeix el domini \"{name}\"",
|
||||
"delete": "Suprimeix el domini \"{name}\"",
|
||||
"cert_install": "Instal·leu el certificat per a \"{name}\"",
|
||||
"cert_renew": "Renova el certificat per a \"{name}\"",
|
||||
"set_default": "Estableix \"{name}\" com a domini predeterminat"
|
||||
},
|
||||
"permissions": {
|
||||
"add": "Permet que \"{name}\" accedeixi a \"{perm}\"",
|
||||
"remove": "Suprimeix l'accés \"{name}\" a \"{perm}\""
|
||||
},
|
||||
"migrations": {
|
||||
"skip": "Omet les migracions",
|
||||
"run": "Executar migracions"
|
||||
},
|
||||
"groups": {
|
||||
"remove": "Elimina \"{user}\" del grup \"{name}\"",
|
||||
"add": "Afegeix \"{user}\" al grup \"{name}\"",
|
||||
"create": "Crea el grup \"{name}\"",
|
||||
"delete": "Suprimeix el grup \"{name}\""
|
||||
},
|
||||
"firewall": {
|
||||
"upnp": "{action} UPnP",
|
||||
"ports": "{action} port {port} ({protocol}, {connection})"
|
||||
},
|
||||
"diagnosis": {
|
||||
"run_specific": "Executeu el diagnòstic \"{description}\"",
|
||||
"ignore": {
|
||||
"error": "Ignora un error",
|
||||
"warning": "Ignora un avís"
|
||||
},
|
||||
"unignore": {
|
||||
"error": "Deixeu d'ignorar un error",
|
||||
"warning": "Deixeu d'ignorar un avís"
|
||||
},
|
||||
"run": "Executeu el diagnòstic"
|
||||
},
|
||||
"postinstall": "Executa la postinstal·lació",
|
||||
"reboot": "Reinicia el servidor",
|
||||
"backups": {
|
||||
"create": "Creeu una còpia de seguretat",
|
||||
"delete": "Suprimeix la còpia de seguretat \"{name}\"",
|
||||
"restore": "Restaura la còpia de seguretat \"{name}\""
|
||||
},
|
||||
"upgrade": {
|
||||
"system": "Actualitzar el sistema",
|
||||
"app": "Actualitzar l'aplicació«\"{app}»",
|
||||
"apps": "Actualitzar totes les aplicacions"
|
||||
},
|
||||
"settings": {
|
||||
"update": "Actualitzar la configuració global de «{panel}»"
|
||||
},
|
||||
"users": {
|
||||
"delete": "Eliminar usuari «{name}»",
|
||||
"create": "Crear usuari «{name}»",
|
||||
"update": "Actualitzar usuari «{name}»"
|
||||
},
|
||||
"services": {
|
||||
"restart": "Reiniciar el servei «{name}»",
|
||||
"start": "Iniciar el servei «{name}»",
|
||||
"stop": "Aturar el servei «{name}»"
|
||||
},
|
||||
"update": "Buscar actualitzacions",
|
||||
"reconnecting": "Tornant a connectar",
|
||||
"share_logs": "Generar un enllaç per al registre «{name}»",
|
||||
"shutdown": "Apagar el servidor"
|
||||
},
|
||||
"go_back": "Torna",
|
||||
"domain_dns_push_failed_to_authenticate": "No s'ha pogut autenticar a l'API del registrador. El més probable és que les <a href='#/domains/{domain}/config'>credencials</a> siguin incorrectes. (Error: {error})",
|
||||
"hook_data_xmpp_desc": "Configuracions d'habitacions i d'usuaris, càrregues de fitxers",
|
||||
"hook_conf_manually_modified_files": "Configuracions modificades manualment",
|
||||
"domain_dns_push_managed_in_parent_domain": "La funció d'entrades DNS automàtiques es gestiona al domini principal <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
|
||||
"domain_dns_push_not_applicable": "La funció d'entrades DNS automàtiques no és aplicable al domini {domain}.<br> Hauríeu de configurar manualment les vostres entrades DNS seguint la <a href='https://yunohost.org/dns'>documentació</a> i la configuració suggerida a continuació.",
|
||||
"hook_data_xmpp": "Dades de XMPP",
|
||||
"group_explain_admins": "Aquest és un grup especial corresponent als usuaris administradors. Els usuaris d'aquest grup poden accedir al webadmin de YunoHost, connectar-se al servidor amb SSH i utilitzar l'ordre `sudo`. També rebran correus electrònics enviats a root@, admin@ i admins@, com ara les notificacions de diagnòstic. Només heu d'afegir a aquest grup persones en qui confieu absolutament!",
|
||||
"items_verbose_items_left": "Queden {items}. | Queda 1 {items}. | Queden {items}.",
|
||||
"postinstall": {
|
||||
"user": {
|
||||
"title": "Crea el primer usuari administrador",
|
||||
"first_user_help": "Aquest usuari tindrà privilegis d'administrador i se li permetrà connectar-se a aquesta interfície d'administració i directament al servidor mitjançant SSH.\nCom que és un usuari normal, també us podreu connectar al portal d'usuaris (SSO) amb les seves credencials.\nUn cop finalitzada la postinstal·lació, podreu crear altres usuaris administradors afegint-los al grup «admins»."
|
||||
},
|
||||
"force": "Força la post-instal·lació",
|
||||
"title": "Post-instal·lació"
|
||||
},
|
||||
"placeholder": {
|
||||
"lastname": "Petit",
|
||||
"groupname": "Nom del meu grup",
|
||||
"username": "joanpetit",
|
||||
"domain": "el-meu-domini.cat",
|
||||
"fullname": "Joan Petit",
|
||||
"file": "Exploreu un fitxer o arrossegueu-lo i deixeu-lo anar",
|
||||
"firstname": "Joan"
|
||||
},
|
||||
"tools_webadmin": {
|
||||
"language": "Idioma",
|
||||
"experimental": "Modalitat experimental",
|
||||
"fallback_language": "Idioma alternatiu",
|
||||
"fallback_language_description": "Idioma que s'utilitzarà en cas que la traducció no estigui disponible a l'idioma principal.",
|
||||
"cache": "Memòria cau",
|
||||
"cache_description": "Penseu en desactivar la memòria cau si teniu previst treballar amb la CLI mentre navegueu per aquest Webadmin.",
|
||||
"theme": "Canvia al mode fosc",
|
||||
"transitions": "Animacions de transició de pàgina",
|
||||
"experimental_description": "Et dóna accés a funcions experimentals. Es consideren inestables i poden trencar el vostre sistema.<br> Activeu-ho només si sabeu el que esteu fent."
|
||||
},
|
||||
"migrations_disclaimer_not_checked": "Aquesta migració requereix que accepteu la seva exempció de responsabilitat abans d'executar-la.",
|
||||
"retry": "Torna-ho a provar",
|
||||
"search": {
|
||||
"not_found": "Hi ha {items} que coincideixen amb els vostres criteris. | Hi ha 1 {items} que coincideix amb els vostres criteris. | Hi ha {items} que coincideixen amb els vostres criteris.",
|
||||
"for": "Cerca {items}…"
|
||||
},
|
||||
"tools_webadmin_settings": "Configuració de Webadmin",
|
||||
"user_emailaliases_add": "Afegiu un àlies de correu",
|
||||
"users_export": "Exportar usuaris",
|
||||
"users_import": "Importar usuaris",
|
||||
"users_import_csv_file_desc": "El fitxer CSV ha d'estar en UTF-8 i amb columnes nom d'usuari, contrasenya, grups, correu electrònic i quota. Per a un exemple d'importació d'un fitxer CSV, podeu <a href='/yunohost/api/users/export' target='_BLANK'>exportar els vostres usuaris al fitxer CSV</a> i canviar el fitxer.",
|
||||
"users_import_confirm_destructive": "Esteu segur que voleu suprimir els usuaris que no estan presents en aquest fitxer?",
|
||||
"important_yunohost_upgrade": "Hi ha disponible una actualització important de YunoHost. És molt recomanable llegir atentament les notes de la versió al fòrum abans d'actualitzar: <a href='https://forum.yunohost.org/tag/ynh_release'>Exploreu les notes de la versió al fòrum</a>",
|
||||
"items_verbose_count": "Hi ha {items}. | Hi ha 1 {items}. | Hi ha {items}.",
|
||||
"label_for_manifestname_help": "Aquest és el nom que es mostra al portal de l'usuari. Això es pot canviar més tard.",
|
||||
"manage_groups": "Gestionar grups",
|
||||
"users_import_delete_others": "Suprimir els usuaris no llistats",
|
||||
"readme": "Llegiu-me",
|
||||
"users_import_delete": "Suprimir els usuaris que no figuren a la llista",
|
||||
"mailbox_quota_example": "700M és un CD, 4700M és un DVD",
|
||||
"migrations_disclaimer_check_message": "He llegit i he entès aquesta exempció de responsabilitat",
|
||||
"perform": "Realitzar",
|
||||
"postinstall_set_domain": "Estableix el domini principal",
|
||||
"text_selection_is_disabled": "La selecció de text està desactivada. Si voleu compartir aquest registre, compartiu el registre *complet* amb el botó «Comparteix amb Yunopaste».<br/><small>O si realment voleu seleccionar text, premeu aquestes tecles: ↓↓↑↑.</small>",
|
||||
"tools_yunohost_settings": "Configuració de YunoHost",
|
||||
"traceback": "Rastrejar",
|
||||
"unknown": "Desconegut",
|
||||
"user_emailforward_add": "Afegeix un reenviament de correu",
|
||||
"users_import_csv_file": "Fitxer CSV",
|
||||
"users_import_delete_desc": "Si està marcat, tots els usuaris existents que no es trobin al fitxer CSV se suprimiran (i es purgaran).",
|
||||
"users_import_update": "Actualitzar els usuaris existents",
|
||||
"users_import_update_desc": "Si està marcat, tots els usuaris existents continguts al fitxer CSV s'actualitzaran amb el nou valor",
|
||||
"wrong_password_or_username": "Contrasenya o nom d'usuari incorrecte",
|
||||
"yunohost_admin": "Administrador de Yunohost"
|
||||
}
|
10
app/src/i18n/locales/ckb.json
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"address": {
|
||||
"domain_description": {
|
||||
"email": "دامینی بو لاپه ره الکترونیکی خوت هه لبژیرکه.",
|
||||
"domain": "هه لبژاردنی دامین."
|
||||
}
|
||||
},
|
||||
"add": "زیاکردن",
|
||||
"action": "چالاکی"
|
||||
}
|
504
app/src/i18n/locales/cs.json
Normal file
|
@ -0,0 +1,504 @@
|
|||
{
|
||||
"password": "Heslo",
|
||||
"app_info_access_desc": "Skupiny a uživatelé kterým je povolen přístup aplikace:",
|
||||
"api_not_responding": "API YunoHost neodpovídá. Je možné, že 'yunohost-api' aktuálně neběží nebo bylo restartováno?",
|
||||
"all_apps": "Všechny aplikace",
|
||||
"all": "Všechno",
|
||||
"administration_password": "Heslo správce",
|
||||
"add": "Přidat",
|
||||
"action": "Akce",
|
||||
"cancel": "Storno",
|
||||
"ok": "OK",
|
||||
"postinstall_intro_3": "Pro více informací navštivte <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>příslušnou stránku dokumentace</a>",
|
||||
"app_choose_category": "Vybrat kategorii",
|
||||
"api_waiting": "Čekáme na odpověď serveru…",
|
||||
"api_not_found": "Zdá se, že web-admin zkusil dotazovat něco, co neexistuje.",
|
||||
"api_errors_titles": {
|
||||
"APIConnexionError": "YunoHost zaznamenal chybu spojení",
|
||||
"APINotRespondingError": "YunoHost API neodpovídá",
|
||||
"APINotFoundError": "YunoHost API nenalezlo trasu",
|
||||
"APIInternalError": "YunoHost zaznamenal interní chybu",
|
||||
"APIBadRequestError": "YunoHost zaznamenal chybu",
|
||||
"APIError": "YunoHost zaznamenal neočekávanou chybu"
|
||||
},
|
||||
"api_error": {
|
||||
"view_error": "Zobrazit chybu",
|
||||
"sorry": "Za toto se omlouváme.",
|
||||
"server_said": "Odpověď serveru během zpracování akce:",
|
||||
"info": "Následující informace mohou být užitečné při řešení problému:",
|
||||
"help": "Pro vyhledání pomoci navštivte <a href=\"https://forum.yunohost.org/\">fórum</a> nebo <a href=\"https://chat.yunohost.org/\">chat</a>, případně nahlašte chybu na <a href=\"https://github.com/YunoHost/issues\">Github bugtracker</a>.",
|
||||
"error_message": "Chybová zpráva:"
|
||||
},
|
||||
"api": {
|
||||
"query_status": {
|
||||
"warning": "Úspěšně dokončeno avšak s chybami nebo výstrahami",
|
||||
"success": "Úspěšně dokončeno",
|
||||
"pending": "Ve zpracování",
|
||||
"error": "Neúspěšné"
|
||||
},
|
||||
"processing": "Server zpracovává akci…",
|
||||
"partial_logs": "[…] (zkontrolujte historii v logách)",
|
||||
"reconnecting": {
|
||||
"reason": {
|
||||
"upgrade_system": "Spojení se serverem bylo ukončeno kvůli povýšení YunoHostu na novou verzi. Čekám, až bude opět dostupný…",
|
||||
"unknown": "Spojení se serverem bylo z neznámých důvodů přerušeno.",
|
||||
"reboot": "Váš server se restartuje a po nějakou dobu nebude dostupný. Jakmile se spojení naváže, zobrazí se přihlašovací okno.",
|
||||
"shutdown": "Váš server se ukončuje a nebude dostupný. Když ho znovu zapnete, jakmile bude zase dosažitelný, zobrazí se přihlašovací okno."
|
||||
},
|
||||
"title": "Snažím se navázat spojení se serverem…",
|
||||
"success": "Server už odpovídá! Nyní se můžete přihlásit",
|
||||
"failed": "Zdá se, že server neodpovídá. Zkuste se znovu připojit nebo na něm pustit `systemctl restart yunohost-api`přes ssh."
|
||||
}
|
||||
},
|
||||
"app_install_custom_no_manifest": "Soubor manifest.json nenalezen",
|
||||
"app_info_uninstall_desc": "Odstranit tuto aplikaci.",
|
||||
"app_info_change_url_disabled_tooltip": "Tato funkce do této aplikace ještě nebyla přidána",
|
||||
"app_info_changeurl_desc": "Změnit přístupovou adresu této aplikace (doména a/nebo cesta).",
|
||||
"app_info_default_desc": "Přesměrovat kořen domény na tuto aplikaci ({domain}).",
|
||||
"address": {
|
||||
"local_part_description": {
|
||||
"email": "Vyberte email pro poddoménu.",
|
||||
"domain": "Vyberte poddoménu."
|
||||
},
|
||||
"domain_description": {
|
||||
"email": "Vyberte doménu pro váš email.",
|
||||
"domain": "Vyberte doménu."
|
||||
}
|
||||
},
|
||||
"hook_conf_ynh_certs": "SSL certifikáty",
|
||||
"hook_conf_ldap": "Databáze uživatelů",
|
||||
"hook_adminjs_group_configuration": "Systémové konfigurace",
|
||||
"home": "Domů",
|
||||
"history": {
|
||||
"methods": {
|
||||
"PUT": "upravit",
|
||||
"POST": "založit/spustit",
|
||||
"GET": "číst",
|
||||
"DELETE": "smazat"
|
||||
},
|
||||
"last_action": "Poslední akce:",
|
||||
"title": "Historie",
|
||||
"is_empty": "V historii prozatím nic není."
|
||||
},
|
||||
"permissions": "Oprávnění",
|
||||
"groups_and_permissions_manage": "Spravovat skupiny a oprávnění",
|
||||
"groups_and_permissions": "Skupiny a oprávnění",
|
||||
"group_specific_permissions": "Specifické oprávnění uživatele",
|
||||
"group_explain_visitors_needed_for_external_client": "Některé aplikace pro správný provoz vyžadují povolení anonymního přístupu pro externí klienty. Například Nextcloud pro synchronizačního klienta na mobilním zařízení nebo desktopovém počítači.",
|
||||
"group_explain_visitors": "Toto je specifická skupina obsahující nepřihlášené (anonymní) uživatele",
|
||||
"group_explain_all_users": "Toto je specifická skupina obsahující všechny uživatelské účty na tomto serveru",
|
||||
"group_new": "Nová skupina",
|
||||
"group_add_permission": "Přidat oprávnění",
|
||||
"group_add_member": "Přidat uživatele",
|
||||
"group_format_name_help": "Můžete použít alfanumerické znaky a podtržítko",
|
||||
"group_visitors": "Hosté",
|
||||
"group_all_users": "Všichni uživatelé",
|
||||
"group_name": "Jméno skupiny",
|
||||
"group": "Skupina",
|
||||
"good_practices_about_admin_password": "Nyní definujte nové administrační heslo. Heslo by mělo obsahovat minimálně 8 znaků, avšak je doporučeno používat delší (např. ve tvaru více slov) při využití různých znaků (velká, malá, čísla a speciální znaky).",
|
||||
"go_back": "Jít zpět",
|
||||
"from_to": "od {0} do {1}",
|
||||
"form_input_example": "Příklad: {example}",
|
||||
"form_errors": {
|
||||
"required": "Položka je vyžadována.",
|
||||
"passwordMatch": "Hesla vzájemně nesouhlasí.",
|
||||
"passwordLenght": "Heslo musí být o délce nejméně 8 znaků.",
|
||||
"number": "Hodnota musí být číslo.",
|
||||
"notInUsers": "Uživatel '{value}' již existuje.",
|
||||
"minValue": "Hodnota musí být číslo rovno nebo vyšší než {min}.",
|
||||
"name": "Jména nemohou obsahovat speciální znaky mimo <code> ,.'-</code>",
|
||||
"emailForward": "Nesprávný tvar email pro přesměrování: může obsahovat pouze alfanumerické znaky a <code>_.-+</code> (např. someone+tag@example.com, s0me-1+tag@example.com)",
|
||||
"email": "Nesprávný tvar emailu: může obsahovat alfanumerické znaky a <code>_.-</code> (např. someone@example.com, s0me-1@example.com)",
|
||||
"dynDomain": "Nesprávný tvar doménového jména: může obsahovat pouze malé alfanumerické znaky a pomlčku",
|
||||
"domain": "Nesprávný tvar doménového jména: musí obsahovat pouze malé alfanumerické znaky, tečku a pomlčku",
|
||||
"between": "Hodnota musí být mezi {min} a {max}.",
|
||||
"alphalownumdot_": "Hodnota musí obsahovat pouze alfanumerické znaky a podtržítko.",
|
||||
"alpha": "Hodnota musí obsahovat pouze čísla.",
|
||||
"remote": "{message}",
|
||||
"pattern": "{type}"
|
||||
},
|
||||
"footer": {
|
||||
"donate": "Darovat",
|
||||
"help": "Potřebujete pomoc?",
|
||||
"documentation": "Dokumentace"
|
||||
},
|
||||
"footer_version": "Provozováno na <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
|
||||
"firewall": "Firewall",
|
||||
"experimental_warning": "Varování: tato vlastnost je experimentální a není považována za stabilní. Nepoužívejte, pokud opravdu nevíte, co děláte.",
|
||||
"experimental": "Experimentální",
|
||||
"everything_good": "Vše v pořádku!",
|
||||
"error_connection_interrupted": "Server ukončil spojení místo odpovědi. Byli nginx nebo yunohost-api restartovány nebo zastaveny z libovolného důvodu?",
|
||||
"error_server_unexpected": "Neočekávaná chyba serveru",
|
||||
"error_modify_something": "Měli by jste něco upravit",
|
||||
"error": "Chyba",
|
||||
"enabled": "Povoleno",
|
||||
"enable": "Povolit",
|
||||
"download": "Stáhnout",
|
||||
"domains": "Domény",
|
||||
"domain_name": "Doménové jméno",
|
||||
"domain_dns_longdesc": "Zobrazit DNS nastavení",
|
||||
"domain_dns_config": "DNS nastavení",
|
||||
"domain_delete_forbidden_desc": "Nemůžete smazat doménu '{domain}', protože je výchozí. Nejprve vyberte jinou doménu (nebo <a href='#/domains/add'>přidejte novou</a>) a nastavte ji jako výchozí.",
|
||||
"domain_delete_longdesc": "Smazat tuto doménu",
|
||||
"domain_default_longdesc": "Toto je výchozí doména.",
|
||||
"domain_default_desc": "Uživatelé se přihlašují na výchozí doméně.",
|
||||
"domain_add_dyndns_forbidden": "Již jste svoji doménu zaregistrovali u DynDNS, proto se můžete zeptat na odebrání vaší současné DynDNS domény na fóru <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>v samostatném diskuzním příspěvku</a>.",
|
||||
"domain_add": "Přidat doménu",
|
||||
"dns": "DNS",
|
||||
"disabled": "Zakázáno",
|
||||
"disable": "Zakázat",
|
||||
"run_first_diagnosis": "Spustit výchozí diagnostiku",
|
||||
"run": "Spustit",
|
||||
"confirm_install_app_lowquality": "Upozornění: tato aplikace může fungovat správně, avšak není plně integrována s YunoHost. Některé vlastnosti jako např. jednotné přihlášení nemusí být dostupné.",
|
||||
"confirm_app_install": "Opravdu chcete instalovat tuto aplikaci?",
|
||||
"confirm_install_domain_root": "Opravdu chcete instalovat tuto aplikaci na \"/\"? Nebude možné pak instalovat žádné další aplikace na {domain}",
|
||||
"confirm_install_custom_app": "VAROVÁNÍ! Instalace aplikací třetích stran může kompromitovat integritu a bezpečnost vašeho systému. Pravděpodobně byste toto NEMĚLI provádět, pokud opravdu nevíte, co děláte. Jste připraveni přijmout toto riziko?",
|
||||
"confirm_group_add_access_permission": "Opravdu chcete přidělit oprávnění {perm} k {name}? Tímto značně zvýšíte možnost zneužití, zejména pokud {name} nebude mít čisté úmysly. Proveďte pouze pokud DŮVĚŘUJETE této osobě/skupině.",
|
||||
"confirm_firewall_disallow": "Opravdu chcete uzavřít port {port} (protokol: {protocol}, spojení: {connection})",
|
||||
"confirm_firewall_allow": "Opravdu chcete otevřít {port} (protokol: {protocol}, spojení: {connection})",
|
||||
"confirm_delete": "Opravdu chcete smazat {name}?",
|
||||
"confirm_app_change_url": "Opravdu chcete změnit přístupové URL aplikace?",
|
||||
"confirm_change_maindomain": "Opravdu chcete změnit hlavní doménu?",
|
||||
"confirm_app_default": "Opravdu chcete nastavit tuto aplikaci jako výchozí?",
|
||||
"configuration": "Nastavení",
|
||||
"common": {
|
||||
"lastname": "Příjmení",
|
||||
"firstname": "Křestní jméno"
|
||||
},
|
||||
"code": "Zdroj",
|
||||
"close": "Zavřít",
|
||||
"check": "Kontrola",
|
||||
"catalog": "Katalog",
|
||||
"both": "Obojí",
|
||||
"begin": "Zahájit",
|
||||
"backup_new": "Nová záloha",
|
||||
"backup_create": "Vytvořit zálohu",
|
||||
"backup_content": "Obsah zálohy",
|
||||
"backup_action": "Zálohovat",
|
||||
"backup": "Záloha",
|
||||
"archive_empty": "Prázdný archiv",
|
||||
"applications": "Aplikace",
|
||||
"app_state_highquality_explanation": "Tato aplikace dosahuje během uplynulého roku vysoké kvality.",
|
||||
"app_state_lowquality_explanation": "Tato aplikace může být funkční, ale stále obsahuje chyby nebo není plně integrována s YunoHost nebo nerespektuje obecná doporučení.",
|
||||
"app_state_lowquality": "nízká kvalita",
|
||||
"app_state_inprogress_explanation": "Správce této aplikace deklaruje, že aplikace není vhodná pro produkční využívání. BUĎTE OPARTNÍ!",
|
||||
"app_state_inprogress": "zatím nefunkční",
|
||||
"app_show_categories": "Zobrazit kategorie",
|
||||
"app_make_default": "Nastavit výchozí",
|
||||
"app_manage_label_and_tiles": "Správa štítků a dlaždic",
|
||||
"app_install_parameters": "Nastavení instalace",
|
||||
"unknown": "Neznámé",
|
||||
"uninstall": "Odinstalovat",
|
||||
"unignore": "Smazat ignoraci",
|
||||
"unauthorized": "Nepřihlášeno",
|
||||
"udp": "UDP",
|
||||
"traceback": "Zpětné dohledání",
|
||||
"tools_webadmin_settings": "Nastavení webové administrace",
|
||||
"tools_webadmin": {
|
||||
"transitions": "Animované přechody stránek",
|
||||
"experimental_description": "Bude povolen přístup k experimentálním vlastnostem. Ty jsou ale považovány za nestabilní a může dojít k poškození vašeho systému.<br>Povolte toto nastavení pouze v případě, kdy víte, co děláte.",
|
||||
"experimental": "Experimentální režim",
|
||||
"cache_description": "Pokud plánujete pracovat s CLI (příkazovou řádkou) a zároveň s webovou administrací, zvažte vypnutí mezipaměti.",
|
||||
"cache": "Mezipamět",
|
||||
"fallback_language_description": "Jazyk, který se vám zobrazí v případě neexistujícího překladu do vámi zvoleného primárního.",
|
||||
"fallback_language": "Záložní jazyk",
|
||||
"language": "Jazyk"
|
||||
},
|
||||
"tools_shutdown_reboot": "Vypnutí/Restart",
|
||||
"tools_shutdown_btn": "Vypnout",
|
||||
"tools_shutdown": "Vypnout váš server",
|
||||
"tools_reboot_btn": "Restartovat",
|
||||
"tools_reboot": "Restartovat váš server",
|
||||
"tools": "Nástroje",
|
||||
"tip_about_user_email": "Uživatelům je vytvořena příslušná emailová adresa (a XMPP účet) ve tvaru uzivatelskejmeno@vasedomena.cz. Další emailové aliasy a emailové přesměrování mohou být později přidány administrátorem a také samotnými uživateli.",
|
||||
"tcp": "TCP",
|
||||
"system_upgrade_all_packages_btn": "Aktualizovat všechny balíky",
|
||||
"system_upgrade_all_applications_btn": "Aktualizovat všechny aplikace",
|
||||
"system_upgrade_btn": "Aktualizace",
|
||||
"system_update": "Aktualizace systému",
|
||||
"system_packages_nothing": "Všechny systémové balíky jsou aktuální!",
|
||||
"system_apps_nothing": "Všechny aplikace jsou aktuální!",
|
||||
"system": "Systém",
|
||||
"stop": "Zastavit",
|
||||
"status": "Stav",
|
||||
"start": "Spustit",
|
||||
"skip": "Přeskočit",
|
||||
"since": "od",
|
||||
"size": "Velikost",
|
||||
"set_default": "Nastavit výchozí",
|
||||
"services": "Služby",
|
||||
"service_start_on_boot": "Spustit při startu",
|
||||
"select_none": "Nevybrat nic",
|
||||
"select_all": "Vybrat vše",
|
||||
"search": {
|
||||
"not_found": "Nalezeny {items} odpovídající vašemu zadání. | Nalezena 1 {items} odpovídající vašemu zadání. | Nalezeny {items} odpovídající vašemu zadání.",
|
||||
"for": "Hledat {items}…"
|
||||
},
|
||||
"save": "Uložit",
|
||||
"running": "Provádí se",
|
||||
"human_routes": {
|
||||
"users": {
|
||||
"update": "Editovat uživatele '{name}'",
|
||||
"delete": "Smazat uživatele '{name}'",
|
||||
"create": "Založit uživatele '{name}'"
|
||||
},
|
||||
"upgrade": {
|
||||
"app": "Aktualizovat '{app}' aplikaci",
|
||||
"apps": "Aktualizovat všechny aplikace",
|
||||
"system": "Aktualizovat systém"
|
||||
},
|
||||
"update": "Zkontrolovat aktualizace",
|
||||
"shutdown": "Vypnout server",
|
||||
"share_logs": "Vygenerovat odkaz pro záznam '{name}'",
|
||||
"services": {
|
||||
"stop": "Zastavit službu '{name}'",
|
||||
"start": "Spustit službu '{name}'",
|
||||
"restart": "Restartovat službu '{name}'"
|
||||
},
|
||||
"reboot": "Restartovat server",
|
||||
"postinstall": "Spustit post instalační akce",
|
||||
"permissions": {
|
||||
"remove": "Odebrat '{name}' přístup k '{perm}'",
|
||||
"add": "Povolit '{name}' přístup k '{perm}'"
|
||||
},
|
||||
"migrations": {
|
||||
"skip": "Přeskočit migrace",
|
||||
"run": "Spustit migrace"
|
||||
},
|
||||
"groups": {
|
||||
"remove": "Odstranit '{user}' ze skupiny '{name}'",
|
||||
"add": "Přidat '{user}' do skupiny '{name}'",
|
||||
"delete": "Smazat skupinu '{name}'",
|
||||
"create": "Založit skupinu '{name}'"
|
||||
},
|
||||
"firewall": {
|
||||
"upnp": "{action} UPnP",
|
||||
"ports": "{action} port {port} ({protocol}, {connection})"
|
||||
},
|
||||
"domains": {
|
||||
"set_default": "Nastavit '{name}' jako výchozí doménu",
|
||||
"delete": "Smazat doménu '{name}'",
|
||||
"add": "Přidat doménu '{name}'"
|
||||
},
|
||||
"diagnosis": {
|
||||
"unignore": {
|
||||
"warning": "Smazat ignoraci varování",
|
||||
"error": "Smazat ignoraci chyby"
|
||||
},
|
||||
"run_specific": "Spustit '{description}' diagnostiku",
|
||||
"run": "Znovu spustit diagnostiku",
|
||||
"ignore": {
|
||||
"warning": "Ignorovat varování",
|
||||
"error": "Ignorovat chybu/hlášení"
|
||||
}
|
||||
},
|
||||
"backups": {
|
||||
"restore": "Obnovit zálohu '{name}'",
|
||||
"delete": "Smazat zálohu '{name}'",
|
||||
"create": "Vytvořit zálohu"
|
||||
},
|
||||
"apps": {
|
||||
"update_config": "Upravit konfiguraci aplikace '{name}'",
|
||||
"uninstall": "Odinstalovat aplikaci '{name}'",
|
||||
"set_default": "Přesměrovat '{domain}' doménový kořen na '{name}'",
|
||||
"install": "Instalovat aplikaci '{name}'",
|
||||
"change_url": "Změnit přístupové URL '{name}'",
|
||||
"change_label": "Změnit popis z '{prevName}' na '{nextName}'"
|
||||
}
|
||||
},
|
||||
"logs_no_logs_registered": "V této kategorii není žádný záznam",
|
||||
"logs_app": "Aplikační záznamy",
|
||||
"logs_service": "Záznamy služeb",
|
||||
"logs_access": "Seznam povolených a zakázaných přístupů (banánů ;-)",
|
||||
"logs_system": "Záznamy jádra Linuxu a další nízkoúrovňové záznamy",
|
||||
"logs_package": "Historie Debian balíkového systému",
|
||||
"logs_history": "Historie spuštěných příkazů",
|
||||
"logs_operation": "YunoHost provedené akce",
|
||||
"logs_suboperations": "Další akce",
|
||||
"logs": "Záznamy",
|
||||
"placeholder": {
|
||||
"domain": "moje-domena.cz",
|
||||
"groupname": "Moje skupina",
|
||||
"lastname": "Novák",
|
||||
"firstname": "Jan",
|
||||
"username": "jannovak"
|
||||
},
|
||||
"perform": "Vykonat",
|
||||
"path": "Cesta",
|
||||
"password_confirmation": "Ověření hesla",
|
||||
"operation_failed_explanation": "Tato akce neproběhla správně! Omlouváme se :( Můžete se zkusit <a href='https://yunohost.org/help'>zeptat</a>. Pomáhajícím uživatelům dodejte prosím *veškeré záznamy* proběhnuté akce. Můžete tak učinit kliknutím zelené tlačítko 'Sdílet s Yunopaste'. Při sdílení záznamů se YunoHost pokusí automaticky anonymizovat privátní data jako např. doménová jména a IP adresy.",
|
||||
"others": "Ostatní",
|
||||
"orphaned_details": "Určitou dobu tato aplikace již není spravována. Může být stále funkční, avšak již nebude aktualizována, pokud se její správy neujme nějaký dobrovolník. Staňte se jím třeba vy!",
|
||||
"orphaned": "Neudržované/opuštěné",
|
||||
"operations": "Operace",
|
||||
"open": "Otevřít",
|
||||
"only_decent_quality_apps": "Pouze aplikace přijatelné kvality",
|
||||
"only_working_apps": "Pouze fungující aplikace",
|
||||
"only_highquality_apps": "Pouze aplikace vysoké kvality",
|
||||
"nobody": "Nikomu",
|
||||
"no": "Ne",
|
||||
"next": "Další",
|
||||
"multi_instance": "Může být instalováno ve více instancích",
|
||||
"migrations_disclaimer_not_checked": "Před spuštěním této migrace je vyžadován souhlas s prohlášením.",
|
||||
"migrations_disclaimer_check_message": "Přečetl/a jsem si a rozumím tomuto prohlášení",
|
||||
"migrations_no_done": "Žádné předchozí migrace",
|
||||
"migrations_no_pending": "Žádné čekající migrace",
|
||||
"migrations_done": "Předchozí migrace",
|
||||
"migrations_pending": "Čekající migrace",
|
||||
"migrations": "Migrace",
|
||||
"manage_users": "Spravovat uživatele",
|
||||
"manage_domains": "Spravovat domény",
|
||||
"manage_apps": "Spravovat aplikace",
|
||||
"mailbox_quota_placeholder": "Pro zakázání/neomezeno nastavte 0.",
|
||||
"mailbox_quota_example": "700M odpovídá CD, 4700M odpovídá DVD",
|
||||
"mailbox_quota_description": "Nastavit limit úložiště pro obsah emailů.<br>Pro neomezený limit nastavte 0.",
|
||||
"local_archives": "Lokální zálohy",
|
||||
"license": "Licence",
|
||||
"last_ran": "Čas posledního spuštění:",
|
||||
"label_for_manifestname": "Název pro {name} (zobrazuje se v uživatelském portále)",
|
||||
"label": "Název",
|
||||
"items_verbose_items_left": "Zbývá {items} položek.",
|
||||
"items_verbose_count": "Počet položek {items}.",
|
||||
"items": {
|
||||
"users": "žádní uživatelé | uživatel | {c} uživatelů",
|
||||
"services": "žádné služby | služba | {c} služeb",
|
||||
"permissions": "žádná oprávnění | oprávnění | {c} oprávnění",
|
||||
"logs": "žádné záznamy | záznam | {c} záznamů",
|
||||
"installed_apps": "žádné instalované aplikace | instalovaná aplikace | {c} instalovaných aplikací",
|
||||
"groups": "žádná skupina | skupina | {c} skupin",
|
||||
"domains": "žádné domény | doména | {c} domén",
|
||||
"backups": "žádné zálohy | záloha | {c} záloh",
|
||||
"apps": "žádné aplikace | aplikace | {c} aplikací"
|
||||
},
|
||||
"issues": "{count} chyb/problémů",
|
||||
"ipv6": "IPv6",
|
||||
"ipv4": "IPv4",
|
||||
"installed": "Instalováno",
|
||||
"installation_complete": "Instalace dokončena",
|
||||
"install_time": "Čas instalace",
|
||||
"install_name": "Instalovat {id}",
|
||||
"install": "Instalovat",
|
||||
"infos": "Informace",
|
||||
"ignored": "{count} ignorovaných",
|
||||
"ignore": "Ignorovat",
|
||||
"id": "ID",
|
||||
"hook_data_xmpp_desc": "Konfigurace uživatelů, místností a nahrávání souborů",
|
||||
"hook_data_xmpp": "XMPP data",
|
||||
"hook_data_mail_desc": "Emaily ve zdrojové podobě uložené na serveru",
|
||||
"hook_data_mail": "Email",
|
||||
"hook_data_home_desc": "Data uživatelů se nalézají v /home/USER",
|
||||
"hook_data_home": "Data uživatelů",
|
||||
"hook_conf_manually_modified_files": "Manuálně změněné konfigurace",
|
||||
"hook_conf_ynh_settings": "YunoHost konfigurace",
|
||||
"diagnosis_explanation": "Pro zachování bezchybného provozu se diagnostika se pokusí identifikovat obvyklé problémy. Diagnostika je také spouštěna pravidelně dvakrát denně a emailem administrátorovi je zasílán report. Pokud nevyužíváte některé vlastnosti (např. XMPP) nebo máte vlastní složitější nastavení, prováděné testy nemusí být pro vás relevantní. V takových případech (a pokud víte, co děláte) je v pořádku nastavit ignoraci u příslušných problémů.",
|
||||
"diagnosis_first_run": "Pro zachování bezchybného provozu se diagnostika se pokusí identifikovat obvyklé problémy. V případě nalezených chyb či problémů není nutno panikařit: spíše se jimy nechte inspirovat. Mimochodem diagnostika je spouštěna pravidelně dvakrát denně a emailem administrátorovi je zasílán report.",
|
||||
"diagnosis": "Diagnostika",
|
||||
"domain_dns_conf_is_just_a_recommendation": "Tato stránka vám zobrazuje *doporučené* nastavení. *Nenastavujeme* DNS za vás. Nastavení DNS je nutné provést u vašeho DNS registrátora dle tohoto doporučení.",
|
||||
"details": "Detaily",
|
||||
"description": "Popis",
|
||||
"delete": "Smazat",
|
||||
"dead": "Neaktivní",
|
||||
"day_validity": " Vypršelo | 1 den | {count} dní/ů",
|
||||
"custom_app_install": "Instalovat vlastní aplikaci",
|
||||
"created_at": "Vytvořeno v",
|
||||
"connection": "Připojení",
|
||||
"confirm_reboot_action_shutdown": "Opravdu chcete vypnout váš server?",
|
||||
"confirm_reboot_action_reboot": "Opravdu chcete restartovat váš server?",
|
||||
"confirm_upnp_disable": "Opravdu chcete zakázat UPnP?",
|
||||
"confirm_upnp_enable": "Opravdu chcete povolit UPnP?",
|
||||
"confirm_update_specific_app": "Opravdu chcete aktualizovat aplikaci {app}?",
|
||||
"confirm_update_system": "Opravdu chcete aktualizovat všechny systémové balíky?",
|
||||
"confirm_update_apps": "Opravdu chcete aktualizovat všechny aplikace?",
|
||||
"confirm_uninstall": "Opravdu chcete odinstalovat {name}?",
|
||||
"confirm_service_stop": "Opravdu chcete zastavit {name}?",
|
||||
"confirm_service_start": "Opravdu chcete spustit {name}?",
|
||||
"confirm_service_restart": "Opravdu chcete restartovat {name}?",
|
||||
"confirm_restore": "Opravdu chcete obnovit {name}?",
|
||||
"confirm_postinstall": "Nyní se spustí post instalační akce na doméně {domain}. Může to trvat několik minut, *nepřerušujte tuto operaci*.",
|
||||
"confirm_migrations_skip": "Přeskočení migrací není doporučeno. Opravdu tomu tak chcete?",
|
||||
"confirm_install_app_inprogress": "VAROVÁNÍ! Tato aplikace je stále experimentální (případně nepracuje správně) a může poškodit váš systém! Neměli byste ji instalovat pokud si tím opravdu nejste jisti. Risknete to?",
|
||||
"restart": "Restartovat",
|
||||
"restore": "Obnovit",
|
||||
"rerun_diagnosis": "Znovu spustit diagnostiku",
|
||||
"readme": "Přečti si",
|
||||
"protocol": "Protokol",
|
||||
"previous": "Předchozí",
|
||||
"postinstall_set_domain": "Nastavit hlavní doménu",
|
||||
"postinstall_intro_2": "K aktivaci serverových služeb jsou vyžadovány další dva konfigurační kroky.",
|
||||
"postinstall_intro_1": "Gratulujeme! YunoHost byl úspěšně nainstalován.",
|
||||
"postinstall_domain": "Toto je první doména nastavená na vašem YunoHost serveru, bude použita pro přihlašování vašich uživatelů. Bude zobrazena komukoliv, proto ji zvolte s rozvahou.",
|
||||
"postinstall": {
|
||||
"force": "Vynutit post instalaci"
|
||||
},
|
||||
"ports": "Porty",
|
||||
"port": "Port",
|
||||
"permission_show_tile_enabled": "Zobrazit jako dlaždici v uživatelském portálu",
|
||||
"permission_main": "Hlavní nadpis",
|
||||
"permission_corresponding_url": "Odpovídající URL",
|
||||
"pending_migrations": "Na spuštění čekají migrační akce. Prosím spusťte je v sekci <a href='#/tools/migrations'>Nástroje > Migrace</a> .",
|
||||
"logs_more": "Zobrazit více řádků",
|
||||
"logs_share_with_yunopaste": "Sdílet logy pomocí YunoPaste",
|
||||
"logs_context": "Kontext",
|
||||
"logs_path": "Cesta",
|
||||
"logs_started_at": "Spustit",
|
||||
"logs_ended_at": "Konec",
|
||||
"logs_error": "Chyba",
|
||||
"logout": "Odhlásit se",
|
||||
"login": "Přihlásit se",
|
||||
"good_practices_about_user_password": "Nyní zvolte nové heslo uživatele. Heslo by mělo být minimálně 8 znaků dlouhé, avšak je dobrou taktikou jej mít delší (např. použít více slov) a použít kombinaci znaků (velké, malé, čísla a speciální znaky).",
|
||||
"user_username": "Uživatelské jméno",
|
||||
"user_new_forward": "adresa-pro-presmerovani@jina-domena.cz",
|
||||
"user_mailbox_use": "Zabrané místo emailové schránky",
|
||||
"user_mailbox_quota": "Kvóta emailové schránky",
|
||||
"user_interface_link": "Uživatelské rozhraní",
|
||||
"user_fullname": "Celé jméno",
|
||||
"user_emailforward_add": "Přidat email k přesměrování",
|
||||
"user_emailforward": "Přesměrovaní emailu",
|
||||
"user_emailaliases_add": "Přidat emailový alias",
|
||||
"user_emailaliases": "Emailové aliasy",
|
||||
"user_email": "Email",
|
||||
"url": "URL",
|
||||
"upnp_enabled": "UPnP je povoleno.",
|
||||
"upnp_disabled": "UPnP je zákázáno.",
|
||||
"upnp": "UPnP",
|
||||
"domain": {
|
||||
"config": {
|
||||
"edit": "Upravte konfiguraci domény",
|
||||
"title": "Nastavení domény"
|
||||
},
|
||||
"dns": {
|
||||
"auto_config": "Automatické nastavení DNS záznamů",
|
||||
"auto_config_ignored": "ignorováno, nebude upraveno dokud nevyberete položku přepsat"
|
||||
}
|
||||
},
|
||||
"users": "Uživatelé",
|
||||
"users_new": "Nový uživatel",
|
||||
"users_no": "Žádní uživatelé.",
|
||||
"app": {
|
||||
"open_this_app": "Otevřít tuto aplikaci",
|
||||
"info": {
|
||||
"forum": "Hledejte nebo se ptejte na fóru!",
|
||||
"problem": "Máte s aplikací problém?",
|
||||
"config_panel_error_please_report": "Nahlaste prosím tuto chybu týmu YunoHost, aby ji mohl opravit!",
|
||||
"config_panel_error": "Zobrazení konfiguračního panelu brání chyba:"
|
||||
},
|
||||
"install": {
|
||||
"license": "Licence: {license}",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"title": "Poinstalační upozornení pro '{name}'"
|
||||
},
|
||||
"pre": {
|
||||
"warning": "O čem byste měli před instalací vědět",
|
||||
"danger": "Instalace aplikace pravděpodobně způsobí problémy",
|
||||
"critical": "Aplikaci nelze nainstalovat"
|
||||
}
|
||||
},
|
||||
"problems": {
|
||||
"arch": "Tato aplikace může být nainstalována jen na konkrétních architekturách ({required}), avšak vaše architektura je {current}."
|
||||
}
|
||||
},
|
||||
"antifeatures": "Tato aplikace má funkce, které by se vám nemusely líbit:",
|
||||
"installed_version": "Nainstalovaná verze:"
|
||||
}
|
||||
}
|
122
app/src/i18n/locales/da.json
Normal file
|
@ -0,0 +1,122 @@
|
|||
{
|
||||
"add": "Tilføj",
|
||||
"address": {
|
||||
"domain_description": {
|
||||
"domain": "Vælg et domæne.",
|
||||
"email": "Vælg et domæne til din e-mail."
|
||||
},
|
||||
"local_part_description": {
|
||||
"domain": "Vælg et sub-domæne.",
|
||||
"email": "Vælg en lokal del til dit domæne."
|
||||
}
|
||||
},
|
||||
"administration_password": "Administratorkodeord",
|
||||
"all": "Alle",
|
||||
"action": "Handling",
|
||||
"api": {
|
||||
"query_status": {
|
||||
"success": "Fuldført",
|
||||
"error": "Usuccesfuld",
|
||||
"pending": "I gang",
|
||||
"warning": "Fuldført med fejlmeldinger eller advarsler"
|
||||
},
|
||||
"processing": "Serveren er i færd med at behandle anmodningen…",
|
||||
"reconnecting": {
|
||||
"failed": "Det ser ud som om serveren ikke svarer. Du kan prøve at forbinde igen eller prøve at køre `systemctl restart yunohost-api` over ssh.",
|
||||
"reason": {
|
||||
"reboot": "Din server genstarter og vil ikke være kontaktbar i et stykke tid. En loginprompt vil blive synlig så snart serveren igen er kontaktbar.",
|
||||
"unknown": "Forbindelsen til serveren er blevet lukket af ukendte årsager.",
|
||||
"shutdown": "Din server lukker ned og er ikke længere kontaktbar. Tænd for den igen og en loginprompt vil blive synlig så snart den atter er kontaktbar.",
|
||||
"upgrade_system": "Forbindelsen til serveren er blevet lukket på grund af YunoHost opdatering. Venter på at kunne kontakte serveren igen…"
|
||||
},
|
||||
"success": "Serveren er nu kontaktbar! Du kan prøve at logge ind",
|
||||
"title": "Forsøger at kommunikere med serveren…"
|
||||
},
|
||||
"partial_logs": "[...] (se i historik for at finde hele loggen)"
|
||||
},
|
||||
"api_error": {
|
||||
"error_message": "Fejlmelding:",
|
||||
"info": "Følgende informationer kan være brugbare for den person der hjælper dig:",
|
||||
"server_said": "Under behandlingen af anmodningen sagde serveren:",
|
||||
"sorry": "Beklager meget.",
|
||||
"view_error": "Se fejl",
|
||||
"help": "Du bør søge hjælp på <a href=\"https://forum.yunohost.org/\">vores forum</a> eller <a href=\"https://chat.yunohost.org/\">chatten</a> til at ordne problemet eller rapportere fejlen i <a href=\"https://github.com/YunoHost/issues\">bugtrackeren</a>."
|
||||
},
|
||||
"all_apps": "Alle applikationer",
|
||||
"api_errors_titles": {
|
||||
"APIBadRequestError": "YunoHost stødte på en fejl",
|
||||
"APIConnexionError": "YunoHost stødte på en forbindelsesfejl",
|
||||
"APIError": "YunoHost stødte på en uventet fejl",
|
||||
"APINotFoundError": "YunoHost API'en kunne ikke finde en rute",
|
||||
"APINotRespondingError": "YunoHost API svarer ikke",
|
||||
"APIInternalError": "YunoHost stødte på en intern fejl"
|
||||
},
|
||||
"api_not_found": "Det ser ud til at webadministratoren forespurgte efter noget der ikke findes.",
|
||||
"api_not_responding": "YunoHost API'en svarer ikke. Måske er 'yunohost-api' nede eller blevet genstartet?",
|
||||
"app": {
|
||||
"doc": {
|
||||
"about": {
|
||||
"description": "Beskrivelse",
|
||||
"title": "Om"
|
||||
},
|
||||
"admin": {
|
||||
"title": "Admin doc"
|
||||
},
|
||||
"notifications": {
|
||||
"understood": "Forstået",
|
||||
"post_upgrade": "Post-opdatering noter",
|
||||
"title": "Notifikationer",
|
||||
"post_install": "Post-installation noter"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"forum": "Søg eller spørg i forummet!",
|
||||
"problem": "Et problem med denne app?",
|
||||
"config_panel_error": "En fejl forhindrer konfigurationspanelet i at blive vist:",
|
||||
"config_panel_error_please_report": "Vær venlig at rapportere denne fejl til YunoHost teamet, så den kan blive fikset!"
|
||||
},
|
||||
"install": {
|
||||
"license": "Licens:{license}",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"title": "Post-installations-notifikationer for '{name}'",
|
||||
"alert": "Det ser ud til at installationen gik godt!\nHer er nogle beskeder som udviklerne af pakken synes det er vigtigt, at du får.\nDu kan læse dem igen på app infosiden."
|
||||
},
|
||||
"pre": {
|
||||
"warning": "Ting at være opmærksom på før installationen",
|
||||
"critical": "Applikationen kan ikke installeres",
|
||||
"danger": "Installation af applikationen vil sandsynligvis medføre problemer"
|
||||
}
|
||||
},
|
||||
"problems": {
|
||||
"ignore": "Jeg forstår at denne installation kan ødelægge mit system, men jeg vil stadig gerne prøve.",
|
||||
"ram": "Denne applikation kræver {required} RAM for at kunne installere/opgradere, men der er kun {current} tilgængelige lige nu. Selv hvis denne app kunne køre, ville installationsprocessen kræve en stor mængde RAM, så din server risikerer at fryse og fejle horribelt.",
|
||||
"arch": "Denne app kan kun installeres på specifikke arkitekturer ({required}) men din serverarkitektur er {current}.",
|
||||
"broken": "YunoHosts automatiske tests har markeret denne applikation som \"VIRKER IKKE\", og den vil sandsynligvis ødelægge dit system! Du bør IKKE installere den medmindre du ved hvad du foretager dig.",
|
||||
"inprogress": "Denne applikation er stadig i prøvefasen (eller den virker måske slet ikke) og den vil sandsynligvis ødelægge dit system! Du bør IKKE installere den medmindre du ved hvad du laver.",
|
||||
"install": "Den er allerede installeret og kan ikke installeres flere gange.",
|
||||
"lowquality": "Denne applikation virker måske, men er ikke velintegreret i YunoHost. Visse funktioner, såsom single sign-on og backup/restore er muligvis ikke tilgængelige, eller de respekterer ikke god praksis.",
|
||||
"thirdparty": "Applikationen er ikke en del af det officielle YunoHost-katalog. Ved at installere tredjeparts-applikationer risikerer du at kompromittere integriteten og sikkerheden for dit system. Du bør undlade at installere, hvis du ikke er helt sikker på, hvad du gør.",
|
||||
"version": "Applikationen kræver YunoHost >= {required}, men den nuværende version er {current}. Opgrader YunoHost først."
|
||||
},
|
||||
"try_demo": "Prøv demoen",
|
||||
"version": "Nuværende version: {version}"
|
||||
},
|
||||
"antifeatures": "Denne app har komponenter du måske ikke vil bryde dig om:",
|
||||
"integration": {
|
||||
"ldap": {
|
||||
"true": "Brug YunoHost-konti til at logge ind (LDAP)",
|
||||
"?": "Ingen information om LDAP-integration",
|
||||
"false": "Bruger ikke YunoHost-konti til at logge ind (LDAP)"
|
||||
},
|
||||
"archs": "Understøttede arkitekturer:",
|
||||
"multi_instance": {
|
||||
"true": "Kan installeres flere gange",
|
||||
"false": "Kan kun installeres en gang"
|
||||
},
|
||||
"resources": "Typisk ressourceforbrug: {ram} RAM, {disk} disk"
|
||||
},
|
||||
"installed_version": "Installerede version:"
|
||||
},
|
||||
"api_waiting": "Venter på svar fra serveren…"
|
||||
}
|
695
app/src/i18n/locales/de.json
Normal file
|
@ -0,0 +1,695 @@
|
|||
{
|
||||
"action": "Aktion",
|
||||
"add": "Hinzufügen",
|
||||
"administration_password": "Administratorenpasswort",
|
||||
"api_not_responding": "Die YunoHost-API antwortet nicht. Vielleicht ist 'yunohost-api' ausgefallen oder wurde neu gestartet?",
|
||||
"app_info_access_desc": "Gruppen / Konten, die auf diese Applikation zugreifen dürfen:",
|
||||
"app_info_default_desc": "Hauptdomäne auf diese Applikation ({domain}) weiterleiten.",
|
||||
"app_info_uninstall_desc": "Diese Applikation löschen.",
|
||||
"app_install_custom_no_manifest": "Keine manifest.json Datei",
|
||||
"app_make_default": "Als Standard setzen",
|
||||
"applications": "Applikationen",
|
||||
"archive_empty": "Leeres Archiv",
|
||||
"backup": "Datensicherung",
|
||||
"backup_action": "Datensicherung",
|
||||
"backup_content": "Inhalt der Datensicherung",
|
||||
"backup_create": "Sicherung erstellen",
|
||||
"backup_new": "Neue Sicherung",
|
||||
"begin": "Anfangen",
|
||||
"both": "Beide",
|
||||
"check": "Prüfen",
|
||||
"close": "Schließen",
|
||||
"confirm_app_default": "Möchten Sie diese Applikation als Standard setzen?",
|
||||
"confirm_change_maindomain": "Möchten Sie wirklich die Hauptdomäne ändern?",
|
||||
"confirm_delete": "Möchten Sie {name} wirklich löschen?",
|
||||
"confirm_install_custom_app": "WARNUNG! Die Installation von Drittanbieter-Applikationen könnte die Sicherheit und Integrität Ihres Systems gefährden. Sie sollten sie nicht installieren, außer Sie wissen, was Sie tun. Wollen Sie dieses Risiko eingehen?",
|
||||
"confirm_install_domain_root": "Sind Sie sicher, dass Sie diese Applikation auf '/'? installieren wollen? Sie können keine andere Applikation auf der Domäne {domain} installieren",
|
||||
"confirm_postinstall": "Sie sind dabei, den Konfigurationsprozess für die Domäne {domain} zu starten. Dies wird ein paar Minuten dauern, *unterbrechen Sie diese Operation nicht*.",
|
||||
"confirm_restore": "Möchten Sie {name} wirklich wiederherstellen?",
|
||||
"confirm_uninstall": "Möchten Sie {name} wirklich deinstallieren?",
|
||||
"connection": "Verbindung",
|
||||
"created_at": "Erstellt am",
|
||||
"custom_app_install": "Benutzerdefinierte Applikation installieren",
|
||||
"delete": "Löschen",
|
||||
"description": "Beschreibung",
|
||||
"disable": "Deaktivieren",
|
||||
"domain_add": "Domain hinzufügen",
|
||||
"domain_default_desc": "Die Standarddomäne ist die Domäne, an der sich die Kontoinhaber anmelden.",
|
||||
"domain_name": "Domainname",
|
||||
"domains": "Domänen",
|
||||
"download": "Herunterladen",
|
||||
"enable": "Aktivieren",
|
||||
"error_modify_something": "Du solltest etwas verändern",
|
||||
"firewall": "Firewall",
|
||||
"home": "Startseite",
|
||||
"hook_adminjs_group_configuration": "Systemkonfigurationen",
|
||||
"hook_conf_ldap": "Kontendatenbank",
|
||||
"hook_conf_ynh_certs": "SSL-Zertifikate",
|
||||
"hook_data_home": "Kontodaten",
|
||||
"hook_data_home_desc": "Die Daten des Kontos werden gespeichert unter /home/Konto",
|
||||
"hook_data_mail": "E-Mail",
|
||||
"hook_data_mail_desc": "Rohdaten-E-Mails auf dem Server gespeichert",
|
||||
"id": "ID",
|
||||
"infos": "Informationen",
|
||||
"install": "Installieren",
|
||||
"install_name": "{id} installieren",
|
||||
"install_time": "Installiert am",
|
||||
"installation_complete": "Installation abgeschlossen",
|
||||
"installed": "Installiert",
|
||||
"ipv4": "IPv4",
|
||||
"ipv6": "IPv6",
|
||||
"label": "Label",
|
||||
"label_for_manifestname": "Label für {name}",
|
||||
"local_archives": "Lokale Archive",
|
||||
"login": "Anmelden",
|
||||
"logout": "Abmelden",
|
||||
"mailbox_quota_description": "Legen Sie eine Speichergrößenbegrenzung für E-Mail-Inhalte fest.<br>Setzen Sie den Wert auf 0, um ihn zu deaktivieren.",
|
||||
"manage_apps": "Apps verwalten",
|
||||
"manage_domains": "Domänen verwalten",
|
||||
"manage_users": "Konten verwalten",
|
||||
"multi_instance": "Kann mehrere Male installiert werden",
|
||||
"next": "Weiter",
|
||||
"no": "Nein",
|
||||
"open": "Öffnen",
|
||||
"operations": "Handlungen",
|
||||
"password": "Passwort",
|
||||
"password_confirmation": "Passwortbestätigung",
|
||||
"path": "Pfad",
|
||||
"port": "Port",
|
||||
"ports": "Ports",
|
||||
"postinstall_domain": "Dies ist die primäre Domäne für Ihren YunoHost Server und auch die Domäne, an der sich jeder anmelden wird. Sie wird für alle Konten sichtbar sein, daher wählen Sie die primäre Domäne sorgfältig aus.",
|
||||
"postinstall_intro_1": "Gratulation! YunoHost wurde erfolgreich installiert.",
|
||||
"postinstall_intro_2": "Es sind noch zwei weitere Einstellungen notwendig, um die Dienste auf Ihrem Server zu aktivieren.",
|
||||
"postinstall_intro_3": "Sie können mehr Informationen erhalten, wenn Sie auf der <a href='//yunohost.org/postinstall' target='_blank'>entsprechenden Dokumentationsseite</a> nachlesen",
|
||||
"previous": "Zurück",
|
||||
"protocol": "Protokoll",
|
||||
"restore": "Wiederherstellen",
|
||||
"running": "In Betrieb",
|
||||
"save": "Sichern",
|
||||
"service_start_on_boot": "Beim Hochfahren starten",
|
||||
"services": "Dienste",
|
||||
"set_default": "Als Standard festlegen",
|
||||
"size": "Größe",
|
||||
"start": "Start",
|
||||
"status": "Status",
|
||||
"stop": "Anhalten",
|
||||
"system": "System",
|
||||
"system_apps_nothing": "Alle Applikationen sind auf dem neuesten Stand!",
|
||||
"system_packages_nothing": "Alle Systempakete sind auf dem neuesten Stand!",
|
||||
"system_update": "System aktualisieren",
|
||||
"system_upgrade_btn": "Aktualisieren",
|
||||
"tcp": "TCP",
|
||||
"tools": "Werkzeuge",
|
||||
"udp": "UDP",
|
||||
"unauthorized": "Unauthorisiert",
|
||||
"uninstall": "Deinstallieren",
|
||||
"upnp": "UPnP",
|
||||
"upnp_disabled": "UPnP ist deaktiviert.",
|
||||
"upnp_enabled": "UPnP ist aktiviert.",
|
||||
"url": "URL",
|
||||
"user_email": "E-Mail",
|
||||
"user_emailaliases": "E-Mail Aliase",
|
||||
"user_emailforward": "E-Mail Weiterleitung",
|
||||
"user_fullname": "Vollständiger Name",
|
||||
"user_interface_link": "Benutzeroberfläche",
|
||||
"user_mailbox_quota": "Mailbox Kontingent",
|
||||
"user_new_forward": "weiterleitung@externedomain.org",
|
||||
"user_username": "Anmeldename",
|
||||
"user_username_edit": "Account von {name} bearbeiten",
|
||||
"users": "Konten",
|
||||
"users_new": "Neues Konto",
|
||||
"users_no": "Keine Konten.",
|
||||
"yes": "Ja",
|
||||
"app_state_inprogress": "funktioniert noch nicht",
|
||||
"diagnosis": "Diagnose",
|
||||
"dns": "DNS",
|
||||
"domain_default_longdesc": "Dies ist Ihre Standard-Domäne.",
|
||||
"domain_delete_longdesc": "Domäne löschen",
|
||||
"domain_dns_config": "DNS-Konfiguration",
|
||||
"domain_dns_longdesc": "DNS-Konfiguration anzeigen",
|
||||
"error_server_unexpected": "Unerwarteter Serverfehler",
|
||||
"footer_version": "Angetrieben von <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
|
||||
"form_input_example": "Beispiel: {example}",
|
||||
"mailbox_quota_placeholder": "Leer lassen oder 0 zum Deaktivieren eintragen.",
|
||||
"user_mailbox_use": "von der Mailbox verwendeter Speicherplatz",
|
||||
"certificate_manage": "SSL-Zertifikat verwalten",
|
||||
"certificate": "Zertifikat",
|
||||
"confirm_service_start": "Möchten Sie {name} wirklich starten?",
|
||||
"confirm_service_stop": "Möchten Sie {name} wirklich anhalten?",
|
||||
"confirm_update_apps": "Möchten Sie wirklich alle Applikationen aktualisieren?",
|
||||
"confirm_upnp_enable": "Möchten Sie UPnP wirklich aktivieren?",
|
||||
"confirm_upnp_disable": "Möchten Sie UPnP wirklich deaktivieren?",
|
||||
"confirm_firewall_allow": "Sind Sie sicher, dass Sie den Port {port}? (protocol: {protocol}, Verbindung: {connection}) öffnen wollen",
|
||||
"confirm_firewall_disallow": "Sind Sie sicher, dass Sie den Port {port}? (protocol: {protocol}, Verbindung {connection}) schliessen wollen",
|
||||
"confirm_update_specific_app": "Möchten Sie {app} wirklich aktualisieren?",
|
||||
"confirm_reboot_action_reboot": "Möchten Sie den Server wirklich neustarten?",
|
||||
"confirm_reboot_action_shutdown": "Möchten Sie den Server wirklich herunterfahren?",
|
||||
"domain_dns_conf_is_just_a_recommendation": "Dieser Abschnitt zeigt Ihnen die *empfohlene* Konfiguration. Sie konfiguriert *nicht* das DNS für Sie. Es liegt in Ihrer Verantwortung, die DNS-Zone bei Ihrem DNS-Registrar nach dieser Empfehlung zu konfigurieren.",
|
||||
"ok": "OK",
|
||||
"system_upgrade_all_applications_btn": "Aktualisiere alle Applikationen",
|
||||
"system_upgrade_all_packages_btn": "Aktualisiere alle Pakete",
|
||||
"tools_reboot": "Starten Sie Ihre Server neu",
|
||||
"tools_reboot_btn": "Neustart",
|
||||
"tools_shutdown": "Fahren Sie Ihren Server herunter",
|
||||
"tools_shutdown_btn": "Herunterfahren",
|
||||
"tools_shutdown_reboot": "Herunterfahren/Neustarten",
|
||||
"app_state_inprogress_explanation": "Der Entwickler dieser Applikation hat angegeben, dass sie nicht bereit für den produktiven Einsatz bereit ist. BITTE SEIEN SIE VORSICHTIG!",
|
||||
"all_apps": "Alle Applikationen",
|
||||
"app_info_changeurl_desc": "Ändern Sie die Zugriffs-URL dieser Anwendung (Domäne und/oder Pfad).",
|
||||
"app_state_highquality_explanation": "Diese Applikation ist seit mindestens einem Jahr gut in YunoHost integriert.",
|
||||
"app_info_change_url_disabled_tooltip": "Dieses Feature wurde in dieser Applikation noch nicht implementiert",
|
||||
"confirm_app_change_url": "Sind Sie sicher, dass Sie die Applikations-Zugangs-URL ändern möchten?",
|
||||
"confirm_update_system": "Sind Sie sicher, dass Sie alle Systempakete aktualisieren wollen?",
|
||||
"confirm_migrations_skip": "Migrationen zu überspringen wird nicht empfohlen. Sind Sie sicher, dass Sie das tun wollen?",
|
||||
"confirm_install_app_inprogress": "ACHTUNG! Diese Applikation ist noch experimentell (wenn nicht sogar nicht funktionsfähig) und es ist wahrscheinlich, dass sie Ihr System zerstört! Sie sollten sie besser NICHT installieren, es sei denn, Sie wissen, was Sie tun. Sind Sie bereit, dieses Risiko einzugehen?",
|
||||
"confirm_install_app_lowquality": "Warnung: Diese Applikation könnte funktionieren, ist aber nicht gut in YunoHost integriert. Einige Funktionen wie Single-Sign-On und Backup/Restore sind möglicherweise nicht verfügbar.",
|
||||
"good_practices_about_admin_password": "Sie sind gerade dabei, ein neues Administratorenpasswort zu setzen. Das Passwort sollte mindestens 8 Zeichen lang sein. Es ist jedoch empfehlenswert, ein längeres Passwort (z.B. eine Passphrase) und/oder verschiedene Arten von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.",
|
||||
"from_to": "von {0} nach {1}",
|
||||
"experimental_warning": "Achtung: Diese Funktion ist experimentell und gilt nicht als stabil, Sie sollten sie nicht verwenden, außer Sie wissen, was Sie tun.",
|
||||
"error_connection_interrupted": "Der Server hat die Verbindung geschlossen, anstatt sie zu beantworten. Wurde nginx oder die yunohost-api aus irgendeinem Grund neu gestartet oder gestoppt?",
|
||||
"good_practices_about_user_password": "Sie werden nun ein neues Konto- bzw. Benutzerpasswort festlegen. Das Passwort sollte mindestens 8 Zeichen lang sein. Es ist jedoch empfehlenswert, ein längeres Passwort (d.h. eine Passphrase) und/oder verschiedene Arten von Zeichen (Groß- und Kleinschreibung, Ziffern und Sonderzeichen) zu verwenden.",
|
||||
"license": "Lizenz",
|
||||
"only_highquality_apps": "Nur hochqualitative Apps",
|
||||
"only_decent_quality_apps": "Nur qualitativ hochwertige Apps",
|
||||
"orphaned": "Nicht betreut",
|
||||
"orphaned_details": "Diese App wird nicht mehr gepflegt. Sie kann noch funktionieren, wird aber kein Upgrade mehr erhalten bis jemand Freiwilliges die weitere Pflege übernimmt. Zögere nicht zu kommen und sie wiederzubeleben!",
|
||||
"logs_system": "Kernel-Logs und andere Ereignisse auf niederer Ebene",
|
||||
"select_none": "Wähle keine",
|
||||
"skip": "Überspringe",
|
||||
"logs_share_with_yunopaste": "Logs teilen mit YunoPaste",
|
||||
"migrations_pending": "Ausstehende Migrationen",
|
||||
"logs_operation": "Operationen, die auf dem System mit YunoHost durchgeführt wurden",
|
||||
"logs_history": "Historie der Befehlsausführung auf dem System",
|
||||
"purge_user_data_warning": "Die Löschung der Daten von Konten ist unumkehrbar. Sei dir sicher, was du tust!",
|
||||
"logs_error": "Fehler",
|
||||
"logs_package": "Historie des Debian-Paket-Managements",
|
||||
"logs_started_at": "Beginn",
|
||||
"only_working_apps": "Nur funktionierende Apps",
|
||||
"logs_no_logs_registered": "Kein Log registriert für diese Kategorie",
|
||||
"purge_user_data_checkbox": "Die Daten von {name} löschen? (Dadurch wird der Inhalt des Nutzer- und des E-Mail-Verzeichnisses gelöscht.)",
|
||||
"logs_path": "Pfad",
|
||||
"logs_service": "Service-Logs",
|
||||
"migrations_no_done": "Keine vorherigen Migrationen",
|
||||
"logs_access": "Liste der Zugriffe und Sperrungen",
|
||||
"migrations_no_pending": "Keine ausstehenden Migrationen",
|
||||
"logs_context": "Kontext",
|
||||
"migrations": "Migrationen",
|
||||
"logs": "Logs",
|
||||
"run": "Starten",
|
||||
"version": "Version",
|
||||
"logs_app": "Apps-Logs",
|
||||
"logs_more": "Zeige mehr Zeilen",
|
||||
"logs_ended_at": "Ende",
|
||||
"select_all": "Wähle alle",
|
||||
"migrations_done": "Vorherige Migrationen",
|
||||
"groups_and_permissions_manage": "Verwalten von Gruppen und Berechtigungen",
|
||||
"unignore": "Nicht ignorieren",
|
||||
"warnings": "{count} Warnungen",
|
||||
"words": {
|
||||
"default": "Vorgabe",
|
||||
"collapse": "Zusammenbruch",
|
||||
"browse": "Durchsuchen",
|
||||
"link": "Link",
|
||||
"none": "Keine",
|
||||
"separator": ", ",
|
||||
"valid": "Gültig"
|
||||
},
|
||||
"group": "Gruppe",
|
||||
"details": "Details",
|
||||
"everything_good": "Alles O.K.!",
|
||||
"ignore": "Ignorieren",
|
||||
"configuration": "Konfiguration",
|
||||
"group_explain_all_users": "Dies ist eine spezielle Gruppe, die alle Konten auf diesem Server enthält",
|
||||
"ignored": "{count} wird ignoriert",
|
||||
"last_ran": "Zuletzt ausgeführt:",
|
||||
"group_name": "Gruppenname",
|
||||
"group_all_users": "Alle Konten",
|
||||
"group_visitors": "Gäste",
|
||||
"group_add_member": "Ein Konto hinzufügen",
|
||||
"group_add_permission": "Hinzufügen einer Berechtigung",
|
||||
"group_specific_permissions": "Individuelle Berechtigungen pro Benutzer",
|
||||
"groups_and_permissions": "Gruppen und Berechtigungen",
|
||||
"since": "seit",
|
||||
"permissions": "Berechtigungen",
|
||||
"nobody": "Niemand",
|
||||
"group_format_name_help": "Sie können alphanumerische Zeichen und Leerzeichen verwenden",
|
||||
"group_new": "Neue Gruppe",
|
||||
"group_explain_visitors": "Dies ist eine spezielle Gruppe, die Gäste repräsentiert",
|
||||
"rerun_diagnosis": "Diagnose wiederholen",
|
||||
"app_state_lowquality_explanation": "Diese Applikation kann bereits funktionieren, enthält aber eventuell noch Fehler und/oder ist noch nicht vollständig integriert in YunoHost und/oder befolgt nicht die empfohlene Praxis.",
|
||||
"others": "Anderes",
|
||||
"catalog": "Katalog",
|
||||
"app_state_lowquality": "geringe Qualität",
|
||||
"all": "Alle",
|
||||
"confirm_service_restart": "Sind Sie sicher, dass Sie {name} neustarten möchten?",
|
||||
"run_first_diagnosis": "Initiale Diagnose starten",
|
||||
"diagnosis_first_run": "Die Diagnosefunktion wird versuchen, gängige Probleme in verschiedenen Teilen Ihres Servers zu finden, damit alles reibungslos läuft. Haben Sie keine Angst, wenn Sie ein paar Fehlermeldungen sehen, nachdem Sie ihren Server aufgesetzt haben: Es soll versuchen Ihnen zu helfen, Probleme zu identifizieren und Tipps für Lösungen zu zeigen. Die Diagnose wird auch automatisch zweimal täglich ausgeführt, falls Fehler gefunden werden, bekommt der Administrator eine E-Mail.",
|
||||
"group_explain_visitors_needed_for_external_client": "Sei vorsichtig und beachte, dass du manche Anwendungen für Gäste freigeben musst, falls du beabsichtigst, diese mit externen Clients aufzurufen. Zum Beispiel trifft das auf Nextcloud zu, wenn du eine Synchronisation auf dem Smartphone oder Desktop PC haben möchtest.",
|
||||
"issues": "{count} Probleme",
|
||||
"restart": "Neustart",
|
||||
"operation_failed_explanation": "Die Operation ist fehlgeschlagen! Das tut uns leid :( Sie können Sich <a href='https://yunohost.org/help'>hier Hilfe holen</a>. Bitte stellen Sie *die ganzen Logs* der Operation bereit, damit Ihnen besser geholfen werden kann. Dies tun Sie, indem Sie auf den grünen 'mit Yunopaste teilen' Knopf drücken. Wenn Sie die Logs teilen, wird Yunohost automatisch versuchen Ihre privaten Daten wie Domainnamen und IP's zu anonymisieren.",
|
||||
"diagnosis_explanation": "Die Diagnosefunktion wird versuchen, gängige Probleme in verschiedenen Teilen Ihres Servers zu finden, damit alles reibungslos läuft. Die Diagnose wird auch automatisch zweimal täglich ausgeführt und falls Fehler gefunden werden, bekommt der Administrator eine E-Mail. Beachten Sie, dass einige Tests nicht relevant sind, wenn Sie einzelne Features (zum Beispiel XMPP) nicht benutzten oder Sie ein komplexes Setup haben. In diesem Fall und wenn Sie wissen was Sie tun ist es in Ordnung die dazugehörigen Warnungen und Hinweise zu ignorieren.",
|
||||
"pending_migrations": "Es gibt einige ausstehende Migrationen, die darauf warten, ausgeführt zu werden. Bitte gehen Sie auf <a href='#/tools/migrations'>Werkzeuge > Migrationen</a> um diese auszuführen.",
|
||||
"tip_about_user_email": "Konten werden mit einer verknüpften E-Mail-Adresse (und XMPP Account) erstellt im Format username@domain.tld. Zusätzliche E-Mail-Aliasse and E-Mail-Weiterleitungen können später durch Administratoren und Benutzer hinzugefügt werden.",
|
||||
"logs_suboperations": "Unter-Operationen",
|
||||
"api_errors_titles": {
|
||||
"APIBadRequestError": "Es ist ein Fehler in Yunohost aufgetreten",
|
||||
"APIError": "Es ist ein unerwarteter Fehler in Yunohost aufgetreten",
|
||||
"APIConnexionError": "YunoHost hat einen Verbindungsfehler festgestellt",
|
||||
"APINotRespondingError": "Die YunoHost API antwortet nicht",
|
||||
"APIInternalError": "Es ist ein interner Fehler in Yunohost aufgetreten",
|
||||
"APINotFoundError": "YunoHost API konnte keine Route finden"
|
||||
},
|
||||
"api_error": {
|
||||
"sorry": "Tut uns wirklich leid.",
|
||||
"info": "Die folgenden Informationen könnten für die Person, die Ihnen hilft, nützlich sein:",
|
||||
"help": "Sie sollten für Hilfe <a href=\"https://forum.yunohost.org/\">im Forum</a> oder <a href=\"https://chat.yunohost.org/\">im Chat</a> nachschauen, um das Problem zu beheben, oder einen Bug melden im <a href=\"https://github.com/YunoHost/issues\">Bugtracker</a>.",
|
||||
"view_error": "Fehler ansehen",
|
||||
"server_said": "Während der Verarbeitung der Aktion hat der Server gemeldet:",
|
||||
"error_message": "Fehlermeldung:"
|
||||
},
|
||||
"address": {
|
||||
"local_part_description": {
|
||||
"email": "Wählen Sie einen lokalen Teil für Ihre E-Mail.",
|
||||
"domain": "Wählen Sie eine Subdomain."
|
||||
},
|
||||
"domain_description": {
|
||||
"email": "Wählen Sie eine Domäne für Ihre E-Mail.",
|
||||
"domain": "Wählen Sie eine Domäne."
|
||||
}
|
||||
},
|
||||
"permission_show_tile_enabled": "Sichtbar als Kachel im Kontenportal",
|
||||
"permission_main": "Haupt-Label",
|
||||
"permission_corresponding_url": "Entsprechender URL",
|
||||
"cancel": "Abbrechen",
|
||||
"app_show_categories": "Kategorien anzeigen",
|
||||
"app_manage_label_and_tiles": "Etiketten und Kacheln verwalten",
|
||||
"app_choose_category": "Kategorie auswählen",
|
||||
"api_waiting": "Warten auf Antwort des Servers…",
|
||||
"user_emailforward_add": "Fügen Sie eine Mail-Weiterleitung hinzu",
|
||||
"user_emailaliases_add": "Fügen Sie einen Mail-Alias hinzu",
|
||||
"unknown": "Unbekannt",
|
||||
"traceback": "Zurück verfolgen",
|
||||
"tools_webadmin_settings": "Webadministratoreinstellungen",
|
||||
"tools_webadmin": {
|
||||
"transitions": "Seitenübergangsanimationen",
|
||||
"experimental_description": "Ermöglicht den Zugriff auf experimentelle Funktionen. Diese gelten als instabil und können Ihr System beschädigen.<br>Bitte nur aktivieren, wenn Sie wissen, was Sie tun.",
|
||||
"experimental": "Experimenteller Modus",
|
||||
"cache_description": "Deaktivieren Sie den Cache, wenn Sie mit der CLI arbeiten möchten, während Sie gleichzeitig in diesem Web-Portal navigieren.",
|
||||
"cache": "Cache",
|
||||
"fallback_language_description": "Sprache, die verwendet wird, falls die Übersetzung nicht in der Hauptsprache verfügbar ist.",
|
||||
"language": "Sprache",
|
||||
"fallback_language": "Fallback-Sprache",
|
||||
"theme": "Umschalten zu Dunkel-Modus"
|
||||
},
|
||||
"search": {
|
||||
"not_found": "Es gibt {items}, die Ihren Auswahlkriterien entsprechen. | Es gibt 1 {items}, das Ihrem Auswahlkriterium entspricht. | Es gibt {items}, die Ihren Auswahlkriterien entsprechen.",
|
||||
"for": "Suche nach {items}…"
|
||||
},
|
||||
"readme": "Lies mich",
|
||||
"postinstall_set_domain": "Hauptdomäne festlegen",
|
||||
"placeholder": {
|
||||
"domain": "my-domain.de",
|
||||
"groupname": "Mein Gruppenname",
|
||||
"lastname": "Muster",
|
||||
"firstname": "Hans",
|
||||
"username": "hansmuster",
|
||||
"file": "Wählen Sie eine Datei aus oder fügen Sie sie per Drag and Drop ein",
|
||||
"fullname": "Hans Muster"
|
||||
},
|
||||
"perform": "Ausführen",
|
||||
"migrations_disclaimer_not_checked": "Für diese Migration müssen Sie den Haftungsausschluss bestätigen, bevor Sie sie ausführen.",
|
||||
"migrations_disclaimer_check_message": "Ich habe diesen Haftungsausschluss gelesen und verstanden",
|
||||
"mailbox_quota_example": "700M ist eine CD, 4700M ist eine DVD",
|
||||
"items_verbose_count": "Es gibt {items}. | Es gibt 1 {items}. | Es gibt {items}.",
|
||||
"items": {
|
||||
"users": "keine Konten | Konto | {c} Konten",
|
||||
"services": "keine Dienste | Dienst | {c} Dienste",
|
||||
"logs": "keine Protokolle | Protokoll | {c} Protokolle",
|
||||
"installed_apps": "keine installierten Apps | installierte App | {c} installierte Apps",
|
||||
"groups": "keine Gruppen | Gruppe | {c} Gruppen",
|
||||
"domains": "keine Domänen | Domäne | {c} Domänen",
|
||||
"backups": "keine Sicherungen | Sicherung| {c} Sicherungen",
|
||||
"apps": "keine Apps | App | {c} Apps",
|
||||
"permissions": "keine Berechtigungen | Berechtigung | {c} Berechtigungen"
|
||||
},
|
||||
"history": {
|
||||
"methods": {
|
||||
"DELETE": "entfernen",
|
||||
"PUT": "bearbeiten",
|
||||
"POST": "erstellen/ausführen",
|
||||
"GET": "lesen"
|
||||
},
|
||||
"last_action": "Letzte Aktion:",
|
||||
"title": "Verlauf",
|
||||
"is_empty": "Der Verlauf ist leer."
|
||||
},
|
||||
"form_errors": {
|
||||
"required": "Feld ist erforderlich.",
|
||||
"passwordMatch": "Passwörter stimmen nicht überein.",
|
||||
"passwordLenght": "Das Passwort muss mindestens 8 Zeichen lang sein.",
|
||||
"number": "Wert muss eine Zahl sein.",
|
||||
"notInUsers": "Das Konto '{value}' existiert bereits.",
|
||||
"minValue": "Der Wert muss eine Zahl sein, die gleich oder größer als {min} ist.",
|
||||
"name": "Namen dürfen keine Sonderzeichen außer <code>, .'- </code> enthalten",
|
||||
"emailForward": "Ungültige E-Mail-Weiterleitung: Sie darf nur aus alphanumerischen Zeichen und <code> _.-+</code> bestehen (z. B. jemand+tag@example.com, s0me-1+tag@example.com)",
|
||||
"email": "Ungültige E-Mail: Sie darf nur aus alphanumerischen Zeichen und <code> _.-</code> bestehen (z. B. jemand@example.com, s0me-1@example.com)",
|
||||
"dynDomain": "Ungültiger Domainname: Er darf nur aus alphanumerischen Kleinbuchstaben und Bindestrichen bestehen",
|
||||
"domain": "Ungültiger Domainname: Er darf nur aus alphanumerischen Kleinbuchstaben, Punkt- und Strichzeichen bestehen",
|
||||
"between": "Der Wert muss zwischen {min} und {max} liegen.",
|
||||
"alphalownumdot_": "Der Wert darf nur aus alphanumerischen Kleinbuchstaben und Unterstrichen bestehen.",
|
||||
"alpha": "Der Wert darf nur aus alphabetischen Zeichen bestehen.",
|
||||
"remote": "{message}",
|
||||
"pattern": "{type}",
|
||||
"invalid_form": "Das Formular enthält Fehler.",
|
||||
"maxValue": "Der Wert muss eine Zahl sein, die gleich oder kleiner als {max} ist.",
|
||||
"appRepoUrl": "Die YunoHost-App-Repository-URLs müssen wie folgt geformt sein https://domain.tld/path/to/repo_ynh"
|
||||
},
|
||||
"footer": {
|
||||
"donate": "Spenden",
|
||||
"help": "Brauchen Sie Hilfe?",
|
||||
"documentation": "Dokumentation"
|
||||
},
|
||||
"experimental": "Experimentell",
|
||||
"error": "Fehler",
|
||||
"enabled": "Aktiviert",
|
||||
"domain_delete_forbidden_desc": "Sie können '{domain}' nicht entfernen, da es sich um die Standarddomäne handelt. Sie müssen eine andere Domäne auswählen (oder <a href='#/domains/add'> eine neue hinzufügen </a>) und diese als Standarddomäne festlegen um die aktuelle entfernen zu können.",
|
||||
"domain_add_dyndns_forbidden": "Sie haben bereits eine DynDNS-Domain vom YunoHost-Projekt registriert/abonniert. Es ist beabsichtigt, dass diese Funktion auf eine Domain dieses Typs pro Server limitiert ist. Falls Sie eine Subdomain Ihrer bereits registrierten Domain hinzufügen möchten, benützen Sie bitte die obige Option 'Ich will eine Domain, die in meinem Besitz ist, hinzufügen, oder eine Subdomain'. Falls Sie eine komplett andere Domain verwenden möchten, sollten Sie vorher Ihre bereits existierende DynDNS-Domain entfernen. DynDNS-Domains sind gut, wenn Sie mit Self-Hosting gerade erst beginnen, aber mittel/-langfristig empfehlen wir, dass Sie ihre ganz eigene Domain bei einem Registrar erwerben, um vollständiges Eigentum über Ihre Domain zu erlangen.",
|
||||
"disabled": "Deaktiviert",
|
||||
"dead": "Inaktiv",
|
||||
"day_validity": " Abgelaufen seit | einem Tag | {count} Tage",
|
||||
"confirm_app_install": "Möchten Sie diese Applikation wirklich installieren?",
|
||||
"common": {
|
||||
"lastname": "Nachname",
|
||||
"firstname": "Vorname"
|
||||
},
|
||||
"code": "Code",
|
||||
"go_back": "Gehe zurück",
|
||||
"api_not_found": "Es scheint, als ob der Web-Administrator versucht hat etwas aufzulösen das nicht existiert.",
|
||||
"api": {
|
||||
"query_status": {
|
||||
"warning": "Erfolgreich durchgeführt mit Fehlern oder Warnungen",
|
||||
"success": "Vollständig durchgeführt",
|
||||
"pending": "In Bearbeitung",
|
||||
"error": "Nicht erfolgreich"
|
||||
},
|
||||
"processing": "Der Server verarbeitet die Aktion…",
|
||||
"partial_logs": "[…] (in der Historie nach Logs suchen)",
|
||||
"reconnecting": {
|
||||
"title": "Versuche mit dem Server zu kommunizieren…",
|
||||
"failed": "Der Server scheint nicht zu antworten. Sie können versuchen, sich neu zu verbinden oder probieren `systemctl restart yunohost-api` über ssh auszuführen.",
|
||||
"reason": {
|
||||
"unknown": "Die Verbindung mit dem Server wurde aus unbekannten Gründen beendet.",
|
||||
"reboot": "Ihr Server startet neu und wird für einige Zeit nicht erreichbar sein. Eine Login-Aufforderung wird erscheinen, sobald der Server wieder erreichbar ist.",
|
||||
"shutdown": "Ihr Server wird heruntergefahren und ist nicht mehr erreichbar. Schalten Sie ihn wieder ein und eine Anmeldeaufforderung wird angezeigt, sobald der Server erreichbar ist.",
|
||||
"upgrade_system": "Die Verbindung mit dem Server wurde aufgrund einer YunoHost-Aktualisierung beendet. Warten Sie bis der Server wieder erreichbar ist…"
|
||||
},
|
||||
"success": "Der Server ist jetzt erreichbar! Sie können versuchen, sich anzumelden"
|
||||
}
|
||||
},
|
||||
"hook_data_xmpp": "XMPP-Daten",
|
||||
"hook_conf_manually_modified_files": "Manuell geänderte Konfigurationen",
|
||||
"hook_conf_ynh_settings": "YunoHost-Konfigurationen",
|
||||
"human_routes": {
|
||||
"backups": {
|
||||
"delete": "Das Backup '{name}' löschen",
|
||||
"create": "Ein Backup erstellen",
|
||||
"restore": "Das Backup '{name}' wiederherstellen"
|
||||
},
|
||||
"apps": {
|
||||
"update_config": "Das Panel '{id}' der Applikation '{name}' aktualisieren",
|
||||
"uninstall": "Die Applikation '{name}' deinstallieren",
|
||||
"install": "Die Applikation '{name}' installieren",
|
||||
"change_url": "Die Zugriffs-URL für '{name}' ändern",
|
||||
"change_label": "Das Label von '{prevName}' nach '{nextName}' ändern",
|
||||
"set_default": "Weiterleitung des Domänen-Rootverzeichnisses von '{domain}' zu '{name}'",
|
||||
"action_config": "Führe Aktion '{action}' der Konfiguration der Applikation '{name}' durch",
|
||||
"dismiss_notification": "Ablehnungs-Benachrichtigung für '{name}'"
|
||||
},
|
||||
"domains": {
|
||||
"add": "Die Domäne '{name}' hinzufügen",
|
||||
"set_default": "Definiere '{name}' als Standarddomäne",
|
||||
"delete": "Lösche die Domäne '{name}'",
|
||||
"update_config": "Das Panel '{id}' für die Konfiguration der Domäne '{name}' aktualisieren",
|
||||
"push_dns_changes": "Propagiere die DNS-Einträge zu Registrar für '{name}'",
|
||||
"cert_install": "Zertifikat für '{name}' installieren",
|
||||
"cert_renew": "Zertifikat erneuern für '{name}'"
|
||||
},
|
||||
"diagnosis": {
|
||||
"unignore": {
|
||||
"warning": "Eine Warnung nicht ignorieren",
|
||||
"error": "Einen Fehler nicht ignorieren"
|
||||
},
|
||||
"run_specific": "Die Diagnose für '{description}' durchführen",
|
||||
"run": "Die Diagnose durchführen",
|
||||
"ignore": {
|
||||
"warning": "Eine Warnung ignorieren",
|
||||
"error": "Einen Fehler ignorieren"
|
||||
}
|
||||
},
|
||||
"groups": {
|
||||
"create": "Erstelle die Gruppe '{name}'",
|
||||
"remove": "'{user}' aus der Gruppe '{name}' entfernen",
|
||||
"add": "'{user}' zur Gruppe '{name}' hinzufügen",
|
||||
"delete": "Gruppe '{name}' löschen"
|
||||
},
|
||||
"firewall": {
|
||||
"upnp": "{action} UPnP",
|
||||
"ports": "{action} Port {port} ({protocol}, {connection})"
|
||||
},
|
||||
"services": {
|
||||
"start": "Den Dienst '{name}' starten",
|
||||
"restart": "Den Dienst '{name}' neustarten",
|
||||
"stop": "Den Dienst '{name}' stoppen"
|
||||
},
|
||||
"reboot": "Den Server neustarten",
|
||||
"postinstall": "Post-Installation ausführen",
|
||||
"permissions": {
|
||||
"remove": "'{name}' Autorisierung entziehen für Zugriff auf '{perm}'",
|
||||
"add": "'{name}' autorisieren für Zugriff auf '{perm}'"
|
||||
},
|
||||
"migrations": {
|
||||
"skip": "Migrationen überspringen",
|
||||
"run": "Migrationen durchführen"
|
||||
},
|
||||
"users": {
|
||||
"update": "Konto '{name}' aktualisieren",
|
||||
"delete": "Konto '{name}' löschen",
|
||||
"create": "Konto '{name}' erstellen"
|
||||
},
|
||||
"upgrade": {
|
||||
"app": "Die Applikation '{app}' aktualisieren",
|
||||
"apps": "Alle Anwendungen aktualisieren",
|
||||
"system": "Das System aktualisieren"
|
||||
},
|
||||
"update": "Nach Updates suchen",
|
||||
"shutdown": "Den Server herunterfahren",
|
||||
"share_logs": "Einen Link für den Log '{name}' erstellten",
|
||||
"reconnecting": "Wiederverbinden",
|
||||
"settings": {
|
||||
"update": "Aktualisieren der globalen Einstellungen für '{panel}'"
|
||||
}
|
||||
},
|
||||
"postinstall": {
|
||||
"force": "Forciere den Post-Install",
|
||||
"title": "Post-Installation",
|
||||
"user": {
|
||||
"title": "Erstes Administratorkonto erstellen",
|
||||
"first_user_help": "Diesem Benutzer werden Adminstratoren-Privilegien erteilt und es wird ihm erlaubt sein, sich mit dem Admin-Portal zu verbinden und auch sich direkt mit dem Server über SSH zu verbinden.\nWeil es ein regulärer Benutzer ist, werden Sie sich auch mit dem Benutzer-Portal (SSO) mit seinen Zugangsdaten verbinden können. \nSobald die post-installation vollständig ist, werden Sie in der Lage sein, weitere Admin-Benutzer zu erstellen, indem Sie diese der 'admins'-Gruppe hinzufügen."
|
||||
}
|
||||
},
|
||||
"hook_data_xmpp_desc": "Konfiguration für Räume und Konten, hochgeladene Dateien",
|
||||
"items_verbose_items_left": "Es bleiben {items} übrig. | Es bleibt 1 {items} übrig. | Es bleiben {items} übrig.",
|
||||
"confirm_group_add_access_permission": "Sind Sie sicher, dass Sie Zugriff auf {perm} an {name} geben wollen? Ein derartiger Zugriff erhöht die Angriffsoberfläche signifikant, wenn {name} boshaft ist. Die sollten dies nur tun, wenn Sie dieser Person/Gruppe VERTRAUEN.",
|
||||
"app_install_parameters": "Installationsparameter",
|
||||
"domain": {
|
||||
"config": {
|
||||
"title": "Domänen-Konfiguration",
|
||||
"edit": "Domänen-Konfiguration bearbeiten"
|
||||
},
|
||||
"dns": {
|
||||
"manual_config": "Empfohlene DNS-Einträge für die manuelle Konfiguration",
|
||||
"push": "Die DNS-Einträge zum Registrar propagieren",
|
||||
"push_force": "Bestehende Einträge überschreiben",
|
||||
"auto_config": "Automatische DNS-Einträge-Konfiguration",
|
||||
"push_force_warning": "Es scheint, als ob einige der von YunoHost vorgeschlagenen DNS-Einträge in der Konfiguration ihres Registrars bereits existieren würden. Sie können die Option zum Überschreiben wählen, wenn Sie wissen, was Sie tun.",
|
||||
"auto_config_ignored": "ignoriert, wird von YunoHost nicht geändert, ausser wenn Sie die Option zum Überschreiben anwählen",
|
||||
"auto_config_ok": "Automatische Konfiguration scheint OK zu sein!",
|
||||
"auto_config_zone": "Aktuelle DNS-Zone",
|
||||
"edit": "DNS-Konfiguration bearbeiten",
|
||||
"info": "Die automatische DNS-Einträge-Konfiguration ist ein experimentelles Feature. <br> Erwägen Sie es, Ihre aktuelle DNS-Konfiguration im Webinterface bei ihrem DNS-Registrar zu sichern, bevor Sie die Einträge von hier aus propagieren.",
|
||||
"push_force_confirm": "Sind Sie sicher, dass Sie die Propagierung aller vorgeschlagenen DNS-Einträge forcieren möchten? Seien Sie sich bewusst, dass dies dazu führen kann, dass es manuelle oder wichtige Default-Einträge, die ihr Registrar definiert hat, überschreiben könnte.",
|
||||
"methods": {
|
||||
"auto": "Automatisch",
|
||||
"manual": "Manuell",
|
||||
"none": "Keine",
|
||||
"semi_auto": "Halbautomatisch",
|
||||
"handled_in_parent": "In der übergeordneten Domäne verwaltet"
|
||||
}
|
||||
},
|
||||
"cert": {
|
||||
"types": {
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"selfsigned": "Selbstsigniert",
|
||||
"other": "Andere/Unbekannt"
|
||||
},
|
||||
"valid_for": "gültig für {days}"
|
||||
},
|
||||
"info": {
|
||||
"apps_on_domain": "Auf der Domäne installierte Applikationen",
|
||||
"certificate_authority": "SSL-Zeritifizierungsstelle",
|
||||
"registrar": "Registrar",
|
||||
"dyn_dns_remove_and_unsubscribe": "sie müssen auch die Domain beim Yunohost DynDNS Service abmelden"
|
||||
},
|
||||
"see_parent_domain": "Schauen Sie bitte bei der Hauptdomäne nach",
|
||||
"types": {
|
||||
"main_domain": "Hauptdomäne"
|
||||
},
|
||||
"toggle_subdomains": "Subdomänen wechseln",
|
||||
"explain": {
|
||||
"main_domain": "Die Hauptdomäne ist die Domäne, von welcher aus die Benutzer sich mit dem Portal verbinden können (via \"{domain}/yunohost/sso\"). <br>Darum ist es leider nicht möglich, sie zu entfernen.<br>Falls Sie \"{domain}\" entfernen möchten, werden sie vorher eine andere Domäne auswählen und als Hauptdomäne festlegen müssen."
|
||||
},
|
||||
"add": {
|
||||
"dyn_dns_password_desc": "Dieses Passwort erlaubt Ihnen zu einem späteren Zeitpunkt die Widerherstellung der Domäne wenn Sie Ihr System neu installieren. Wenn Sie diese Domäne vorher schon registriert haben, verwenden Sie hier dieses Wiederherstellungspasswort für die Wiederherstellung der Domäne.",
|
||||
"from_local_desc": "Wenn Sie keinen \"echten\" öffentlichen Domänennamen wünschen, können Sie hier alles verwenden, was in <code>.local</code> oder <code>.test</code> endet. Domänennamen welche in <code>.local</code> enden, sind in dem Sinne speziell, als dass sie in Ihrem lokalen Netzwerk automatisch aufgelöst werden können, angenommen Ihre Clients unterstützen das Bonjour-Protokoll. Als Alternative dazu können Sie Ihre <code>/etc/hosts</code> -Datei ( oder äquivalent für Windows ) auf jedem Ihrer Clients so einstellen, von welchen aus Sie diese Domäne benützen wollen, oder indem Sie die lokalen DNS-Einträge in Ihrem Internet-Router entsprechend konfigurieren.",
|
||||
"dyn_dns_password": "Domainwiederherstellungspasswort",
|
||||
"from_local": "Ich will eine Domain ausschließlich für die lokale / testweise Verwendung",
|
||||
"from_registrar": "Ich möchte eine eigene Domain oder eine Subdomain hinzufügen",
|
||||
"from_registrar_desc": "Sie müssen gegebenenfalls die DNS-Konfiguration bei ihrem Registrar vervollständigen. Die Diagnose von Yunohost zeigt Ihnen an, welche Records Sie noch konfigurieren müssen.",
|
||||
"from_yunohost": "Ich besitze keine Domain, Ich möchte eine kostenlose DynDNS-Domain des Yunohost Projektes nutzen",
|
||||
"from_yunohost_desc": "Das YunoHost-Projekt unterhält einen kostenlosen 'DynDNS'-Service. Dieser ist limitiert auf eine einzige solche Domäne pro Server (Sie können trotzdem später eine Subdomain mit der obigen Option 'Ich will eine Domäne, die in meinem Besitz ist, hinzufügen, oder eine Subdomain' hinzufügen). Die DNS-Konfiguration wird automatisch von YunoHost gehandhabt. Dies ist ideal, wenn Sie mit Self-Hosting überhaupt erst beginnen und Sie noch nicht in einen Domainname investieren möchten. Wie auch immer, mittel/-langfristig empfehlen wir der Kauf eines eigenen Domainnames bei einem Registrar, um das vollständige Eigentum über Ihre Domäne zu erlangen."
|
||||
}
|
||||
},
|
||||
"domain_dns_push_failed_to_authenticate": "Die Authentifizierung an der API des Registrars war nicht erfolgreich. Höchstwahrscheinlich sind die <a href='#/domains/{domain}/config'>Zugangsdaten</a> falsch? (Fehler: {error})",
|
||||
"domain_dns_push_managed_in_parent_domain": "Die automatische DNS-Konfiguration wird von der übergeordneten Domäne <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a> verwaltet.",
|
||||
"domain_dns_push_not_applicable": "Die automatische DNS-Konfiguration ist nicht auf die Domäne {domain} anwendbar. <br>Konfiguriere die DNS-Einträge, wie in der <a href='https://yunohost.org/dns'>Dokumentation<a href='https://yunohost.org/dns'> beschrieben, mit Hilfe der folgenden vorgeschlagenen Konfiguration manuell.",
|
||||
"users_import_delete_desc": "Wenn angewählt, werden alle Konten, die nicht in der CSV-Datei enthalten sind, gelöscht (und bereinigt).",
|
||||
"users_import_csv_file_desc": "Die CSV-Datei muss im Format UTF-8 sein und die Spalten Benutzername, Passwort, Gruppen, E-Mail und Quota beinhalten. Für eine Beispiel-CSV-Datei können Sie <a href='/yunohost/api/users/export' target='_BLANK'>Benutzer als CSV-Datei exportieren</a> und die Datei ändern.",
|
||||
"users_import": "Konten importieren",
|
||||
"users_export": "Konten exportieren",
|
||||
"users_import_csv_file": "CSV-Datei",
|
||||
"users_import_delete": "Nicht gelistete Konten löschen",
|
||||
"users_import_update_desc": "Wenn angewählt, werden alle Konten, die in der CSV-Datei enthalten sind, mit neuen den Werten aktualisiert",
|
||||
"users_import_delete_others": "Alle nicht gelisteten Konten löschen",
|
||||
"yunohost_admin": "YunoHost-Admin",
|
||||
"text_selection_is_disabled": "Textauswahl ist deaktiviert. Wenn Sie diesen Log teilen möchten, teilen Sie bitte den *kompletten* Log, indem Sie den Button 'Logs teilen mit YunoPaste' anklicken. <br/><small>Oder falls Sie wirklich wirklich einen Text auswählen möchten, klicken Sie auf die Tasten:↓↓↑↑.</small>",
|
||||
"users_import_update": "Vorhandene Konten aktualisieren",
|
||||
"users_import_confirm_destructive": "Sind Sie sicher, dass Sie die Konten, die nicht in diesen Datei enthalten sind, löschen wollen?",
|
||||
"retry": "Wiederhole",
|
||||
"app_state_broken": "beschädigt",
|
||||
"app_state_broken_explanation": "Diese Applikation ist zur Zeit fehlerhaft und kann gemäss automatisierter Tests durch YunoHost nicht installiert werden",
|
||||
"details_about": "Mehr Details über {subject} anzeigen",
|
||||
"confirm_install_app_broken": "VORSICHT! Diese Applikation ist gemäss YunoHost's automatischen Test beschädigt und wird vermutlich ihr System beschädigen! Sie sollten sie vermutlich NICHT installieren, es sei denn, Sie wissen was Sie tun. Wollen Sie dieses Risiko wirklich eingehen?",
|
||||
"group_admins": "Administratoren",
|
||||
"group_explain_admins": "Dies ist eine spezielle Gruppe, welche zu den Administratoren-Benutzern gehört. Benutzer in dieser Gruppe besitzen, einfach ausgedrückt, alle Berechtigungen auf dem Server (verändern, erstellen, hinzufügen und zurückhalten). Sie können folglich auf die Admin-Oberfläche von YunoHost zugreifen, sich via SSH mit dem Server verbinden und ausserdem das Kommando `sudo` verwenden. Zusätzlich erhalten sie alle E-Mails, welche an root@, admin@, admins@, wie z.B. die Diagnose-Benachrichtigungen, gesendet wurden. Sie sollten wirklich nur Personen zu dieser Gruppe hinzufügen, denen Sie absolut vertrauen!",
|
||||
"important_yunohost_upgrade": "Eine grössere YunoHost-Aktualisierung ist erhältlich. Es ist sehr empfehlenswert, die Release-Note(s) im Forum sorgfältig durchzulesen, bevor Sie aktualisieren : <a href='https://forum.yunohost.org/tag/ynh_release'>Die Release-Notes im Forum aufrufen.</a>",
|
||||
"label_for_manifestname_help": "Dies ist der Name, welcher im Benutzer-Portal angezeigt wird. Dies kann später nochmal geändert werden.",
|
||||
"manage_groups": "Gruppenmanagement",
|
||||
"tools_yunohost_settings": "YunoHost-Einstellungen",
|
||||
"wrong_password_or_username": "Falsches Passwort für Benutzername",
|
||||
"app": {
|
||||
"install": {
|
||||
"problems": {
|
||||
"broken": "Diese Anwendung ist laut automatischer Tests von YunoHost beschädigt und wird wahrscheinlich Ihr System ruinieren! Sie sollten sie NICHT installieren, wenn Sie nicht wissen, was Sie tun.",
|
||||
"arch": "Diese App kann nur auf spezifischen Architekturen ({required}) installiert werden, aber die Architektur Ihres Servers ist {current}.",
|
||||
"ram": "Diese App benötigt {required} RAM für Installation/Upgrade aber es sind aktuell nur {current} verfügbar. Auch wenn diese App funktioniern würde, würde der Installationsprozess viel RAM benötigen. Es würde die Gefahr bestehen, dass Ihr Server einfrieren (freezen) und völlig abschmieren würde.",
|
||||
"thirdparty": "Diese App ist nicht Bestandteil des offiziellen YunoHost-Katalogs. Die Installation von Drittanbieter-Apps kann die Integrität und Sicherheit Ihres Systems kompromittieren. Sie sollten sie wahrscheinlich NICHT installieren, wenn Sie nicht genau wissen, was Sie tun.",
|
||||
"ignore": "Ich habe verstanden, dass diese Installation mein System ruinieren könnte, aber ich möchte es trotzdem versuchen.",
|
||||
"inprogress": "Diese App ist noch experimentell (beziehungsweise noch nicht gut in YunoHost integriert oder ausdrücklich nicht funktionsfähig). Folglich neigt sie dazu, Ihr System zu ruinieren! Sie sollten sie wahrscheinlich NICHT installieren, wenn Sie nicht genau wissen, was Sie tun.",
|
||||
"install": "Diese App ist bereits installiert und kann nicht noch einmal installiert werden.",
|
||||
"lowquality": "Diese App funktioniert wahrscheinlich, ist aber noch nicht gut in YunoHost integriert. Einige Funktionen wie zum Beispiel Single-Sign-On und Sicherung/Wiederherstellen könnten nicht verfügbar sein oder die Best-Practices nicht berücksichtigen.",
|
||||
"version": "Diese App benötigt YunoHost >={required} aber Ihre aktuell installierte Version ist {current}. Sie sollten vorher YunoHost aktualisieren."
|
||||
},
|
||||
"license": "Lizenz: {license}",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"title": "Post-Installations-Benachrichtigungen für „{name}“",
|
||||
"alert": "Die Aktualisierung scheint gut gelaufen zu sein!\nHier sind ein einige Informationen, die der Paketierer als wichtig zu wissen erachtet hat. \nSie können sie auch auf der Informationsseite dieser App noch einmal nachlesen."
|
||||
},
|
||||
"pre": {
|
||||
"warning": "Wichtige Informationen vor der Installation",
|
||||
"danger": "Die Installation der Anwendung wird höchstwahrscheinlich zu Problemen führen",
|
||||
"critical": "Die Anwendung kann nicht installiert werden"
|
||||
}
|
||||
},
|
||||
"try_demo": "Probieren Sie die Demo aus",
|
||||
"version": "Aktuelle Version: {version}"
|
||||
},
|
||||
"installed_version": "Installierte Version:",
|
||||
"open_this_app": "Diese App öffnen",
|
||||
"antifeatures": "Diese App hat Funktionen, die Sie womöglich nicht mögen:",
|
||||
"doc": {
|
||||
"about": {
|
||||
"title": "Über",
|
||||
"description": "Beschreibung"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Benachrichtigungen",
|
||||
"post_upgrade": "Post-Aktualisierungs-Anmerkungen",
|
||||
"post_install": "Post-Installations-Anmerkungen",
|
||||
"understood": "Verstanden"
|
||||
},
|
||||
"admin": {
|
||||
"title": "Dokumentation für Administratoren"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"forum": "Suchen oder fragen Sie im Forum!",
|
||||
"problem": "Ein Problem mit dieser App?",
|
||||
"config_panel_error": "Ein Fehler verhindert die Anzeige des Konfigurationsfensters:",
|
||||
"config_panel_error_please_report": "Bitte leiten Sie diesen Fehler an das YunoHost-Team zu dessen Behebung weiter!"
|
||||
},
|
||||
"integration": {
|
||||
"archs": "Unterstützte Architekturen:",
|
||||
"ldap": {
|
||||
"false": "Keine Unterstützung des Einloggens mittels YunoHost-Konten (LDAP)",
|
||||
"true": "Unterstützt das Einloggen mittels YunoHost-Konten (LDAP)",
|
||||
"?": "Keine Informationen betreffend LDAP-Integration"
|
||||
},
|
||||
"multi_instance": {
|
||||
"false": "Kann nur einmal installiert werden",
|
||||
"true": "Kann mehrfach installiert werden"
|
||||
},
|
||||
"resources": "Typischer Ressourcen-Bedarf: {ram} RAM, {disk} Disk",
|
||||
"sso": {
|
||||
"false": "Single-Sign-On ist nicht verfügbar (SSO)",
|
||||
"true": "Single-Sign-On ist verfügbar (SSO)",
|
||||
"?": "Keine Informationen betreffend SSO-Integration"
|
||||
},
|
||||
"title": "Integration mit YunoHost"
|
||||
},
|
||||
"links": {
|
||||
"admindoc": "Offizielle Dokumentation für Administratoren",
|
||||
"code": "Offizielles Code-Repository",
|
||||
"forum": "Themen zu dieser App im YunoHost-Forum",
|
||||
"package": "YunoHost Pakete-Repository",
|
||||
"title": "Links",
|
||||
"userdoc": "Offizielle Dokumentation für Benutzer",
|
||||
"website": "Offizielle Website",
|
||||
"license": "App-Lizenz",
|
||||
"package_license": "YunoHost Paket Lizenz"
|
||||
},
|
||||
"potential_alternative_to": "Potenzielle Alternative für:",
|
||||
"upgrade": {
|
||||
"confirm": {
|
||||
"apps": "Apps, welche aktualisiert werden",
|
||||
"title": "Bestätigen Sie die Aktualisierungen"
|
||||
},
|
||||
"continue": "Fortfahren zur nächsten App",
|
||||
"notifs": {
|
||||
"pre": {
|
||||
"alert": "Sie sollten sich die Benachrichtigungen genau anschauen, befor sie mit der Aktualisierung fortfahren. Sie könnten wichtige Informationen enthalten, die Sie kennen sollten.",
|
||||
"title": "Seien Sie vorgewarnt!"
|
||||
},
|
||||
"post": {
|
||||
"alert": "Die Aktualisierung scheint gut gelaufen zu sein!\nHier ein paar Informationen, die der/die Paketierer betreffend dieser Aktualisierung als wichtig erachtet hat. \nSie können sie auch auf der Informationsseite dieser App nochmal nachlesen.",
|
||||
"title": "Benachrichtigungen zum Post-Aktualisierungs-Prozess für '{name}'"
|
||||
}
|
||||
},
|
||||
"stop": "Die nächsten Aktualisierungen stornieren"
|
||||
},
|
||||
"uninstall": {
|
||||
"purge_desc": "Entferne das Datenverzeichnis, das mit dieser Applikation assoziiert ist (hier handelt es sich üblicherweise um Daten, die Sie bei der Benutzung der Applikation selbst hochgeladen haben)."
|
||||
}
|
||||
}
|
||||
}
|
84
app/src/i18n/locales/el.json
Normal file
|
@ -0,0 +1,84 @@
|
|||
{
|
||||
"add": "Προσθήκη",
|
||||
"administration_password": "Κωδικός Διαχείρισης",
|
||||
"confirm_delete": "Είστε σίγουροι ότι θέλετε να διαγράψετε το {name} ;",
|
||||
"delete": "Διαγραφή",
|
||||
"description": "Περιγραφή",
|
||||
"disable": "Απενεργοποίηση",
|
||||
"domain_name": "Όνομα τομέα",
|
||||
"domains": "Τομείς",
|
||||
"enable": "Ενεργοποίηση",
|
||||
"error_modify_something": "Θα πρέπει να τροποποιήσετε κάτι",
|
||||
"id": "ID",
|
||||
"infos": "Πληροφορίες",
|
||||
"installation_complete": "Η εγκατάσταση ολοκληρώθηκε",
|
||||
"ipv4": "IPv4",
|
||||
"ipv6": "IPv6",
|
||||
"login": "Σύνδεση",
|
||||
"logout": "Αποσύνδεση",
|
||||
"operations": "Δραστηριότητες",
|
||||
"password": "Κωδικός πρόσβασης",
|
||||
"password_confirmation": "Επιβεβαίωση κωδικού πρόσβασης",
|
||||
"save": "Αποθήκευση",
|
||||
"set_default": "Ορισμός προεπιλογής",
|
||||
"start": "Εκκίνηση",
|
||||
"status": "Κατάσταση",
|
||||
"stop": "Διακοπή",
|
||||
"tcp": "TCP",
|
||||
"udp": "UDP",
|
||||
"unauthorized": "Unauthorized",
|
||||
"upnp": "UPnP",
|
||||
"url": "Διεύθυνση URL",
|
||||
"words": {
|
||||
"default": "Προεπιλογή"
|
||||
},
|
||||
"ok": "Εντάξει",
|
||||
"action": "Ενέργεια",
|
||||
"all_apps": "Όλες οι εφαρμογές",
|
||||
"address": {
|
||||
"domain_description": {
|
||||
"domain": "Επιλέξτε domain.",
|
||||
"email": "Επιλέξτε ένα domain για το email σας."
|
||||
},
|
||||
"local_part_description": {
|
||||
"domain": "Επιλέξτε ένα subdomain.",
|
||||
"email": "Επιλέξτε ένα τοπικό τμήμα για το email σας."
|
||||
}
|
||||
},
|
||||
"api_error": {
|
||||
"info": "Η ακόλουθη πληροφορία μπορεί να είναι χρήσιμη για το άτομο που σας βοηθάει:",
|
||||
"sorry": "Πραγματικά λυπούμαστε για αυτό.",
|
||||
"server_said": "Κατά τη διάρκεια επεξεργασίας της ενέργειας ο διακομιστής είπε:",
|
||||
"view_error": "Προβολή σφάλματος",
|
||||
"error_message": "Μήνυμα σφάλματος:"
|
||||
},
|
||||
"api_errors_titles": {
|
||||
"APIBadRequestError": "Το YunoHost αντιμετώπισε ένα σφάλμα",
|
||||
"APIError": "Το YunoHost αντιμετώπισε ένα μη αναμενόμενο σφάλμα",
|
||||
"APIInternalError": "Το YunoHost αντιμετώπισε ένα εσωτερικό σφάλμα",
|
||||
"APINotFoundError": "Το YunoHost API δεν μπόρεσε να βρεί δρομολόγηση",
|
||||
"APINotRespondingError": "Το YunoHost API δεν ανταποκρίνεται",
|
||||
"APIConnexionError": "Το YunoHost αντιμετώπισε ένα σφάλμα σύνδεσης"
|
||||
},
|
||||
"api": {
|
||||
"reconnecting": {
|
||||
"failed": "Φαίνεται πως ο διακομιστής δεν ανταποκρίνεται. Μπορείτε να προσπαθήσετε να ξανασυνδεθείτε ή να προσπαθήσετε να εκτελέσετε `systemctl restart yunohost-api` μέσω ssh.",
|
||||
"reason": {
|
||||
"unknown": "Η σύνδεση με το διακομιστή έχει τερματιστεί για άγνωστους λόγους.",
|
||||
"upgrade_system": "Η σύνδεση με τον διακομιστή έχει τερματιστεί εξ'αιτίας αναβάθμισης του YunoHost. Αναμονή για τον διακομιστή μέχρι να είναι ξανά προσβάσιμος…",
|
||||
"reboot": "Ο διακομιστής επανεκκινείται και δε θα είναι προσβάσιμος για κάποιο χρονικό διάστημα. Μία εντολή εισόδου θα είναι διαθέσιμη όταν ο διακομιστής θα είναι και πάλι προσβάσιμος.",
|
||||
"shutdown": "Ο διακομιστής σας τερματίζεται και δεν είναι πια προσβάσιμος. Ενεργοποιήστε τον ξανά και μία εντολή εισόδου θα είναι διαθέσιμη με το που ο διακομιστής είναι ξανά προσβάσιμος."
|
||||
},
|
||||
"success": "Ο διακομιστής τώρα είναι προσβάσιμος! Μπορείτε να προσπαθήσετε να κάνετε είσοδο",
|
||||
"title": "Προσπάθεια για επικοινωνία με το διακομιστή…"
|
||||
},
|
||||
"processing": "Ο διακομιστής επεξεργάζεται την ενέργεια…",
|
||||
"query_status": {
|
||||
"error": "Ανεπιτυχής",
|
||||
"success": "Ολοκληρώθηκε επιτυχώς",
|
||||
"warning": "Ολοκληρώθηκε επιτυχώς με σφάλματα ή προειδοποιήσεις",
|
||||
"pending": "Υπό διεργασία"
|
||||
}
|
||||
},
|
||||
"all": "Όλα"
|
||||
}
|
695
app/src/i18n/locales/en.json
Normal file
|
@ -0,0 +1,695 @@
|
|||
{
|
||||
"action": "Action",
|
||||
"add": "Add",
|
||||
"address": {
|
||||
"domain_description": {
|
||||
"domain": "Choose a domain.",
|
||||
"email": "Choose a domain for your email."
|
||||
},
|
||||
"local_part_description": {
|
||||
"domain": "Choose a subdomain.",
|
||||
"email": "Choose a local part for your email."
|
||||
}
|
||||
},
|
||||
"administration_password": "Administration password",
|
||||
"all": "All",
|
||||
"all_apps": "All apps",
|
||||
"api": {
|
||||
"partial_logs": "[…] (check in history for full logs)",
|
||||
"processing": "The server is processing the action…",
|
||||
"query_status": {
|
||||
"error": "Unsuccessful",
|
||||
"pending": "In progress",
|
||||
"success": "Successfully completed",
|
||||
"warning": "Successfully completed with errors or alerts"
|
||||
},
|
||||
"reconnecting": {
|
||||
"failed": "Looks like the server is not responding. You can try to reconnect again or try to run `systemctl restart yunohost-api` thru ssh.",
|
||||
"reason": {
|
||||
"reboot": "Your server is rebooting and will not be reachable for some time. A login prompt will be available as soon as the server is reachable.",
|
||||
"shutdown": "Your server is shutting down and is no longer reachable. Turn it back on and a login prompt will be available as soon as the server is reachable.",
|
||||
"unknown": "Connection with the server has been closed for unknown reasons.",
|
||||
"upgrade_system": "Connection with the server has been closed due to YunoHost upgrade. Waiting for the server to be reachable again…"
|
||||
},
|
||||
"success": "The server is now reachable! You can try to login",
|
||||
"title": "Trying to communicate with the server…"
|
||||
}
|
||||
},
|
||||
"api_error": {
|
||||
"error_message": "Error message:",
|
||||
"help": "You should look for help on <a href=\"https://forum.yunohost.org/\">the forum</a> or <a href=\"https://chat.yunohost.org/\">the chat</a> to fix the situation, or report the bug on <a href=\"https://github.com/YunoHost/issues\">the bugtracker</a>.",
|
||||
"info": "The following information might be useful for the person helping you:",
|
||||
"server_said": "While processing the action the server said:",
|
||||
"sorry": "Really sorry about that.",
|
||||
"view_error": "View error"
|
||||
},
|
||||
"api_errors_titles": {
|
||||
"APIBadRequestError": "YunoHost encountered an error",
|
||||
"APIConnexionError": "YunoHost encountered a connection error",
|
||||
"APIError": "YunoHost encountered an unexpected error",
|
||||
"APIInternalError": "YunoHost encountered an internal error",
|
||||
"APINotFoundError": "YunoHost API could not find a route",
|
||||
"APINotRespondingError": "YunoHost API is not responding"
|
||||
},
|
||||
"api_not_found": "Seems like the web-admin tried to query something that doesn't exist.",
|
||||
"api_not_responding": "The YunoHost API is not responding. Maybe 'yunohost-api' is down or got restarted?",
|
||||
"api_waiting": "Waiting for the server's response…",
|
||||
"app": {
|
||||
"antifeatures": "This app has features you may not like:",
|
||||
"doc": {
|
||||
"about": {
|
||||
"description": "Description",
|
||||
"title": "About"
|
||||
},
|
||||
"admin": {
|
||||
"title": "Admin doc"
|
||||
},
|
||||
"notifications": {
|
||||
"post_install": "Post-install notes",
|
||||
"post_upgrade": "Post-upgrade notes",
|
||||
"title": "Notifications",
|
||||
"understood": "Understood"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"config_panel_error": "An error prevents the configuration panel from being displayed:",
|
||||
"config_panel_error_please_report": "Please report this error to the YunoHost team to get it fixed!",
|
||||
"forum": "Search or ask the forum!",
|
||||
"problem": "A problem with this app?"
|
||||
},
|
||||
"install": {
|
||||
"license": "License: {license}",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"alert": "It seems that the installation went well!\nHere are some notifications that the packager considers important to know.\nYou can read it again in the app info page.",
|
||||
"title": "Post-install notifications for '{name}'"
|
||||
},
|
||||
"pre": {
|
||||
"critical": "The application cannot be installed",
|
||||
"danger": "The installation of the application will most likely lead to issues",
|
||||
"warning": "Things to know before installation"
|
||||
}
|
||||
},
|
||||
"problems": {
|
||||
"arch": "This app can only be installed on specific architectures ({required}) but your server architecture is {current}.",
|
||||
"broken": "This application is broken according to YunoHost's automatic tests and it is likely to break your system! You should probably NOT install it unless you know what you are doing.",
|
||||
"ignore": "I understand that this installation may break my system but i still want to try.",
|
||||
"inprogress": "This application is still experimental (if not explicitly not working) and it is likely to break your system! You should probably NOT install it unless you know what you are doing.",
|
||||
"install": "It is already installed and can't be installed more than once.",
|
||||
"lowquality": "This application may work but is not well-integrated in YunoHost. Some features such as single sign-on and backup/restore might not be available, or it does not respect the good practices.",
|
||||
"ram": "This application requires {required} of RAM to install/upgrade but only {current} is available right now. Even if this app could run, its installation process requires a large amount of RAM so your server may freeze and fail miserably.",
|
||||
"thirdparty": "This application is not part of the official YunoHost catalog, installing 3rd party applications may compromise the integrity and security of your system. You should probably NOT install it unless you know what you are doing.",
|
||||
"version": "This application requires YunoHost >= {required} but your current installed version is {current}, consider first upgrading YunoHost."
|
||||
},
|
||||
"try_demo": "Try the demo",
|
||||
"version": "Current version: {version}"
|
||||
},
|
||||
"installed_version": "Installed version:",
|
||||
"integration": {
|
||||
"archs": "Supported architectures:",
|
||||
"ldap": {
|
||||
"?": "No information about LDAP integration",
|
||||
"false": "Does not use YunoHost accounts to login (LDAP)",
|
||||
"true": "Use YunoHost accounts to login (LDAP)"
|
||||
},
|
||||
"multi_instance": {
|
||||
"false": "Can be installed only once",
|
||||
"true": "Can be installed several times"
|
||||
},
|
||||
"resources": "Typical resource usage: {ram} RAM, {disk} disk",
|
||||
"sso": {
|
||||
"?": "No information about SSO integration",
|
||||
"false": "Single sign-on is not available (SSO)",
|
||||
"true": "Single sign-on is available (SSO)"
|
||||
},
|
||||
"title": "YunoHost integration"
|
||||
},
|
||||
"links": {
|
||||
"admindoc": "Official Admin documentation",
|
||||
"code": "Official code repository",
|
||||
"forum": "Topics about this app on YunoHost's forum",
|
||||
"license": "App license",
|
||||
"package": "YunoHost package repository",
|
||||
"package_license": "YunoHost package license",
|
||||
"title": "Links",
|
||||
"userdoc": "Official User documentation",
|
||||
"website": "Official Website"
|
||||
},
|
||||
"open_this_app": "Open this app",
|
||||
"potential_alternative_to": "Potential alternative to:",
|
||||
"uninstall": {
|
||||
"purge_desc": "Remove the data directory associated with the app (this is usually data you uploaded yourself using the app)."
|
||||
},
|
||||
"upgrade": {
|
||||
"confirm": {
|
||||
"apps": "Apps that will be upgraded",
|
||||
"title": "Confirm app upgrades"
|
||||
},
|
||||
"continue": "Continue to next app",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"alert": "It seems that the upgrade went well!\n Here is some notifications that the packager considers important to know about this upgrade.\nYou can read it again in the app info page.",
|
||||
"title": "Post-upgrade notifications for '{name}'"
|
||||
},
|
||||
"pre": {
|
||||
"alert": "You should check those notifications before upgrading, there might be important stuff to know.",
|
||||
"title": "Be warned!"
|
||||
}
|
||||
},
|
||||
"stop": "Cancel next app upgrades"
|
||||
}
|
||||
},
|
||||
"app_choose_category": "Choose a category",
|
||||
"app_info_access_desc": "Groups / users currently allowed to access this app:",
|
||||
"app_info_change_url_disabled_tooltip": "This feature hasn't been implemented in this app yet",
|
||||
"app_info_changeurl_desc": "Change the access URL of this application (domain and/or path).",
|
||||
"app_info_default_desc": "Redirect domain root to this application ({domain}).",
|
||||
"app_info_uninstall_desc": "Remove this application.",
|
||||
"app_install_custom_no_manifest": "No manifest.json file",
|
||||
"app_install_parameters": "Install settings",
|
||||
"app_make_default": "Make default",
|
||||
"app_manage_label_and_tiles": "Manage label and tiles",
|
||||
"app_show_categories": "Show categories",
|
||||
"app_state_broken": "broken",
|
||||
"app_state_broken_explanation": "This application is currently broken and not installable according to YunoHost's automatic tests",
|
||||
"app_state_highquality_explanation": "This app is well-integrated with YunoHost since at least a year.",
|
||||
"app_state_inprogress": "not yet working",
|
||||
"app_state_inprogress_explanation": "This maintainer of this app declared that this application is not ready yet for production use. BE CAREFUL!",
|
||||
"app_state_lowquality": "low quality",
|
||||
"app_state_lowquality_explanation": "This app may be functional, but may still contain issues, or is not fully integrated with YunoHost, or it does not respect the good practices.",
|
||||
"applications": "Applications",
|
||||
"archive_empty": "Empty archive",
|
||||
"backup": "Backup",
|
||||
"backup_action": "Backup",
|
||||
"backup_content": "Backup content",
|
||||
"backup_create": "Create a backup",
|
||||
"backup_new": "New backup",
|
||||
"begin": "Begin",
|
||||
"both": "Both",
|
||||
"cancel": "Cancel",
|
||||
"catalog": "Catalog",
|
||||
"certificate": "Certificate",
|
||||
"certificate_manage": "Manage SSL certificate",
|
||||
"check": "Check",
|
||||
"close": "Close",
|
||||
"code": "Code",
|
||||
"common": {
|
||||
"firstname": "First name",
|
||||
"lastname": "Last name"
|
||||
},
|
||||
"configuration": "Configuration",
|
||||
"confirm_app_change_url": "Are you sure you want to change the app access URL?",
|
||||
"confirm_app_default": "Are you sure you want to make this app default?",
|
||||
"confirm_app_install": "Are you sure you want to install this application?",
|
||||
"confirm_change_maindomain": "Are you sure you want to change the main domain?",
|
||||
"confirm_delete": "Are you sure you want to delete {name}?",
|
||||
"confirm_firewall_allow": "Are you sure you want to open port {port}? (protocol: {protocol}, connection: {connection})",
|
||||
"confirm_firewall_disallow": "Are you sure you want to close port {port}? (protocol: {protocol}, connection: {connection})",
|
||||
"confirm_group_add_access_permission": "Are you sure you want to grant {perm} access to {name}? Such access significantly increases the attack surface if {name} happens to be a malicious person. You should only do so if you TRUST this person/group.",
|
||||
"confirm_install_app_broken": "WARNING! This application is broken according to YunoHost's automatic tests and it is likely to break your system! You should probably NOT install it unless you know what you are doing. Are you willing to take that risk?",
|
||||
"confirm_install_app_inprogress": "WARNING! This application is still experimental (if not explicitly not working) and it is likely to break your system! You should probably NOT install it unless you know what you are doing. Are you willing to take that risk?",
|
||||
"confirm_install_app_lowquality": "Warning: this application may work but is not well-integrated in YunoHost. Some features such as single sign-on and backup/restore might not be available.",
|
||||
"confirm_install_custom_app": "WARNING! Installing 3rd party applications may compromise the integrity and security of your system. You should probably NOT install it unless you know what you are doing. Are you willing to take that risk?",
|
||||
"confirm_install_domain_root": "Are you sure you want to install this application on '/'? You will not be able to install any other app on {domain}",
|
||||
"confirm_migrations_skip": "Skipping migrations is not recommended. Are you sure you want to do that?",
|
||||
"confirm_postinstall": "You are about to launch the post-installation process on the domain {domain}. It may take a few minutes, *do not interrupt the operation*.",
|
||||
"confirm_reboot_action_reboot": "Are you sure you want to reboot your server?",
|
||||
"confirm_reboot_action_shutdown": "Are you sure you want to shutdown your server?",
|
||||
"confirm_restore": "Are you sure you want to restore {name}?",
|
||||
"confirm_service_restart": "Are you sure you want to restart {name}?",
|
||||
"confirm_service_start": "Are you sure you want to start {name}?",
|
||||
"confirm_service_stop": "Are you sure you want to stop {name}?",
|
||||
"confirm_uninstall": "Are you sure you want to uninstall {name}?",
|
||||
"confirm_update_apps": "Are you sure you want to update all applications?",
|
||||
"confirm_update_specific_app": "Are you sure you want to update {app}?",
|
||||
"confirm_update_system": "Are you sure you want to update all system packages?",
|
||||
"confirm_upnp_disable": "Are you sure you want to disable UPnP?",
|
||||
"confirm_upnp_enable": "Are you sure you want to enable UPnP?",
|
||||
"connection": "Connection",
|
||||
"created_at": "Created at",
|
||||
"custom_app_install": "Install custom app",
|
||||
"day_validity": " Expired | 1 day | {count} days",
|
||||
"dead": "Inactive",
|
||||
"delete": "Delete",
|
||||
"description": "Description",
|
||||
"details": "Details",
|
||||
"details_about": "Show more details about {subject}",
|
||||
"diagnosis": "Diagnosis",
|
||||
"diagnosis_explanation": "The diagnosis feature will attempt to identify common issues on the different aspects of your server to make sure everything runs smoothly. The diagnosis runs automatically twice a day and an email is sent to the administrator if issues are found. Note that some tests may not be relevant if you do not want to use some specific features (for example XMPP) or may fail if you have a complex setup. In such cases, and if you know what you are doing, it is alright to ignore the corresponding issues or warnings.",
|
||||
"diagnosis_first_run": "The diagnosis feature will attempt to identify common issues on the different aspects of your server to make sure everything runs smoothly. Please do not panic if you see a bunch of errors right after setting up your server: it is precisely meant to help you to identify issues and guide you to fix them. The diagnosis will also run automatically twice a day and an email is sent to the administrator if issues are found.",
|
||||
"disable": "Disable",
|
||||
"disabled": "Disabled",
|
||||
"dns": "DNS",
|
||||
"domain": {
|
||||
"add": {
|
||||
"dyn_dns_password": "Domain recovery password",
|
||||
"dyn_dns_password_desc": "This password will allow you to later recover control of the domain if you reinstall your system. If you already registered this domain previously, use your recovery password here to reclaim it.",
|
||||
"from_local": "I want a domain for local usage / test only",
|
||||
"from_local_desc": "If you don't want an \"actual\" public domain name, you can use anything ending in <code>.local</code> or <code>.test</code>. Domain names ending in <code>.local</code> are special in the sense that they may automatically be resolved on the local network, assuming the clients support the Bonjour protocol. Alternatively, you may need to tweak the <code>/etc/hosts</code> file (or equivalent on Windows) on every client that you want to use this domain from, or to configure local DNS entries on your internet router.",
|
||||
"from_registrar": "I want to add a domain I own, or a subdomain",
|
||||
"from_registrar_desc": "You will need to manually configure DNS records on your registrar to finalize this domain's configuration. YunoHost's diagnosis will guide you about what DNS records to configure exactly.",
|
||||
"from_yunohost": "I don't own a domain, I want to register/use a free DynDNS domain provided by the YunoHost project",
|
||||
"from_yunohost_desc": "The YunoHost project maintains a free 'DynDNS' service. It is limited to one such domain per server (though you can also add sub-domains later using the other 'Add a domain I own, or a subdomain' option above). The DNS configuration will be automatically handled by YunoHost. This is ideal when starting up with self-hosting in general and you don't want to invest in a domain name yet. However, on the medium/long-term, we recommend buying your very own domain name to some registrar to have full ownership of your domain."
|
||||
},
|
||||
"cert": {
|
||||
"types": {
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"other": "Other/Unknown",
|
||||
"selfsigned": "Self-signed"
|
||||
},
|
||||
"valid_for": "valid for {days}"
|
||||
},
|
||||
"config": {
|
||||
"edit": "Edit domain configuration",
|
||||
"title": "Domain configuration"
|
||||
},
|
||||
"dns": {
|
||||
"auto_config": "Automatic DNS records configuration",
|
||||
"auto_config_ignored": "ignored, won't be changed by YunoHost unless you check the overwrite option",
|
||||
"auto_config_ok": "Automatic configuration seems to be OK!",
|
||||
"auto_config_zone": "Current DNS zone",
|
||||
"edit": "Edit DNS configuration",
|
||||
"info": "The automatic DNS records configuration is an experimental feature. <br>Consider saving your current DNS zone from your DNS registrar's interface before pushing records from here.",
|
||||
"manual_config": "Suggested DNS records for manual configuration",
|
||||
"methods": {
|
||||
"auto": "Automatic",
|
||||
"handled_in_parent": "Handled in parent domain",
|
||||
"manual": "Manual",
|
||||
"none": "None",
|
||||
"semi_auto": "Semi-automatic"
|
||||
},
|
||||
"push": "Push DNS records to registrar",
|
||||
"push_force": "Overwrite existing records",
|
||||
"push_force_confirm": "Are you sure you want to force push all suggested dns records? Be aware that it may overwrite manual configuration or important default records set by you or your registrar.",
|
||||
"push_force_warning": "It looks like some DNS records that YunoHost would have set are already in the registrar configuration. You can use the overwrite option if you know what you are doing."
|
||||
},
|
||||
"explain": {
|
||||
"main_domain": "The main domain is the domain from which users can connect to the portal (via \"{domain}/yunohost/sso\").<br>Therefore, it is not possible to delete it.<br>If you want to delete \"{domain}\", you will first have to choose or add another domain and set it as the main domain."
|
||||
},
|
||||
"info": {
|
||||
"apps_on_domain": "Apps installed on domain",
|
||||
"certificate_authority": "SSL Certification authority",
|
||||
"dyn_dns_remove_and_unsubscribe": "Also unregister the domain from YunoHost's DynDNS service",
|
||||
"registrar": "Registrar"
|
||||
},
|
||||
"see_parent_domain": "See parent domain",
|
||||
"toggle_subdomains": "Toggle subdomains",
|
||||
"types": {
|
||||
"main_domain": "Main domain"
|
||||
}
|
||||
},
|
||||
"domain_add": "Add domain",
|
||||
"domain_add_dyndns_forbidden": "You have already registered/subscribed to a DynDNS domain from the YunoHost project. By design, this feature is limited to one such domain per server. If you want to add a subdomain of your already subscribed domain, please use the 'Add a domain I own, or a subdomain' option above. If you want to use a completely different domain, you should first remove your existing DynDNS domain. DynDNS domains are good when starting with self-hosting, but on the medium/long term, we recommend buying your very own domain name to some registrar to have full ownership of your domain.",
|
||||
"domain_default_desc": "The default domain is the connection domain where users log in.",
|
||||
"domain_default_longdesc": "This is your default domain.",
|
||||
"domain_delete_forbidden_desc": "You cannot remove '{domain}' since it's the default domain, you need to choose another domain (or <a href='#/domains/add'>add a new one</a>) and set it as the default domain to be able to remove this one.",
|
||||
"domain_delete_longdesc": "Delete this domain",
|
||||
"domain_dns_conf_is_just_a_recommendation": "This section shows you the *recommended* configuration. It does *not* configure the DNS for you. It is your responsibility to configure your DNS zone in your DNS registrar according to this recommendation.",
|
||||
"domain_dns_config": "DNS configuration",
|
||||
"domain_dns_longdesc": "View DNS configuration",
|
||||
"domain_dns_push_failed_to_authenticate": "Failed to authenticate on registrar's API. Most probably the <a href='#/domains/{domain}/config'>credentials</a> are incorrect? (Error: {error})",
|
||||
"domain_dns_push_managed_in_parent_domain": "The automatic DNS records feature is managed in the parent domain <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
|
||||
"domain_dns_push_not_applicable": "The automatic DNS records feature is not applicable to domain {domain},<br> You should manually configure your DNS records following the <a href='https://yunohost.org/dns'>documentation</a> and the suggested configuration below.",
|
||||
"domain_name": "Domain name",
|
||||
"domains": "Domains",
|
||||
"download": "Download",
|
||||
"enable": "Enable",
|
||||
"enabled": "Enabled",
|
||||
"error": "Error",
|
||||
"error_connection_interrupted": "The server closed the connection instead of answering it. Has nginx or the yunohost-api been restarted or stopped for some reason?",
|
||||
"error_modify_something": "You should modify something",
|
||||
"error_server_unexpected": "Unexpected server error",
|
||||
"everything_good": "Everything okay!",
|
||||
"experimental": "Experimental",
|
||||
"experimental_warning": "Warning: this feature is experimental and not considered stable, you shouldn't be using it except if you know what you are doing.",
|
||||
"firewall": "Firewall",
|
||||
"footer": {
|
||||
"documentation": "Documentation",
|
||||
"donate": "Donate",
|
||||
"help": "Need help?"
|
||||
},
|
||||
"footer_version": "Powered by <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
|
||||
"form_errors": {
|
||||
"alpha": "Value must be alphabetical characters only.",
|
||||
"alphalownumdot_": "Value must be lower-case alphanumeric, dots and underscore characters only.",
|
||||
"appRepoUrl": "YunoHost app repository URLs are expected to look like https://domain.tld/path/to/repo_ynh",
|
||||
"between": "Value must be between {min} and {max}.",
|
||||
"domain": "Invalid domain name: Must be lower-case alphanumeric, dot and dash characters only",
|
||||
"dynDomain": "Invalid domain name: Must be lower-case alphanumeric and dash characters only",
|
||||
"email": "Invalid email: must be alphanumeric and <code>_.-</code> characters only (e.g. someone@example.com, s0me-1@example.com)",
|
||||
"emailForward": "Invalid email forward: must be alphanumeric and <code>_.-+</code> characters only (e.g. someone+tag@example.com, s0me-1+tag@example.com)",
|
||||
"invalid_form": "The form contains some errors.",
|
||||
"maxValue": "Value must be a number equal or lesser than {max}.",
|
||||
"minValue": "Value must be a number equal or greater than {min}.",
|
||||
"name": "Names may not includes special characters except <code> ,.'-</code>",
|
||||
"notInUsers": "The user '{value}' already exists.",
|
||||
"number": "Value must be a number.",
|
||||
"passwordLenght": "Password must be at least 8 characters long.",
|
||||
"passwordMatch": "Passwords don't match.",
|
||||
"pattern": "{type}",
|
||||
"remote": "{message}",
|
||||
"required": "Field is required."
|
||||
},
|
||||
"form_input_example": "Example: {example}",
|
||||
"from_to": "from {0} to {1}",
|
||||
"go_back": "Go back",
|
||||
"good_practices_about_admin_password": "You are now about to define a new admin password. The password should be at least 8 characters - though it is good practice to use longer password (i.e. a passphrase) and/or to use various kind of characters (uppercase, lowercase, digits and special characters).",
|
||||
"good_practices_about_user_password": "You are now about to define a new user password. The password should be at least 8 characters - though it is good practice to use longer password (i.e. a passphrase) and/or to use various kind of characters (uppercase, lowercase, digits and special characters).",
|
||||
"group": "Group",
|
||||
"group_add_member": "Add a user",
|
||||
"group_add_permission": "Add a permission",
|
||||
"group_admins": "Admins",
|
||||
"group_all_users": "All users",
|
||||
"group_explain_admins": "This is a special group corresponding to admin users. Users in this group can access YunoHost's webadmin, connect to the server with SSH and use the `sudo` command. They will also receive emails sent to root@, admin@ and admins@, such as the diagnosis notifications. You should only add people you absolutely trust in this group!",
|
||||
"group_explain_all_users": "This is a special group containing all users accounts on the server",
|
||||
"group_explain_visitors": "This is a special group representing anonymous visitors",
|
||||
"group_explain_visitors_needed_for_external_client": "Be careful that you need to keep some applications allowed to visitors if you intend to use them with external clients. For example, this is the case for Nextcloud if you intend to use a synchronization client on your smartphone or desktop computer.",
|
||||
"group_format_name_help": "You can use alpha-numeric chars and underscore",
|
||||
"group_name": "Group name",
|
||||
"group_new": "New group",
|
||||
"group_specific_permissions": "Individual user permissions",
|
||||
"group_visitors": "Visitors",
|
||||
"groups_and_permissions": "Groups and permissions",
|
||||
"groups_and_permissions_manage": "Manage groups and permissions",
|
||||
"history": {
|
||||
"is_empty": "Nothing in history for now.",
|
||||
"last_action": "Last action:",
|
||||
"methods": {
|
||||
"DELETE": "delete",
|
||||
"GET": "read",
|
||||
"POST": "create/execute",
|
||||
"PUT": "modify"
|
||||
},
|
||||
"title": "History"
|
||||
},
|
||||
"home": "Home",
|
||||
"hook_adminjs_group_configuration": "System configurations",
|
||||
"hook_conf_ldap": "User database",
|
||||
"hook_conf_manually_modified_files": "Manually modified configurations",
|
||||
"hook_conf_ynh_certs": "SSL certificates",
|
||||
"hook_conf_ynh_settings": "YunoHost configurations",
|
||||
"hook_data_home": "User data",
|
||||
"hook_data_home_desc": "User data located in /home/USER",
|
||||
"hook_data_mail": "Mail",
|
||||
"hook_data_mail_desc": "Raw emails stored on the server",
|
||||
"hook_data_xmpp": "XMPP data",
|
||||
"hook_data_xmpp_desc": "Room and user configurations, file uploads",
|
||||
"human_routes": {
|
||||
"apps": {
|
||||
"action_config": "Run action '{action}' of app '{name}' configuration",
|
||||
"change_label": "Change label of '{prevName}' for '{nextName}'",
|
||||
"change_url": "Change access URL of '{name}'",
|
||||
"dismiss_notification": "Dismiss notification for '{name}'",
|
||||
"install": "Install app '{name}'",
|
||||
"set_default": "Redirect '{domain}' domain root to '{name}'",
|
||||
"uninstall": "Uninstall app '{name}'",
|
||||
"update_config": "Update panel '{id}' of app '{name}' configuration"
|
||||
},
|
||||
"backups": {
|
||||
"create": "Create a backup",
|
||||
"delete": "Delete backup '{name}'",
|
||||
"restore": "Restore backup '{name}'"
|
||||
},
|
||||
"diagnosis": {
|
||||
"ignore": {
|
||||
"error": "Ignore an error",
|
||||
"warning": "Ignore a warning"
|
||||
},
|
||||
"run": "Run the diagnosis",
|
||||
"run_specific": "Run '{description}' diagnosis",
|
||||
"unignore": {
|
||||
"error": "Unignore an error",
|
||||
"warning": "Unignore a warning"
|
||||
}
|
||||
},
|
||||
"domains": {
|
||||
"add": "Add domain '{name}'",
|
||||
"cert_install": "Install certificate for '{name}'",
|
||||
"cert_renew": "Renew certificate for '{name}'",
|
||||
"delete": "Delete domain '{name}'",
|
||||
"push_dns_changes": "Push DNS records to registrar for '{name}'",
|
||||
"set_default": "Set '{name}' as default domain",
|
||||
"update_config": "Update panel '{id}' of domain '{name}' configuration"
|
||||
},
|
||||
"firewall": {
|
||||
"ports": "{action} port {port} ({protocol}, {connection})",
|
||||
"upnp": "{action} UPnP"
|
||||
},
|
||||
"groups": {
|
||||
"add": "Add '{user}' to group '{name}'",
|
||||
"create": "Create group '{name}'",
|
||||
"delete": "Delete group '{name}'",
|
||||
"remove": "Remove '{user}' from group '{name}'"
|
||||
},
|
||||
"migrations": {
|
||||
"run": "Run migrations",
|
||||
"skip": "Skip migrations"
|
||||
},
|
||||
"permissions": {
|
||||
"add": "Allow '{name}' to access '{perm}'",
|
||||
"remove": "Remove '{name}' access to '{perm}'"
|
||||
},
|
||||
"postinstall": "Run the post-install",
|
||||
"reboot": "Reboot the server",
|
||||
"reconnecting": "Reconnecting",
|
||||
"services": {
|
||||
"restart": "Restart the service '{name}'",
|
||||
"start": "Start the service '{name}'",
|
||||
"stop": "Stop the service '{name}'"
|
||||
},
|
||||
"settings": {
|
||||
"update": "Update '{panel}' global settings"
|
||||
},
|
||||
"share_logs": "Generate link for log '{name}'",
|
||||
"shutdown": "Shutdown the server",
|
||||
"update": "Check for updates",
|
||||
"upgrade": {
|
||||
"app": "Upgrade '{app}' app",
|
||||
"apps": "Upgrade all apps",
|
||||
"system": "Upgrade the system"
|
||||
},
|
||||
"users": {
|
||||
"create": "Create user '{name}'",
|
||||
"delete": "Delete user '{name}'",
|
||||
"update": "Update user '{name}'"
|
||||
}
|
||||
},
|
||||
"id": "ID",
|
||||
"ignore": "Ignore",
|
||||
"ignored": "{count} ignored",
|
||||
"important_yunohost_upgrade": "A major YunoHost upgrade is available. It is heavily recommended to carefully read the release note(s) on the forum before upgrading : <a href='https://forum.yunohost.org/tag/ynh_release'>Browse the release notes on the forum</a>",
|
||||
"infos": "Info",
|
||||
"install": "Install",
|
||||
"install_name": "Install {id}",
|
||||
"install_time": "Install time",
|
||||
"installation_complete": "Installation complete",
|
||||
"installed": "Installed",
|
||||
"ipv4": "IPv4",
|
||||
"ipv6": "IPv6",
|
||||
"issues": "{count} issues",
|
||||
"items": {
|
||||
"apps": "no apps | app | {c} apps",
|
||||
"backups": "no backups | backup | {c} backups",
|
||||
"domains": "no domains | domain | {c} domains",
|
||||
"groups": "no groups | group | {c} groups",
|
||||
"installed_apps": "no installed apps | installed app | {c} installed apps",
|
||||
"logs": "no logs | log | {c} logs",
|
||||
"permissions": "no permissions | permission | {c} permissions",
|
||||
"services": "no services | service | {c} services",
|
||||
"users": "no users | user | {c} users"
|
||||
},
|
||||
"items_verbose_count": "There are {items}. | There is 1 {items}. | There are {items}.",
|
||||
"items_verbose_items_left": "There are {items} left. | There is 1 {items} left. | There are {items} left.",
|
||||
"label": "Label",
|
||||
"label_for_manifestname": "Label for {name}",
|
||||
"label_for_manifestname_help": "This is the name displayed in the user portal. This can be changed later.",
|
||||
"last_ran": "Last time ran:",
|
||||
"license": "License",
|
||||
"local_archives": "Local archives",
|
||||
"login": "Login",
|
||||
"logout": "Logout",
|
||||
"logs": "Logs",
|
||||
"logs_access": "List of access and bans",
|
||||
"logs_app": "Apps logs",
|
||||
"logs_context": "Context",
|
||||
"logs_ended_at": "End",
|
||||
"logs_error": "Error",
|
||||
"logs_history": "History of command run on system",
|
||||
"logs_more": "Display more lines",
|
||||
"logs_no_logs_registered": "No log registered for this category",
|
||||
"logs_operation": "Operations made on system with YunoHost",
|
||||
"logs_package": "Debian packages management history",
|
||||
"logs_path": "Path",
|
||||
"logs_service": "Services logs",
|
||||
"logs_share_with_yunopaste": "Share logs with YunoPaste",
|
||||
"logs_started_at": "Start",
|
||||
"logs_suboperations": "Sub-operations",
|
||||
"logs_system": "Kernel logs and others low level events",
|
||||
"mailbox_quota_description": "Set a storage size limit for email content.<br>Set to 0 to disable.",
|
||||
"mailbox_quota_example": "700M is a CD, 4700M is a DVD",
|
||||
"mailbox_quota_placeholder": "Set to 0 to disable.",
|
||||
"manage_apps": "Manage apps",
|
||||
"manage_domains": "Manage domains",
|
||||
"manage_groups": "Manage groups",
|
||||
"manage_users": "Manage users",
|
||||
"migrations": "Migrations",
|
||||
"migrations_disclaimer_check_message": "I read and understood this disclaimer",
|
||||
"migrations_disclaimer_not_checked": "This migration requires you to acknowledge its disclaimer before running it.",
|
||||
"migrations_done": "Previous migrations",
|
||||
"migrations_no_done": "No previous migrations",
|
||||
"migrations_no_pending": "No pending migrations",
|
||||
"migrations_pending": "Pending migrations",
|
||||
"multi_instance": "Can be installed several times",
|
||||
"next": "Next",
|
||||
"no": "No",
|
||||
"nobody": "Nobody",
|
||||
"ok": "OK",
|
||||
"only_decent_quality_apps": "Only decent quality apps",
|
||||
"only_highquality_apps": "Only high-quality apps",
|
||||
"only_working_apps": "Only working apps",
|
||||
"open": "Open",
|
||||
"operation_failed_explanation": "This operation failed! Really sorry about that :( You can try to <a href='https://yunohost.org/help'>ask for help</a>. Please provide *the full log* of the operation to the people helping you. You can do so by clicking on the 'Share with Yunopaste' green button. When sharing the logs, YunoHost will automatically attempt to anonymize private data like domain names and IPs.",
|
||||
"operations": "Operations",
|
||||
"orphaned": "Not maintained",
|
||||
"orphaned_details": "This app has not been maintained for quite some time. It may still be working, but won't receive any upgrade until somebody volunteers to take care of it. Feel free to contribute to revive it!",
|
||||
"others": "Others",
|
||||
"password": "Password",
|
||||
"password_confirmation": "Password confirmation",
|
||||
"path": "Path",
|
||||
"pending_migrations": "There are some pending migrations waiting to be run. Please go to <a href='#/tools/migrations'>Tools > Migrations</a> to run them.",
|
||||
"perform": "Perform",
|
||||
"permission_corresponding_url": "Corresponding URL",
|
||||
"permission_main": "Main label",
|
||||
"permission_show_tile_enabled": "Visible as tile in user portal",
|
||||
"permissions": "Permissions",
|
||||
"placeholder": {
|
||||
"domain": "my-domain.com",
|
||||
"file": "Browse a file or drag and drop it",
|
||||
"firstname": "Sam",
|
||||
"fullname": "Sam Smith",
|
||||
"groupname": "My group name",
|
||||
"lastname": "Smith",
|
||||
"username": "samsmith"
|
||||
},
|
||||
"port": "Port",
|
||||
"ports": "Ports",
|
||||
"postinstall": {
|
||||
"force": "Force the post-install",
|
||||
"title": "Postinstall",
|
||||
"user": {
|
||||
"first_user_help": "This user will be granted admin privileges and will be allowed to connect to this administration interface as well as directly to the server via SSH.\nAs it is a regular user, you will also be able to connect to the user portal (SSO) with its credentials.\nOnce the post-installation is complete, you will be able to create other admin users by adding them into the 'admins' group.",
|
||||
"title": "Create first admin user"
|
||||
}
|
||||
},
|
||||
"postinstall_domain": "This is the first domain name linked to your YunoHost server, but also the one which will be used by your server's users to access the authentication portal. Accordingly, it will be visible by everyone, so choose it carefully.",
|
||||
"postinstall_intro_1": "Congratulations! YunoHost has been successfully installed.",
|
||||
"postinstall_intro_2": "Two more configuration steps are required to activate you server's services.",
|
||||
"postinstall_intro_3": "You can obtain more information by visiting the <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>appropriate documentation page</a>",
|
||||
"postinstall_set_domain": "Set main domain",
|
||||
"previous": "Previous",
|
||||
"protocol": "Protocol",
|
||||
"purge_user_data_checkbox": "Purge {name}'s data? (This will remove the content of its home and mail directories.)",
|
||||
"purge_user_data_warning": "Purging user's data is not reversible. Be sure you know what you're doing!",
|
||||
"readme": "Readme",
|
||||
"rerun_diagnosis": "Rerun diagnosis",
|
||||
"restart": "Restart",
|
||||
"restore": "Restore",
|
||||
"retry": "Retry",
|
||||
"run": "Run",
|
||||
"run_first_diagnosis": "Run initial diagnosis",
|
||||
"running": "Running",
|
||||
"save": "Save",
|
||||
"search": {
|
||||
"for": "Search for {items}…",
|
||||
"not_found": "There are {items} matching your criteria. | There is 1 {items} matching your criteria. | There are {items} matching your criteria."
|
||||
},
|
||||
"select_all": "Select all",
|
||||
"select_none": "Select none",
|
||||
"service_start_on_boot": "Start on boot",
|
||||
"services": "Services",
|
||||
"set_default": "Set default",
|
||||
"since": "since",
|
||||
"size": "Size",
|
||||
"skip": "Skip",
|
||||
"start": "Start",
|
||||
"status": "Status",
|
||||
"stop": "Stop",
|
||||
"system": "System",
|
||||
"system_apps_nothing": "All apps are up to date!",
|
||||
"system_packages_nothing": "All system packages are up to date!",
|
||||
"system_update": "System update",
|
||||
"system_upgrade_all_applications_btn": "Upgrade all applications",
|
||||
"system_upgrade_all_packages_btn": "Upgrade all packages",
|
||||
"system_upgrade_btn": "Upgrade",
|
||||
"tcp": "TCP",
|
||||
"text_selection_is_disabled": "Text selection is disabled. If you want to share this log, please share the *full* log with the 'Share with Yunopaste' button.<br/><small>Or if you really really want to select text, press these keys: ↓↓↑↑.</small>",
|
||||
"tip_about_user_email": "Users are created with an associated email address (and XMPP account) with the format username@domain.tld. Additional email aliases and email forwards can later be added by the admin and the user.",
|
||||
"tools": "Tools",
|
||||
"tools_reboot": "Reboot your server",
|
||||
"tools_reboot_btn": "Reboot",
|
||||
"tools_shutdown": "Shutdown your server",
|
||||
"tools_shutdown_btn": "Shutdown",
|
||||
"tools_shutdown_reboot": "Shutdown/Reboot",
|
||||
"tools_webadmin": {
|
||||
"cache": "Cache",
|
||||
"cache_description": "Consider disabling the cache if you plan on working with the CLI while also navigating in this web-admin.",
|
||||
"experimental": "Experimental mode",
|
||||
"experimental_description": "Gives you access to experimental features. These are considered unstable and may break your system.<br> Enable this only if you know what you are doing.",
|
||||
"fallback_language": "Fallback language",
|
||||
"fallback_language_description": "Language that will be used in case the translation is not available in the main language.",
|
||||
"language": "Language",
|
||||
"theme": "Toggle dark mode",
|
||||
"transitions": "Page transition animations"
|
||||
},
|
||||
"tools_webadmin_settings": "Web-admin settings",
|
||||
"tools_yunohost_settings": "YunoHost settings",
|
||||
"traceback": "Traceback",
|
||||
"udp": "UDP",
|
||||
"unauthorized": "Unauthorized",
|
||||
"unignore": "Unignore",
|
||||
"uninstall": "Uninstall",
|
||||
"unknown": "Unknown",
|
||||
"upnp": "UPnP",
|
||||
"upnp_disabled": "UPnP is disabled.",
|
||||
"upnp_enabled": "UPnP is enabled.",
|
||||
"url": "URL",
|
||||
"user_email": "Email",
|
||||
"user_emailaliases": "Mail aliases",
|
||||
"user_emailaliases_add": "Add a mail alias",
|
||||
"user_emailforward": "Mail forward",
|
||||
"user_emailforward_add": "Add a mail forward",
|
||||
"user_fullname": "Full name",
|
||||
"user_interface_link": "User interface",
|
||||
"user_mailbox_quota": "Mailbox quota",
|
||||
"user_mailbox_use": "Mailbox used space",
|
||||
"user_new_forward": "newforward@myforeigndomain.org",
|
||||
"user_username": "Username",
|
||||
"user_username_edit": "Edit {name}’s account",
|
||||
"users": "Users",
|
||||
"users_export": "Export users",
|
||||
"users_import": "Import users",
|
||||
"users_import_confirm_destructive": "Are you sure you want to delete users that are not present in this file?",
|
||||
"users_import_csv_file": "CSV File",
|
||||
"users_import_csv_file_desc": "The CSV file should be in UTF-8 and with columns username, password, groups, email and quota. For an example import CSV file, you can <a href='/yunohost/api/users/export' target='_BLANK'>export your users in CSV file</a> and change the file.",
|
||||
"users_import_delete": "Delete non listed users",
|
||||
"users_import_delete_desc": "If checked, all existing users that are not in the CSV file will be deleted (and purged).",
|
||||
"users_import_delete_others": "Delete unlisted users",
|
||||
"users_import_update": "Update existing users",
|
||||
"users_import_update_desc": "If checked, all existing users contained in the CSV file will be updated with the new value",
|
||||
"users_new": "New user",
|
||||
"users_no": "No users.",
|
||||
"version": "Version",
|
||||
"warnings": "{count} warnings",
|
||||
"words": {
|
||||
"browse": "Browse",
|
||||
"collapse": "Collapse",
|
||||
"default": "Default",
|
||||
"link": "Link",
|
||||
"none": "None",
|
||||
"separator": ", ",
|
||||
"valid": "Valid"
|
||||
},
|
||||
"wrong_password_or_username": "Wrong password or username",
|
||||
"yes": "Yes",
|
||||
"yunohost_admin": "YunoHost Admin"
|
||||
}
|
267
app/src/i18n/locales/eo.json
Normal file
|
@ -0,0 +1,267 @@
|
|||
{
|
||||
"password": "Pasvorto",
|
||||
"login": "Ensaluti",
|
||||
"logout": "Elsaluti",
|
||||
"error_connection_interrupted": "La servilo fermis la konekton anstataŭ respondi al ĝi. Ĉu nginx aŭ la yunohost-api estis restartigitaj aŭ haltigitaj pro iu kialo?",
|
||||
"license": "Permesilo",
|
||||
"app_state_inprogress_explanation": "Ĉi tiu subtenanto de ĉi tiu app deklaris, ke ĉi tiu aplikaĵo ankoraŭ ne estas preta por produktado. ESPERANTU!",
|
||||
"app_state_highquality_explanation": "Ĉi tiu programo estas bone integrita kun YunoHost ekde almenaŭ unu jaro.",
|
||||
"good_practices_about_user_password": "Vi nun estas por difini novan uzantan pasvorton. La pasvorto devas esti almenaŭ 8 signoj - kvankam estas bone praktiki uzi pli longan pasvorton (t.e. pasfrazon) kaj / aŭ uzi diversajn specojn de signoj (majuskloj, minuskloj, ciferoj kaj specialaj signoj).",
|
||||
"from_to": "de {0} al {1}",
|
||||
"hook_data_home": "Uzantaj datumoj",
|
||||
"app_info_uninstall_desc": "Forigu ĉi tiun aplikon.",
|
||||
"both": "Ambaŭ",
|
||||
"connection": "Ligo",
|
||||
"confirm_install_app_lowquality": "Averto: ĉi tiu aplikaĵo povas funkcii, sed ne bone integras en YunoHost. Iuj funkcioj kiel ekzemple aliĝilo kaj sekurkopio/restarigo eble ne haveblos.",
|
||||
"all_apps": "Ĉiuj programoj",
|
||||
"delete": "Forigi",
|
||||
"download": "Elŝuti",
|
||||
"confirm_restore": "Ĉu vi certas, ke vi volas restarigi {name} ?",
|
||||
"backup_new": "Nova sekurkopio",
|
||||
"confirm_migrations_skip": "Forlasi migradojn ne rekomendas. Ĉu vi certas, ke vi volas fari tion ?",
|
||||
"custom_app_install": "Instalu kutimon",
|
||||
"firewall": "Fajroŝirmilo",
|
||||
"home": "Hejmo",
|
||||
"confirm_reboot_action_shutdown": "Ĉu vi certas, ke vi volas fermi vian servilon ?",
|
||||
"confirm_update_system": "Ĉu vi certas, ke vi volas ĝisdatigi ĉiujn sistemajn pakaĵojn ?",
|
||||
"installation_complete": "Kompleta instalado",
|
||||
"confirm_firewall_allow": "Ĉu vi certas, ke vi volas malfermi havenojn {port} ? (Protokoloj {protocol}, konekto: {connection})",
|
||||
"confirm_postinstall": "Vi tuj lanĉos la postinstalaran procezon sur la domajno {domain}. Eble daŭras kelkajn minutojn, *ne interrompu la operacion*.",
|
||||
"description": "priskribo",
|
||||
"label_for_manifestname": "Etikedo por {name}",
|
||||
"diagnosis": "Diagnozo",
|
||||
"confirm_install_app_inprogress": "AVERTO! Ĉi tiu aplikaĵo estas ankoraŭ eksperimenta (se ne eksplicite ne funkcias) kaj verŝajne rompos vian sistemon! Vi probable ne devas instali ĝin krom se vi scias kion vi faras. Ĉu vi pretas riski tion ?",
|
||||
"install_time": "Dato de instalado",
|
||||
"confirm_upnp_disable": "Ĉu vi certas, ke vi volas malebligi UPnP ?",
|
||||
"confirm_change_maindomain": "Ĉu vi certas, ke vi volas ŝanĝi la ĉefan domajnon ?",
|
||||
"app_install_custom_no_manifest": "Neniu manifest.json dosiero",
|
||||
"hook_conf_ynh_certs": "SSL-atestiloj",
|
||||
"label": "vortiga",
|
||||
"confirm_reboot_action_reboot": "Ĉu vi certas, ke vi volas reagordi vian servilon ?",
|
||||
"confirm_upnp_enable": "Ĉu vi certas, ke vi volas ebligi UPnP ?",
|
||||
"api_not_responding": "La API YunoHost ne respondas. Eble 'yunohost-api' estas malaperigita aŭ rekomencita?",
|
||||
"footer_version": "Funkciigita de <a href='https://yunohost.org'> YunoHost </a> {version} ({repo}).",
|
||||
"close": "Proksimaj",
|
||||
"app_info_change_url_disabled_tooltip": "Ĉi tiu funkcio ankoraŭ ne estis efektivigita en ĉi tiu app",
|
||||
"confirm_delete": "Ĉu vi certas, ke vi volas forigi {name} ?",
|
||||
"domain_dns_conf_is_just_a_recommendation": "Ĉi tiu paĝo montras al vi la *rekomenditan* agordon. Ĝi *ne* agordas la DNS por vi. Estas via respondeco agordi vian DNS-zonon en via DNS-registristo laŭ ĉi tiu rekomendo.",
|
||||
"hook_data_home_desc": "Datumoj pri uzanto lokitaj en /home/USER",
|
||||
"confirm_service_stop": "Ĉu vi certas, ke vi volas ĉesi {name} ?",
|
||||
"mailbox_quota_placeholder": "Lasu malplenan aŭ agordi al 0 por malaktivigi.",
|
||||
"domain_default_desc": "La defaŭlta domajno estas la konekta domajno, kie uzantoj ensalutas.",
|
||||
"domain_dns_longdesc": "Vidu DNS-agordon",
|
||||
"confirm_update_apps": "Ĉu vi certas, ke vi volas ĝisdatigi ĉiujn aplikojn ?",
|
||||
"confirm_install_custom_app": "AVERTO! Instali aplikojn de tria partio eble kompromitos la integrecon kaj sekurecon de via sistemo. Vi probable ne devas instali ĝin krom se vi scias kion vi faras. Ĉu vi pretas riski tion?",
|
||||
"add": "Aldoni",
|
||||
"confirm_update_specific_app": "Ĉu vi certas, ke vi volas ĝisdatigi {app} ?",
|
||||
"confirm_service_start": "Ĉu vi certas, ke vi volas komenci {name} ?",
|
||||
"local_archives": "Lokaj arkivoj",
|
||||
"app_make_default": "Faru defaŭlta",
|
||||
"app_info_default_desc": "Redirektu domajn radikon al ĉi tiu apliko ({domain}).",
|
||||
"hook_adminjs_group_configuration": "Sistemaj agordoj",
|
||||
"error_server_unexpected": "Neatendita erara servilo",
|
||||
"domain_dns_config": "Agordo DNS",
|
||||
"form_input_example": "Ekzemplo: {example}",
|
||||
"app_info_access_desc": "Grupoj/uzantoj nuntempe rajtas aliri ĉi tiun programon:",
|
||||
"install_name": "Instalu {id}",
|
||||
"administration_password": "Administra pasvorto",
|
||||
"app_info_changeurl_desc": "Ŝanĝu la aliron URL de ĉi tiu aplikaĵo (domajno kaj/aŭ vojo).",
|
||||
"hook_data_mail": "Poŝto",
|
||||
"backup_create": "Krei sekurkopion",
|
||||
"confirm_uninstall": "Ĉu vi certas, ke vi volas malinstali {name} ?",
|
||||
"confirm_firewall_disallow": "Ĉu vi certas, ke vi volas fermi havenon {port} ? (protokolo: {protocol}, rilato: {connection})",
|
||||
"created_at": "Kreita ĉe",
|
||||
"confirm_app_change_url": "Ĉu vi certas, ke vi volas ŝanĝi la URL-aliron de la aplikaĵo?",
|
||||
"ipv6": "IPv6",
|
||||
"begin": "Komencu",
|
||||
"disable": "Malŝalti",
|
||||
"domain_default_longdesc": "Jen via defaŭlta domajno.",
|
||||
"hook_data_mail_desc": "Krudaj retpoŝtoj konservitaj en la servilo",
|
||||
"action": "Agado",
|
||||
"good_practices_about_admin_password": "Vi nun estas difinonta novan administran pasvorton. La pasvorto devas esti almenaŭ 8 signoj - kvankam estas bone praktiki uzi pli longan pasvorton (t.e. pasfrazon) kaj / aŭ uzi diversajn specojn de signoj (majuskloj, minuskloj, ciferoj kaj specialaj signoj).",
|
||||
"installed": "Instalita",
|
||||
"ok": "bone",
|
||||
"experimental_warning": "Averto: ĉi tiu funkcio estas eksperimenta kaj ne konsideras stabila, vi ne devas uzi ĝin krom se vi scias kion vi faras.",
|
||||
"hook_conf_ldap": "Uzanta datumbazo",
|
||||
"install": "Instalu",
|
||||
"confirm_install_domain_root": "Vi ne povos instali iun alian app en {domain}. Daŭrigi ?",
|
||||
"confirm_app_default": "Ĉu vi certas, ke vi volas igi ĉi tiun programon defaŭlta?",
|
||||
"error_modify_something": "Vi devus modifi ion",
|
||||
"applications": "aplikoj",
|
||||
"domain_add": "Aldoni domajnon",
|
||||
"domain_delete_longdesc": "Forigi ĉi tiun domajnon",
|
||||
"domain_name": "Domajna nomo",
|
||||
"backup_action": "Rezerva",
|
||||
"mailbox_quota_description": "Ekzemple, 700M estas KD, 4700M estas DVD.",
|
||||
"enable": "Ebligi",
|
||||
"backup_content": "Rezerva enhavo",
|
||||
"backup": "Rezerva",
|
||||
"domains": "Domajnoj",
|
||||
"ipv4": "IPv4",
|
||||
"app_state_inprogress": "ankoraŭ ne funkciante",
|
||||
"dns": "DNS",
|
||||
"archive_empty": "Malplena arkivo",
|
||||
"check": "Kontrolu",
|
||||
"infos": "Informoj",
|
||||
"id": "ID",
|
||||
"logs_access": "Listo de aliroj kaj malpermesoj",
|
||||
"only_highquality_apps": "Nur altkvalitaj programoj",
|
||||
"only_decent_quality_apps": "Nur deca kvalito apps",
|
||||
"orphaned": "Ne konservita",
|
||||
"migrations_pending": "Pendaj migradoj",
|
||||
"next": "Sekva",
|
||||
"orphaned_details": "Ĉi tiu app ne estis konservita antaŭ tre tempo. Ĝi eble ankoraŭ funkcios, sed ne ricevos ian ĝisdatigon ĝis iu volontulas prizorgi ĝin. Bonvolu kontribui revivigi ĝin!",
|
||||
"user_email": "Retpoŝto",
|
||||
"postinstall_intro_1": "Gratulojn! YunoHost estis sukcese instalita.",
|
||||
"uninstall": "Malinstali",
|
||||
"users_new": "Nova uzanto",
|
||||
"users": "Uzantoj",
|
||||
"system_apps_nothing": "Ĉiuj aplikoj estas ĝisdatigitaj!",
|
||||
"version": "versio",
|
||||
"yes": "Jes",
|
||||
"skip": "Salti",
|
||||
"upnp_disabled": "UPnP estas malebligita.",
|
||||
"logs_no_logs_registered": "Neniu registro registrita por ĉi tiu kategorio",
|
||||
"purge_user_data_warning": "Purgaj datumoj de uzanto ne estas reverteblaj. Nepre vi scias, kion vi faras!",
|
||||
"select_all": "Elekti ĉiujn",
|
||||
"tcp": "TCP",
|
||||
"system_upgrade_btn": "Altgradigon",
|
||||
"certificate_manage": "Administri SSL-atestilon",
|
||||
"logs_operation": "Operacioj faritaj sur sistemo kun YunoHost",
|
||||
"system_packages_nothing": "Ĉiuj sistemaj pakoj estas ĝisdatigitaj !",
|
||||
"system_upgrade_all_applications_btn": "Ĝisdatigu ĉiujn aplikojn",
|
||||
"system_update": "Sistema ĝisdatigo",
|
||||
"unauthorized": "Ne rajtigita",
|
||||
"tools_shutdown_reboot": "Ŝalti/Rekomenci",
|
||||
"logs_started_at": "Komencu",
|
||||
"postinstall_domain": "Ĉi tiu estas la unua domajna nomo ligita al via servilo YunoHost, sed ankaŭ la uzata de la uzantoj de via servilo por aliri la aŭtentikan portalon. Laŭe ĝi estos videbla de ĉiuj, do elektu ĝin zorgeme.",
|
||||
"users_no": "Neniuj uzantoj.",
|
||||
"tools_shutdown": "Enŝaltu vian servilon",
|
||||
"upnp_enabled": "UPnP estas ebligita.",
|
||||
"tools_reboot": "Reklamu vian servilon",
|
||||
"manage_domains": "Administri domajnojn",
|
||||
"user_username_edit": "Redakti {name} konton",
|
||||
"logs_package": "Historio pri administrado de pakoj Debian",
|
||||
"user_new_forward": "novjora@myforeigndomain.org",
|
||||
"logs_share_with_yunopaste": "Kunhavigu kun YunoPaste",
|
||||
"certificate": "Atestilo",
|
||||
"logs_system": "Kernel ŝtipoj kaj aliaj malaltnivelaj eventoj",
|
||||
"user_emailaliases": "Poŝti alias",
|
||||
"ports": "havenoj",
|
||||
"system": "Sistemo",
|
||||
"tools_reboot_btn": "Rekomencu",
|
||||
"logs_history": "Historio de komando funkcianta sur sistemo",
|
||||
"previous": "Antaŭa",
|
||||
"manage_users": "Administri uzantojn",
|
||||
"logs_service": "Servoj ŝtipoj",
|
||||
"multi_instance": "Povas esti instalita plurajn fojojn",
|
||||
"user_mailbox_quota": "Poŝta kesto",
|
||||
"operations": "Operacioj",
|
||||
"migrations_done": "Antaŭaj migradoj",
|
||||
"service_start_on_boot": "Komencu je ekkuro",
|
||||
"migrations_no_pending": "Neniuj pritraktataj migradoj",
|
||||
"logs_more": "Vidigu pliajn liniojn",
|
||||
"logs_error": "Eraro",
|
||||
"no": "Ne",
|
||||
"tools_shutdown_btn": "Fermito",
|
||||
"purge_user_data_checkbox": "Purigi datumojn de {name}? (Ĉi tio forigos la enhavon de ĝiaj hejmaj kaj poŝtaj adresaroj.)",
|
||||
"migrations": "migrado",
|
||||
"logs_ended_at": "Fino",
|
||||
"restore": "Restaŭri",
|
||||
"user_mailbox_use": "Poŝtejo uzis spacon",
|
||||
"only_working_apps": "Nur funkciantaj programoj",
|
||||
"start": "Komencu",
|
||||
"user_emailforward": "Poŝti antaŭen",
|
||||
"system_upgrade_all_packages_btn": "Ĝisdatigu ĉiujn pakaĵojn",
|
||||
"migrations_no_done": "Neniuj antaŭaj migradoj",
|
||||
"url": "URL",
|
||||
"select_none": "Elektu neniun",
|
||||
"size": "Grandeco",
|
||||
"logs": "Registroj",
|
||||
"postinstall_intro_3": "Vi povas akiri pliajn informojn vizitante la <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>taŭgan dokumentan paĝon</a>",
|
||||
"logs_app": "Aplikoj ŝtipoj",
|
||||
"running": "Kurado",
|
||||
"status": "Statuso",
|
||||
"set_default": "Fiksita defaŭlte",
|
||||
"upnp": "UPnP",
|
||||
"protocol": "Protokolo",
|
||||
"tools": "iloj",
|
||||
"port": "haveno",
|
||||
"user_fullname": "Plena nomo",
|
||||
"stop": "Ĉesu",
|
||||
"save": "ŝpari",
|
||||
"words": {
|
||||
"default": "Defaŭlta"
|
||||
},
|
||||
"logs_context": "Kunteksto",
|
||||
"services": "servoj",
|
||||
"logs_path": "Pado",
|
||||
"run": "Kuri",
|
||||
"manage_apps": "Administri aplikon",
|
||||
"user_username": "Uzantnomo",
|
||||
"path": "Pado",
|
||||
"password_confirmation": "Pasvorta konfirmo",
|
||||
"open": "Malfermu",
|
||||
"postinstall_intro_2": "Du pliaj agordaj paŝoj necesas por aktivigi la servojn de via servilo.",
|
||||
"udp": "UDP",
|
||||
"user_interface_link": "Uzantinterfaco",
|
||||
"group_format_name_help": "Vi povas uzi alfa-numerikajn signojn kaj spacon",
|
||||
"group_add_member": "Aldonu uzanton",
|
||||
"group": "Grupo",
|
||||
"group_name": "Grupo nomo",
|
||||
"group_all_users": "Ĉiuj uzantoj",
|
||||
"groups_and_permissions": "Grupoj kaj permesoj",
|
||||
"groups_and_permissions_manage": "Administri grupojn kaj permesojn",
|
||||
"group_visitors": "Vizitantoj",
|
||||
"group_explain_all_users": "Jen speciala grupo enhavanta ĉiujn uzantajn kontojn en la servilo",
|
||||
"group_add_permission": "Aldonu permeson",
|
||||
"group_new": "Nova grupo",
|
||||
"group_explain_visitors": "Ĉi tio estas speciala grupo reprezentanta anonimajn vizitantojn",
|
||||
"group_specific_permissions": "Uzaj specifaj permesoj",
|
||||
"permissions": "Permesoj",
|
||||
"nobody": "Neniu",
|
||||
"rerun_diagnosis": "Rerun diagnozo",
|
||||
"details": "Detaloj",
|
||||
"everything_good": "Ĉio bona!",
|
||||
"ignore": "Ignori",
|
||||
"ignored": "{count} ignoris",
|
||||
"warnings": "{count} avertoj",
|
||||
"last_ran": "Lastfoje kuris:",
|
||||
"unignore": "un-ignori",
|
||||
"configuration": "agordo",
|
||||
"since": "el",
|
||||
"all": "Ĉiuj",
|
||||
"app_state_lowquality": "malkvalita",
|
||||
"app_state_lowquality_explanation": "Ĉi tiu app eble funkcias, sed ankoraŭ enhavas problemojn, aŭ ne plene integras kun YunoHost, aŭ ĝi ne respektas la bonajn praktikojn.",
|
||||
"catalog": "Katalogo",
|
||||
"others": "Aliaj",
|
||||
"confirm_service_restart": "Ĉu vi certas, ke vi volas rekomenci {name} ?",
|
||||
"diagnosis_first_run": "La diagnoza funkcio provos identigi oftajn problemojn pri la diversaj aspektoj de via servilo por certigi, ke ĉio funkcias glate. Bonvolu ne panikiĝi, se vi vidas amason da eraroj tuj post agordo de via servilo: ĝi ĝuste celas helpi vin identigi problemojn kaj gvidi vin ripari ilin. La diagnozo ankaŭ funkcios aŭtomate dufoje ĉiutage kaj retpoŝtu al la administranto se iuj problemoj ekestos.",
|
||||
"group_explain_visitors_needed_for_external_client": "Atentu, ke vi bezonas konservi iujn aplikaĵojn permesitajn al vizitantoj se vi intencas uzi ilin kun eksteraj klientoj. Ekzemple, ĉi tiu estas la kazo de Nextcloud se vi volas intenci uzi sinkronigan klienton en via inteligenta telefono aŭ labortabla komputilo.",
|
||||
"restart": "Rekomenci",
|
||||
"run_first_diagnosis": "Kuru komencan diagnozon",
|
||||
"issues": "{count} aferoj",
|
||||
"api_error": {
|
||||
"error_message": "Erarmesaĝo:"
|
||||
},
|
||||
"api": {
|
||||
"query_status": {
|
||||
"warning": "Sukcese kompletigita kun eraroj aŭ atentigoj",
|
||||
"success": "Sukcese kompletigita",
|
||||
"pending": "En progreso",
|
||||
"error": "Malsukcesa"
|
||||
},
|
||||
"processing": "La servilo prilaboras la agon…"
|
||||
},
|
||||
"address": {
|
||||
"local_part_description": {
|
||||
"email": "Elektu lokan parton por via retpoŝto.",
|
||||
"domain": "Elektu subdomanon."
|
||||
},
|
||||
"domain_description": {
|
||||
"email": "Elektu domajnon por via retpoŝto.",
|
||||
"domain": "Elektu domajnon."
|
||||
}
|
||||
},
|
||||
"cancel": "Nuligi"
|
||||
}
|
695
app/src/i18n/locales/es.json
Normal file
|
@ -0,0 +1,695 @@
|
|||
{
|
||||
"action": "Acción",
|
||||
"add": "Añadir",
|
||||
"administration_password": "Contraseña de administración",
|
||||
"api_not_responding": "La API de YunoHost no responde. ¿Tal vez «yunohost-api» está inoperativa o ha sido reiniciada?",
|
||||
"app_info_access_desc": "Grupos / usuarios actualmente autorizados a acceder a esta aplicación:",
|
||||
"app_info_default_desc": "Redirigir la raíz del dominio para esta aplicación ({domain} 6).",
|
||||
"app_info_uninstall_desc": "Eliminar esta aplicación.",
|
||||
"app_install_custom_no_manifest": "Archivo manifest.json no encontrado",
|
||||
"app_make_default": "Establecer como predeterminado",
|
||||
"app_state_inprogress": "Todavía no trabajando",
|
||||
"applications": "Aplicaciones",
|
||||
"archive_empty": "Archivo vacío",
|
||||
"backup": "Sistema de copia de seguridad",
|
||||
"backup_action": "Copia de seguridad",
|
||||
"backup_content": "Contenido de la copia de la seguridad",
|
||||
"backup_create": "Crear copia de seguridad",
|
||||
"backup_new": "Nueva copia de seguridad",
|
||||
"begin": "Empezar",
|
||||
"both": "Ambos",
|
||||
"check": "Comprobar",
|
||||
"close": "Cerrar",
|
||||
"confirm_app_default": "¿Está seguro que desea convertir esta aplicación en predeterminada?",
|
||||
"confirm_change_maindomain": "¿Está seguro de que desea cambiar el dominio principal?",
|
||||
"confirm_delete": "¿Está seguro que desea eliminar {name}?",
|
||||
"confirm_install_custom_app": "¡AVISO! La instalación de aplicaciones de terceros puede comprometer la seguridad e integridad de su sistema. Probablemente debería NO instalarla salvo que sepa lo que está haciendo. ¿Está dispuesto a correr el riesgo?",
|
||||
"confirm_install_domain_root": "¿Seguro que quieres instalar esta aplicación en '/'? No podrás instalar otra aplicación en {domain}",
|
||||
"confirm_postinstall": "Está a punto de lanzar el proceso de post-instalación para el dominio {domain}. Puede tardar unos pocos minutos, *no interrumpa la operación*.",
|
||||
"confirm_restore": "¿Está seguro que desea restaurar {name}?",
|
||||
"confirm_uninstall": "¿Está seguro que desea desinstalar {name}?",
|
||||
"connection": "Conexión",
|
||||
"created_at": "Creado en",
|
||||
"custom_app_install": "Instalar aplicación personalizada",
|
||||
"delete": "Eliminar",
|
||||
"description": "Descripción",
|
||||
"diagnosis": "Diagnóstico",
|
||||
"disable": "Inhabilitar",
|
||||
"dns": "DNS",
|
||||
"domain_add": "Añadir dominio",
|
||||
"domain_default_desc": "El dominio predeterminado es el dominio donde los usuarios inician sesión.",
|
||||
"domain_default_longdesc": "Este es su dominio predeterminado.",
|
||||
"domain_delete_longdesc": "Eliminar este dominio",
|
||||
"domain_dns_config": "Configuración DNS",
|
||||
"domain_dns_longdesc": "Ver configuración DNS",
|
||||
"domain_name": "Nombre de dominio",
|
||||
"domains": "Nombres de dominio",
|
||||
"download": "Bajar",
|
||||
"enable": "Habilitar",
|
||||
"error_modify_something": "Debe modificar algo",
|
||||
"error_server_unexpected": "Error inesperado en el servidor",
|
||||
"firewall": "Cortafuegos",
|
||||
"home": "Inicio",
|
||||
"hook_adminjs_group_configuration": "ajustes del sistema",
|
||||
"hook_conf_ldap": "Base de datos de usuario",
|
||||
"hook_conf_ynh_certs": "Certificados SSL",
|
||||
"hook_data_home": "Datos de usuario",
|
||||
"hook_data_home_desc": "Datos de usuario en /home/USUARIO",
|
||||
"hook_data_mail": "Correo",
|
||||
"hook_data_mail_desc": "Correos sin procesar almacenados en el servidor",
|
||||
"id": "ID",
|
||||
"infos": "Información",
|
||||
"install": "Instalar",
|
||||
"install_name": "Instalar {id}",
|
||||
"install_time": "Tiempo de instalación",
|
||||
"installation_complete": "Instalación finalizada",
|
||||
"installed": "Instalado",
|
||||
"ipv4": "IPv4",
|
||||
"ipv6": "IPv6",
|
||||
"label": "Etiqueta",
|
||||
"label_for_manifestname": "Etiqueta para {name}",
|
||||
"local_archives": "Archivos locales",
|
||||
"login": "Iniciar sesión",
|
||||
"logout": "Cerrar sesión",
|
||||
"mailbox_quota_description": "Por ejemplo, 700M es un CD y 4700M es un DVD.",
|
||||
"mailbox_quota_placeholder": "Dejar en blanco o usar 0 para desactivarlo.",
|
||||
"manage_apps": "Gestión aplicaciones",
|
||||
"manage_domains": "Gestión de dominios",
|
||||
"manage_users": "Gestión de usuarios",
|
||||
"multi_instance": "Puede instalarse varias veces",
|
||||
"next": "Próximo",
|
||||
"no": "No",
|
||||
"open": "Abierto",
|
||||
"operations": "Operaciones",
|
||||
"password": "Contraseña",
|
||||
"password_confirmation": "Confirmación contraseña",
|
||||
"path": "Ruta",
|
||||
"port": "Puerto",
|
||||
"ports": "Puertos",
|
||||
"postinstall_domain": "Este es el primer nombre de dominio vinculado a su servidor YunoHost, pero también el que será utilizado por los usuarios para acceder al portal de identificación. Será visible por todos, elegir con cuidado.",
|
||||
"postinstall_intro_1": "¡Felicitaciones! YunoHost se ha instalado correctamente.",
|
||||
"postinstall_intro_2": "Todavía faltan dos pasos más para activar los servicios de su servidor.",
|
||||
"postinstall_intro_3": "Más información disponible en <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>página de documentación apropiada</a>",
|
||||
"previous": "Anterior",
|
||||
"protocol": "Protocolo",
|
||||
"restore": "Restaurar",
|
||||
"running": "Funcionando",
|
||||
"save": "Guardar",
|
||||
"service_start_on_boot": "Inicie en el arranque",
|
||||
"services": "Servicios",
|
||||
"set_default": "Establecer predeterminado",
|
||||
"size": "Tamaño",
|
||||
"start": "Empezar",
|
||||
"status": "Estado",
|
||||
"stop": "Stop",
|
||||
"system": "Sistema",
|
||||
"system_apps_nothing": "¡Todas las aplicaciones están actualizadas!",
|
||||
"system_packages_nothing": "¡Todos los paquetes del sistema están actualizados!",
|
||||
"system_update": "Actualización del sistema",
|
||||
"system_upgrade_btn": "Actualización",
|
||||
"tcp": "TCP",
|
||||
"tools": "Herramientas",
|
||||
"udp": "UDP",
|
||||
"unauthorized": "No autorizado",
|
||||
"uninstall": "Desinstalar",
|
||||
"upnp": "UPnP",
|
||||
"upnp_disabled": "UPnP está desactivado.",
|
||||
"upnp_enabled": "UPnP está habilitado.",
|
||||
"url": "URL",
|
||||
"user_email": "Correo electrónico",
|
||||
"user_emailaliases": "Alias de correo electrónico",
|
||||
"user_emailforward": "Reenvío de correo electrónico",
|
||||
"user_fullname": "Nombre y Apellido",
|
||||
"user_interface_link": "Interfaz de usuario",
|
||||
"user_mailbox_quota": "Cuota de correo",
|
||||
"user_new_forward": "nuevoreenviar@dominioexterior.org",
|
||||
"user_username": "Nombre de usuario",
|
||||
"user_username_edit": "Editar la cuenta de {name}",
|
||||
"users": "Usuarios",
|
||||
"users_new": "Nuevo usuario",
|
||||
"users_no": "No hay usuarios.",
|
||||
"yes": "Sí",
|
||||
"footer_version": "Con tecnología <a href='https://yunohost.org'> YunoHost </a> {version} ({repo}).",
|
||||
"form_input_example": "Por ejemplo: {example}",
|
||||
"certificate_manage": "Administrar certificado SSL",
|
||||
"certificate": "Certificado",
|
||||
"user_mailbox_use": "Espacio utilizado",
|
||||
"confirm_firewall_allow": "¿Está seguro de que desea abrir el puerto {port}? (protocolo: {protocol}, conexión: {connection})",
|
||||
"confirm_firewall_disallow": "¿Está seguro de que desea cerrar el puerto {port}? (protocolo: {protocol}, conexión: {connection})",
|
||||
"confirm_service_start": "¿Está seguro de que desea iniciar {name}?",
|
||||
"confirm_service_stop": "¿Está seguro de que desea parar {name}?",
|
||||
"confirm_update_apps": "¿Está seguro de que desea actualizar todas las aplicaciones?",
|
||||
"confirm_upnp_enable": "¿Está seguro de que desea habilitar UPnP?",
|
||||
"confirm_upnp_disable": "¿Está seguro de que desea deshabilitar UPnP?",
|
||||
"ok": "OK",
|
||||
"app_info_changeurl_desc": "Cambiar la URL de acceso de esta aplicación (dominio y/o ruta).",
|
||||
"app_info_change_url_disabled_tooltip": "Esta función no ha sido implementada en esta aplicación todavía",
|
||||
"confirm_app_change_url": "¿Está seguro de que desea cambiar la URL de acceso a la aplicación?",
|
||||
"confirm_migrations_skip": "No se recomienda saltarse las migraciones. ¿Está seguro de que desea hacer eso?",
|
||||
"confirm_update_specific_app": "¿Está seguro de que desea actualizar {app} ?",
|
||||
"confirm_reboot_action_reboot": "¿Está seguro de que desea reiniciar su servidor?",
|
||||
"confirm_reboot_action_shutdown": "¿Está seguro de que desea apagar su servidor?",
|
||||
"domain_dns_conf_is_just_a_recommendation": "Esta sección muestra la configuración *recomendada*. *No* configura el DNS para usted. Es su responsabilidad configurar su zona DNS en su registrador DNS de acuerdo con esta recomendación.",
|
||||
"migrations": "Migraciones",
|
||||
"migrations_pending": "Migraciones pendientes",
|
||||
"migrations_done": "Migraciones anteriores",
|
||||
"logs_operation": "Operaciones realizadas en el sistema con YunoHost",
|
||||
"all_apps": "Todas las aplicaciones",
|
||||
"confirm_install_app_lowquality": "Aviso: esta aplicación puede funcionar pero no está bien integrada en YunoHost. Algunas características como inicio de sesión único y copia de seguridad/restauración podría no estar disponible.",
|
||||
"confirm_install_app_inprogress": "¡AVISO! ¡Esta aplicación es aún experimental (puede que ni funcione) y es probable que rompa su sistema! Seguramente debería NO instalarla salvo que sepa lo que está haciendo. ¿Está dispuesto a correr ese riesgo?",
|
||||
"error_connection_interrupted": "El servidor cerró la conexión en vez de responder. ¿Ha sido reiniciado o parado nginx o yunohost-api por cualquier motivo?",
|
||||
"experimental_warning": "Aviso: esta característica es experimental y no se considera estable, no deberías usarla salvo que sepas lo que estás haciendo.",
|
||||
"good_practices_about_admin_password": "Ahora está a punto de definir una nueva contraseña de usuario. La contraseña debe tener al menos 8 caracteres, aunque es una buena práctica usar una contraseña más larga (es decir, una frase como contraseña) y/o una variación de caracteres (mayúsculas, minúsculas, dígitos y caracteres especiales).",
|
||||
"good_practices_about_user_password": "Está a punto de establecer una nueva contraseña de usuario. La contraseña debería de ser de al menos 8 caracteres, aunque es una buena práctica usar una contraseña más larga (es decir, una frase de paso) y/o usar varias clases de caracteres (mayúsculas, minúsculas, dígitos y caracteres especiales).",
|
||||
"license": "Licencia",
|
||||
"confirm_update_system": "¿Seguro que quiere actualizar todos los paquetes del sistema?",
|
||||
"from_to": "desde {0} a {1}",
|
||||
"only_highquality_apps": "Solo aplicaciones de alta calidad",
|
||||
"only_decent_quality_apps": "Solo aplicaciones de calidad aceptable",
|
||||
"orphaned": "No mantenido",
|
||||
"app_state_inprogress_explanation": "El mantenedor de esta aplicación declara que aún no está lista para su uso en producción. ¡TENGA CUIDADO!",
|
||||
"app_state_highquality_explanation": "Esta aplicación está bien integrada en YunoHost desde al menos un año.",
|
||||
"orphaned_details": "Esta aplicación no se ha mantenido durante bastante tiempo. Todavía puede estar funcionando, pero no recibirá ninguna actualización hasta que alguien se ofrezca como voluntario para encargarse de ello. ¡Siéntase libre de contribuir para revivirlo!",
|
||||
"tools_shutdown_btn": "Apagar",
|
||||
"logs": "Registros",
|
||||
"logs_app": "Registros de aplicaciones",
|
||||
"logs_ended_at": "Fin",
|
||||
"logs_no_logs_registered": "Ningún registro para esta categoría",
|
||||
"purge_user_data_warning": "Los datos de usuario eliminados no se pueden recuperar. ¡Asegúrese de saber lo que está haciendo!",
|
||||
"logs_context": "Contexto",
|
||||
"only_working_apps": "Solo aplicaciones que funcionan",
|
||||
"logs_system": "Registros del núcleo y otros eventos de bajo nivel",
|
||||
"logs_share_with_yunopaste": "Compartir con YunoPaste",
|
||||
"logs_package": "Historial de la gestión de los paquetes de Debian",
|
||||
"logs_history": "Historial de órdenes ejecutadas en el sistema",
|
||||
"migrations_no_pending": "Ninguna migración pendiente",
|
||||
"tools_shutdown_reboot": "Apagar/Reiniciar",
|
||||
"logs_more": "Mostrar más líneas",
|
||||
"select_none": "No seleccionar ninguna",
|
||||
"logs_path": "Ruta",
|
||||
"purge_user_data_checkbox": "¿Eliminar los datos de {name}? (Esto eliminará el contenido de sus directorios «home» y «mail».)",
|
||||
"migrations_no_done": "Ninguna migración anterior",
|
||||
"logs_access": "Lista de accesos y prohibiciones",
|
||||
"tools_shutdown": "Apagar su servidor",
|
||||
"tools_reboot_btn": "Reiniciar",
|
||||
"version": "Versión",
|
||||
"tools_reboot": "Reiniciar su servidor",
|
||||
"logs_started_at": "Inicio",
|
||||
"logs_service": "Registros de servicios",
|
||||
"run": "Ejecutar",
|
||||
"logs_error": "Error",
|
||||
"skip": "Omitir",
|
||||
"system_upgrade_all_packages_btn": "Actualizar todos los paquetes",
|
||||
"system_upgrade_all_applications_btn": "Actualizar todas las aplicaciones",
|
||||
"select_all": "Seleccionar todo",
|
||||
"group_explain_all_users": "Este es un grupo especial que contiene todas las cuentas de usuarios en el servidor",
|
||||
"group": "Grupo",
|
||||
"group_name": "Nombre del grupo",
|
||||
"group_all_users": "Todos los usuarios",
|
||||
"group_visitors": "Visitantes",
|
||||
"group_format_name_help": "Puede usar caracteres alfanuméricos y espacio",
|
||||
"group_add_member": "Añadir un usuario",
|
||||
"group_add_permission": "Añadir permiso",
|
||||
"group_new": "Nuevo grupo",
|
||||
"group_explain_visitors": "Este es un grupo especial que representa a los visitantes anónimos",
|
||||
"group_specific_permissions": "Permisos individuales de usuario",
|
||||
"groups_and_permissions": "Grupos y permisos",
|
||||
"groups_and_permissions_manage": "Gestionar grupos y permisos",
|
||||
"permissions": "Permisos",
|
||||
"nobody": "Nadie",
|
||||
"rerun_diagnosis": "Repetir diagnóstico",
|
||||
"details": "Detalles",
|
||||
"everything_good": "¡Todo está bien!",
|
||||
"ignore": "Ignorar",
|
||||
"ignored": "{count} ignorado",
|
||||
"last_ran": "Ejecutado por última vez:",
|
||||
"unignore": "Dejar de ignorar",
|
||||
"warnings": "{count} avisos",
|
||||
"words": {
|
||||
"default": "Predeterminado",
|
||||
"collapse": "Colapsar",
|
||||
"browse": "Navegar",
|
||||
"link": "Enlace",
|
||||
"none": "Ninguno",
|
||||
"separator": ", ",
|
||||
"valid": "Válido"
|
||||
},
|
||||
"all": "Todo",
|
||||
"diagnosis_first_run": "El diagnóstico intentará identificar los errores comunes en diferentes aspectos del servidor para asegurar que todo funcione de la mejor manera. No se asuste si observa algunos errores justo después de la configuracion del servidor: estos le ayudarán a identificar los incidentes y le guiarán para corregirlos. El diagnostico correrá 2 veces al día y enviará un correo electrónico al administrador si encuentra incidentes.",
|
||||
"since": "desde",
|
||||
"others": "Otros",
|
||||
"run_first_diagnosis": "Procesando el primer diagnostico",
|
||||
"configuration": "Configuración",
|
||||
"catalog": "Catálogo",
|
||||
"app_state_lowquality_explanation": "Asta app esta probablemente funcional, pero puede fallar, no esta completamente integrada con YunoHost, o no respeta las buenas practicas.",
|
||||
"app_state_lowquality": "baja qualidad",
|
||||
"confirm_service_restart": "¿Estás seguro de que quieres reiniciar {name} ?",
|
||||
"group_explain_visitors_needed_for_external_client": "Tenga cuidado de que necesita mantener algunas aplicaciones permitidas a los visitantes si tiene la intención de usarlas con clientes externos. Por ejemplo, este es el caso de Nextcloud si desea utilizar un cliente de sincronización en su teléfono inteligente o computadora de escritorio.",
|
||||
"issues": "{count} problemas",
|
||||
"restart": "Reiniciar",
|
||||
"diagnosis_explanation": "La funcionalidad de diagnóstico intentará identificar problemas comunes en varios aspectos del servidor para asegurarse de que todo vaya bien. El diagnóstico se ejecuta automáticamente dos veces al día y un correo electrónico se envía al administrador si se encuentra algún problema. Note que algunas pruebas pueden ser irrelevantes si no desea utilizar ciertas funcionalidades (por ejemplo XMPP) o podrían fallar si tiene una configuración compleja. En esos casos, si sabe lo que está haciendo, no hay problema con ignorar los errores o alertas correspondientes.",
|
||||
"tip_about_user_email": "Los usuarios son creados con una dirección de correo electrónico (y cuenta XMPP) con el formato username@domain.ltd. Aliases de correo y reenvíos de correo pueden ser agregados luego por el administrador o el usuario.",
|
||||
"permission_show_tile_enabled": "Mostrar el tile en el portal de usuario",
|
||||
"permission_main": "Etiqueta principal",
|
||||
"permission_corresponding_url": "URL Correspondiente",
|
||||
"pending_migrations": "Hay algunas migraciones esperando a ser ejecutadas. Por favor vaya a <a href='#/tools/migrations'>Herramientas > Migraciones</a> para ejecutarlas.",
|
||||
"logs_suboperations": "Sub-operaciones",
|
||||
"operation_failed_explanation": "¡Esta operación falló! Lo sentimos mucho :( Puede intentar <a href='https://yunohost.org/help'>pedir ayuda</a>. Por favor comparta el *log completo* de la operación a la gente que ayude. Puede hacerlo haciendo click en el botón verde que dice 'Share with Yunopaste'. Cuando comparta los logs, YunoHost intentará automáticamente anonimizar datos privados como nombres de dominio y IPs.",
|
||||
"app_manage_label_and_tiles": "Administrar etiquetas y tiles",
|
||||
"cancel": "Cancelar",
|
||||
"api_errors_titles": {
|
||||
"APIConnexionError": "YunoHost ha encontrado un error de conexión",
|
||||
"APINotRespondingError": "La API de YunoHost no responde",
|
||||
"APINotFoundError": "La API de YunoHost no pudo encontrar una ruta",
|
||||
"APIInternalError": "YunoHost ha encontrado un error interno",
|
||||
"APIBadRequestError": "Yunohost ha econtrado un error",
|
||||
"APIError": "YunoHost a encontrado un error inesperado"
|
||||
},
|
||||
"api_error": {
|
||||
"view_error": "Ver error",
|
||||
"sorry": "Lo siento mucho por eso.",
|
||||
"server_said": "Mientras se procesaba la acción, el servidor informó:",
|
||||
"info": "La siguiente información puede ser útil para la persona que le esté ayudando:",
|
||||
"help": "Debes buscar ayuda en <a href=\"https://forum.yunohost.org/\">el foro</a> o en <a href=\"https://chat.yunohost.org/\">el chat</a> para solucionar la situación. También puedes informar del fallo en <a href=\"https://github.com/YunoHost/issues\">el bugtracker</a>.",
|
||||
"error_message": "Mensaje de error:"
|
||||
},
|
||||
"api": {
|
||||
"query_status": {
|
||||
"warning": "Completado pero con errores y/o alertas",
|
||||
"success": "Completado correctamente",
|
||||
"pending": "En progreso",
|
||||
"error": "No se ha podido realizar"
|
||||
},
|
||||
"processing": "El servidor está procesando la acción…",
|
||||
"partial_logs": "[…] (comprueba el histórico para unos logs completos)",
|
||||
"reconnecting": {
|
||||
"title": "Intentado comunicarse con el servidor…",
|
||||
"failed": "Al parecer el servidor no responde. Puedes intentarlo nuevamente o utilizar el comando `systemctl restart yunohost-api` a través de SSH.",
|
||||
"reason": {
|
||||
"unknown": "La conexión con el servidor ha sido cancelada por razones desconocidas.",
|
||||
"reboot": "Tu servidor se está reiniciando y no será accesible por un tiempo. Una solicitud de inicio de sesión estará disponible cuando el servidor se encuentre listo.",
|
||||
"shutdown": "Su servidor se está apagando y ya no es accesible. Vuelva a encenderlo y aparecerá un aviso de inicio de sesión tan pronto como se pueda acceder al servidor.",
|
||||
"upgrade_system": "La conexión con el servidor se ha cerrado debido a la actualización de YunoHost. Esperando a que el servidor sea accesible de nuevo…"
|
||||
},
|
||||
"success": "¡El servidor ya está disponible! Puedes intentar iniciar sesión"
|
||||
}
|
||||
},
|
||||
"address": {
|
||||
"local_part_description": {
|
||||
"domain": "Elige un subdominio.",
|
||||
"email": "Elija una parte local para su correo electrónico."
|
||||
},
|
||||
"domain_description": {
|
||||
"email": "Elige un dominio para tu email.",
|
||||
"domain": "Elige un dominio."
|
||||
}
|
||||
},
|
||||
"form_errors": {
|
||||
"domain": "Nombre de dominio inválido: debe ser alfanumérico en minúsculas, solo caracteres de puntos y guiones",
|
||||
"between": "El valor debe estar entre {min} y {max}.",
|
||||
"alphalownumdot_": "El valor debe ser alfanumérico en minúsculas y solo caracteres subrayados.",
|
||||
"alpha": "El valor debe ser solo caracteres alfabéticos.",
|
||||
"remote": "{message}",
|
||||
"pattern": "{type}",
|
||||
"maxValue": "El valor debe ser numérico e igual o menor que {max}.",
|
||||
"invalid_form": "El formulario contiene errores.",
|
||||
"name": "Los nombres no deben incluir ningún carácter especial salvo <code> ,.'-</code>",
|
||||
"minValue": "El valor debe ser numérico e igual o mayor que {min}.",
|
||||
"notInUsers": "El usuario '{value}' ya existe.",
|
||||
"number": "El valor debe ser numérico.",
|
||||
"passwordLenght": "La contraseña debe ser al menos de 8 caracteres de longitud.",
|
||||
"passwordMatch": "Las contraseñas no coinciden.",
|
||||
"required": "El campo es obligatorio.",
|
||||
"dynDomain": "Nombre de dominio incorrecto. Solo debe contener caracteres alfanuméricos en minúsculas y guiones",
|
||||
"appRepoUrl": "Las URL de repositorios de aplicaciones YunoHost deberían parecerse a https://domain.tld/path/to/repo_ynh",
|
||||
"email": "Correo incorrecto: debe contener solo caracteres alfanuméricos y <code>_.-</code> (ej. alguien@ejemplo.com, 4l-guien@ejemplo.com)",
|
||||
"emailForward": "Redirección de correo incorrecto: debe contener solo caracteres alfanuméricos y <code>_.-</code> (ej. alguien@ejemplo.com, 4l-guien@ejemplo.com)"
|
||||
},
|
||||
"footer": {
|
||||
"donate": "Donar",
|
||||
"help": "¿Necesitas ayuda?",
|
||||
"documentation": "Documentación"
|
||||
},
|
||||
"experimental": "Experimental",
|
||||
"error": "Error",
|
||||
"enabled": "Activado",
|
||||
"disabled": "Desactivado",
|
||||
"dead": "Inactivo",
|
||||
"day_validity": " Expirado hace | 1 día | {count} días",
|
||||
"confirm_app_install": "¿Estás seguro de que deseas instalar esta aplicación?",
|
||||
"common": {
|
||||
"lastname": "Apellidos",
|
||||
"firstname": "Nombre"
|
||||
},
|
||||
"code": "Código",
|
||||
"app_show_categories": "Mostrar categorías",
|
||||
"app_install_parameters": "Instalar la configuración",
|
||||
"app_choose_category": "Elige una categoría",
|
||||
"api_waiting": "Esperando a la respuesta del servidor…",
|
||||
"api_not_found": "Parece que la administración web ha intentado buscar algo que no existe.",
|
||||
"hook_conf_manually_modified_files": "Configuraciones modificadas manualmente",
|
||||
"hook_data_xmpp": "Datos XMPP",
|
||||
"items_verbose_count": "Hay {items}. | Hay 1 {items}. | Hay {items}.",
|
||||
"placeholder": {
|
||||
"lastname": "Sánchez",
|
||||
"username": "samuelsanchez",
|
||||
"firstname": "Samuel",
|
||||
"domain": "mi-dominio.es",
|
||||
"groupname": "Nombre de mi grupo",
|
||||
"file": "Selecciona un fichero o arrástralo y suéltalo",
|
||||
"fullname": "Samuel Sánchez"
|
||||
},
|
||||
"hook_conf_ynh_settings": "Configuraciones de YunoHost",
|
||||
"confirm_group_add_access_permission": "¿Seguro que quieres conceder acceso {perm} a {name}? Este acceso incrementa significantemente la exposición a ataques al sistema si {name} resulta tener malas intenciones. Sólo deberías aprobarlo si CONFÍAS en esa persona/grupo.",
|
||||
"items": {
|
||||
"services": "sin servicios | servicio | {c} servicios",
|
||||
"users": "sin cuentas | cuenta | {c} cuentas",
|
||||
"domains": "sin dominios | dominio | {c} dominios",
|
||||
"installed_apps": "sin aplicaciones instaladas | aplicación instalada | {c} aplicaciones instaladas",
|
||||
"apps": "sin aplicaciones | aplicación | {c} aplicaciones",
|
||||
"permissions": "sin permisos | permiso | {c} permisos",
|
||||
"groups": "sin grupos | grupo | {c} grupos",
|
||||
"backups": "sin copias de seguridad | copia de seguridad | {c} copias de seguridad",
|
||||
"logs": "sin registros | registro | {c} registros"
|
||||
},
|
||||
"migrations_disclaimer_check_message": "He leído y comprendido esta limitación de responsabilidad",
|
||||
"postinstall": {
|
||||
"force": "Forzar la post-instalación",
|
||||
"title": "Post-instalción",
|
||||
"user": {
|
||||
"first_user_help": "Estx usuarix tendrá privilegios de administración del sistema y podrá contectarse a esta interfaz de administración así como directamente al servidor vía SSH.\nComo es un usuario normal, también podrá conectarse al portal de usuarix (SSO) con sus credenciales.\nUna vez que la post-instalación está completada, podrás crear más usuarixs administradorxs añadiéndolxs al grupo 'admins'.",
|
||||
"title": "Crear primera usuaria administradora"
|
||||
}
|
||||
},
|
||||
"human_routes": {
|
||||
"apps": {
|
||||
"uninstall": "Desinstalar la aplicación '{name}'",
|
||||
"update_config": "Actualizar la configuración de la aplicación '{name}' del panel '{id}'",
|
||||
"change_label": "Cambiar la etiqueta '{prevName}' por '{nextName}'",
|
||||
"change_url": "Cambiar la URL de acceso a '{name}'",
|
||||
"install": "Instalar la aplicación '{name}'",
|
||||
"set_default": "Redirecciona la raíz del dominio '{domain}' a '{name}'",
|
||||
"action_config": "Ejecutar acción '{action}' de la configuración de la app '{name}'",
|
||||
"dismiss_notification": "Descartar notificación para '{name}'"
|
||||
},
|
||||
"backups": {
|
||||
"create": "Crear copia de seguridad",
|
||||
"delete": "Elimina la copia de seguridad '{name}'",
|
||||
"restore": "Restaurar la copia de seguridad '{name}'"
|
||||
},
|
||||
"groups": {
|
||||
"remove": "Elimina a '{user}' del grupo '{name}'",
|
||||
"delete": "Elimina el grupo '{name}'",
|
||||
"create": "Crea el grupo '{name}'",
|
||||
"add": "Añade a '{user}' al grupo '{name}'"
|
||||
},
|
||||
"users": {
|
||||
"update": "Actualiza la cuenta '{name}'",
|
||||
"create": "Crea la cuenta '{name}'",
|
||||
"delete": "Elimina la cuenta '{name}'"
|
||||
},
|
||||
"share_logs": "Genera un enlace para el registro '{name}'",
|
||||
"domains": {
|
||||
"push_dns_changes": "Publica los registros DNS de '{name}' al registrador",
|
||||
"update_config": "Actualiza el panel '{id}' de la configuración del dominio '{name}'",
|
||||
"add": "Añade el dominio '{name}'",
|
||||
"delete": "Elimina el domino '{name}'",
|
||||
"set_default": "Configura '{name}' como dominio por defecto",
|
||||
"cert_install": "Instalar certificado para '{name}'",
|
||||
"cert_renew": "Renovar certificado de '{name}'"
|
||||
},
|
||||
"diagnosis": {
|
||||
"ignore": {
|
||||
"error": "Ignorar un error",
|
||||
"warning": "Ignorar una advertencia"
|
||||
},
|
||||
"unignore": {
|
||||
"warning": "No ignorar una advertencia",
|
||||
"error": "No ignorar un error"
|
||||
},
|
||||
"run": "Ejecuta el diagnóstico",
|
||||
"run_specific": "Ejecuta el diagnóstico '{description}'"
|
||||
},
|
||||
"migrations": {
|
||||
"skip": "Omite las migraciones",
|
||||
"run": "Ejecuta las migraciones"
|
||||
},
|
||||
"permissions": {
|
||||
"add": "Permite a '{name}' acceder a '{perm}'",
|
||||
"remove": "Deniega a '{name}' acceder a '{perm}'"
|
||||
},
|
||||
"postinstall": "Ejecuta la post-instalación",
|
||||
"reboot": "Reinicia el servidor",
|
||||
"shutdown": "Apaga el servidor",
|
||||
"update": "Comprueba actualizaciones",
|
||||
"upgrade": {
|
||||
"system": "Actualiza el sistema",
|
||||
"apps": "Actualiza todas las aplicaciones",
|
||||
"app": "Actualiza la aplicación '{app}'"
|
||||
},
|
||||
"firewall": {
|
||||
"ports": "{action} puerto {port} ({protocol}, {connection})",
|
||||
"upnp": "{action} UPnP"
|
||||
},
|
||||
"services": {
|
||||
"restart": "Reinicia el servicio '{name}'",
|
||||
"start": "Inicia el servicio '{name}'",
|
||||
"stop": "Para el servicio '{name}'"
|
||||
},
|
||||
"reconnecting": "Reconectando",
|
||||
"settings": {
|
||||
"update": "Actualizar la configuración global de '{panel}'"
|
||||
}
|
||||
},
|
||||
"tools_webadmin": {
|
||||
"fallback_language_description": "Idioma que será usado en caso de que la traducción al idioma primario no se encuentre disponible.",
|
||||
"cache_description": "Puedes desactivar el caché si prevés trabajar con la línea de comandos (CLI) mientras navegas por la administración web.",
|
||||
"transitions": "Animaciones de transición entre páginas",
|
||||
"language": "Idioma",
|
||||
"experimental": "Modo experimental",
|
||||
"fallback_language": "Idioma alternativo",
|
||||
"cache": "Caché",
|
||||
"experimental_description": "Te da acceso a las características experimentales. Están consideradas como inestables y pueden estropear tu sistema.<br> Actívalas solo si sabes lo que estás haciendo.",
|
||||
"theme": "Cambiar a modo oscuro"
|
||||
},
|
||||
"go_back": "Retroceder",
|
||||
"users_import_update_desc": "Selecciona para actualizar todas las cuentas del fichero CSV con los nuevos valores",
|
||||
"perform": "Ejecutar",
|
||||
"postinstall_set_domain": "Configura el dominio principal",
|
||||
"tools_webadmin_settings": "Parámetros de la administración web",
|
||||
"traceback": "Rastrear",
|
||||
"domain": {
|
||||
"config": {
|
||||
"edit": "Edita la configuración de dominio",
|
||||
"title": "Configuración del dominio"
|
||||
},
|
||||
"dns": {
|
||||
"auto_config": "Configuración automática de las entradas DNS",
|
||||
"auto_config_ignored": "ignorado, no será modificado por YunoHost a menos que especifiques la opción sobrescribir",
|
||||
"auto_config_ok": "¡La configuración automática parece correcta!",
|
||||
"auto_config_zone": "Zona DNS actual",
|
||||
"edit": "Editar configuración DNS",
|
||||
"manual_config": "Registros DNS recomendados para la configuración manual",
|
||||
"push": "Publicar registros DNS al registrador",
|
||||
"push_force": "Sobrescribir registros actuales",
|
||||
"push_force_confirm": "¿Seguro que quieres forzar la publicación de los registros DNS recomendados? Ten en cuenta que puede sobrescribir registros por defecto o importantes configurados por tu registrador.",
|
||||
"push_force_warning": "Parece que algunos registros DNS de YunoHost ya se encuentran en la configuración del registrador. Puedes usar la opción sobrescribir si sabes lo que haces.",
|
||||
"info": "La configuración automática DNS es una función experimental.<br> Plantéate guardar tu zona DNS actual desde la interfaz DNS de tu registrador antes de publicar cambios desde aquí.",
|
||||
"methods": {
|
||||
"auto": "Automático",
|
||||
"handled_in_parent": "Gestionado en el dominio padre",
|
||||
"manual": "Manual",
|
||||
"none": "Ninguno",
|
||||
"semi_auto": "Semi-automático"
|
||||
}
|
||||
},
|
||||
"cert": {
|
||||
"types": {
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"other": "Otros/Desconocido",
|
||||
"selfsigned": "autofirmado"
|
||||
},
|
||||
"valid_for": "válido durante {days}"
|
||||
},
|
||||
"explain": {
|
||||
"main_domain": "El dominio principal es el dominio desde el cual lxs usuarixs pueden conectarse al portal (via \"{domain}/yunohost/sso\"). <br> Por tanto, no es posible borrarlo. <br> Si quieres borrar \"{domain}\", primero tienes que elegir o añadir otro dominio y configurarlo como dominio principal."
|
||||
},
|
||||
"info": {
|
||||
"apps_on_domain": "Aplicaciones instaladas en el dominio",
|
||||
"certificate_authority": "Autoridad certificadora SSL",
|
||||
"registrar": "Registrador",
|
||||
"dyn_dns_remove_and_unsubscribe": "También eliminar el dominio del servicio DynDNS de YunoHost"
|
||||
},
|
||||
"see_parent_domain": "Ver dominio padre",
|
||||
"types": {
|
||||
"main_domain": "Dominio principal"
|
||||
},
|
||||
"toggle_subdomains": "Colapsar subdominios",
|
||||
"add": {
|
||||
"from_local_desc": "Si no quieres un nombre de dominio público \"real\", puedes usar cualquiera que termine en <code>.local</code> o <code>.test</code>. Los nombres de dominio que terminan en <code>.local</code> son especiales, en el sentido que podrían ser resueltos automáticamente en una red local, si los clientes soportan del protocolo Bonjour. Otro método es modificar el fichero <code>/etc/hosts</code> (o el equivalente de Windows) en cada cliente desde el que desees acceder a este dominio, o también puedes configurar las entradas DNS locales en tu router de internet.",
|
||||
"from_yunohost_desc": "El proyecto YunoHost mantiene un servicio 'DynDNS'. Está limitado a un dominio de este tipo por servidor (aunque puedes añadir subdominios más adelante mediante la opción mostrada más arriba 'Añadir un dominio que ya poseo, o un subdominio'). La configuración de DNS será gestionada de manera automática por YunoHost. Esta opción es ideal cuando te estés inciando en \"auto alojar\" un servidor y no quieras invertir en un nombre de dominio por el momento. Sinembargo, a medio/largo plazo, recomendamos que compres tu propio dominio en algún registrador para que tengas un control completo de tu dominio.",
|
||||
"dyn_dns_password": "Password de recuperación del dominio",
|
||||
"dyn_dns_password_desc": "Esta password te permitirá más adelante recuperar el control del dominio si reinstalas el sistema. Si ya registraste este dominio anteriormente, utiliza la password de recuperación de dominio para reclamarlo.",
|
||||
"from_local": "Quiero un dominio para uso local / únicamente de prueba",
|
||||
"from_registrar": "Quiero añadir un dominio que ya poseo, o un subdominio",
|
||||
"from_registrar_desc": "Tendrás que configurar manualmente los registros DNS en tu registrador para finalizar la configuración de este dominio. Los diagnósticos de YunoHost te guiarán de manera exácta para configurar los registros DNS.",
|
||||
"from_yunohost": "No dispongo de un dominio, quiero registrar/usar un dominio gratuito de DynDNS ofrecido por el proyecto YunoHost"
|
||||
}
|
||||
},
|
||||
"domain_dns_push_failed_to_authenticate": "No se pudo autenticar en la API del registrador. ¿Es probable que las <a href='#/domains/{domain}/config'>credenciales</a> sean incorrectas? (Error: {error})",
|
||||
"history": {
|
||||
"methods": {
|
||||
"DELETE": "eliminar",
|
||||
"GET": "leer",
|
||||
"POST": "crear/ejecutar",
|
||||
"PUT": "modificar"
|
||||
},
|
||||
"is_empty": "El histórico se encuentra vacío.",
|
||||
"title": "Histórico",
|
||||
"last_action": "Última acción:"
|
||||
},
|
||||
"users_export": "Exportar cuentas",
|
||||
"users_import_csv_file": "Fichero CSV",
|
||||
"users_import_update": "Actualizar cuentas existentes",
|
||||
"yunohost_admin": "Administración YunoHost",
|
||||
"domain_add_dyndns_forbidden": "Ya has registrado/suscrito un dominio DynDNS desde el proyecto YunoHost. Por diseño, esta característica se limita a solamente un dominio por servidor. Si desea un subdominio de su dominio ya suscrito, por favor use la opción 'Quiero añadir un dominio que ya poseo, o un subdominio' de arriba. Si desea usar un dominio totalmente distinto, primero debe de remover su dominio DynDNS existente. Los dominios DynDNS son útiles para empezar a autohospedarse, pero al mediano y largo plazo, recomendamos comprar su propio nombre de dominio en un registro para tener plena posesión de su dominio.",
|
||||
"hook_data_xmpp_desc": "Configuración de salas y cuentas, archivos subidos",
|
||||
"items_verbose_items_left": "Quedan {items}. | Queda 1 {items}. | Quedan {items}.",
|
||||
"mailbox_quota_example": "700M es un CD, 4700M es un DVD",
|
||||
"users_import_delete_desc": "Selecciona para eliminar (y purgar) todas las cuentas que no se encuentren en el fichero CSV.",
|
||||
"users_import_confirm_destructive": "¿Seguro que quieres eliminar las cuentas que no se encuentran en este archivo?",
|
||||
"readme": "Léeme",
|
||||
"search": {
|
||||
"for": "Busca {items}…",
|
||||
"not_found": "Hay {items} coincidencias con tus criterios. | Hay 1 {items} coincidencia con tus criterios. | Hay {items} coincidencias con tus criterios."
|
||||
},
|
||||
"unknown": "Desconocido",
|
||||
"users_import_delete": "Elimina los usuarios no listados",
|
||||
"users_import_delete_others": "Eliminar cuentas no listadas",
|
||||
"migrations_disclaimer_not_checked": "Esta migración requiere que reconozcas la limitación de responsabilidad antes de ejecutarla.",
|
||||
"user_emailaliases_add": "Añade un alias de correo",
|
||||
"users_import": "Importa cuentas",
|
||||
"user_emailforward_add": "Añade una redirección de correo",
|
||||
"domain_delete_forbidden_desc": "No puedes eliminar '{domain}' ya que es tu dominio por defecto. Necesitas elegir otro dominio(o <a href='#/domains/add'>añadir uno nuevo</a>) y configurarlo como dominio por defecto antes de poder eliminar este.",
|
||||
"domain_dns_push_managed_in_parent_domain": "La configuración automática de los registros DNS es administrada desde el dominio superior <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
|
||||
"domain_dns_push_not_applicable": "La configuración automática de los registros DNS no puede realizarse en el dominio {domain},<br> Debes configurar manualmente los registros DNS siguiendo la <a href='https://yunohost.org/dns'>documentación</a> y la configuración recomendada aquí debajo.",
|
||||
"users_import_csv_file_desc": "El fichero CSV debe estar en formato UTF-8, con las columnas cuenta, contraseña, grupos, correo y cuota. Para un ejemplo de importación de fichero CSV, puedes <a href='/yunohost/api/users/export' target='_BLANK'>exportar las cuentas en un fichero CSV</a> y modificar el fichero.",
|
||||
"text_selection_is_disabled": "La selección de texto esta desactivada. Si quieres compartir este registro, por favor comparte el registro completo mediante el botón 'Compartir con Yunopaste'.<br/><small>O si realmente quieres seleccionar el texto, presiona las teclas: ↓↓↑↑.</small>",
|
||||
"retry": "Reintentar",
|
||||
"details_about": "Mostrar más detalles sobre {subject}",
|
||||
"app_state_broken": "roto",
|
||||
"app_state_broken_explanation": "Esta aplicación está actualmente rota y no se puede instalar según las pruebas automáticas de YunoHost",
|
||||
"confirm_install_app_broken": "¡ADVERTENCIA! ¡Esta aplicación está rota según las pruebas automáticas de YunoHost y es probable que rompa su sistema! Probablemente NO debería instalarla a menos que sepa lo que está haciendo. ¿Está dispuesto a correr ese riesgo?",
|
||||
"group_admins": "Administradores",
|
||||
"label_for_manifestname_help": "Este es el nombre que se mostrará en el portal de usuarix. Puedes cambiarlo más tarde.",
|
||||
"manage_groups": "Gestionar grupos",
|
||||
"tools_yunohost_settings": "Ajustes YunoHost",
|
||||
"group_explain_admins": "Este es un grupo asociado a los usuarixs administradorxs. Lxs usuarixs de este grupo tienen acceso al panel de control web de YunoHost, conexión al servidor por SSH y pueden utilizar el comando `sudo`. También reciben correos enviados a root@, admin@ y admins@, como las notificaciones de diagnóstico. ¡Añade únicamente a gente del grupo en la que confíes plenamente!",
|
||||
"wrong_password_or_username": "Contraseña o usuario incorrecto",
|
||||
"important_yunohost_upgrade": "Una actualización de categoría 'major' está disponible. Se recomienda leer detenidamente las notas de lanzamiento en el foro antes de actualizar: <a href='https://forum.yunohost.org/tag/ynh_release'>Busca las notas de lanzamiento en el foro</a>",
|
||||
"app": {
|
||||
"installed_version": "Versión instalada:",
|
||||
"open_this_app": "Abrir esta aplicación",
|
||||
"antifeatures": "Esta aplicación tiene características que pueden no gustarte:",
|
||||
"doc": {
|
||||
"about": {
|
||||
"title": "Acerca de",
|
||||
"description": "Descripción"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Notificaciones",
|
||||
"post_upgrade": "Notas tras la actualización",
|
||||
"post_install": "Notas post-instalación",
|
||||
"understood": "Entendido"
|
||||
},
|
||||
"admin": {
|
||||
"title": "Documentación de administración"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"forum": "¡Busca o pregunta en el foro!",
|
||||
"problem": "¿Algún problema con esta aplicación?",
|
||||
"config_panel_error": "Un error impide mostrar el panel de configuración:",
|
||||
"config_panel_error_please_report": "Por favor, ¡informa al equipo de YunoHost de este error para que ellos puedan arreglarlo!"
|
||||
},
|
||||
"install": {
|
||||
"license": "Licencia: {license}",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"title": "Notificaciones posteriores a la instalación de '{name}'",
|
||||
"alert": "Parece que la instalación ha ido bien.\nAquí tienes algunas notificaciones que el empaquetador considera importante conocer.\nPuedes volver a leerlas en la página de información de la aplicación."
|
||||
},
|
||||
"pre": {
|
||||
"warning": "Lo que hay que saber antes de la instalación",
|
||||
"danger": "Lo más probable es que la instalación de la aplicación genere problemas",
|
||||
"critical": "No se puede instalar la aplicación"
|
||||
}
|
||||
},
|
||||
"problems": {
|
||||
"ram": "Esta aplicación requiere {required} de RAM para instalarse/actualizarse pero sólo {current} está disponible en este momento. Incluso si esta aplicación pudiera ejecutarse, su proceso de instalación requiere una gran cantidad de RAM, por lo que su servidor podría congelarse y fallar miserablemente.",
|
||||
"arch": "Esta aplicación sólo puede instalarse en arquitecturas específicas ({required}), pero la arquitectura de su servidor es {current}.",
|
||||
"broken": "¡Esta aplicación está rota según las pruebas automáticas de YunoHost y es probable que rompa su sistema! Probablemente NO deberías instalarla a menos que sepas lo que estás haciendo.",
|
||||
"thirdparty": "Esta aplicación no forma parte del catálogo oficial de YunoHost, la instalación de aplicaciones de terceros puede comprometer la integridad y seguridad de su sistema. Probablemente NO deberías instalarla a menos que sepas lo que estás haciendo.",
|
||||
"ignore": "Entiendo que esta instalación puede romper mi sistema, pero todavía quiero probar.",
|
||||
"inprogress": "¡Esta aplicación es todavía experimental (si no es que explícitamente no funciona) y es probable que rompa su sistema! Probablemente NO deberías instalarla a menos que sepas lo que estás haciendo.",
|
||||
"install": "Ya está instalado y no se puede instalar más de una vez.",
|
||||
"lowquality": "Esta aplicación puede funcionar pero no está bien integrada en YunoHost. Algunas funciones como el inicio de sesión único y la copia de seguridad/restauración podrían no estar disponibles, o no respetan las buenas prácticas.",
|
||||
"version": "Esta aplicación requiere YunoHost >= {required} pero su versión actual instalada es {current}, considere primero actualizar YunoHost."
|
||||
},
|
||||
"try_demo": "Pruebe la demo",
|
||||
"version": "Versión actual: {version}"
|
||||
},
|
||||
"integration": {
|
||||
"archs": "Arquitecturas compatibles:",
|
||||
"ldap": {
|
||||
"false": "No utiliza cuentas de YunoHost para conectarse (LDAP)",
|
||||
"true": "Utilizar cuentas de YunoHost para conectarse (LDAP)",
|
||||
"?": "No hay información sobre la integración LDAP"
|
||||
},
|
||||
"multi_instance": {
|
||||
"false": "Sólo se puede instalar una vez",
|
||||
"true": "Puede instalarse varias veces"
|
||||
},
|
||||
"resources": "Uso típico de recursos: {ram} RAM, {disk} disco",
|
||||
"sso": {
|
||||
"false": "El inicio de sesión único no está disponible (SSO)",
|
||||
"true": "Inicio de sesión único disponible (SSO)",
|
||||
"?": "No hay información sobre la integración SSO"
|
||||
},
|
||||
"title": "Integración con YunoHost"
|
||||
},
|
||||
"links": {
|
||||
"admindoc": "Documentación oficial de administración",
|
||||
"code": "Repositorio oficial de código",
|
||||
"forum": "Temas sobre esta aplicación en el foro de YunoHost",
|
||||
"package": "Repositorio de paquetes YunoHost",
|
||||
"title": "Enlaces",
|
||||
"userdoc": "Documentación oficial del usuario",
|
||||
"website": "Página web oficial",
|
||||
"license": "Licencia de la aplicación",
|
||||
"package_license": "Licencia de paquete YunoHost"
|
||||
},
|
||||
"potential_alternative_to": "Alternativa potencial a:",
|
||||
"upgrade": {
|
||||
"confirm": {
|
||||
"apps": "Aplicaciones que se actualizarán",
|
||||
"title": "Confirmar actualizaciones de la aplicación"
|
||||
},
|
||||
"continue": "Continuar con la siguiente aplicación",
|
||||
"notifs": {
|
||||
"pre": {
|
||||
"alert": "Debería comprobar esas notificaciones antes de actualizar, podría haber cosas importantes que saber.",
|
||||
"title": "¡Atención!"
|
||||
},
|
||||
"post": {
|
||||
"alert": "Parece que la actualización ha ido bien.\n Aquí hay algunas notificaciones que el empaquetador considera importante saber sobre esta actualización.\nPuede volver a leerlas en la página de información de la aplicación.",
|
||||
"title": "Notificaciones posteriores a la actualización de \"{name}\""
|
||||
}
|
||||
},
|
||||
"stop": "Cancelar las próximas actualizaciones de la aplicación"
|
||||
},
|
||||
"uninstall": {
|
||||
"purge_desc": "Borrar el directorio de información asociada con la app (normalmente se trata de la información subida al utilizar la app)."
|
||||
}
|
||||
}
|
||||
}
|
695
app/src/i18n/locales/eu.json
Normal file
|
@ -0,0 +1,695 @@
|
|||
{
|
||||
"password": "Pasahitza",
|
||||
"ok": "Ados",
|
||||
"add": "Gehitu",
|
||||
"administration_password": "Administrazio-pasahitza",
|
||||
"action": "Eragiketa",
|
||||
"address": {
|
||||
"domain_description": {
|
||||
"domain": "Aukeratu domeinua.",
|
||||
"email": "Aukeratu posta elektronikorako domeinua."
|
||||
},
|
||||
"local_part_description": {
|
||||
"domain": "Aukeratu azpidomeinua.",
|
||||
"email": "Aukeratu helbide elektronikorako domeinua."
|
||||
}
|
||||
},
|
||||
"all_apps": "Aplikazio guztiak",
|
||||
"api": {
|
||||
"query_status": {
|
||||
"error": "Ezinezkoa izan da",
|
||||
"pending": "Martxan",
|
||||
"warning": "Arrakastaz amaitu da, errore edo jakinarazpenekin",
|
||||
"success": "Arrakastaz amaitu da"
|
||||
},
|
||||
"processing": "Zerbitzaria eragiketa exekutatzen ari da…",
|
||||
"partial_logs": "[…] (ikuskatu historia erregistro osoetarako)",
|
||||
"reconnecting": {
|
||||
"title": "Zerbitzariarekin komunikatzeko ahaleginetan…",
|
||||
"failed": "Badirudi zerbitzaria ez dela erantzuten ari. SSH bidez berriro konektatzen saia zaitezke `systemctl restart yunohost-api` exekutatuz.",
|
||||
"reason": {
|
||||
"unknown": "Itxi da komunikazioa zerbitzariarekin, ez da zergatia ezagutzen.",
|
||||
"reboot": "Zerbitzaria berrabiarazten ari da eta ez da erabilgarri egongo tarte batez. Saioa hasteko galdegingo zaizu zerbitzaria berriro ere erabilgarri dagoenean.",
|
||||
"shutdown": "Zerbitzari itzaltzen ari da eta aurrerantzean ez da erabilgarri egongo. Piztu ezazu berriro eta saioa hasteko galdegingo zaizu zerbitzaria berriro erabilgarri dagoenean.",
|
||||
"upgrade_system": "Zerbitzariarekin konexioa eten da YunoHost eguneratzen ari delako. Zerbitzaria berriro erabilgarri noiz egongo zain…"
|
||||
},
|
||||
"success": "Zerbitzaria erabilgarri dago! Saioa hasten saia zaitezke"
|
||||
}
|
||||
},
|
||||
"api_error": {
|
||||
"view_error": "Ikusi errorea",
|
||||
"error_message": "Errore-mezua:",
|
||||
"server_said": "Eragiketa exekutatzean zera adierazi du zerbitzariak:",
|
||||
"help": "Laguntza eskatu beharko zenuke <a href=\"https://forum.yunohost.org/\">foroan</a> edo <a href=\"https://chat.yunohost.org/\">txat gelan</a> egoera hau konpontzeko, edo errore honen berri eman <a href=\"https://github.com/YunoHost/issues\">bugtracker</a> plataforman.",
|
||||
"info": "Ondorengo informazioa baliagarria izan dakioke laguntza ematen ari zaionari:",
|
||||
"sorry": "Barkatu."
|
||||
},
|
||||
"api_waiting": "Zerbitzariaren erantzunaren zain…",
|
||||
"all": "Guztia",
|
||||
"api_not_found": "Badirudi administrazio-gunea existitzen ez den zerbait bilatzen saiatu dela.",
|
||||
"api_not_responding": "YunoHosten APIa ez da erantzuten ari. Agian 'yunohost-api' ez dago martxan edo berrabiarazi da.",
|
||||
"app_choose_category": "Aukeratu kategoria",
|
||||
"api_errors_titles": {
|
||||
"APINotFoundError": "YunoHosten APIak ezin izan du bidea aurkitu",
|
||||
"APINotRespondingError": "YunoHosten APIa ez da erantzuten ari",
|
||||
"APIConnexionError": "YunoHostek konexio-errore batekin egin du topo",
|
||||
"APIError": "YunoHostek ustekabeko errore batekin egin du topo",
|
||||
"APIBadRequestError": "YunoHostek errore batekin egin du topo",
|
||||
"APIInternalError": "YunoHostek barne-errore batekin egin du topo"
|
||||
},
|
||||
"app_info_access_desc": "Une honetan aplikazio hau erabil dezaketen taldeak / erabiltzaileak:",
|
||||
"app_info_default_desc": "Birbideratu domeinu nagusia ({domain}) aplikazio honetara.",
|
||||
"app_info_changeurl_desc": "Aldatu aplikazio honen URLa (domeinua edota bidea).",
|
||||
"app_info_change_url_disabled_tooltip": "Aukera hau oraindik ez dago erabilgarri aplikazio honetan",
|
||||
"dns": "DNS",
|
||||
"domain_add": "Gehitu domeinua",
|
||||
"error_modify_something": "Zer edo zer aldatu beharko zenuke",
|
||||
"install_name": "Instalatu {id}",
|
||||
"label": "Etiketa",
|
||||
"details": "Xehetasunak",
|
||||
"form_errors": {
|
||||
"remote": "{message}",
|
||||
"pattern": "{type}",
|
||||
"invalid_form": "Errore batzuk daude.",
|
||||
"passwordMatch": "Pasahitzak ez datoz bat.",
|
||||
"required": "Ezinbestekoa da.",
|
||||
"domain": "Arazoa domeinu izenarekin: zenbakiak, hizki txikiak, puntuak eta gidoiak bakarrik erabili daitezke",
|
||||
"dynDomain": "Arazoa domeinu izenarekin: zenbakiak, hizki txikiak eta gidoiak bakarrik erabil daitezke",
|
||||
"emailForward": "Arazoa posta elektronikoaren birbidalketarekin: zenbakiak, hizkiak eta <code>_.-+</code> bakarrik erabil daitezke (esaterako izena+etiketa@adibidea.eus, iz3na-1+etiketa@adibidea.eus)",
|
||||
"maxValue": "Zenbakia {max} edo txikiagoa izan behar da.",
|
||||
"passwordLenght": "Pasahitzak 8 karaktere izan behar ditu gutxienez.",
|
||||
"between": "{min} eta {max} artean egon behar da.",
|
||||
"email": "Arazoa posta elektronikoarekin: zenbakiak, hizkiak eta <code>_.-</code> bakarrik erabili daitezke (esaterako izena@adibidea.eus, iz3na-1@adibidea.eus)",
|
||||
"minValue": "Zenbakia {min} edo handiagoa izan behar da.",
|
||||
"notInUsers": "Badago '{value}' izena duen erabiltzailea dagoeneko.",
|
||||
"number": "Balioa zenbaki bat izan behar da.",
|
||||
"alpha": "Hizkiak bakarrik izan daitezke.",
|
||||
"alphalownumdot_": "Zenbakiak, hizki txikiak eta azpiko marra bakarrik erabili daitezke.",
|
||||
"name": "Izenek ezin dituzte <code> ,.'-</code> ez diren karaktere bereziak eduki",
|
||||
"appRepoUrl": "YunoHosten aplikazio-gordailuko URLek honako itxura daukate: https://domain.tld/path/to/repo_ynh"
|
||||
},
|
||||
"items": {
|
||||
"backups": "babeskopia bat ere ez | babeskopia | {c} babeskopia",
|
||||
"domains": "domeinu bat ere ez | domeinua | {c} domeinua",
|
||||
"apps": "aplikazio bat ere ez | aplikazioa | {c} aplikazioa",
|
||||
"groups": "talderik ez | taldea | {c} talde",
|
||||
"installed_apps": "ez dago aplikaziorik instalatuta | instalatutako aplikazioa | {c} aplikazio instalatuta",
|
||||
"services": "zerbitzu bat ere ez | zerbitzua | {c} zerbitzua",
|
||||
"users": "erabiltzaile bat ere ez | erabiltzailea | {c} erabiltzailea",
|
||||
"logs": "erregistro bat ere ez | erregistroa | {c} erregistroa",
|
||||
"permissions": "baimenik gabe | baimena | {c} baimen"
|
||||
},
|
||||
"history": {
|
||||
"title": "Historia",
|
||||
"last_action": "Azken eragiketa:",
|
||||
"methods": {
|
||||
"DELETE": "ezabatu",
|
||||
"GET": "irakurri",
|
||||
"POST": "sortu/exekutatu",
|
||||
"PUT": "moldatu"
|
||||
},
|
||||
"is_empty": "Historiarik ez oraingoz."
|
||||
},
|
||||
"common": {
|
||||
"lastname": "Abizena",
|
||||
"firstname": "Izena"
|
||||
},
|
||||
"confirm_upnp_enable": "Ziur UPnP gaitu nahi duzula?",
|
||||
"group": "Taldea",
|
||||
"group_name": "Taldearen izena",
|
||||
"group_all_users": "Erabiltzaile guztiak",
|
||||
"group_visitors": "Bisitariak",
|
||||
"group_format_name_help": "Zenbakiak, hizkiak eta azpiko marra erabil ditzakezu",
|
||||
"groups_and_permissions": "Taldeak eta baimenak",
|
||||
"permissions": "Baimenak",
|
||||
"everything_good": "Dena zuzen dago!",
|
||||
"ignore": "Ez hartu kontuan",
|
||||
"ignored": "Kontuan hartu ez direnak: {count}",
|
||||
"configuration": "Ezarpenak",
|
||||
"catalog": "Katalogoa",
|
||||
"run_first_diagnosis": "Abiarazi hasierako diagnostikoa",
|
||||
"hook_data_home": "Erabiltzaile-datuak",
|
||||
"infos": "Informazioa",
|
||||
"archive_empty": "Artxiboa hutsik dago",
|
||||
"backup": "Babeskopiak",
|
||||
"confirm_upnp_disable": "Ziur UPnP desgaitu nahi duzula?",
|
||||
"delete": "Ezabatu",
|
||||
"domains": "Domeinuak",
|
||||
"hook_data_mail": "Posta",
|
||||
"app_show_categories": "Erakutsi kategoriak",
|
||||
"app_state_lowquality": "erdipurdiko kalitatea",
|
||||
"code": "Kodea",
|
||||
"applications": "Aplikazioak",
|
||||
"backup_action": "Egin babeskopia",
|
||||
"hook_conf_ynh_settings": "YunoHosten ezarpenak",
|
||||
"hook_conf_manually_modified_files": "Eskuz moldatutako ezarpenak",
|
||||
"hook_data_xmpp": "XMPP datuak",
|
||||
"domain": {
|
||||
"config": {
|
||||
"edit": "Aldatu domeinuaren konfigurazioa",
|
||||
"title": "Domeinuaren ezarpenak"
|
||||
},
|
||||
"dns": {
|
||||
"auto_config_zone": "Oraingo DNS gunea",
|
||||
"edit": "Aldatu DNS konfigurazioa",
|
||||
"info": "DNS erregistroen konfigurazio automatikoa funtzio esperimentala da. <br>Une honetan ageri diren DNS guneko xehetasunak gordetzea ondo legoke konfigurazio berria ezarri baino lehen.",
|
||||
"manual_config": "Eskuz konfiguratzeko proposatutako DNS erregistroak",
|
||||
"push": "Bidali DNS ezarpenak erregistro-enpresara",
|
||||
"push_force": "Ordezkatu erregistroak",
|
||||
"push_force_warning": "Badirudi YunoHost ezartzera zihoan DNS balio batzuk dagoeneko konfiguratuta daudela erregistro-enpresaren ezarpenetan. Ordezkatzeko aukera erabili dezakezu zertan ari zaren baldin badakizu.",
|
||||
"auto_config": "DNS erregistroen konfigurazio automatikoa",
|
||||
"auto_config_ok": "Konfigurazio automatikoa zuzena dela dirudi!",
|
||||
"push_force_confirm": "Ziur proposatutako DNS balioak bidali nahi dituzula? Kontuan izan honek erregistro-enpresak ezarritako balioak edota bestelako balioak ordezkatu ditzakeela.",
|
||||
"auto_config_ignored": "Ez da kontuan hartu, YunoHostek ez du aldatuko gainean idazteko aukera sakatzen ez baduzu",
|
||||
"methods": {
|
||||
"auto": "Automatikoa",
|
||||
"handled_in_parent": "Domeinu nagusiak kudeatzen du",
|
||||
"manual": "Eskuzkoa",
|
||||
"none": "Bat ere ez",
|
||||
"semi_auto": "Erdiautomatikoa"
|
||||
}
|
||||
},
|
||||
"cert": {
|
||||
"types": {
|
||||
"selfsigned": "Norberak sinatutakoa",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"other": "Beste / Ezezaguna"
|
||||
},
|
||||
"valid_for": "{days} baliogarria"
|
||||
},
|
||||
"explain": {
|
||||
"main_domain": "Domeinu nagusia erabiltzaileek atarira sartzeko erabiltzen dutena da (\"{domain}/yunohost/sso\" bidez). <br> Hori dela-eta, ezin da ezabatu. <br>\"{domain}\" ezabatu nahi baduzu, ezarri beste bat domeinu nagusi bezala."
|
||||
},
|
||||
"info": {
|
||||
"apps_on_domain": "Domeinuan instalatutako aplikazioak",
|
||||
"certificate_authority": "SSL ziurtagiri jaulkitzailea",
|
||||
"registrar": "Erregistro-enpresa",
|
||||
"dyn_dns_remove_and_unsubscribe": "Eta utzi YunoHosten DynDNS zerbitzuan domeinua erregistratzeari"
|
||||
},
|
||||
"see_parent_domain": "Ikus domeinu nagusia",
|
||||
"types": {
|
||||
"main_domain": "Domeinu nagusia"
|
||||
},
|
||||
"toggle_subdomains": "Ikusi / Ezkutatu azpi-domeinuak",
|
||||
"add": {
|
||||
"from_local_desc": "Ez baduzu \"benetako\" domeinu publiko bat nahi, <code>.local</code> edo <code>.test</code> amaiera duen edozein domeinu erabil dezakezu. <code>.local</code> amaiera duten domeinuak bereziak dira: sare lokalak kudeatzen ditu (gailuek Bonjour protokoloa badarabilte). Beste aukera bat gailu bakoitzeko <code>/etc/hosts</code> fitxategia (edo Windows-en baliokide dena) moldatzea da, edo routerrean DNS sarrerak konfiguratzea.",
|
||||
"from_yunohost_desc": "YunoHost proiektuak doako 'DynDNS' zerbitzu bat eskaintzen du. Zerbitzari bakoitzak mota honetako domeinu bakarra izan dezake (geroago azpidomeinu gehiago gehitu ditzakezu, 'Lehendik dudan domeinu edo azpidomeinu bat gehitu nahi dut' aukera erabiliz). DNS ezarpenak automatikoki kudeatuko ditu YunoHostek. Ideala da, orokorrean, norbera ostatatzen hasten denean eta oraindik domeinu bat erosteko prest ez dagoenarentzat. Hala ere, epe-ertain/luzean, domeinu propioa erostea gomendatzen dizugu, domeinuaren jabetza osoa izan dezazun.",
|
||||
"dyn_dns_password": "Domeinuaren berreskuratze-pasahitza",
|
||||
"dyn_dns_password_desc": "Pasahitz honek domeinuaren kontrola berreskuratzea ahalbidetuko dizu sistema berriz instalatzen baduzu. Domeinu hau aurretik ere erregistratu bazenuen, erabili berreskuratze-pasahitza hemen.",
|
||||
"from_local": "Lokalean erabiltzeko / probak egiteko domeinu bat nahi dut",
|
||||
"from_registrar": "Lehendik dudan domeinu edo azpidomeinu bat gehitu nahi dut",
|
||||
"from_registrar_desc": "Domeinuaren erregistro enpresan DNS balioak eskuz ezarri beharko dituzu konfigurazioa amaitzeko. YunoHosten diagnostikoak zein balio ezarri behar dituzun zehaztuko dizkizu.",
|
||||
"from_yunohost": "Ez daukat domeinurik, YunoHost proiektuak doan eskainitako DynDNS domeinu bat erregistratu/erabili nahi dut"
|
||||
}
|
||||
},
|
||||
"domain_add_dyndns_forbidden": "YunoHost proiektuaren DynDNS domeinu bat erregistratu duzu lehendik ere. Mota honetako domeinu bakarrera mugatuta dago zerbitzari bakoitza. Lehendik duzun domeinuaren azpidomeinu bat gehitu nahi baduzu, erabili 'Lehendik dudan domeinu edo azpidomeinu bat gehitu nahi dut' aukera. Beste domeinu bat erabili nahi izanez gero, unean darabilzun DynDNS domeinua kendu beharko duzu. DynDNS domeinuak idealak dira norbera ostatatzen hasten denean, baina epe-ertain/luzean domeinu propioa erostea gomendatzen dizugu, domeinuaren jabetza osoa izan dezazun.",
|
||||
"download": "Deskargatu",
|
||||
"ipv6": "IPv6",
|
||||
"app_install_parameters": "Instalazio-ezarpenak",
|
||||
"confirm_service_stop": "Ziur {name} geldiarazi nahi duzula?",
|
||||
"app_state_lowquality_explanation": "Litekeena da aplikazio hau erabili ahal izatea baina erroreak izan ditzake, edo ez dago erabat YunoHostera egina, edo ez ditu jardunbideak errespetatzen.",
|
||||
"app_state_highquality_explanation": "Aplikazio hau YunoHostera egoki egina dago gutxienez duela urtebetetik.",
|
||||
"backup_new": "Babeskopia berria",
|
||||
"confirm_delete": "Ziur {name} ezabatu nahi duzula?",
|
||||
"confirm_firewall_allow": "Ziur {port} ataka ireki nahi duzula? (protokoloa: {protocol}, konexioa: {connection})",
|
||||
"description": "Azalpena",
|
||||
"group_new": "Talde berria",
|
||||
"confirm_firewall_disallow": "Ziur {port} ataka itxi nahi duzula? (protokoloa: {protocol}, konexioa: {connection})",
|
||||
"diagnosis": "Diagnostikoak",
|
||||
"confirm_service_restart": "Ziur {name} berrabiarazi nahi duzula?",
|
||||
"confirm_reboot_action_shutdown": "Ziur zerbitzaria itzali nahi duzula?",
|
||||
"connection": "Konexioa",
|
||||
"diagnosis_first_run": "Diagnostikoa ohiko arazoak identifikatzen saiatuko da zerbitzaria ahalik eta hoberen ibili dadin. Ez larritu erroreak ikusten badituzu zerbitzaria konfiguratu eta berehala: horretarako dago pentsatuta zehazki, arazoak identifikatu eta konpontzen laguntzeko. Zerbitzariak egunean birritan egingo du diagnostikoa automatikoki eta administratzaileak posta elektroniko bat jasoko du aurkitutako arazoekin.",
|
||||
"domain_dns_config": "DNS ezarpenak",
|
||||
"diagnosis_explanation": "Diagnostikoa ohiko arazoak identifikatzen saiatuko da zerbitzaria ahalik eta hoberen ibili dadin. Egunean birritan egingo du zerbitzariak eginkizun hau eta posta elektronikoa bidaliko dio administratzaileari arazoren bat ikusiz gero. Litekeena da emaitza batzuek garrantzirik ez izatea ezaugarri batzuk erabili nahi ez badira (XMPP adibidez) edo kale egin dezake zerbitzariaren konfigurazioa konplexua bada. Horrelako kasuetan, eta zertan ari zaren baldin badakizu, ez dago arazorik abisu edo jakinarazpenei muzin egiteko.",
|
||||
"domain_default_desc": "Erabiltzaileek lehenetsitako domeinua erabiliko dute saioa hasteko.",
|
||||
"domain_delete_forbidden_desc": "Ezinezkoa da '{domain}' ezabatzea lehenetsitako domeinua delako. Aukeratu beste domeinu bat (edo <a href='#/domains/add'>gehitu berri bat</a>) eta lehenetsi oraingo domeinua kendu ahal izateko.",
|
||||
"domain_dns_push_managed_in_parent_domain": "DNS ezarpen automatikoen funtzioa <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a> domeinu nagusiak kudeatzen du.",
|
||||
"footer": {
|
||||
"documentation": "Dokumentazioa",
|
||||
"help": "Laguntza behar al duzu?",
|
||||
"donate": "Egin dohaintza"
|
||||
},
|
||||
"hook_data_home_desc": "Erabiltzaile-datuak /home/ERABILTZAILEA katalogoan daude",
|
||||
"installed": "Instalatuta",
|
||||
"from_to": "{0}(e)tik {1}(e)ra",
|
||||
"good_practices_about_admin_password": "Administrazio-pasahitz berri bat ezartzear zaude. Pasahitzak 8 karaktere izan beharko lituzke gutxienez, baina ondo legoke pasahitz luzeagoa erabiltzea (esaldi bat, esaterako) edota karaktere desberdinak gehitzea (hizki larriak, txikiak, zenbakiak eta karaktere bereziak).",
|
||||
"good_practices_about_user_password": "Erabiltzaile-pasahitz berri bat ezartzear zaude. Pasahitzak 8 karaktere izan beharko lituzke gutxienez, baina ondo legoke pasahitz luzeagoa erabiltzea (esaldi bat, esaterako) edota karaktere desberdinak gehitzea (hizki larriak, txikiak, zenbakiak eta karaktere bereziak).",
|
||||
"hook_adminjs_group_configuration": "Sistemaren ezarpenak",
|
||||
"hook_conf_ynh_certs": "SSL ziurtagiriak",
|
||||
"close": "Itxi",
|
||||
"issues": "Arazoak: {count}",
|
||||
"begin": "Hasi",
|
||||
"disabled": "Desgaituta",
|
||||
"both": "Biak",
|
||||
"confirm_update_system": "Ziur sistemaren pakete guztiak eguneratu nahi dituzula?",
|
||||
"app_state_inprogress_explanation": "Aplikazio honen arduradunak adierazi du aplikazioa ez dagoela oraindik ekoizpenerako prest. KONTUZ!",
|
||||
"confirm_app_change_url": "Ziur aplikazioaren URLa aldatu nahi duzula?",
|
||||
"domain_dns_push_failed_to_authenticate": "Ezinezkoa izan da erregistro-enpresaren APIa erabiliz saioa hastea. Ziurrenik <a href='#/domains/{domain}/config'>datuak</a> ez dira zuzenak. (Errorea: {error})",
|
||||
"domain_dns_push_not_applicable": "DNS ezarpenen funtzio automatikoa ezin da {domain} domeinuarekin erabili.<br>Eskuz konfiguratu beharko dituzu DNS ezarpenak <a href='https://yunohost.org/dns'>dokumentazioa</a>ri jarraituz eta ondoren proposatutako balioei erreparatuz.",
|
||||
"enable": "Gaitu",
|
||||
"enabled": "Gaituta",
|
||||
"error": "Errorea",
|
||||
"group_specific_permissions": "Erabiltzaile bakoitzaren baimenak",
|
||||
"group_add_member": "Gehitu erabiltzailea",
|
||||
"group_explain_all_users": "Zerbitzari honetan dauden erabiltzaile guztiak barne dituen talde berezia da",
|
||||
"app_manage_label_and_tiles": "Kudeatu etiketak eta lauzak",
|
||||
"group_add_permission": "Gehitu baimena",
|
||||
"group_explain_visitors": "Saiorik hasi ez duten bisitariak barne hartzen dituen talde berezia da",
|
||||
"groups_and_permissions_manage": "Kudeatu talde eta baimenak",
|
||||
"group_explain_visitors_needed_for_external_client": "Kontuan izan aplikazio batzuek bisitariak onartu behar dituztela ordenagailu edota telefonoan erabili nahi badituzu. Adibidez, Nextcloud.",
|
||||
"app_info_uninstall_desc": "Desinstalatu aplikazioa.",
|
||||
"app_make_default": "Lehenetsi",
|
||||
"app_install_custom_no_manifest": "Ez dago manifest.json fitxategirik",
|
||||
"app_state_inprogress": "oraindik ez dabil",
|
||||
"backup_content": "Babeskopiaren edukia",
|
||||
"backup_create": "Egin babeskopia",
|
||||
"cancel": "Utzi",
|
||||
"check": "Egiaztatu",
|
||||
"confirm_app_default": "Ziur aplikazio hau lehenetsi nahi duzula?",
|
||||
"confirm_change_maindomain": "Ziur domeinu nagusia aldatu nahi duzula?",
|
||||
"confirm_install_custom_app": "KONTUZ! Kanpoko aplikazioak instalatzeak sistemaren integritate eta segurtasun arriskuak ekar ditzake. Ez badakizu zertan ari zaren, EZ instalatu. Ziur zerbitzaria arriskuan jarri nahi duzula?",
|
||||
"confirm_install_domain_root": "Ziur aplikazioa '/'-n instalatu nahi duzula? Ezingo duzu bestelako aplikaziorik instalatu {domain} domeinuan",
|
||||
"confirm_migrations_skip": "Ez da gomendatzen migrazioak saihestea. Ziur saihestu nahi dituzula?",
|
||||
"confirm_postinstall": "{domain} domeinurako instalazio-prozedura hastear zaude. Litekeena da minutu batzuk irautea, *ez geldiarazi prozesua*.",
|
||||
"confirm_restore": "Ziur {name} lehengoratu nahi duzula?",
|
||||
"confirm_service_start": "Ziur {name} abiarazi nahi duzula?",
|
||||
"confirm_uninstall": "Ziur {name} desinstalatu nahi duzula?",
|
||||
"confirm_update_apps": "Ziur aplikazio guztiak eguneratu nahi dituzula?",
|
||||
"confirm_update_specific_app": "Ziur {app} eguneratu nahi duzula?",
|
||||
"confirm_reboot_action_reboot": "Ziur zerbitzaria berrabiarazi nahi duzula?",
|
||||
"created_at": "Sortze-data",
|
||||
"custom_app_install": "Instalatu norberaren aplikazioa",
|
||||
"domain_dns_conf_is_just_a_recommendation": "Atal honetan *iradokitutako* ezarpenak agertzen dira. *Ez* du DNSa zure ordez konfiguratuko. Zure ardura da DNS guneak zure DNS erregistro-enpresaren gomendioen arabera ezartzea.",
|
||||
"disable": "Desgaitu",
|
||||
"domain_default_longdesc": "Hau da lehenetsitako domeinua.",
|
||||
"domain_delete_longdesc": "Ezabatu domeinua",
|
||||
"domain_dns_longdesc": "Aztertu DNS ezarpenak",
|
||||
"domain_name": "Domeinu izena",
|
||||
"error_server_unexpected": "Ustekabeko errorea zerbitzarian",
|
||||
"firewall": "Suebakia",
|
||||
"error_connection_interrupted": "Zerbitzari honek erantzunik eman ez eta konexioa bertan behera utzi du. Berrabiarazi edo gelditu al da nginx edo yunohost-api arrazoiren bategatik?",
|
||||
"experimental_warning": "Adi: funtzio hau esperimentala da eta ezin da esan egonkorra denik; ez zenuke erabili beharko ez badakizu zertan ari zaren.",
|
||||
"footer_version": "<a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
|
||||
"form_input_example": "Adibidea: {example}",
|
||||
"hook_conf_ldap": "Erabiltzaile-datubasea",
|
||||
"hook_data_mail_desc": "Zerbitzarian gordetako posta elektronikoa",
|
||||
"id": "IDa",
|
||||
"install_time": "Instalazio unea",
|
||||
"installation_complete": "Amaitu da instalazioa",
|
||||
"home": "Hasiera",
|
||||
"hook_data_xmpp_desc": "Gela- eta erabiltzaile-ezarpenak, fitxategien igoera",
|
||||
"install": "Instalatu",
|
||||
"ipv4": "IPv4",
|
||||
"items_verbose_items_left": "{items} falta dira. | {items} bat falta da. | {items} falta dira.",
|
||||
"confirm_group_add_access_permission": "Ziur {name}(r)i {perm} baimena eman nahi diozula? Erasoak biderkatu litezke baimen horri esker {name} pertsona maltzurra baldin bada. Soilik baimena eman pertsona edo talde honetaz fio bazara.",
|
||||
"confirm_app_install": "Ziur aplikazio hau instalatu nahi duzula?",
|
||||
"confirm_install_app_lowquality": "Adi: litekeena da aplikazio honek funtzionatzea baina ez dago YunoHostera ondo egina. Aukera batzuk, SSO kasu edota babeskopia egin eta lehengoratzea, agian ez daude erabilgarri.",
|
||||
"confirm_install_app_inprogress": "KONTUZ! Aplikazio hau saiakera bat da (edo ez dabil) eta litekeena da sistema kaltetzea! Ez badakizu zertan zabiltzan ez zenuke instalatu beharko. Ziur zerbitzaria arriskuan jarri nahi duzula?",
|
||||
"day_validity": " Iraungita | egun 1 | {count} egun",
|
||||
"dead": "Ez dago aktibo",
|
||||
"experimental": "Esperimentala",
|
||||
"go_back": "Joan atzera",
|
||||
"items_verbose_count": "{items} dago | {items} bat dago | {items} daude.",
|
||||
"local_archives": "Artxibo lokalak",
|
||||
"logs": "Erregistroak",
|
||||
"logs_started_at": "Hasiera",
|
||||
"logs_context": "Testuingurua",
|
||||
"port": "Ataka",
|
||||
"restore": "Lehengoratu",
|
||||
"migrations": "Migrazioak",
|
||||
"migrations_no_done": "Ez dago lehenagoko migraziorik",
|
||||
"human_routes": {
|
||||
"diagnosis": {
|
||||
"ignore": {
|
||||
"error": "Ezkutatu errorea",
|
||||
"warning": "Ezkutatu jakinarazpena"
|
||||
},
|
||||
"unignore": {
|
||||
"error": "Erakutsi errorea",
|
||||
"warning": "Erakutsi jakinarazpena"
|
||||
},
|
||||
"run": "Abiarazi diagnostikoa",
|
||||
"run_specific": "Exekutatu '{description}'(r)en diagnostikoa"
|
||||
},
|
||||
"backups": {
|
||||
"create": "Sortu babeskopia",
|
||||
"delete": "Ezabatu '{name}' babeskopia",
|
||||
"restore": "Lehengoratu '{name}' babeskopia"
|
||||
},
|
||||
"apps": {
|
||||
"install": "Instalatu '{name}' aplikazioa",
|
||||
"set_default": "'{domain} domeinuaren root-a '{name}'ra birbideratu",
|
||||
"uninstall": "Desinstalatu '{name}' aplikazioa",
|
||||
"update_config": "Eguneratu '{name}' aplikazioaren '{id}' konfigurazio-arbela",
|
||||
"change_url": "Aldatu '{name}'(r)en URLa",
|
||||
"change_label": "'{prevName}' '{nextName}'(r)ekin aldatu",
|
||||
"action_config": "Exekutatu '{name}' aplikazioaren '{action}' ekintza ezarpenetan",
|
||||
"dismiss_notification": "Baztertu '{name}' aplikazioaren jakinarazpena"
|
||||
},
|
||||
"domains": {
|
||||
"add": "Gehitu '{name}' domeinua",
|
||||
"delete": "Ezabatu '{name}' domeinua",
|
||||
"push_dns_changes": "Bidali '{name}' DNS ezarpenak erregistro-enpresara",
|
||||
"update_config": "Eguneratu '{name}' domeinuaren '{id}' konfigurazio-arbela",
|
||||
"set_default": "Ezarri '{name}' domeinu nagusi bezala",
|
||||
"cert_install": "Instalatu ziurtagiria '{name}'(e)rako",
|
||||
"cert_renew": "Berritu ziurtagiria '{name}'(e)rako"
|
||||
},
|
||||
"migrations": {
|
||||
"skip": "Saihestu migrazioak",
|
||||
"run": "Exekutatu migrazioak"
|
||||
},
|
||||
"update": "Bilatu eguneraketak",
|
||||
"firewall": {
|
||||
"ports": "{action} {port} ataka ({protocol}, {connection})",
|
||||
"upnp": "UPnP {action}"
|
||||
},
|
||||
"groups": {
|
||||
"create": "Sortu '{name}' taldea",
|
||||
"add": "Gehitu '{user}' '{name}' taldera",
|
||||
"remove": "Kendu '{user}' '{name}' taldetik",
|
||||
"delete": "Ezabatu '{name}' taldea"
|
||||
},
|
||||
"permissions": {
|
||||
"add": "Baimena eman '{name}'(r)i '{perm}'ra sartzeko",
|
||||
"remove": "Kendu '{name}'(r)i '{perm}'ra sartzeko baimena"
|
||||
},
|
||||
"services": {
|
||||
"restart": "Berrabiarazi '{name}' zerbitzua",
|
||||
"start": "Abiarazi {name}' zerbitzua",
|
||||
"stop": "Geldiarazi '{name}' zerbitzua"
|
||||
},
|
||||
"upgrade": {
|
||||
"system": "Eguneratu sistema",
|
||||
"apps": "Eguneratu aplikazio guztiak",
|
||||
"app": "Eguneratu '{app}' aplikazioa"
|
||||
},
|
||||
"users": {
|
||||
"create": "Sortu '{name}' erabiltzailea",
|
||||
"delete": "Ezabatu '{name}' erabiltzailea",
|
||||
"update": "Aldatu '{name}' erabiltzailea"
|
||||
},
|
||||
"postinstall": "Abiarazi instalazio ondorengo prozesua",
|
||||
"share_logs": "Sortu '{name}' erregistroaren esteka",
|
||||
"shutdown": "Itzali zerbitzaria",
|
||||
"reboot": "Berrabiarazi zerbitzaria",
|
||||
"reconnecting": "Berkonektatzen",
|
||||
"settings": {
|
||||
"update": "Eguneratu '{panel}' ezarpen orokorrak"
|
||||
}
|
||||
},
|
||||
"only_highquality_apps": "Kalitate handiko aplikazioak soilik",
|
||||
"only_decent_quality_apps": "Kalitate onargarria duten aplikazioak soilik",
|
||||
"orphaned": "Arduradunik gabe",
|
||||
"nobody": "Inor ez",
|
||||
"others": "Besteak",
|
||||
"placeholder": {
|
||||
"domain": "nire-domeinua.eus",
|
||||
"file": "Arakatu edo ekarri fitxategia leihora",
|
||||
"username": "ziripot",
|
||||
"firstname": "Lur",
|
||||
"lastname": "Axpe",
|
||||
"groupname": "Nire taldearen izena",
|
||||
"fullname": "Lur Axpe"
|
||||
},
|
||||
"logs_suboperations": "Azpi-eragiketak",
|
||||
"logs_access": "Baimendutakoen eta debekatutakoen zerrenda",
|
||||
"logs_path": "Bidea",
|
||||
"logs_share_with_yunopaste": "Partekatu YunoPastekin",
|
||||
"label_for_manifestname": "{name}(r)entzat etiketa",
|
||||
"last_ran": "Une honetan exekutatu zen azkenekoz:",
|
||||
"migrations_no_pending": "Ez dago egiteko migraziorik",
|
||||
"password_confirmation": "Berridatzi pasahitza",
|
||||
"logs_history": "Sisteman exekutatutako komandoen historia",
|
||||
"permission_show_tile_enabled": "Erabiltzaileen atarian lauza moduan ikusgai",
|
||||
"ports": "Atakak",
|
||||
"postinstall": {
|
||||
"force": "Abiarazi instalazio ondorengo prozesua",
|
||||
"title": "Instalazio ondorengo prozesua",
|
||||
"user": {
|
||||
"title": "Sortu lehenengo administratzaile erabiltzailea",
|
||||
"first_user_help": "Erabiltzaile honi administrazio-ahalmenak esleituko zaizkio eta administrazio-gunea eta SSH konexioa erabiltzeko aukera izango du.\nErabiltzaile arrunta denez, erabiltzaileen ataria (SSO) erabiltzeko aukera ere izango du.\nInstalazio ondorengo prozesuek amaitzen dutenean, administratzaile gehiago sor ditzakezu 'admins' taldera gehituz."
|
||||
}
|
||||
},
|
||||
"postinstall_set_domain": "Aukeratu domeinu nagusia",
|
||||
"previous": "Aurrekoa",
|
||||
"protocol": "Protokoloa",
|
||||
"rerun_diagnosis": "Berrabiarazi diagnostikoa",
|
||||
"license": "Lizentzia",
|
||||
"restart": "Berrabiarazi",
|
||||
"operation_failed_explanation": "Kale egin du! Sentitzen dugu :( <a href='https://yunohost.org/help'>Laguntza eskatzen saia zaitezke</a>. Jarri laguntzaileen esku eragiketaren erregistroa *bere osotasunean*. 'Partekatu Yunopastekin' botoi berdea sakatu dezakezu horretarako. YunoHost automatikoki saiatuko da domeinuak edo IP helbideak bezalako datu pribatuak anonimo egiten erregistroak partekatzean.",
|
||||
"pending_migrations": "Migrazio batzuk exekutatzeke daude. Joan <a href='#/tools/migrations'>Tresnak > Migrazioak</a>-era abiarazteko.",
|
||||
"permission_corresponding_url": "Dagokion URLa",
|
||||
"orphaned_details": "Aplikazio honek ez du arduradunik izan denbora luzez. Litekeena da oraindik martxan jarri ahal izatea, baina ez du eguneraketarik jasoko bolondresen batek ardura hartu arte. Parte hartu eta biziberritu!",
|
||||
"permission_main": "Etiketa nagusia",
|
||||
"login": "Hasi saioa",
|
||||
"logout": "Amaitu saioa",
|
||||
"mailbox_quota_description": "Ezarri tamaina-muga bat posta elektronikorako.<br>Mugarik nahi ez baduzu, erabili 0.",
|
||||
"manage_apps": "Kudeatu aplikazioak",
|
||||
"manage_users": "Kudeatu erabiltzaileak",
|
||||
"migrations_pending": "Migratzeke",
|
||||
"migrations_done": "Lehenagoko migrazioak",
|
||||
"multi_instance": "Behin baino gehiagotan instala daiteke",
|
||||
"next": "Hurrengoa",
|
||||
"only_working_apps": "Erdipurdi dabiltzan aplikazioak soilik",
|
||||
"open": "Ireki",
|
||||
"operations": "Eragiketak",
|
||||
"path": "Bidea",
|
||||
"logs_package": "Debian paketeen kudeaketaren historia",
|
||||
"logs_system": "Kernel erregistroak eta maila baxuko bestelako gertakariak",
|
||||
"logs_service": "Zerbitzuen erregistroak",
|
||||
"logs_app": "Aplikazioen erregistroak",
|
||||
"logs_no_logs_registered": "Ez dago erregistrorik kategoria honetarako",
|
||||
"logs_error": "Errorea",
|
||||
"logs_ended_at": "Amaiera",
|
||||
"logs_more": "Erakutsi lerro gehiago",
|
||||
"postinstall_intro_1": "Bejon deizula! YunoHost arazorik gabe instalatu da.",
|
||||
"postinstall_intro_3": "Argibide gehiago lor ditzakezu <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>dokumentazio gunea</a> bisitatuz",
|
||||
"postinstall_intro_2": "Bi urrats gehiago behar dira zerbitzariko zerbitzuak gaitzeko.",
|
||||
"mailbox_quota_example": "CD bat 700M dira, DVD bat 4700M",
|
||||
"mailbox_quota_placeholder": "0 ezarriz gero ez da mugarik egongo.",
|
||||
"manage_domains": "Kudeatu domeinuak",
|
||||
"migrations_disclaimer_check_message": "Baldintzak ulertu eta onartzen ditut",
|
||||
"migrations_disclaimer_not_checked": "Baldintzak eta ardurak onartu behar dituzu migrazioarekin hasi baino lehen.",
|
||||
"no": "Ez",
|
||||
"perform": "Exekutatu",
|
||||
"logs_operation": "YunoHostekin burututako eragiketak",
|
||||
"readme": "Irakur nazazu",
|
||||
"postinstall_domain": "Domeinu hau YunoHost zerbitzarira lotuko den lehena izango da baina horrez gain, zerbitzariko erabiltzaileek saioa hasteko gunekoa ere izango da. Beraz, edonorentzat ikusgai egongo denez, aukeratu arretaz.",
|
||||
"tools_shutdown_reboot": "Itzali/Berrabiarazi",
|
||||
"user_mailbox_quota": "Posta elektronikoaren kupoa",
|
||||
"services": "Zerbitzuak",
|
||||
"set_default": "Lehenetsi",
|
||||
"size": "Tamaina",
|
||||
"start": "Abiarazi",
|
||||
"run": "Exekutatu",
|
||||
"tools_webadmin": {
|
||||
"language": "Hizkuntza",
|
||||
"fallback_language": "Bigarren hizkuntza",
|
||||
"fallback_language_description": "Hizkuntza lehenetsian mezuren bat itzulita ez badago, bigarren hizkuntzan erakutsiko da.",
|
||||
"cache": "Katxea",
|
||||
"cache_description": "Agian katxea desgaitu beharko zenuke administrazio-gunea erabiltzeaz gain terminalarekin jardungo baduzu.",
|
||||
"experimental": "Modu esperimentala",
|
||||
"experimental_description": "Funtzio esperimentalei atea irekitzen die. Ezegonkorrak dira eta sistema kaltetu dezake.<br>Zertan ari zaren badakizu soilik gaitu aukera hau.",
|
||||
"transitions": "Orrialdeen transtsizioetarako animazioak",
|
||||
"theme": "Piztu / Itzali itxura iluna"
|
||||
},
|
||||
"users_import_delete_desc": "Aukeratuz gero, CSV fitxategian ageri ez diren erabiltzaile guztiak ezabatuko dira (baita sistematik ere).",
|
||||
"version": "Bertsioa",
|
||||
"since": " ",
|
||||
"system_upgrade_btn": "Eguneratu",
|
||||
"system_upgrade_all_packages_btn": "Eguneratu pakete guztiak",
|
||||
"unignore": "Erakutsi",
|
||||
"user_emailaliases_add": "Gehitu e-mail ezizen bat",
|
||||
"system_apps_nothing": "Aplikazio guztiak egunean daude!",
|
||||
"system_packages_nothing": "Sistemaren pakete guztiak egunean daude!",
|
||||
"tools_reboot_btn": "Berrabiarazi",
|
||||
"select_all": "Hautatu guztia",
|
||||
"select_none": "Ez hautatu bat ere ez",
|
||||
"service_start_on_boot": "Abiarazi zerbitzariarekin batera",
|
||||
"status": "Egoera",
|
||||
"system": "Sistema",
|
||||
"tools": "Tresnak",
|
||||
"uninstall": "Desinstalatu",
|
||||
"url": "URLa",
|
||||
"users_no": "Ez dago erabiltzailerik.",
|
||||
"words": {
|
||||
"default": "Lehenetsia",
|
||||
"browse": "Arakatu",
|
||||
"collapse": "Ezkutatu",
|
||||
"link": "Esteka",
|
||||
"none": "Bat ere ez",
|
||||
"separator": ", ",
|
||||
"valid": "Baliozkoa"
|
||||
},
|
||||
"users_import_delete": "Ezabatu zerrendan ageri ez diren erabiltzaileak",
|
||||
"system_update": "Sistemaren eguneraketak",
|
||||
"system_upgrade_all_applications_btn": "Eguneratu aplikazio guztiak",
|
||||
"tcp": "TCP",
|
||||
"tools_reboot": "Berrabiarazi zerbitzaria",
|
||||
"unauthorized": "Ez duzu baimenik",
|
||||
"save": "Gorde",
|
||||
"tools_shutdown": "Itzali zerbitzaria",
|
||||
"tools_shutdown_btn": "Itzali",
|
||||
"udp": "UDP",
|
||||
"upnp": "UPnP",
|
||||
"upnp_disabled": "UPnP ez dago gaituta.",
|
||||
"upnp_enabled": "UPnP gaituta dago.",
|
||||
"user_email": "Posta elektronikoa",
|
||||
"user_emailaliases": "e-mail ezizenak",
|
||||
"user_emailforward": "Posta elektronikoaren birbidalketa",
|
||||
"user_fullname": "Izen osoa",
|
||||
"user_new_forward": "birbidalketaberria@kanpoko-domeinua.eus",
|
||||
"user_username": "Erabiltzaile-izena",
|
||||
"users": "Erabiltzaileak",
|
||||
"yes": "Bai",
|
||||
"running": "Exekutatzen",
|
||||
"search": {
|
||||
"for": "Bilatu {items}…",
|
||||
"not_found": "Zuk zehaztutako baldintzak betetzen dituzten {items} aurkitu dira. | Zuk zehaztutako baldintzak betetzen dituen {items} bat aurkitu da. | Zuk zehaztutako baldintzak betetzen dituzten {items} aurkitu dira."
|
||||
},
|
||||
"traceback": "Atzera egin (traceback)",
|
||||
"unknown": "Ezezaguna",
|
||||
"user_emailforward_add": "Gehitu posta elektronikorako birbidalketa",
|
||||
"users_import": "Inportatu erabiltzaileak",
|
||||
"users_export": "Esportatu erabiltzaileak",
|
||||
"users_import_csv_file": "CSV fitxategia",
|
||||
"users_import_update": "Eguneratu existitzen diren erabiltzaileak",
|
||||
"tip_about_user_email": "Erabiltzaileak sortzerakoan ePosta helbide bat (eta XMPP kontu bat) esleitzen zaie erabiltzailea@domeinua.eus itxurarekin. Administratzaile eta erabiltzaileek helbide elektroniko gehiago eta birbidalketarako helbideak gehitu ditzakete geroago.",
|
||||
"tools_webadmin_settings": "Administrazio-gunearen ezarpenak",
|
||||
"user_mailbox_use": "Posta elektronikorako erabilitako espazioa",
|
||||
"users_new": "Erabiltzaile berria",
|
||||
"users_import_csv_file_desc": "CSV fitxategia UTF-8 izan beharko litzateke eta zutabe hauek izan: erabiltzaile izena, pasahitza, taldeak, posta elektronikoa eta espazio kuota. Adibidez <a href='/yunohost/api/users/export' target='_BLANK'>erabiltzaileen CSV fitxategia</a> esporta dezakezu eta fitxategia moldatu.",
|
||||
"users_import_update_desc": "Aukeratuz gero, CSV fitxategian dauden erabiltzaile guztiak eguneratuko dira ezarpen berriarekin",
|
||||
"users_import_confirm_destructive": "Ziur fitxategi honetan ez dauden erabiltzaileak ezabatu nahi dituzula?",
|
||||
"users_import_delete_others": "Ezabatu zerrendan ageri ez diren erabiltzaileak",
|
||||
"warnings": "{count} jakinarazpen",
|
||||
"yunohost_admin": "YunoHosten administratzailea",
|
||||
"skip": "Gerorako utzi",
|
||||
"stop": "Geldiarazi",
|
||||
"user_interface_link": "Erabiltzaileen ataria",
|
||||
"user_username_edit": "Aldatu {name}(r)en kontua",
|
||||
"text_selection_is_disabled": "Ezinezkoa da testua hautatzea. Erregistroa partekatu nahi baduzu, erregistro *osoa* partekatu 'Partekatu Yunopastekin' botoiaren bidez.<br/><small>Edo testua hautatu nahi baduzu, sakatu tekla hauek: ↓↓↑↑. </small>",
|
||||
"certificate_manage": "Kudeatu SSL ziurtagiria",
|
||||
"certificate": "Ziurtagiria",
|
||||
"purge_user_data_warning": "Erabiltzailearen datuak purgatzea ezin da desegin. Ziurtatu hori den egin nahi duzuna!",
|
||||
"purge_user_data_checkbox": "{name}(r)en datuak purgatu? (Honek bere direktorioko eduki guztiak ezabatuko ditu, baita posta elektronikoa ere.)",
|
||||
"retry": "Saiatu berriro",
|
||||
"app_state_broken": "hondatuta",
|
||||
"app_state_broken_explanation": "Aplikazio hau hondatuta dago une honetan eta ezin da instalatu YunoHost-en azterketa automatikoen arabera",
|
||||
"confirm_install_app_broken": "ADI! Aplikazio hau hondatuta dago YunoHost-en azterketa automatikoen arabera eta litekeena da sistema hondatzea! EZ instalatu ez badakizu zertan ari zaren. Arriskatu nahi al duzu?",
|
||||
"details_about": "Erakutsi xehetasun gehiago {subject}(r)i buruz",
|
||||
"group_admins": "Administratzaileak",
|
||||
"group_explain_admins": "Administratzeko ahalmena duten erabiltzaileen talde berezia da hau. Talde honetan dauden erabiltzaileek YunoHosten web-administrazioa, SSH konexioa eta 'sudo' komandoa erabil dezakete. root@, admin@ eta admins@ kontuei bidalitako mezu elektronikoak ere jasoko dituzte, diagnostikoen jakinarazpenez gain. Erabat fio zaren erabiltzaileak baino ez zenituzke gehitu beharko talde honetara!",
|
||||
"label_for_manifestname_help": "Erabiltzaileen atarian ageri den izena da hau. Aldatzea dago.",
|
||||
"manage_groups": "Kudeatu taldeak",
|
||||
"tools_yunohost_settings": "YunoHosten ezarpenak",
|
||||
"wrong_password_or_username": "Pasahitz edo erabiltzaile-izen okerra",
|
||||
"important_yunohost_upgrade": "YunoHosten bertsio nagusi bat dago eskuragai. Zinez gomendagarria da eguneraketaren oharrak arretaz irakurtzea foroan bertsio-berritu baino lehen: <a href='https://forum.yunohost.org/tag/ynh_release'>Irakurri oharrak foroan</a>",
|
||||
"app": {
|
||||
"installed_version": "Instalatutako bertsioa:",
|
||||
"open_this_app": "Ireki aplikazioa",
|
||||
"antifeatures": "Aplikazio honek gogoko izan ez ditzakezun ezaugarriak ditu:",
|
||||
"doc": {
|
||||
"about": {
|
||||
"title": "Honi buruz",
|
||||
"description": "Deskribapena"
|
||||
},
|
||||
"admin": {
|
||||
"title": "Administratzaile dokumentazioa"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Jakinarazpenak",
|
||||
"post_upgrade": "Berritu ondorengo oharrak",
|
||||
"post_install": "Instalatu ondorengo oharrak",
|
||||
"understood": "Ulertuta"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"forum": "Bilatu edo galdetu foroan!",
|
||||
"problem": "Arazoren bat aplikazio honekin?",
|
||||
"config_panel_error": "Errore batek ezarpen arbela erakustea galarazten du:",
|
||||
"config_panel_error_please_report": "Eman errore honen berri YunoHost taldeari zuzen dezaten!"
|
||||
},
|
||||
"install": {
|
||||
"license": "Lizentzia: {license}",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"title": "'{name}' instalatu ondorengo jakinarazpenak",
|
||||
"alert": "Badirudi instalazioa behar bezala gauzatu dela!\nPaketearen arduradunak ondorengo jakinarazpenak garrantzitsuak direla deritzo.\nAplikazioaren informazio-orrialdean irakur dezakezu berriro."
|
||||
},
|
||||
"pre": {
|
||||
"warning": "Instalatu baino lehen jakin beharrekoak",
|
||||
"danger": "Aplikazioa instalatzeak arazoak sortuko ditu ziurrenik",
|
||||
"critical": "Ezin da aplikazioa instalatu"
|
||||
}
|
||||
},
|
||||
"problems": {
|
||||
"arch": "Aplikazio hau ({required}) arkitekturatan bakarrik instalatu daiteke, baina zure zerbitzariaren arkitektura {current} da.",
|
||||
"broken": "Aplikazio hau hondatuta dago YunoHosten azterketa automatikoen arabera eta zure sistema apur lezake! Ez zenuke instalatu beharko zertan ari zaren ez badakizu.",
|
||||
"thirdparty": "Aplikazio hau ez da YunoHosten liburutegikoa; hirugarrenen aplikazioak instalatzeak sistemaren integritatea ezbaian jar dezake. EZ zenuke instalatu beharko zertan ari zaren ez badakizu.",
|
||||
"ignore": "Ulertzen dut aplikazio honek nire sistema apur lezakeela baina hala ere probatu nahi dut.",
|
||||
"inprogress": "Aplikazio hau esperimentala da oraindik (edo ez dabil) eta litekeena da zure sistema apurtzea! EZ zenuke instalatu beharko zertan ari zaren ez badakizu.",
|
||||
"install": "Badago lehendik ere instalatuta eta ezin da behin baino gehiagotan instalatu.",
|
||||
"lowquality": "Litekeena da aplikazioa erabili ahal izatea baina ez dago YunoHosten ondo integratuta. Baliteke Saio Bakarra (SSO) edota babeskopia / lehengoratzea bezalako ezaugarri batzuk erabilgarri ez egotea, edo gidalerroak ez errespetatzea.",
|
||||
"version": "Aplikazio honek YunoHost {required} edo bertsio berriagoa behar du, baina unean instalatuta daukazuna {current} da; aztertu YunoHost eguneratzea.",
|
||||
"ram": "Aplikazio honek {required} RAM behar ditu instalatu edo bertsio-berritzeko baina unean soilik {current} daude erabilgarri. Aplikazioa ibiliko balitz ere, instalazio prozesuak RAM kopuru handia behar du eta zure zerbitzariak erantzuteari utzi eta huts egin lezake."
|
||||
},
|
||||
"try_demo": "Probatu demo hau",
|
||||
"version": "Uneko bertsioa: {version}"
|
||||
},
|
||||
"integration": {
|
||||
"archs": "Arkitektura bateragarriak:",
|
||||
"ldap": {
|
||||
"false": "Ezin da YunoHosten kontua erabili saioa hasteko (LDAP); kontu bat sortu beharko da aplikazioan bertan",
|
||||
"true": "YunoHosten kontuarekin hasi daiteke saioa (LDAP)",
|
||||
"?": "Ez dago LDAP integrazioari buruzko informaziorik"
|
||||
},
|
||||
"multi_instance": {
|
||||
"false": "Behin bakarrik instala daiteke",
|
||||
"true": "Behin baino gehiagotan instala daiteke"
|
||||
},
|
||||
"resources": "Baliabideen ohiko erabilera: {ram} RAM, {disk} memoria diskoan",
|
||||
"sso": {
|
||||
"true": "Saio Bateratua (SSO) erabilgarri dago",
|
||||
"?": "Ez dago Saio Bateratuari (SSO) buruzko informaziorik",
|
||||
"false": "Saio Bateratua (SSO) ez dago erabilgarri"
|
||||
},
|
||||
"title": "YunoHosten integrazioa"
|
||||
},
|
||||
"links": {
|
||||
"admindoc": "Administrazioaren dokumentazio ofiziala",
|
||||
"code": "Kode-gordailu ofiziala",
|
||||
"package": "YunoHosten pakete-gordailua",
|
||||
"title": "Estekak",
|
||||
"userdoc": "Erabiltzaileen dokumentazio ofiziala",
|
||||
"website": "Webgune ofiziala",
|
||||
"license": "Aplikazioaren lizentzia",
|
||||
"forum": "Aplikazio honi buruzko eztabaidak YunoHosten foroan",
|
||||
"package_license": "YunoHost paketearen lizentzia"
|
||||
},
|
||||
"potential_alternative_to": "Honen baliokide izan daiteke:",
|
||||
"upgrade": {
|
||||
"confirm": {
|
||||
"title": "Baieztatu aplikazioen bertsio-berritzeak",
|
||||
"apps": "Bertsio-berrituko diren aplikazioak"
|
||||
},
|
||||
"continue": "Jarraitu hurrengo aplikaziora",
|
||||
"notifs": {
|
||||
"pre": {
|
||||
"title": "Kontuz!",
|
||||
"alert": "Ondorengo oharrak aztertu beharko zenituzke bertsio-berritu baino lehen, litekeena da jakin beharreko zerbait azaltzea."
|
||||
},
|
||||
"post": {
|
||||
"alert": "Badirudi bertsio-berritzea behar bezala joan dela! \n Paketearen arduradunak bertsio-berritze honi buruzko ondorengo jakinarazpenak garrantzitsuak direla deritzo. \nAplikazioaren informazio-orrialdean irakur dezakezu berriro.",
|
||||
"title": "'{name}' bertsio-berritu ondorengo jakinarazpenak"
|
||||
}
|
||||
},
|
||||
"stop": "Utzi hurrengo aplikazioaren bertsio-berritzea"
|
||||
},
|
||||
"uninstall": {
|
||||
"purge_desc": "Kendu aplikazio honekin lotutako datuen direktorioa (aplikazioa erabiliz igo dituzun datuak izan ohi dira)."
|
||||
}
|
||||
}
|
||||
}
|
465
app/src/i18n/locales/fa.json
Normal file
|
@ -0,0 +1,465 @@
|
|||
{
|
||||
"api_error": {
|
||||
"error_message": "پیغام خطا :",
|
||||
"view_error": "مشاهده خطا",
|
||||
"sorry": "واقعاً از این بابت متاسفم.",
|
||||
"server_said": "هنگام پردازش و اجرای دستورات ، سمت سرور:",
|
||||
"info": "اطلاعات زیر ممکن است برای شخصی که به شما کمک می کند مفید باشد :",
|
||||
"help": "برای دریافت کمک شما بایدببینید<a href=\"https://forum.yunohost.org/\">انجمن تخصصی</a> یا <a href=\"https://chat.yunohost.org/\">گفتگوی آنلاین</a>و برای برطرف کردن مشکلات و یا گزارش اشکال و خطا مراجعه کنید به آدرس<a href=\"https://github.com/YunoHost/issues\"> ردگیری باگ و خطا</a>."
|
||||
},
|
||||
"api": {
|
||||
"query_status": {
|
||||
"warning": "با خطا یا هشدار با موفقیت انجام شد",
|
||||
"success": "با موفقیّت انجام شد",
|
||||
"pending": "در حال پیش رفت",
|
||||
"error": "ناموفّق"
|
||||
},
|
||||
"processing": "سرور در حال پردازش دستورات است…"
|
||||
},
|
||||
"all": "همه",
|
||||
"administration_password": "رمز مدیریت",
|
||||
"address": {
|
||||
"local_part_description": {
|
||||
"email": "یک بخش محلی برای ایمیل خود انتخاب کنید.",
|
||||
"domain": "یک زیردامنه انتخاب کنید."
|
||||
},
|
||||
"domain_description": {
|
||||
"email": "یک دامنه برای ایمیل خود انتخاب کنید.",
|
||||
"domain": "یک دامنه انتخاب کنید."
|
||||
}
|
||||
},
|
||||
"add": "اضافه کردن",
|
||||
"action": "اجرا",
|
||||
"api_not_found": "به نظر می رسد مدیر وب سعی کرده است از چیزی که وجود ندارد پرس و جو کند.",
|
||||
"all_apps": "همه اپلیکیشن ها",
|
||||
"api_errors_titles": {
|
||||
"APIConnexionError": "سیستم YunoHost با خطای اتصال مواجه شده",
|
||||
"APINotRespondingError": "رابط کاربری سیستم YunoHost پاسخ نمی دهد",
|
||||
"APINotFoundError": "رابط کاربری سیستم YunoHost نتوانست مسیری را پیدا کند",
|
||||
"APIInternalError": "سیستم YunoHost با خطای داخلی مواجه شده",
|
||||
"APIBadRequestError": "سیستم YunoHost با خطا مواجه شده",
|
||||
"APIError": "سیستم YunoHost با خطای غیر منتظره ای روبرو شده"
|
||||
},
|
||||
"form_errors": {
|
||||
"name": "اسامی نبایدشامل کاراکتر های خاص باشند! بغیر از:<code> ,.'-</code>",
|
||||
"emailForward": "ایمیل فوروارد نامعتبر: باید فقط حروف الفبا و عدد و کاراکترهای <code>_.-</code> باشد (بطور مثال : someone@example.com, s0me-1@example.com)",
|
||||
"email": "ایمیل نامعتبر: باید فقط حروف الفبا و عدد و کاراکترهای <code>_.-</code> باشد (بطور مثال : someone@example.com, s0me-1@example.com)",
|
||||
"dynDomain": "نام دامنه نامعتبر است: فقط باید حروف کوچک وکاراکتر خط تیره باشد",
|
||||
"domain": "نام دامنه نامعتبر است: فقط باید حروف کوچک ، دات وکاراکتر خط تیره باشد",
|
||||
"between": "مقدار باید بین {min} و {max} باشد.",
|
||||
"alphalownumdot_": "مقدار باید فقط حروف کوچک و خط زیرین باشد.",
|
||||
"alpha": "مقدار باید فقط حروف الفبا باشد.",
|
||||
"required": "فیلد الزامی است.",
|
||||
"passwordMatch": "کلمه های عبور مطابقت ندارند.",
|
||||
"passwordLenght": "رمز عبور باید حداقل 8 کاراکتر باشد.",
|
||||
"number": "مقدار باید یک عدد باشد.",
|
||||
"notInUsers": "کاربر '{value}' در حال حاضر وجود دارد.",
|
||||
"minValue": "مقدار باید عددی برابر یا بزرگتر از {min} باشد."
|
||||
},
|
||||
"footer": {
|
||||
"donate": "اهدا کنید",
|
||||
"help": "نیاز به کمک دارید؟",
|
||||
"documentation": "مستندات"
|
||||
},
|
||||
"footer_version": "طراحی شده توسط<a href='https://yunohost.org'>YunoHost</a>{version} ({repo}).",
|
||||
"firewall": "فایروال",
|
||||
"experimental_warning": "هشدار: این ویژگی آزمایشی است و پایدار تلقی نمی شود ، نباید از آن استفاده کنید مگر اینکه بدانید در حال انجام چه کاری هستید.",
|
||||
"experimental": "تجربی, آزمایشی",
|
||||
"everything_good": "همه چیز خوب است!",
|
||||
"error_connection_interrupted": "سرور به جای پاسخ دادن ، اتصال را بست. nginx یا yunohost-api دوباره راه اندازی شده یا به دلایلی متوقف شده است؟",
|
||||
"error_server_unexpected": "خطای غیرمنتظره سرور",
|
||||
"error_modify_something": "شما باید چیزی را اصلاح کنید",
|
||||
"error": "اشکال",
|
||||
"enabled": "فعال شد",
|
||||
"enable": "فعال",
|
||||
"download": "دانلود",
|
||||
"domains": "دامنه ها",
|
||||
"domain_name": "نام دامنه",
|
||||
"domain_dns_longdesc": "مشاهده پیکربندی DNS",
|
||||
"domain_dns_config": "پیکربندی DNS",
|
||||
"domain_delete_forbidden_desc": "از آنجا که دامنه '{domain}' پیش فرض است ، شما نمی توانید آن را حذف کنید، شما باید دامنه دیگری را انتخاب کنید (یا <a href='#/domains/add'> جدید اضافه کنید</a>) و آن را به عنوان دامنه پیش فرض تنظیم نموده تا بتوانید این دامنه را حذف کنید.",
|
||||
"domain_delete_longdesc": "این دامنه را حذف کنید",
|
||||
"domain_default_longdesc": "این دامنه پیش فرض شما است.",
|
||||
"domain_default_desc": "دامنه پیش فرض دامنه اتصال است که کاربران در آن وارد می شوند.",
|
||||
"domain_add_dyndns_forbidden": "شما قبلاً در یک دامنه DynDNS مشترک شده اید، می توانید از انجمن و فروم تخصصی درخواست حذف دامنه DynDNS فعلی خودرا در آدرس:<a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>و در یک تاپیک اختصاصی، ارائه دهید</a>.",
|
||||
"domain_add": "افزودن دامنه",
|
||||
"dns": "DNS",
|
||||
"disabled": "غیرفعال شد",
|
||||
"disable": "غیرفعال",
|
||||
"run_first_diagnosis": "اجرای عیب یابی اولیه",
|
||||
"diagnosis_explanation": "ویژگی عیب یابی و تشخیص سعی می کند مسائل رایج در جنبه های مختلف سرور شما را شناسایی کند تا مطمئن شوید همه چیز بدون مشکل اجرا می شود. عیب یابی به طور خودکار دو بار در روز انجام می شود و در صورت وجود مشکل به مدیر سیستم ایمیل ارسال می شود. توجه داشته باشید که اگر نمی خواهید از برخی ویژگی های خاص (به عنوان مثال XMPP) استفاده کنید ، ممکن است برخی از تست ها مرتبط نباشند یا اگر تنظیمات پیچیده ای داشته باشید ممکن است با شکست مواجه شوند. در چنین مواردی ، و اگر می دانید چه می کنید ، اشکالی ندارد که مسائل یا هشدارهای مربوطه را نادیده بگیرید.",
|
||||
"diagnosis_first_run": "ویژگی عیب یابی سعی می کند مسائل رایج در جنبه های مختلف سرور شما را شناسایی کند تا مطمئن شوید همه چیز بدون مشکل اجرا می شود. لطفاً اگر بلافاصله پس از راه اندازی سرور خطاهای زیادی را مشاهده کردید نگران نشوید : این دقیقاً به منظور کمک به شناسایی و تشخیص مشکلات و راهنمایی شما برای رفع آنها است. همچنین عیب یابی سیستم ، دو بار در روز بطور خودکار انجام می شود و در صورت وجود هرگونه مشکلی، ایمیل و ابلاغ به مدیر سیستم ارسال می شود.",
|
||||
"diagnosis": "عیب یابی",
|
||||
"domain_dns_conf_is_just_a_recommendation": "این صفحه پیکربندی * توصیه شده * را به شما نشان می دهد. برای شما سرور نام دامنه را پیکربندی *نمی کند*. این بعهده شماست که مطابق این پیکره بندی توصیه شده ، منطقه سرور نام دامنه خود را در ثبت کننده نام دامنه خود پیکربندی کنید.",
|
||||
"details": "جزئیات",
|
||||
"description": "شرح",
|
||||
"delete": "حذف",
|
||||
"dead": "غیر فعال",
|
||||
"day_validity": " منقضی شده | 1 روز | {count} روز",
|
||||
"custom_app_install": "نصب برنامه سفارشی",
|
||||
"created_at": "ایجاد شده در",
|
||||
"connection": "ارتباط",
|
||||
"confirm_reboot_action_shutdown": "آیا مطمئن هستید که می خواهید سرور خود را خاموش کنید؟",
|
||||
"confirm_reboot_action_reboot": "آیا مطمئن هستید که می خواهید سرور خود را راه اندازی مجدد کنید؟",
|
||||
"confirm_upnp_disable": "آیا مطمئن هستید که می خواهید UPnP را غیرفعال کنید؟",
|
||||
"confirm_upnp_enable": "آیا مطمئن هستید که می خواهید UPnP را فعال کنید؟",
|
||||
"confirm_update_specific_app": "آیا مطمئن هستید که می خواهید {app} را به روز رسانی کنید؟",
|
||||
"confirm_update_system": "آیا مطمئن هستید که می خواهید همه بسته های سیستم را به روز کنید؟",
|
||||
"confirm_update_apps": "آیا مطمئن هستید که می خواهید همه برنامه ها را به روز کنید؟",
|
||||
"confirm_uninstall": "آیا مطمئن هستید که می خواهید {name} را ، از نصب حذف کنید؟",
|
||||
"confirm_service_stop": "آیا مطمئن هستید که می خواهید {name} را ، متوقف کنید؟",
|
||||
"confirm_service_start": "آیا مطمئن هستید که می خواهید {name} را ، راه اندازی کنید؟",
|
||||
"confirm_service_restart": "آیا مطمئن هستید که می خواهید {name} راه اندازی مجدد کنید؟",
|
||||
"confirm_restore": "آیا مطمئن هستید که می خواهید {name} بازیابی کنید؟",
|
||||
"confirm_postinstall": "شما در حال راه اندازی مراحل پس از نصب در دامنه {domain} هستید و ممکن است چند دقیقه طول بکشد ، *عملیات را قطع نکنید *.",
|
||||
"confirm_migrations_skip": "رد کردن مهاجرت ها توصیه نمی شود. آیا شما مطمئن هستید که میخواهید انجام دهید؟",
|
||||
"confirm_install_app_inprogress": "هشدار! این برنامه هنوز آزمایشی است (اگر صراحتا کار نمی کند) و احتمال دارد سیستم شما را از کار بیندازد! احتمالاً نباید آن را نصب کنید مگر اینکه بدانید در حال انجام چه کاری هستید. آیا حاضرید این ریسک را انجام دهید؟",
|
||||
"confirm_install_app_lowquality": "هشدار ! : این برنامه ممکن است کار کند اما به خوبی در سیستم یکپارچه نشده است. برخی از ویژگی ها مانند ورود به سیستم و پشتیبان گیری/بازیابی ممکن است در دسترس نباشد.",
|
||||
"confirm_app_install": "آیا مطمئن هستید که می خواهید این برنامه را نصب کنید؟",
|
||||
"confirm_install_domain_root": "آیا مطمئن هستید که می خواهید این برنامه را روی '/' نصب کنید؟ شما نمی توانید برنامه دیگری در {domain} نصب کنید",
|
||||
"confirm_install_custom_app": "هشدار! نصب برنامه های شخص ثالث ممکن است یکپارچگی و امنیت سیستم شما را به خطر بیندازد. احتمالاً نباید آن را نصب کنید مگر اینکه بدانید در حال انجام چه کاری هستید. آیا حاضرید این ریسک را انجام دهید؟",
|
||||
"confirm_group_add_access_permission": "آیا مطمئن هستید که می خواهید اجازه دسترسی {perm} را به {name} بدهید؟اگر {name} یک شخص مخرب باشد ، چنین دسترسی به میزان قابل توجهی سطح حمله را افزایش می دهد. شما این سطح دسترسی را فقط باید به شخص/گروهی که اعتماد کامل دارید اعطاء کنید.",
|
||||
"confirm_firewall_disallow": "آیا مطمئن هستید برای بستن پورت {port} (پروتکل: {protocol}, ارتباط: {connection})",
|
||||
"confirm_firewall_allow": "آیا مطمئن هستید برای بازکردن پورت {port} (پروتکل: {protocol}, ارتباط: {connection})",
|
||||
"confirm_delete": "آیا مطمئن هستیدبرای حذف {name} ؟",
|
||||
"confirm_change_maindomain": "آیا مطمئن هستید که می خواهید دامنه اصلی را تغییر دهید؟",
|
||||
"confirm_app_default": "آیا مطمئن هستید که می خواهید این برنامه را پیش فرض قراردهید؟",
|
||||
"confirm_app_change_url": "آیا مطمئن هستید که می خواهید آدرس دسترسی برنامه را تغیر دهید؟",
|
||||
"configuration": "پیکربندی",
|
||||
"common": {
|
||||
"lastname": "نام خانوادگی",
|
||||
"firstname": "نام کوچک"
|
||||
},
|
||||
"code": "کُد",
|
||||
"close": "بستن",
|
||||
"check": "بررسی",
|
||||
"catalog": "کاتالوگ",
|
||||
"cancel": "لغو",
|
||||
"both": "هر دو",
|
||||
"begin": "شروع",
|
||||
"backup_new": "پشتیبان گیری جدید",
|
||||
"backup_create": "پشتیبان و بکآپ تهیه کنید",
|
||||
"app_state_inprogress_explanation": "نگهدارنده این برنامه به صراحت اعلام کرده است که هنوز برای استفاده در تولید آماده نیست. مراقب باشید!",
|
||||
"app_state_inprogress": "هنوز کار نمی کند",
|
||||
"app_show_categories": "نمایش دسته ها",
|
||||
"app_make_default": "پیش فرض قرار دهید",
|
||||
"app_manage_label_and_tiles": "مدیریت برچسب و کاشی",
|
||||
"app_install_parameters": "نصب تنظیمات",
|
||||
"app_install_custom_no_manifest": "فایل manifest.json وجود ندارد",
|
||||
"app_info_uninstall_desc": "این برنامه را حذف کنید.",
|
||||
"app_info_change_url_disabled_tooltip": "این ویژگی هنوز در این برنامه اجرا نشده است",
|
||||
"app_info_changeurl_desc": "آدرس دسترسی این برنامه (دامنه و / یا مسیر) را تغییر دهید.",
|
||||
"app_info_default_desc": "دامنه ریشه را به این برنامه هدایت کنید ({domain}).",
|
||||
"app_info_access_desc": "گروه ها / کاربرانی که در حال حاضر مجاز به دسترسی این برنامه هستند :",
|
||||
"app_choose_category": "یک دسته را انتخاب کنید",
|
||||
"api_waiting": "در انتظار پاسخ سِرورها…",
|
||||
"api_not_responding": "رابط کاربری سیستم YunoHost پاسخ نمی دهد، شاید 'yunohost-api' خاموش و یا راه اندازی مجدد شده؟",
|
||||
"purge_user_data_warning": "پاکسازی داده های کاربر برگشت پذیر نیست. مطمئن باشید که می دانید چه می کنید!",
|
||||
"purge_user_data_checkbox": "داده های {name} پاک شود؟ (با این کار محتوای فهرست های خانه و ایمیل آن حذف می شود.)",
|
||||
"certificate": "گواهی نامه",
|
||||
"certificate_manage": "مدیریت گواهی SSL",
|
||||
"yes": "بله",
|
||||
"words": {
|
||||
"default": "پیش فرض",
|
||||
"collapse": "گستراندن"
|
||||
},
|
||||
"warnings": "{count} هشدارها",
|
||||
"version": "نسخه",
|
||||
"users_no": "کاربری وجود ندارد.",
|
||||
"users_new": "کاربر جدید",
|
||||
"users": "کاربران",
|
||||
"user_username_edit": "ویرایش حساب کاربری {name}",
|
||||
"user_username": "نام کاربری",
|
||||
"user_new_forward": "newforward@myforeigndomain.org",
|
||||
"user_mailbox_use": "فضای استفاده شده صندوق پستی",
|
||||
"user_mailbox_quota": "سهمیه صندوق پستی",
|
||||
"user_interface_link": "رابط کاربری",
|
||||
"user_fullname": "نام و نام خانوادگی",
|
||||
"user_emailforward_add": "افزودن ارسال به جلو ایمیل",
|
||||
"user_emailforward": "ارسال به جلو ایمیل",
|
||||
"user_emailaliases_add": "افزودن نام مستعار ایمیل",
|
||||
"user_emailaliases": "نام مستعار ایمیل",
|
||||
"user_email": "ایمیل",
|
||||
"url": "آدرس اینترنتی",
|
||||
"upnp_enabled": "UPnP فعال است.",
|
||||
"upnp_disabled": "UPnP غیرفعال است.",
|
||||
"upnp": "UPnP",
|
||||
"unknown": "ناشناخته",
|
||||
"uninstall": "حذف نصب",
|
||||
"unignore": "توجه مجدد",
|
||||
"unauthorized": "غیرمجاز",
|
||||
"udp": "UDP",
|
||||
"traceback": "ردیابی",
|
||||
"tools_webadmin_settings": "تنظیمات مدیریت وب",
|
||||
"tools_webadmin": {
|
||||
"transitions": "انیمیشن های انتقال صفحه",
|
||||
"experimental_description": "به شما امکان دسترسی به ویژگی های آزمایشی را می دهد. اینها ناپایدار در نظر گرفته می شوند و ممکن است سیستم شما را خراب کنند. <br> این مورد را تنها در صورتی فعال کنید که میدانید در حال انجام چه کاری هستید.",
|
||||
"experimental": "حالت آزمایشی",
|
||||
"cache_description": "اگر قصد دارید با CLI کار کنید و در عین حال در این مدیر وب نیز حرکت کنید ، حافظه پنهان را غیرفعال کنید.",
|
||||
"cache": "حافظه پنهان",
|
||||
"fallback_language_description": "زبانی که در صورت عدم وجود ترجمه اصلی مورد استفاده قرار می گیرد.",
|
||||
"fallback_language": "زبان جایگزین",
|
||||
"language": "زبان"
|
||||
},
|
||||
"tools_shutdown_reboot": "خاموش/ راه اندازی مجدد",
|
||||
"tools_shutdown_btn": "خاموش شدن",
|
||||
"tools_shutdown": "سرور خود را خاموش کنید",
|
||||
"tools_reboot_btn": "راه اندازی مجدد",
|
||||
"tools_reboot": "راه اندازی مجدد سرور شما",
|
||||
"tools": "ابزارها",
|
||||
"tip_about_user_email": "کاربران با یک آدرس ایمیل مرتبط (و حساب XMPP) با قالب username@domain.tld ایجاد می شوند. نام مستعار ایمیل اضافی و ایمیل ارسال شده بعداً توسط مدیر و کاربر اضافه می شود.",
|
||||
"tcp": "TCP",
|
||||
"system_upgrade_all_packages_btn": "ارتقاء تمام بسته ها",
|
||||
"system_upgrade_all_applications_btn": "ارتقاء تمام برنامه های کاربردی",
|
||||
"system_upgrade_btn": "ارتقاء",
|
||||
"system_update": "به روزرسانی سیستم",
|
||||
"system_packages_nothing": "همه بسته های سیستم به روز هستند!",
|
||||
"system_apps_nothing": "همه برنامه ها به روز هستند!",
|
||||
"system": "سیستم",
|
||||
"stop": "توقف",
|
||||
"status": "وضعیّت",
|
||||
"start": "شروع",
|
||||
"skip": "رد شدن",
|
||||
"since": "از آنجا که",
|
||||
"size": "اندازه",
|
||||
"set_default": "تنظیم پیش فرض",
|
||||
"services": "سرویس ها",
|
||||
"service_start_on_boot": "شروع هنگام بوت",
|
||||
"select_none": "انتخاب هیچکدام",
|
||||
"select_all": "انتخاب همه",
|
||||
"search": {
|
||||
"not_found": "{items} با معیارهای شما مطابقت دارد.",
|
||||
"for": "جستجو برای {items}…"
|
||||
},
|
||||
"save": "ذخیره",
|
||||
"running": "درحال اجرا",
|
||||
"run": "اجرا",
|
||||
"human_routes": {
|
||||
"users": {
|
||||
"update": "به روزرسانی کاربر: '{name}'",
|
||||
"delete": "حذف کاربر: '{name}'",
|
||||
"create": "ایجاد کاربر: '{name}'"
|
||||
},
|
||||
"upgrade": {
|
||||
"app": "ارتقاء برنامه کاربردی '{app}'",
|
||||
"apps": "ارتقاء تمام برنامه های کاربردی",
|
||||
"system": "ارتقاء سیستم"
|
||||
},
|
||||
"update": "برای بروزرسانی ها بررسی کنید",
|
||||
"shutdown": "خاموش کردن سرور",
|
||||
"share_logs": "ایجاد پیوند برای گزارش '{name}'",
|
||||
"services": {
|
||||
"stop": "توقف سرویس '{name}'",
|
||||
"start": "شروع سرویس '{name}'",
|
||||
"restart": "راه اندازی مجدد سرویس '{name}'"
|
||||
},
|
||||
"reboot": "راه اندازی مجدد سِرور",
|
||||
"postinstall": "اجرای پس از نصب",
|
||||
"permissions": {
|
||||
"remove": "حذف دسترسی '{name}' به '{perm}'",
|
||||
"add": "اجازه دهید '{name}' به '{perm}' دسترسی پیدا کند"
|
||||
},
|
||||
"migrations": {
|
||||
"skip": "ردکردن مهاجرت ها",
|
||||
"run": "اجرای مهاجرت ها"
|
||||
},
|
||||
"groups": {
|
||||
"remove": "حذف '{user}' از گروه '{name}'",
|
||||
"add": "افزودن '{user}' به گروه '{name}'",
|
||||
"delete": "حذف گروه '{name}'",
|
||||
"create": "ایجاد گروه '{name}'"
|
||||
},
|
||||
"firewall": {
|
||||
"upnp": "{action} UPnP",
|
||||
"ports": "{action} پورت {port} ({protocol}, {connection})"
|
||||
},
|
||||
"domains": {
|
||||
"set_default": "'{name}' را به عنوان دامنه پیش فرض تنظیم کنید",
|
||||
"delete": "حذف دامنه '{name}'",
|
||||
"add": "افزودن دامنه '{name}'"
|
||||
},
|
||||
"diagnosis": {
|
||||
"unignore": {
|
||||
"warning": "حذف هشدار",
|
||||
"error": "حذف خطا"
|
||||
},
|
||||
"run_specific": "اجرای '{description}' عیب یابی",
|
||||
"run": "اجرای عیب یابی",
|
||||
"ignore": {
|
||||
"warning": "نادیده گرفتن هشدار",
|
||||
"error": "نادیده گرفتن خطاء"
|
||||
}
|
||||
},
|
||||
"backups": {
|
||||
"restore": "بازیابی نسخه پشتیبان '{name}'",
|
||||
"delete": "حذف نسخه پشتیبان '{name}'",
|
||||
"create": "پشتیبان تهیه کنید"
|
||||
},
|
||||
"apps": {
|
||||
"update_config": "به روزرسانی پیکربندی برنامه '{name}'",
|
||||
"uninstall": "حذف برنامه '{name}'",
|
||||
"set_default": "تغییر مسیر ریشه دامنه '{domain}' به '{name}'",
|
||||
"install": "نصب برنامه '{name}'",
|
||||
"change_url": "تغییر آدرس دسترسی از '{name}'",
|
||||
"change_label": "تغییر برچسب از '{prevName}' به '{nextName}'"
|
||||
}
|
||||
},
|
||||
"restart": "راه اندازی مجدد",
|
||||
"restore": "بازگرداندن",
|
||||
"rerun_diagnosis": "عیب یابی مجدد",
|
||||
"readme": "مرا بخوان",
|
||||
"protocol": "پروتکل",
|
||||
"previous": "قبلی",
|
||||
"postinstall_set_domain": "تنظیم دامنه اصلی",
|
||||
"postinstall_intro_3": "با مراجعه به آدرس می توانید اطلاعات بیشتری کسب کنید <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>صفحه مستندات مناسب</a>",
|
||||
"postinstall_intro_2": "دو مرحله پیکربندی دیگر برای فعال کردن خدمات سرور مورد نیاز است.",
|
||||
"postinstall_intro_1": "تبریک می گوئیم! YunoHost با موفقیت نصب شد.",
|
||||
"postinstall_domain": "این اولین نام دامنه ای است که به سرور YunoHost شما پیوند داده شده است ، اما همچنین نامی است که توسط کاربران سرور شما برای دسترسی به پورتال احراز هویت مورد استفاده قرار می گیرد. بر این اساس ، برای همه قابل مشاهده خواهد بود ، بنابراین آن را با دقت انتخاب کنید.",
|
||||
"postinstall": {
|
||||
"force": "پس از نصب را مجبورکنید"
|
||||
},
|
||||
"ports": "پورت ها",
|
||||
"port": "درگاه، پورت",
|
||||
"permission_show_tile_enabled": "به صورت کاشی در پورتال کاربر قابل مشاهده است",
|
||||
"permission_main": "برچسب اصلی",
|
||||
"permission_corresponding_url": "آدرس اینترنتی متناظر",
|
||||
"pending_migrations": "برخی از مهاجرت های معلق در انتظار اجرا هستند. لطفا برای مشاهده و اجرای آن ها به <a href='#/tools/migrations'>ابزارها> مهاجرت ها</a>مراجعه نمائید.",
|
||||
"placeholder": {
|
||||
"domain": "my-domain.com",
|
||||
"groupname": "نام گروه من",
|
||||
"lastname": "دو",
|
||||
"firstname": "جان",
|
||||
"username": "اسم فرضی"
|
||||
},
|
||||
"ipv6": "IPv6",
|
||||
"ipv4": "IPv4",
|
||||
"logs_more": "نمایش خطوط بیشتر",
|
||||
"logs_share_with_yunopaste": "گزارش ها را با YunoPaste به اشتراک بگذارید",
|
||||
"logs_context": "نوشتار",
|
||||
"logs_path": "مسیر",
|
||||
"logs_started_at": "شروع",
|
||||
"logs_ended_at": "پایان",
|
||||
"logs_error": "خطاء",
|
||||
"logs_no_logs_registered": "هیچ لاگ و گزارشی برای این دسته ثبت نشده است",
|
||||
"logs_app": "گزارشات برنامه های کاربردی",
|
||||
"logs_service": "گزارشات سرویس ها",
|
||||
"logs_access": "لیست دسترسی و ممنوعیت ها",
|
||||
"logs_system": "گزارش هسته و سایر رویدادهای سطح پایین",
|
||||
"logs_package": "سوابق مدیریت بسته های دبیان",
|
||||
"logs_history": "سابقه اجرای دستور روی سیستم",
|
||||
"logs_operation": "عملیّات انجام شده بر روی سیستم با YunoHost",
|
||||
"logs_suboperations": "عملیّات فرعی",
|
||||
"logs": "لاگ ها",
|
||||
"perform": "انجام دادن",
|
||||
"path": "مسیر",
|
||||
"password_confirmation": "تایید کلمه عبور",
|
||||
"password": "کلمه عبور",
|
||||
"operation_failed_explanation": "این عملیات شکست خورد! واقعاً متأسفم :( می توانید امتحان کنید<a href='https://yunohost.org/help'>کمک بخواهید</a>. لطفاً * گزارش کامل * عملیات را به افرادی که به شما کمک می کنند ارائه دهید. می توانید این کار را با کلیک روی دکمه سبز \"Share with Yunopaste\" انجام دهید. هنگام به اشتراک گذاری گزارش ها ، YunoHost به طور خودکار سعی می کند داده های خصوصی مانند نام دامنه و IP ها را ناشناس کند.",
|
||||
"others": "دیگران",
|
||||
"orphaned_details": "این برنامه مدتی است که نگهداری نمی شود.ممکن است هنوز کار کند ، اما تا زمانی که کسی داوطلب مراقبت از آن نشود ، هیچ ارتقا ای دریافت نمی کند. با خیال راحت در احیای آن مشارکت کنید!",
|
||||
"orphaned": "نگهداری نمی شود",
|
||||
"operations": "عملیّات",
|
||||
"open": "باز",
|
||||
"only_decent_quality_apps": "فقط برنامه های با کیفیّت مناسب",
|
||||
"only_working_apps": "فقط برنامه های کاربردی",
|
||||
"only_highquality_apps": "فقط برنامه های با کیفیّت بالا",
|
||||
"ok": "خوب",
|
||||
"nobody": "هيچ كس",
|
||||
"no": "خیر",
|
||||
"next": "بعدی",
|
||||
"multi_instance": "می توان چندین بار نصب کرد",
|
||||
"migrations_disclaimer_not_checked": "این مهاجرت مستلزم آن است که قبل از اجرای آن ، سلب مسئولیت آن را تصدیق کنید.",
|
||||
"migrations_disclaimer_check_message": "من این سلب مسئولیت را خواندم و فهمیدم",
|
||||
"migrations_no_done": "مهاجرت قبلی وجود ندارد",
|
||||
"migrations_no_pending": "مهاجرت معلق وجود ندارد",
|
||||
"migrations_done": "مهاجرت های قبلی",
|
||||
"migrations_pending": "مهاجرت های در انتظار",
|
||||
"migrations": "مهاجرت ها",
|
||||
"manage_users": "مدیریت کاربران",
|
||||
"manage_domains": "مدیریت دامنه ها",
|
||||
"manage_apps": "مدیریت برنامه ها",
|
||||
"mailbox_quota_placeholder": "برای غیرفعال کردن روی 0 تنظیم کنید.",
|
||||
"mailbox_quota_example": "گنجایش یک سی-دی 700 مگابایت، و یک دی-وی-دی 4700 مگابایت میباشد",
|
||||
"mailbox_quota_description": "محدودیت اندازه ذخیره سازی برای محتوای ایمیل تعیین کنید. <br> برای غیرفعال کردن روی 0 تنظیم کنید.",
|
||||
"logout": "خروج",
|
||||
"login": "ورود به سیستم",
|
||||
"local_archives": "بایگانی های محلی",
|
||||
"license": "لایسنس، مجوز",
|
||||
"last_ran": "زمان آخرین اجرا:",
|
||||
"label_for_manifestname": "برچسب برای {name}",
|
||||
"label": "برچسب",
|
||||
"items_verbose_items_left": "{items} باقی مانده است.",
|
||||
"items_verbose_count": "{items} وجود دارد.",
|
||||
"items": {
|
||||
"users": "بدون کاربر | کاربر | {c} کاربران",
|
||||
"services": "بدون سرویس | سرویس | {c} سرویس ها",
|
||||
"permissions": "بدون مجوز | اجازه | {c} مجوزها",
|
||||
"logs": "بدون لاگ | لاگ | {c} لاگ ها",
|
||||
"installed_apps": "بدون برنامه های نصب شده | برنامه نصب شده | {c} برنامه های نصب شده",
|
||||
"groups": "بدون گروه | گروه | {c} گروه ها",
|
||||
"domains": "بدون دامنه | دامنه | {c} دامنه ها",
|
||||
"backups": "بدون پشتیبان گیری | پشتیبان گیری | {c} پشتیبان گیری",
|
||||
"apps": "بدون برنامه | برنامه | {c} برنامه ها"
|
||||
},
|
||||
"issues": "{count} مسائل",
|
||||
"installed": "نصب شد",
|
||||
"installation_complete": "عملیّات نصب کامل شد",
|
||||
"install_time": "زمان نصب",
|
||||
"install_name": "نصب {id}",
|
||||
"install": "نصب",
|
||||
"infos": "اطلاعات",
|
||||
"ignored": "{count} نادیده گرفته شده",
|
||||
"ignore": "چشم پوشی",
|
||||
"id": "شناسه",
|
||||
"hook_data_xmpp_desc": "تنظیمات اتاق و کاربر ، بارگذاری فایل",
|
||||
"hook_data_xmpp": "داده های XMPP",
|
||||
"hook_data_mail_desc": "ایمیل های خام ذخیره شده در سرور",
|
||||
"hook_data_mail": "ایمیل",
|
||||
"hook_data_home_desc": "داده های کاربر واقع در /home/USER",
|
||||
"hook_data_home": "داده های کاربر",
|
||||
"hook_conf_manually_modified_files": "تنظیمات دستی تغییر یافته",
|
||||
"hook_conf_ynh_settings": "پیکربندی سیستم YunoHost",
|
||||
"hook_conf_ynh_certs": "گواهینامه های SSL",
|
||||
"hook_conf_ldap": "پایگاه داده کاربر",
|
||||
"hook_adminjs_group_configuration": "تنظیمات سیستم",
|
||||
"home": "خانه",
|
||||
"history": {
|
||||
"methods": {
|
||||
"PUT": "اصلاح کردن",
|
||||
"POST": "ایجاد / اجرا",
|
||||
"GET": "خواندن",
|
||||
"DELETE": "حذف"
|
||||
},
|
||||
"last_action": "اقدام اخیر:",
|
||||
"title": "سابقه",
|
||||
"is_empty": "درحال حاضر هیچ سابقه ای وجود ندارد."
|
||||
},
|
||||
"permissions": "مجوز ها",
|
||||
"groups_and_permissions_manage": "مدیریت گروه ها و مجوزهای دسترسی",
|
||||
"groups_and_permissions": "گروه ها و مجوزها",
|
||||
"group_specific_permissions": "مجوزهای خاص کاربر",
|
||||
"group_explain_visitors_needed_for_external_client": "مراقب باشید نیاز است تا برخی از برنامه های کاربردی را برای بازدیدکنندگان مجاز بگذارید، اگر قصد دارید با کلاینت های خارجی از برنامه ها استفاده کنید. برای مثال: اگر قصد دارید از کلاینت همگام سازی در تلفن هوشمند یا رایانه رومیزی خود استفاده کنید ، این مورد برای Nextcloud صدق می کند.",
|
||||
"group_explain_visitors": "این گروه ویژه نماینده بازدیدکنندگان ناشناس است",
|
||||
"group_explain_all_users": "این یک گروه خاص است که شامل تمام حساب های کاربری روی سرور است",
|
||||
"group_new": "گروه جدید",
|
||||
"group_add_permission": "افزودن مجوز دسترسی",
|
||||
"group_add_member": "افزودن کاربر",
|
||||
"group_format_name_help": "می توانید از کاراکترهای الفبائی و عددو خط زیرین استفاده کنید",
|
||||
"group_visitors": "بازدید کنندگان",
|
||||
"group_all_users": "تمام کاربران",
|
||||
"group_name": "نام گروه",
|
||||
"group": "گروه",
|
||||
"good_practices_about_user_password": "اکنون در حال تعریف رمز عبور کاربر جدید هستید. گذرواژه باید حداقل 8 کاراکتر طول داشته باشد - هرچند استفاده از رمز عبور طولانی تمرین خوبی است (یعنی عبارت عبور) و/یا با استفاده و ترکیب انواع مختلف کاراکترها (حروف بزرگ ، کوچک ، عدد و کاراکترهای خاص).",
|
||||
"good_practices_about_admin_password": "اکنون در حال تعریف رمز عبور جدید مدیر سیستم هستید. گذرواژه باید حداقل 8 کاراکتر طول داشته باشد - هرچند استفاده از رمز عبور طولانی تمرین خوبی است (یعنی عبارت عبور) و/یا با استفاده و ترکیب انواع مختلف کاراکترها (حروف بزرگ ، کوچک ، عدد و کاراکترهای خاص).",
|
||||
"go_back": "برگشتن به عقب",
|
||||
"from_to": "از {0} تا {1}",
|
||||
"form_input_example": "مثال : {example}",
|
||||
"backup_content": "محتوای نسخه پشتیبان",
|
||||
"backup_action": "پشتیبان گیری",
|
||||
"backup": "پشتیبان گیری",
|
||||
"archive_empty": "بایگانی خالی",
|
||||
"applications": "برنامه های کاربردی",
|
||||
"app_state_highquality_explanation": "این برنامه حداقل از یک سال پیش به خوبی با سیستم YunoHost ادغام ویکپارچه شده است.",
|
||||
"app_state_lowquality_explanation": "این برنامه ممکن است کاربردی باشد ، اما ممکن است همچنان دارای مشکلاتی باشد یا به طور کامل با سیستم YunoHost یکپارچه نشده باشد و یا به شیوه های خوب احترام نمی گذارد.",
|
||||
"app_state_lowquality": "کیفیّت پایین"
|
||||
}
|
523
app/src/i18n/locales/fi.json
Normal file
|
@ -0,0 +1,523 @@
|
|||
{
|
||||
"app_state_inprogress": "ei vielä toimi",
|
||||
"app_show_categories": "Näytä kategoriat",
|
||||
"app_make_default": "Laita oletusarvoksi",
|
||||
"app_manage_label_and_tiles": "Hallitse lappuja ja ruutuja",
|
||||
"app_install_parameters": "Asenna asetukset",
|
||||
"app_install_custom_no_manifest": "manifest.json tiedostoa ei löytynyt",
|
||||
"app_info_uninstall_desc": "Poista tämä sovellus.",
|
||||
"app_info_change_url_disabled_tooltip": "Tätä ominaisuutta ei ole vielä toteutettu tässä sovelluksessa",
|
||||
"app_info_changeurl_desc": "Muuta tämän sovelluksen käyttö-URL-osoitetta (verkkotunnus ja/tai polku).",
|
||||
"app_info_default_desc": "Uudelleen ohjaa verkkotunnuksen juuri tähän sovellukseen ({domain}).",
|
||||
"app_info_access_desc": "Ryhmät / käyttäjät jolla on oikeus tähän sovellukseen:",
|
||||
"app_choose_category": "Valitse kategoria",
|
||||
"api_waiting": "Odotetaan palvelimen vastausta…",
|
||||
"api_not_responding": "YunoHost API ei vastaa. Ehkä 'yunohost-api' on kaatunut tai käynnsityi uudelleen?",
|
||||
"api_not_found": "Näyttää siltä, että web-järjestelmänvalvoja yritti kysyä jotain, jota ei ole olemassa.",
|
||||
"all_apps": "Kaikki sovellukset",
|
||||
"api_errors_titles": {
|
||||
"APIConnexionError": "YunoHost kohtasi yhteysvirheen",
|
||||
"APINotRespondingError": "YunoHost API ei vastaa",
|
||||
"APINotFoundError": "YunoHost API ei löytänyt reittiä",
|
||||
"APIInternalError": "YunoHost kohtasi sisäisen virheen",
|
||||
"APIBadRequestError": "YunoHost kohtasi virheen",
|
||||
"APIError": "YunoHost kohtasi odottamattoman virheen"
|
||||
},
|
||||
"api_error": {
|
||||
"view_error": "Näytä virhe",
|
||||
"sorry": "Suokaa anteeksi.",
|
||||
"server_said": "Toimenpiteen käsittelyn aikana palvelin sanoi:",
|
||||
"info": "Nämä tiedot voivat olla hyödyllisiä sinua autavalle henkilölle:",
|
||||
"help": "Sinun kannattaisi hakea apua <a href=\"https://forum.yunohost.org/\">foorumilla</a> or <a href=\"https://chat.yunohost.org/\">chätissä</a> tämän ongelman korjaamiseksi, tai raportoida bugi <a href=\"https://github.com/YunoHost/issues\">bugtrackerissa</a>.",
|
||||
"error_message": "Virhe viesti:"
|
||||
},
|
||||
"api": {
|
||||
"query_status": {
|
||||
"warning": "Onnistui virheillä tai hälytyksillä",
|
||||
"success": "Onnistuneesti suoritettu",
|
||||
"pending": "Käynnissä",
|
||||
"error": "Epäonnistui"
|
||||
},
|
||||
"processing": "Palvelin käsittelee toimintoa…",
|
||||
"partial_logs": "[…](Katso historiasta täydet logit)",
|
||||
"reconnecting": {
|
||||
"title": "Yritetään kommunikoida palvelimen kanssa…",
|
||||
"failed": "Näyttää siltä, että palvelin ei vastaa. Voit yrittää muodostaa yhteyden uudelleen tai yrittää suorittaa `systemctl restart yunohost-api` ssh:n kautta.",
|
||||
"reason": {
|
||||
"unknown": "Yhteys palvelimeen on suljettu tuntemattomasta syystä.",
|
||||
"reboot": "Palvelimesi käynnistyy uudelleen, eikä se ole tavoitettavissa vähään aikaan. Sisäänkirjautumiskehote tulee näkyviin heti, kun palvelin on tavoitettavissa.",
|
||||
"shutdown": "Palvelimesi on sammumassa eikä ole enää tavoitettavissa. Kytke se takaisin päälle, ja kirjautumiskehote tulee näkyviin heti, kun palvelin on tavoitettavissa.",
|
||||
"upgrade_system": "Yhteys palvelimeen on suljettu YunoHostin päivityksen vuoksi. Odotamme, että palvelin on jälleen tavoitettavissa…"
|
||||
},
|
||||
"success": "Palvelin on nyt tavoitettavissa! Voit yrittää kirjautua sisään"
|
||||
}
|
||||
},
|
||||
"all": "Kaikki",
|
||||
"administration_password": "Järjestelmänvalvojan salasana",
|
||||
"address": {
|
||||
"local_part_description": {
|
||||
"email": "Valitse sähköpostiosoitteesi paikallinen osa.",
|
||||
"domain": "Valitse aliverkkotunnus."
|
||||
},
|
||||
"domain_description": {
|
||||
"email": "Valitse verkkotunnus sähköpostillesi.",
|
||||
"domain": "Valitse verkkotunnus."
|
||||
}
|
||||
},
|
||||
"add": "Lisää",
|
||||
"action": "Toiminta",
|
||||
"confirm_firewall_disallow": "Haluatko varmasti sulkea portin {port} (protokooli: {protocol}, yhteys: {connection})",
|
||||
"confirm_firewall_allow": "Haluatko varmasti avata portin {port} (protokooli: {protocol}, yhteys: {connection})",
|
||||
"confirm_delete": "Oletko varma että haluat poistaa {name}?",
|
||||
"confirm_change_maindomain": "Haluatko varmasti vaihtaa pääverkkotunnuksen?",
|
||||
"confirm_app_default": "Haluatko varmasti asettaa tämän sovelluksen oletukseksi?",
|
||||
"confirm_app_change_url": "Haluatko varmasti vaihtaa sovelluksen URL-Osoitten?",
|
||||
"configuration": "Kokoonpano",
|
||||
"common": {
|
||||
"lastname": "Sukunimi",
|
||||
"firstname": "Etunimi"
|
||||
},
|
||||
"code": "Koodi",
|
||||
"close": "Sulje",
|
||||
"check": "Tarkista",
|
||||
"catalog": "Luettelo",
|
||||
"cancel": "Peruuta",
|
||||
"both": "Molemmat",
|
||||
"begin": "Aloita",
|
||||
"backup_new": "Uusi varmuuskopio",
|
||||
"backup_create": "Luo varmuuskopio",
|
||||
"backup_content": "Varmuuskopion sisältö",
|
||||
"backup_action": "Aloita varmuuskopio",
|
||||
"backup": "Varmuuskopio",
|
||||
"archive_empty": "Tyhjä arkisto",
|
||||
"applications": "Sovellukset",
|
||||
"app_state_highquality_explanation": "Tämä sovellus on hyvin integroitu YunoHostin kanssa vähintään vuoden.",
|
||||
"app_state_lowquality_explanation": "Sovellus voi toimia, mutta siinä voi esiintyä ongelmia, tai ei ole täysin integroitu YunoHostin kanssa, tai ei arvosta hyviä käytäntöjä.",
|
||||
"app_state_lowquality": "heikkolaatuinen",
|
||||
"app_state_inprogress_explanation": "Sovelluksen ylläpitäjä on sanonut että tämä sovellus ei ole valmis tuotantokäytöön. OLE VAROVAINEN!",
|
||||
"confirm_group_add_access_permission": "Oletko varma että haluat antaa oikeuden {perm} käyttäjälle {name}? Tällainen pääsy lisää merkittävästi hyökkäysriskiä jos käyttäjä {name} on pahaa tekevä ihminen. Tee tämä vain, jos luotat kyseiseen henkilöön/ryhmään.",
|
||||
"confirm_install_custom_app": "VAROITUS! Asentamalla kolmannen osapuolen sovelluksia saattaa haitata järjestelmän eheyttä ja turvallisuutta. Sinun EI varmaan kannata asentaa tätä, ellet tiedä mitä teet. Haluatko varmasti ottaa tämän riskin?",
|
||||
"confirm_install_domain_root": "Oletko varma että haluat asentää tämän sovelluksen osoitteeseen '/'? Sinä et voi asentaa muita sovelluksia domainiin {domain}",
|
||||
"confirm_app_install": "Oletko varma että haluat asentaa tämän sovelluksen?",
|
||||
"confirm_install_app_lowquality": "Varoitus: tämä sovellus saattaa toimia mutta se ei ole hyvin integroitu YunoHostin kanssa. Jotkut ominaisuudet kuten kertakirjautuminen ja varmuuskopio/palautus ei ole ehkä saatavilla.",
|
||||
"confirm_install_app_inprogress": "VAROITUS! Tämä sovellus on vielä kokeellisessa vaiheessa (tai ei vain toimi ollenkaan) ja todennäköisesti rikkoo järjestelmäsi! Sinun EI varmaan kannata asentaa tätä, ellet tiedä mitä teet. Haluatko varmasti ottaa tämän riskin?",
|
||||
"confirm_migrations_skip": "Siirtojen ohittaminen ei ole suositeltavaa. Oletko varma, että haluat tehdä niin?",
|
||||
"confirm_postinstall": "Olet aloittamassa asennuksen jälkeistä prosessia domainissa {domain}. Siinä saattaa mennä muutama minuutti, *älä keskeytä toimintaa*.",
|
||||
"confirm_restore": "Haluatko varmasti palauttaa {name}?",
|
||||
"confirm_service_restart": "Haluatko varmasti käynnistää uudelleen {name}?",
|
||||
"confirm_service_start": "Haluatko varmasti käynnistää {name}?",
|
||||
"confirm_service_stop": "Haluatko varmasti sammuttaa {name}?",
|
||||
"confirm_uninstall": "Haluatko varmasti poistaa {name}?",
|
||||
"confirm_update_apps": "Haluatko varmasti päivittää kaikki sovellukset?",
|
||||
"confirm_update_system": "Haluatko varmasti päivittää kaikki järjestelmäpaketit?",
|
||||
"confirm_update_specific_app": "Haluatko varmasti päivittää sovelluksen {app}?",
|
||||
"confirm_upnp_enable": "Haluatko varmasti laittaa UPnP:n päälle?",
|
||||
"confirm_upnp_disable": "Haluatko varmasti ottaa UPnP:n pois käytöstä?",
|
||||
"confirm_reboot_action_reboot": "Haluatko varmasti käynnistää palvelimesi uudelleen?",
|
||||
"confirm_reboot_action_shutdown": "Haluatko varmasti sammuttaa palvelimesi?",
|
||||
"connection": "Yhteys",
|
||||
"created_at": "Luotu",
|
||||
"custom_app_install": "Asenna mukautettu sovellus",
|
||||
"day_validity": " Vanhentunut | 1 päivä | {count} päivää",
|
||||
"dead": "Inaktiivinen",
|
||||
"delete": "Poista",
|
||||
"description": "Kuvaus",
|
||||
"details": "Yksityiskohdat",
|
||||
"domain_dns_conf_is_just_a_recommendation": "Tämä sivu näyttää sinulle *suositellun* kokoonpanon. Se *ei* configuroi DNS:ää sinun puolesta. Se on sinun vastuu configuroida DNS-alue sinun DNS-palvelussa suositellun kokoonpanon mukaisesti.",
|
||||
"diagnosis": "Diagnoosi",
|
||||
"form_errors": {
|
||||
"remote": "{message}",
|
||||
"alphalownumdot_": "Arvo saa olla vain pieniä aakkosnumeerisia ja alleviivattuja merkkejä.",
|
||||
"between": "Arvon on oltava {min} ja {max} välillä.",
|
||||
"domain": "Virheellinen domain nimi: Ainoastaan pienaakkoset aakkosnumeeriset merkit sekä piste- ja viivamerkit",
|
||||
"notInUsers": "Käyttäjä '{value}' on jo olemassa.",
|
||||
"number": "Arvon täytyy olla numero.",
|
||||
"passwordLenght": "Salasana pitää olla ainakin 8 merkkiä pitkä.",
|
||||
"passwordMatch": "Salasanat eivät täsmää.",
|
||||
"required": "Kenttä on pakollinen.",
|
||||
"alpha": "Arvo saa olla vain aakkosellisia merkkejä.",
|
||||
"emailForward": "Virheellinen sähköpostin välitys-osoite: on oltava aakkosnumeerisia ja ainoastaan <code>_.-</code>-merkkejä (esim. joku+tagi@esimerkki.fi, j0ku-1+tagi@esimerkki.fi)",
|
||||
"minValue": "Arvon on oltava luku, joka on yhtä suuri tai suurempi kuin {min}.",
|
||||
"dynDomain": "Virheellinen domain nimi: Ainoastaan pienaakkoset aakkosnumeeriset merkit sekä viivamerkit",
|
||||
"email": "Virheellinen sähköpostiosoite: on oltava aakkosnumeerisia ja ainoastaan <code>_.-</code>-merkkejä (esim. joku@esimerkki.fi, j0ku-1@esimerkki.fi)",
|
||||
"name": "Nimet eivät saa sisältää erikoismerkkejä paitsi <code> ,.'-</code>",
|
||||
"maxValue": "Arvon on oltava luku, joka on yhtä suuri tai pienempi kuin {max}.",
|
||||
"pattern": "{type}",
|
||||
"invalid_form": "Lomakkeessa on joitakin virheitä.",
|
||||
"appRepoUrl": "YunoHost-sovellus repojen URL-osoitteiden odotetaan näyttävän seuraavalta: https://domain.tld/path/to/repo_ynh"
|
||||
},
|
||||
"users_import_update_desc": "Jos valitaan, kaikki CSV-tiedoston nykyiset käyttäjät päivitetään uudella arvolla",
|
||||
"run_first_diagnosis": "Suorita alustava diagnoosi",
|
||||
"disable": "Poista käytöstä",
|
||||
"disabled": "Pois käytöstä",
|
||||
"domain_add": "Lisää domain",
|
||||
"domain_add_dyndns_forbidden": "Olet jo tilannut DynDNS-verkkotunnuksen, voit pyytää nykyisen DynDNS-verkkotunnuksesi poistamista foorumilla <a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>tässä langassa</a>.",
|
||||
"domain_default_desc": "Oletus domain on se domain johon käyttäjät kirjautuvat.",
|
||||
"domain_dns_longdesc": "Näytä DNS-konfiguraatio",
|
||||
"domain_name": "Domain-nimi",
|
||||
"download": "Lataa",
|
||||
"enable": "Ota käyttöön",
|
||||
"enabled": "Käytössä",
|
||||
"error_modify_something": "Sinun pitäisi muuttaa jotain",
|
||||
"error_server_unexpected": "Odottamaton palvelimen virhe",
|
||||
"experimental_warning": "Varoitus: tämä ominaisuus on kokeellinen eikä se ole vakaa, sinun ei kannata käyttää sitä, ellet tiedä mitä teet.",
|
||||
"firewall": "Palomuuri",
|
||||
"footer_version": "Powered by - voimanlähteenä <a href='https://yunohost.org'>YunoHost</a> versio {version} ({repo}).",
|
||||
"footer": {
|
||||
"documentation": "Dokumentaatio",
|
||||
"help": "Tarvitsetko apua?",
|
||||
"donate": "Lahjoita"
|
||||
},
|
||||
"next": "Seuraava",
|
||||
"form_input_example": "Esimerkiksi: {example}",
|
||||
"from_to": "{0}:stä {1}:een",
|
||||
"go_back": "Takaisin",
|
||||
"good_practices_about_user_password": "Olet nyt määrittelemässä uutta käyttäjän salasanaa. Salasanan tulisi olla vähintään 8 merkkiä - on kuitenkin hyvä käytäntö käyttää pidempää salasanaa (tai salalausetta) ja/tai käyttää erilaisia merkkejä (isoja ja pieniä kirjaimia, numeroita ja erikoismerkkejä).",
|
||||
"group_name": "Ryhmän nimi",
|
||||
"group_add_permission": "Lisää oikeus",
|
||||
"group_specific_permissions": "Käyttäjäkohtaiset oikeudet",
|
||||
"groups_and_permissions": "Ryhmät ja oikeudet",
|
||||
"groups_and_permissions_manage": "Hallitse ryhmiä ja oikeuksia",
|
||||
"history": {
|
||||
"is_empty": "Historiassa ei ole vielä mitään.",
|
||||
"title": "Historia",
|
||||
"last_action": "Viimeisin toimenpide:",
|
||||
"methods": {
|
||||
"DELETE": "poista",
|
||||
"GET": "lue",
|
||||
"POST": "luo/suorita",
|
||||
"PUT": "muokkaa"
|
||||
}
|
||||
},
|
||||
"home": "Koti",
|
||||
"hook_adminjs_group_configuration": "Järjestelmäkokoonpanot",
|
||||
"hook_data_home_desc": "Käyttäjätiedot jotka ovat kansiossa /home/KÄYTTÄJÄ",
|
||||
"hook_data_mail": "Sähköpostit",
|
||||
"ignore": "Ignore",
|
||||
"infos": "Info",
|
||||
"install": "Asenna",
|
||||
"install_name": "Asenna {id}",
|
||||
"installation_complete": "Asennus valmis",
|
||||
"installed": "Asennettu",
|
||||
"issues": "{count} ongelmaa",
|
||||
"items": {
|
||||
"permissions": "ei oikeuksia | oikeus | {c} oikeutta",
|
||||
"services": "ei palveluita | palvelu | {c} palvelua",
|
||||
"apps": "ei sovelluksia | sovellus | {c} apps",
|
||||
"backups": "ei varmuuskopioita | varmuuskopio | {c} varmuuskopiota",
|
||||
"domains": "ei domaineja | domain | {c} domainia",
|
||||
"groups": "ei ryhmiä | ryhmä | {c} ryhmiä",
|
||||
"installed_apps": "ei asenettuja sovelluksia | asennettu sovellus | {c} asennettua sovellusta",
|
||||
"logs": "ei logeja | logi | {c} logeja",
|
||||
"users": "ei käyttäjiä | käyttäjä | {c} käyttäjää"
|
||||
},
|
||||
"items_verbose_count": "On olemassa {items}. | On 1 {items}. | On {items}.",
|
||||
"items_verbose_items_left": "Jäljellä on {items}. | 1 {items} jäljellä. | {items} on jäljellä.",
|
||||
"label": "Label",
|
||||
"last_ran": "Viimeksi suoritettu:",
|
||||
"license": "Lisenssi",
|
||||
"local_archives": "Paikalliset arkistot",
|
||||
"mailbox_quota_example": "700M on CD-levyn kokoinen, 4700M on DVD:n",
|
||||
"mailbox_quota_placeholder": "Aseta arvoksi 0 poistaaksesi käytöstä.",
|
||||
"manage_apps": "Hallitse sovelluksia",
|
||||
"manage_domains": "Hallitse domaineja",
|
||||
"migrations_done": "Edelliset migraatiot",
|
||||
"migrations_no_pending": "Ei virellä olevia migraatioita",
|
||||
"migrations_no_done": "Ei edellisiä migraatioita",
|
||||
"migrations_disclaimer_check_message": "Olen lukenut ja ymmärrän tämän vastuuvapauslausekkeen",
|
||||
"ok": "OK",
|
||||
"only_highquality_apps": "Vain laadukkaita sovelluksia",
|
||||
"only_working_apps": "Vain toimivat sovellukset",
|
||||
"open": "Avaa",
|
||||
"operations": "Operaatiot",
|
||||
"orphaned": "Ei ylläpidetä",
|
||||
"orphaned_details": "Tätä sovellusta ei ole ylläpidetty pitkään aikaan. Se saattaa vielä toimia, mutta sitä ei päivitetä, ennen kuin joku vapaaehtoinen hoitaa sen. Voit vapaasti osallistua sen elvyttämiseen!",
|
||||
"others": "Muut",
|
||||
"password": "Salasana",
|
||||
"placeholder": {
|
||||
"username": "mikkomallikas",
|
||||
"firstname": "Mikko",
|
||||
"lastname": "Mallikas",
|
||||
"groupname": "Minun ryhmän nimi",
|
||||
"file": "Selaa tiedostoja tai raahaa ja pudota se",
|
||||
"domain": "minun-domain.fi"
|
||||
},
|
||||
"logs_suboperations": "Osatoiminnot",
|
||||
"logs_operation": "YunoHostilla tehdyt operaatiot",
|
||||
"logs_history": "Järjestelmässä suoritettujen komentojen historia",
|
||||
"logs_package": "Debian-pakettien hallinnan historia",
|
||||
"logs_system": "Kernel lokit ja muut matalan tason tapahtumat",
|
||||
"logs_access": "Luettelo pääsystä ja kielloista",
|
||||
"logs_service": "Palvelujen lokit",
|
||||
"logs_app": "Sovelluksien lokit",
|
||||
"logs_no_logs_registered": "Tähän luokkaan ei ole rekisteröity lokia",
|
||||
"logs_path": "Polku",
|
||||
"logs_context": "Konteksti",
|
||||
"logs_more": "Näytä lisää rivejä",
|
||||
"permission_show_tile_enabled": "Näkyy laattana käyttäjäportaalissa",
|
||||
"port": "Portti",
|
||||
"ports": "Portit",
|
||||
"postinstall": {
|
||||
"force": "Pakota post-asennus",
|
||||
"title": "Post-asennus"
|
||||
},
|
||||
"postinstall_domain": "Tämä on ensimmäinen YunoHost-palvelimeesi yhdistetty domain, mutta myös se, jota palvelimesi käyttäjät käyttävät päästäkseen käyttäjäportaaliin. Näin ollen kaikki näkevät sen, joten valitse se huolellisesti.",
|
||||
"postinstall_intro_1": "Onnitellut! YunoHost on asenettu onnistuneesti.",
|
||||
"postinstall_intro_2": "Palvelimen palveluiden aktivoiminen edellyttää vielä kahta määritysvaihetta.",
|
||||
"previous": "Edellinen",
|
||||
"protocol": "Protokolli",
|
||||
"readme": "Lue minut",
|
||||
"human_routes": {
|
||||
"apps": {
|
||||
"change_label": "Vaihda label '{prevName}' labeliksi '{nextName}'",
|
||||
"change_url": "Vaihda '{name}' URL-osoite",
|
||||
"uninstall": "Poista sovellus '{name}'",
|
||||
"update_config": "Päivitä sovelluksen '{name}' konfiguraatio",
|
||||
"install": "Asenna sovellus '{name}'",
|
||||
"set_default": "Uudelleenohjaa domainin '{domain}' juuri '{name}'"
|
||||
},
|
||||
"backups": {
|
||||
"create": "Luo varmuuskopio",
|
||||
"delete": "Poista varmuuskopio '{name}'",
|
||||
"restore": "Palauta varmuuskopio '{name}'"
|
||||
},
|
||||
"diagnosis": {
|
||||
"ignore": {
|
||||
"error": "Ignooraa virhe",
|
||||
"warning": "Ignooraa varoitus"
|
||||
},
|
||||
"run": "Suorita diagnoosi",
|
||||
"run_specific": "Suorita '{description}' diagnoosi",
|
||||
"unignore": {
|
||||
"error": "Unignooraa virhe",
|
||||
"warning": "Unignoraa varoitus"
|
||||
}
|
||||
},
|
||||
"domains": {
|
||||
"push_dns_changes": "Työnnä DNS-tietueet domainille '{name}' rekisterinpitäjälle",
|
||||
"update_config": "Päivitä '{name}' konfiguraatio",
|
||||
"add": "Lisää domain '{name}'",
|
||||
"delete": "Poista domain '{name}'",
|
||||
"set_default": "Aseta '{name}' oletus domainiksi"
|
||||
},
|
||||
"groups": {
|
||||
"delete": "Poista ryhmä nimeltä '{name}'",
|
||||
"add": "Lisää käyttäjä '{user}' ryhmään '{name}'",
|
||||
"create": "Luo ryhmä nimeltä '{name}'",
|
||||
"remove": "Poista käyttäjä '{user}' ryhmästä '{name}'"
|
||||
},
|
||||
"migrations": {
|
||||
"skip": "Ohita migraatiot",
|
||||
"run": "Suorita migraatiot"
|
||||
},
|
||||
"permissions": {
|
||||
"add": "Anna käyttäjälle '{name}' oikeus '{perm}'",
|
||||
"remove": "Poista käyttäjältä '{name}' oikeus '{perm}'"
|
||||
},
|
||||
"services": {
|
||||
"start": "Käynnistä palvelu '{name}'",
|
||||
"stop": "Pysäytä palvelu '{name}'",
|
||||
"restart": "Käynnistä palvelu '{name}' uudelleen"
|
||||
},
|
||||
"share_logs": "Luo linkki lokille '{name}'",
|
||||
"shutdown": "Sammuta palvelin",
|
||||
"update": "Tarkista päivitykset",
|
||||
"upgrade": {
|
||||
"system": "Päivitä järjestelmä",
|
||||
"apps": "Päivitä kaikki sovellukset",
|
||||
"app": "Päivitä sovellus '{app}'"
|
||||
},
|
||||
"users": {
|
||||
"update": "Päivitä käyttäjä '{name}'",
|
||||
"create": "Luo käyttäjä '{name}'",
|
||||
"delete": "Poista käyttäjä '{name}'"
|
||||
},
|
||||
"postinstall": "Suorita post-asennus",
|
||||
"reboot": "Käynnistä palvelin uudelleen",
|
||||
"firewall": {
|
||||
"ports": "{action} portti {port} ({protocol}, {connection})",
|
||||
"upnp": "{action} UPnP"
|
||||
},
|
||||
"reconnecting": "Yhdistetään uudelleen"
|
||||
},
|
||||
"run": "Suorita",
|
||||
"running": "Käynnissä",
|
||||
"select_all": "Valitse kaikki",
|
||||
"select_none": "Älä valitse mitään",
|
||||
"service_start_on_boot": "Käynnistä käynnistyksen yhteydessä",
|
||||
"services": "Palvelut",
|
||||
"set_default": "Aseta oletukseksi",
|
||||
"size": "Koko",
|
||||
"since": "alkaen",
|
||||
"system_apps_nothing": "Kaikki sovellukset ovat ajan tasalla!",
|
||||
"system_packages_nothing": "Kaikki järjestelmäpaketit ovat ajan tasalla!",
|
||||
"system_update": "Järjestelmäpäivitys",
|
||||
"system_upgrade_btn": "Päivitä",
|
||||
"system_upgrade_all_applications_btn": "Päivitä kaikki sovellukset",
|
||||
"system_upgrade_all_packages_btn": "Päivitä kaikki paketit",
|
||||
"tcp": "TCP",
|
||||
"tools": "Työkalut",
|
||||
"tools_shutdown": "Sammuta palvelimesi",
|
||||
"tools_shutdown_btn": "Sammuta",
|
||||
"tools_webadmin": {
|
||||
"language": "Kieli",
|
||||
"fallback_language": "Varakieli",
|
||||
"fallback_language_description": "Kieli, jota käytetään, jos käännöstä ei ole saatavilla pääkielellä.",
|
||||
"experimental": "Kokeellinen tila",
|
||||
"transitions": "Sivun siirtymisanimaatiot",
|
||||
"experimental_description": "Antaa sinulle oikeudet kokeellisiin ominaisuuksiin. Näitä pidetään epävakaina ja ne voivat rikkoa järjestelmäsi. <br> Ota tämä käyttöön vain, jos tiedät, mitä olet tekemässä.",
|
||||
"cache_description": "Harkitse välimuistin poistamista käytöstä, jos aiot työskennellä CLI:llä samalla kun navigoit tässä ylläpidossa.",
|
||||
"cache": "Välimuisti"
|
||||
},
|
||||
"tools_webadmin_settings": "Web-ylläpito asetukset",
|
||||
"traceback": "Jäljitys",
|
||||
"udp": "UDP",
|
||||
"unauthorized": "Luvaton",
|
||||
"unignore": "Unignooraa",
|
||||
"uninstall": "Poista asennus",
|
||||
"unknown": "Tuntematon",
|
||||
"upnp": "UPnP",
|
||||
"upnp_enabled": "UPnP on käytössä.",
|
||||
"url": "URL-osoite",
|
||||
"user_email": "Sähköposti",
|
||||
"user_emailaliases": "Sähköposti-aliakset",
|
||||
"user_emailaliases_add": "Lisää sähköposti-alias",
|
||||
"user_emailforward": "Postin edelleenlähetys",
|
||||
"user_emailforward_add": "Lisää postin edelleenlähetys-osoite",
|
||||
"user_fullname": "Koko nimi",
|
||||
"user_interface_link": "Käyttöliittymä",
|
||||
"user_mailbox_quota": "Postilaatikonkiintiö",
|
||||
"user_mailbox_use": "Postilaatikon käytetty tila",
|
||||
"user_new_forward": "uusi-eteenpäinosoite@ulkopuolinen-domain.fi",
|
||||
"user_username": "Käyttäjänimi",
|
||||
"user_username_edit": "Muokkaa käyttäjän {name} nimeä",
|
||||
"users": "Käyttäjät",
|
||||
"users_new": "Uusi käyttäjä",
|
||||
"warnings": "{count} varoitus(ta)",
|
||||
"words": {
|
||||
"collapse": "Lyyhistä",
|
||||
"default": "Oletus",
|
||||
"browse": "Selaa"
|
||||
},
|
||||
"certificate_manage": "Hallitse SSL-sertifikaattia",
|
||||
"certificate": "Sertifikaatti",
|
||||
"purge_user_data_checkbox": "Puhdista käyttäjän {name} tiedot? (Tämä poistaa hänen tiedostot koti ja sähköposti kansioistaan.)",
|
||||
"purge_user_data_warning": "Käyttäjän datan puhdistamista ei voi perus. Varmista, että tiedät mitä teet!",
|
||||
"domain": {
|
||||
"config": {
|
||||
"edit": "Muokkaa domainin kokoonpanoa",
|
||||
"title": "Domainin kokoonpano"
|
||||
},
|
||||
"dns": {
|
||||
"auto_config": "Automaattinen DNS-tietueiden määritys",
|
||||
"auto_config_ignored": "jätetään huomiotta, YunoHost ei muuta niitä, ellet tarkista ylikirjoitusvaihtoehtoa",
|
||||
"auto_config_ok": "Automaattinen konfigurointi näyttää olevan OK!",
|
||||
"manual_config": "Ehdotetut DNS-tietueet manuaalista konfigurointia varten",
|
||||
"push": "Työnnä DNS-tietueet rekisterinpitäjälle",
|
||||
"push_force": "Ylikirjoita olemassaolevat tietueet",
|
||||
"push_force_warning": "Näyttää siltä, että jotkut DNS-tietueet, jotka YunoHost olisi asettanut, ovat jo rekisterinpitäjän asetuksissa. Voit käyttää ylikirjoitusvaihtoehtoa, jos tiedät, mitä olet tekemässä.",
|
||||
"auto_config_zone": "Nykyinen DNS-vyöhyke",
|
||||
"edit": "Muokkaa DNS-kokoonpanoa",
|
||||
"info": "Automaattinen DNS-tietueiden määritys on kokeellinen ominaisuus. <br>Harkitse nykyisen DNS-vyöhykkeen tallentamista DNS-rekisteröijän käyttöliittymästä ennen kuin työnnät tietueita täältä.",
|
||||
"push_force_confirm": "Haluatko varmasti pakottaa kaikki ehdotetut dns-tietueet? Huomaa, että se saattaa korvata manuaalisesti tai tärkeät oletustietueet, jotka sinä tai rekisterinpitäjäsi olet asettanut."
|
||||
}
|
||||
},
|
||||
"domain_delete_forbidden_desc": "Sinä et voi poistaa domainia '{domain}' sillä se on sinun oletus domain, sinun pitää valita toinen domain (tai <a href='#/domains/add'>lisätä uusi</a>) ja asettää tämä oletus domainiksi että voit poistaa tämän.",
|
||||
"domain_dns_push_managed_in_parent_domain": "Automaattiset DNS-tietueet -ominaisuutta hallitaan ylätason domainissa.<a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
|
||||
"domains": "Domainit",
|
||||
"error_connection_interrupted": "Palvelin sulki yhteyden eikä vastannut siihen. Onko nginx tai yunohost-api käynnistetty uudelleen tai sammunut jostain syystä?",
|
||||
"everything_good": "Kaikki hyvin!",
|
||||
"experimental": "Kokeellinen",
|
||||
"group": "Ryhmä",
|
||||
"group_all_users": "Kaikki käyttäjät",
|
||||
"group_add_member": "Lisää käyttäjä",
|
||||
"group_new": "Uusi ryhmä",
|
||||
"group_explain_all_users": "Tämä on erillinen ryhmä, joka sisältää kaikki palvelimen käyttäjät",
|
||||
"group_explain_visitors": "Tämä on erillinen ryhmä, joka edustaa anonyymejä vieraita",
|
||||
"permissions": "Oikeudet",
|
||||
"hook_data_home": "Käyttäjätiedot",
|
||||
"hook_data_mail_desc": "Palvelimelle tallennetut raa'at sähköpostit",
|
||||
"id": "ID",
|
||||
"ipv6": "IPv6",
|
||||
"label_for_manifestname": "Label käyttäjälle {name} (nimi näytetään käyttäjäportaalissa)",
|
||||
"login": "Kirjaudu sisään",
|
||||
"logout": "Kirjaudu ulos",
|
||||
"logs": "Lokit",
|
||||
"logs_error": "Virhe",
|
||||
"logs_ended_at": "Loppu",
|
||||
"logs_started_at": "Aloita",
|
||||
"logs_share_with_yunopaste": "Jaa lokit Yunopastella",
|
||||
"permission_corresponding_url": "Vastaava URL-osoite",
|
||||
"rerun_diagnosis": "Suorita diagnoosi uudelleen",
|
||||
"restore": "Palauta",
|
||||
"restart": "Käynnistä uudelleen",
|
||||
"search": {
|
||||
"not_found": "Kriteerejäsi vastaavia {items} löytyy. | On 1 {items}, joka vastaa kriteerejäsi. | On {items}, jotka vastaavat kriteerejäsi.",
|
||||
"for": "Etsi {items}…"
|
||||
},
|
||||
"skip": "Ohita",
|
||||
"users_export": "Vie käyttäjiä",
|
||||
"users_import_csv_file": "CSV-tiedosto",
|
||||
"yes": "Kyllä",
|
||||
"group_explain_visitors_needed_for_external_client": "Varo, että sinun on pidettävä jotkin sovellukset sallittuina vierailijoille, jos aiot käyttää niitä ulkoisten sovellusten kanssa. Tämä koskee esimerkiksi Nextcloudia, jos aiot käyttää synkronointisovellusta puhelimessa tai tietokoneessa.",
|
||||
"migrations_disclaimer_not_checked": "Tämä migraatio vaatii sinua kuittaamaan vastuuvapauslausekkeen ennen sen aloittamista.",
|
||||
"dns": "DNS",
|
||||
"domain_default_longdesc": "Tämä on sinun oletus domain.",
|
||||
"domain_delete_longdesc": "Poista tämä domain",
|
||||
"domain_dns_config": "DNS-konfiguraatio",
|
||||
"error": "Virhe",
|
||||
"good_practices_about_admin_password": "Olet nyt määrittelemässä uutta järjestelmänvalvojan salasanaa. Salasanan tulisi olla vähintään 8 merkkiä - on kuitenkin hyvä käytäntö käyttää pidempää salasanaa (tai salalausetta) ja/tai käyttää erilaisia merkkejä (isoja ja pieniä kirjaimia, numeroita ja erikoismerkkejä).",
|
||||
"group_visitors": "Vieraat",
|
||||
"group_format_name_help": "Voit käyttää aakkosnumeerisia merkkejä ja alleviivausmerkkejä",
|
||||
"hook_data_xmpp": "XMPP-data",
|
||||
"hook_data_xmpp_desc": "Huone- ja käyttäjäkonfiguraatiot, ladatut tiedostot",
|
||||
"ignored": "{count} ignoorattu",
|
||||
"install_time": "Asennusaika",
|
||||
"ipv4": "IPv4",
|
||||
"users_no": "Ei käyttäjiä.",
|
||||
"users_import_update": "Päivitä olemassaolevat käyttäjät",
|
||||
"users_import_delete": "Posta luetteloon kuulumattomat käyttäjät",
|
||||
"users_import_delete_desc": "Jos valittuna, kaikki olemassa olevat käyttäjät, joita ei ole CSV-tiedostossa, poistetaan (ja puhdistetaan).",
|
||||
"users_import_confirm_destructive": "Oletko varma että haluat poistaa käyttäjiä jotka eivät ole tässä tiedostossa?",
|
||||
"users_import_delete_others": "Poisti luetteloon kuulumattomat käyttäjät",
|
||||
"version": "Versio",
|
||||
"yunohost_admin": "YunoHostin ylläpitö",
|
||||
"hook_conf_ldap": "Käyttäjätietokanta",
|
||||
"hook_conf_ynh_certs": "SSL-sertifikaatit",
|
||||
"hook_conf_ynh_settings": "YunoHost konfiguraatiot",
|
||||
"hook_conf_manually_modified_files": "Manuaalisesti muokatut konfiguraatiot",
|
||||
"mailbox_quota_description": "Aseta sähköpostin sisällön tallennuskokorajoitus.<br>Poista käytöstä asettamalla arvoksi 0.",
|
||||
"manage_users": "Hallitse käyttäjiä",
|
||||
"migrations": "Migraatiot",
|
||||
"migrations_pending": "Virellä olevat migraatiot",
|
||||
"multi_instance": "Voidaan asentaa monta kertaa",
|
||||
"no": "Ei",
|
||||
"nobody": "Ei kukaan",
|
||||
"only_decent_quality_apps": "Vain kohtuullisen laadukkaat sovellukset",
|
||||
"password_confirmation": "Salasanan vahvistus",
|
||||
"path": "Polku",
|
||||
"perform": "Suorita",
|
||||
"pending_migrations": "Joitakin migraatioita on vireillä ja ne odottavat suorittamista. Siirry <a href='#/tools/migrations'>Tools > Migraatiot</a> -näkymään suorittaaksesi ne.",
|
||||
"permission_main": "Päälabel",
|
||||
"postinstall_set_domain": "Aseta pää-domain",
|
||||
"save": "Tallenna",
|
||||
"start": "Aloita",
|
||||
"status": "Tila",
|
||||
"stop": "Lopeta",
|
||||
"system": "Järjestelmä",
|
||||
"tip_about_user_email": "Käyttäjille luodaan sähköpostiosoite (ja XMPP-tili) muodossa käyttäjänimi@domain.tld. Ylläpitäjä ja käyttäjä voivat myöhemmin lisätä lisää sähköpostialiaksia ja sähköpostin edelleenlähetyksiä.",
|
||||
"tools_reboot": "Käynnistä palvelimesi uudelleen",
|
||||
"tools_shutdown_reboot": "Sammuta/Käynnistä uudelleen",
|
||||
"upnp_disabled": "UPnP on pois käytöstä.",
|
||||
"text_selection_is_disabled": "Tekstin valinta on pois käytöstä. Jos haluat jakaa tämän loki, Jaa *koko* loki painamalla 'Jaa loki Yunopastella'.<br/><small>Tai jos todella haluat valita tekstiä, paina näitä näppäimiä ↓↓↑↑.</small>",
|
||||
"tools_reboot_btn": "Käynnistä uudelleen",
|
||||
"users_import": "Tuo käyttäjiä",
|
||||
"diagnosis_first_run": "Diagnoositoiminto pyrkii tunnistamaan palvelimesi eri osa-alueiden yleiset ongelmat ja varmistamaan, että kaikki toimii moitteettomasti. Älä hätäänny, jos näet paljon virheitä heti palvelimesi perustamisen jälkeen: sen tarkoituksena on nimenomaan auttaa sinua tunnistamaan ongelmat ja opastaa sinua niiden korjaamisessa. Diagnoosi suoritetaan myös automaattisesti kahdesti päivässä, ja ylläpitäjälle lähetetään sähköpostia, jos ongelmia löytyy.",
|
||||
"diagnosis_explanation": "Diagnoositoiminto pyrkii tunnistamaan palvelimesi eri osa-alueiden yleiset ongelmat ja varmistamaan, että kaikki toimii moitteettomasti. Diagnoosi suoritetaan automaattisesti kahdesti päivässä, ja ylläpitäjälle lähetetään sähköpostiviesti, jos ongelmia havaitaan. Huomaa, että jotkin testit eivät ehkä ole relevantteja, jos et halua käyttää tiettyjä ominaisuuksia (esimerkiksi XMPP), tai ne voivat epäonnistua, jos palvelimesi on monimutkainen. Tällaisissa tapauksissa ja jos tiedät, mitä olet tekemässä, voit jättää vastaavat ongelmat tai varoitukset huomioimatta.",
|
||||
"domain_dns_push_failed_to_authenticate": "Rekisterinpitäjän API:n todennus epäonnistui. Todennäköisesti <a href='#/domains/{domain}/config'>tunnukset</a> ovat väärin? (Virhe:{error})",
|
||||
"domain_dns_push_not_applicable": "Automaattiset DNS-tietueet -ominaisuus ei koske domainia {domain}, <br>Sinun kannattaa manuaalisesti konfiguroida DNS-tietueet seuraamalla <a href='https://yunohost.org/dns'>dokumentaatiota</a> ja alla olevaa ehdotettua kokoonpanoa.",
|
||||
"operation_failed_explanation": "Tämä operaatio epäonnistui! Olen todella pahoillani tästä :( Voit yrittää <a href='https://yunohost.org/help'>pyytää apua</a>. Toimita *täydellinen loki* operaatiosta sinua auttaville henkilöille. Voit tehdä sen klikkaamalla vihreää painiketta 'Jaa lokit Yunopastella'. Kun jaat lokit, YunoHost yrittää automaattisesti anonymisoida yksityiset tiedot, kuten domainit ja IP-osoitteet.",
|
||||
"postinstall_intro_3": "Saat lisätietoja vierailemalla <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>asianmukaisella dokumentointisivulla</a>",
|
||||
"users_import_csv_file_desc": "CSV-tiedoston on oltava UTF-8-muodossa, ja siinä on oltava sarakkeet käyttäjätunnukselle, salasanalle, ryhmille, sähköpostille ja kiintiölle. Esimerkki CSV-tuontitiedostosta löydät <a href='/yunohost/api/users/export' target='_BLANK'>täältä</a> ja voit muuttaa esimerkki-tiedostoon omat tiedot.",
|
||||
"retry": "Yritä uudelleen"
|
||||
}
|
695
app/src/i18n/locales/fr.json
Normal file
|
@ -0,0 +1,695 @@
|
|||
{
|
||||
"action": "Action",
|
||||
"add": "Ajouter",
|
||||
"administration_password": "Mot de passe d'administration",
|
||||
"api_not_responding": "L'API YunoHost ne répond pas. Peut-être que 'yunohost-api' est en panne ou a été redémarré ?",
|
||||
"app_info_access_desc": "Groupes / comptes actuellement autorisés à accéder à cette application :",
|
||||
"app_info_default_desc": "Redirige la racine du domaine vers cette application ({domain}).",
|
||||
"app_info_uninstall_desc": "Supprimer cette application.",
|
||||
"app_install_custom_no_manifest": "Aucun fichier manifest.json",
|
||||
"app_install_parameters": "Paramètres d'installation",
|
||||
"app_make_default": "Définir par défaut",
|
||||
"app_state_inprogress": "ne fonctionne pas encore",
|
||||
"applications": "Applications",
|
||||
"archive_empty": "L’archive est vide",
|
||||
"backup": "Sauvegardes",
|
||||
"backup_action": "Sauvegarder",
|
||||
"backup_content": "Contenu de la sauvegarde",
|
||||
"backup_create": "Créer une sauvegarde",
|
||||
"backup_new": "Nouvelle sauvegarde",
|
||||
"begin": "C'est parti !",
|
||||
"both": "Les deux",
|
||||
"check": "Vérification",
|
||||
"close": "Fermer",
|
||||
"confirm_app_default": "Voulez-vous vraiment définir cette application par défaut ?",
|
||||
"confirm_change_maindomain": "Voulez-vous vraiment changer le domaine principal ?",
|
||||
"confirm_delete": "Voulez-vous vraiment supprimer {name} ?",
|
||||
"confirm_install_custom_app": "AVERTISSEMENT ! L'installation d'applications tierces peut compromettre l'intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l'installer si vous ne savez pas ce que vous faites. Voulez-vous vraiment prendre ce risque ?",
|
||||
"confirm_install_domain_root": "Voulez-vous vraiment installer cette application sur '/' ? Vous ne pourrez installer aucune autre application sur {domain}",
|
||||
"confirm_postinstall": "Vous êtes sur le point de lancer le processus de post-installation sur le domaine {domain}. Cela peut prendre du temps, *n'interrompez pas l'opération avant la fin*.",
|
||||
"confirm_restore": "Voulez-vous vraiment restaurer {name} ?",
|
||||
"confirm_uninstall": "Voulez-vous vraiment désinstaller {name} ?",
|
||||
"connection": "Connexion",
|
||||
"created_at": "Crée le",
|
||||
"custom_app_install": "Installer une application personnalisée",
|
||||
"delete": "Supprimer",
|
||||
"description": "Description",
|
||||
"diagnosis": "Diagnostic",
|
||||
"disable": "Désactiver",
|
||||
"dns": "DNS",
|
||||
"domain_add": "Ajouter un domaine",
|
||||
"domain_default_desc": "Le domaine par défaut est le domaine à partir duquel les personnes doivent se connecter.",
|
||||
"domain_default_longdesc": "Ceci est votre domaine par défaut.",
|
||||
"domain_delete_longdesc": "Supprimer ce domaine",
|
||||
"domain_dns_config": "Configuration DNS",
|
||||
"domain_dns_longdesc": "Voir la configuration DNS",
|
||||
"domain_name": "Nom de domaine",
|
||||
"domains": "Domaines",
|
||||
"download": "Télécharger",
|
||||
"enable": "Activer",
|
||||
"error_modify_something": "Vous devez modifier quelque chose",
|
||||
"error_server_unexpected": "Erreur serveur inattendue",
|
||||
"firewall": "Pare-feu",
|
||||
"home": "Accueil",
|
||||
"hook_adminjs_group_configuration": "Configurations système",
|
||||
"hook_conf_ldap": "Annuaire des comptes",
|
||||
"hook_conf_ynh_certs": "Certificats SSL",
|
||||
"hook_conf_ynh_settings": "Configurations de YunoHost",
|
||||
"hook_conf_manually_modified_files": "Fichiers de configuration modifiés manuellement",
|
||||
"hook_data_home": "Données des comptes",
|
||||
"hook_data_home_desc": "Données comptes situées dans /home/USER",
|
||||
"hook_data_mail": "Courriels",
|
||||
"hook_data_mail_desc": "Courriels (au format brut) stockés sur le serveur",
|
||||
"hook_data_xmpp": "Données XMPP",
|
||||
"hook_data_xmpp_desc": "Configurations des salons et des comptes, fichiers téléversés",
|
||||
"id": "ID",
|
||||
"infos": "Info",
|
||||
"install": "Installer",
|
||||
"install_name": "Installer {id}",
|
||||
"install_time": "Date d'installation",
|
||||
"installation_complete": "Installation terminée",
|
||||
"installed": "Installé",
|
||||
"ipv4": "IPv4",
|
||||
"ipv6": "IPv6",
|
||||
"label": "Libellé",
|
||||
"label_for_manifestname": "Libellé pour {name}",
|
||||
"local_archives": "Archives locales",
|
||||
"login": "Connexion",
|
||||
"logout": "Déconnexion",
|
||||
"mailbox_quota_description": "Définissez une taille limite de stockage pour vos courriels.<br>Mettre 0 pour la désactiver.",
|
||||
"mailbox_quota_placeholder": "Laissez vide ou à zéro pour désactiver.",
|
||||
"manage_apps": "Gérer les applications",
|
||||
"manage_domains": "Gérer les domaines",
|
||||
"manage_users": "Gérer les comptes",
|
||||
"multi_instance": "Peut être installée plusieurs fois",
|
||||
"next": "Suivant",
|
||||
"no": "Non",
|
||||
"open": "Ouvrir",
|
||||
"operations": "Opérations",
|
||||
"password": "Mot de passe",
|
||||
"password_confirmation": "Confirmation du mot de passe",
|
||||
"path": "Chemin",
|
||||
"port": "Port",
|
||||
"ports": "Ports",
|
||||
"postinstall_domain": "Il s'agit du premier nom de domaine lié à votre serveur YunoHost. C'est également celui qui servira pour le portail d'authentification. Il sera donc visible pour tout le monde, choisissez-le avec soin.",
|
||||
"postinstall_intro_1": "Félicitations ! YunoHost a été installé avec succès.",
|
||||
"postinstall_intro_2": "Deux étapes de configuration supplémentaires sont nécessaires pour activer les services de votre serveur.",
|
||||
"postinstall_intro_3": "Vous pouvez obtenir plus d'informations en vous rendant sur <a href='//yunohost.org/postinstall' target='_blank'>la page de documentation appropriée</a>",
|
||||
"previous": "Précédent",
|
||||
"protocol": "Protocole",
|
||||
"restore": "Restaurer",
|
||||
"running": "En cours d’exécution",
|
||||
"save": "Sauvegarder",
|
||||
"select_all": "Tout sélectionner",
|
||||
"select_none": "Tout désélectionner",
|
||||
"service_start_on_boot": "Lancement au démarrage",
|
||||
"services": "Services",
|
||||
"set_default": "Définir par défaut",
|
||||
"size": "Taille",
|
||||
"start": "Démarrer",
|
||||
"status": "Statut",
|
||||
"stop": "Arrêter",
|
||||
"system": "Système",
|
||||
"system_apps_nothing": "Toutes les applications sont à jour !",
|
||||
"system_packages_nothing": "Tous les packages système sont à jour !",
|
||||
"system_update": "Mise à jour du système",
|
||||
"system_upgrade_btn": "Mettre à jour",
|
||||
"tcp": "TCP",
|
||||
"tools": "Outils",
|
||||
"udp": "UDP",
|
||||
"unauthorized": "Non autorisé",
|
||||
"uninstall": "Désinstaller",
|
||||
"upnp": "UPnP",
|
||||
"upnp_disabled": "L’UPnP est désactivé.",
|
||||
"upnp_enabled": "L’UPnP est activé.",
|
||||
"url": "URL",
|
||||
"user_email": "Courriel",
|
||||
"user_emailaliases": "Alias de courriel",
|
||||
"user_emailforward": "Adresses de transfert",
|
||||
"user_fullname": "Nom complet",
|
||||
"user_interface_link": "Portail",
|
||||
"user_mailbox_quota": "Quota de la boite aux lettres",
|
||||
"user_new_forward": "nouveau_transfert@domainedistant.org",
|
||||
"user_username": "Nom de compte",
|
||||
"user_username_edit": "Éditer le compte de {name}",
|
||||
"users": "Comptes",
|
||||
"users_new": "Nouveau compte",
|
||||
"users_no": "Aucun compte.",
|
||||
"yes": "Oui",
|
||||
"form_input_example": "Exemple : {example}",
|
||||
"footer_version": "Propulsé par <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
|
||||
"certificate_manage": "Gérer les certificats SSL",
|
||||
"certificate": "Certificat",
|
||||
"user_mailbox_use": "Espace utilisé de la boite aux lettres",
|
||||
"confirm_firewall_allow": "Voulez-vous vraiment ouvrir le port {port} ? (protocole : {protocol}, connexion : {connection})",
|
||||
"confirm_firewall_disallow": "Voulez-vous vraiment fermer le port {port} ? (protocole : {protocol}, connexion : {connection})",
|
||||
"confirm_service_start": "Voulez-vous vraiment démarrer {name} ?",
|
||||
"confirm_service_stop": "Voulez-vous vraiment arrêter {name} ?",
|
||||
"confirm_update_apps": "Voulez-vous vraiment mettre à jour toutes les applications ?",
|
||||
"confirm_upnp_enable": "Voulez-vous vraiment activer l'UPnP ?",
|
||||
"confirm_upnp_disable": "Voulez-vous vraiment désactiver l'UPnP ?",
|
||||
"domain_dns_conf_is_just_a_recommendation": "Cette section montre la configuration *recommandée*. Elle ne configure *pas* le DNS pour vous. Il est de votre responsabilité de configurer votre zone DNS, généralement depuis l'interface web de votre fournisseur de nom de domaine (registrar) en fonction de cette configurer recommandée.",
|
||||
"confirm_reboot_action_reboot": "Voulez-vous vraiment redémarrer votre serveur ?",
|
||||
"confirm_reboot_action_shutdown": "Voulez-vous vraiment éteindre votre serveur ?",
|
||||
"confirm_update_specific_app": "Voulez-vous vraiment mettre à jour {app} ?",
|
||||
"ok": "OK",
|
||||
"system_upgrade_all_applications_btn": "Mettre à jour toutes les applications",
|
||||
"system_upgrade_all_packages_btn": "Mettre à jour tous les paquets",
|
||||
"tools_reboot": "Redémarrer votre serveur",
|
||||
"tools_reboot_btn": "Redémarrer",
|
||||
"tools_shutdown": "Éteindre votre serveur",
|
||||
"tools_shutdown_btn": "Éteindre",
|
||||
"tools_shutdown_reboot": "Arrêter/Redémarrer",
|
||||
"app_info_changeurl_desc": "Modifier l’URL d’accès de cette application (domaine et/ou chemin).",
|
||||
"app_info_change_url_disabled_tooltip": "Cette fonctionnalité n’a pas encore été implémentée pour cette application",
|
||||
"confirm_app_change_url": "Voulez-vous vraiment modifier l’URL d’accès de cette application ?",
|
||||
"confirm_migrations_skip": "Ne pas appliquer les migrations n’est pas recommandé. Voulez-vous vraiment le faire ?",
|
||||
"migrations": "Migrations",
|
||||
"migrations_pending": "Migrations en attente",
|
||||
"migrations_done": "Migrations précédentes",
|
||||
"migrations_no_pending": "Aucune migration en attente",
|
||||
"migrations_no_done": "Aucune migration précédente",
|
||||
"run": "Exécuter",
|
||||
"skip": "Passer",
|
||||
"all_apps": "Toutes les applications",
|
||||
"confirm_install_app_lowquality": "Avertissement : cette application peut fonctionner mais n’est pas bien intégrée dans YunoHost. Certaines fonctionnalités telles que l’authentification unique et la sauvegarde/restauration pourraient ne pas être disponibles.",
|
||||
"confirm_install_app_inprogress": "AVERTISSEMENT ! Cette application est encore expérimentale et risque de casser votre système ! Vous ne devriez probablement PAS l’installer si vous ne savez pas ce que vous faites. Voulez-vous vraiment prendre ce risque ?",
|
||||
"error_connection_interrupted": "Le serveur a fermé la connexion au lieu d’y répondre. Est-ce que NGINX ou yunohost-api ont été redémarrés ou arrêtés pour une raison quelconque ?",
|
||||
"experimental_warning": "Attention : cette fonctionnalité est expérimentale et ne doit pas être considérée comme stable, vous ne devriez pas l’utiliser à moins que vous ne sachiez ce que vous faites.",
|
||||
"good_practices_about_admin_password": "Vous êtes sur le point de définir un nouveau mot de passe de compte d'administration. Le mot de passe doit comporter au moins 8 caractères, bien qu'il soit recommandé d'utiliser un mot de passe plus long (c'est-à-dire une phrase secrète) et/ou d'utiliser une combinaison de caractères (majuscules, minuscules, chiffres et caractères spéciaux).",
|
||||
"good_practices_about_user_password": "Vous êtes sur le point de définir un nouveau mot de passe. Le mot de passe doit comporter au moins 8 caractères, bien qu'il soit recommandé d'utiliser un mot de passe plus long (c'est-à-dire une phrase secrète) et/ou une combinaison de caractères (majuscules, minuscules, chiffres et caractères spéciaux).",
|
||||
"only_working_apps": "Applications fonctionnelles uniquement",
|
||||
"logs": "Journaux",
|
||||
"logs_operation": "Opérations effectuées sur le système avec YunoHost",
|
||||
"logs_history": "Historique des commandes exécutées sur le système",
|
||||
"logs_package": "Historique de la gestion des paquets Debian",
|
||||
"logs_system": "Journaux du noyau et d’autres événements de bas niveau",
|
||||
"logs_access": "Liste des accès autorisés et refusés",
|
||||
"logs_service": "Journaux des services",
|
||||
"logs_app": "Journaux des applications",
|
||||
"logs_no_logs_registered": "Aucun journal n’a été enregistré pour cette catégorie",
|
||||
"logs_error": "Erreur",
|
||||
"logs_ended_at": "Fin",
|
||||
"logs_started_at": "Début",
|
||||
"logs_path": "Chemin",
|
||||
"logs_context": "Contexte",
|
||||
"logs_share_with_yunopaste": "Partager les logs avec YunoPaste",
|
||||
"logs_more": "Afficher plus de lignes",
|
||||
"purge_user_data_checkbox": "Purger les données du compte {name} ? (Cela supprimera ses e-mails et le contenu de son dossier personnel)",
|
||||
"purge_user_data_warning": "La purge des données de compte est irréversible. Assurez-vous de savoir ce que vous faites !",
|
||||
"version": "Version",
|
||||
"confirm_update_system": "Voulez-vous vraiment mettre à jour tous les paquets système ?",
|
||||
"app_state_inprogress_explanation": "Le mainteneur de cette application a déclaré que celle-ci n'est pas prête pour un environnement de production. FAITES PREUVE DE PRUDENCE !",
|
||||
"app_state_highquality_explanation": "Cette application est bien intégrée à YunoHost depuis au moins un an.",
|
||||
"license": "Licence",
|
||||
"only_highquality_apps": "Seulement les applications de bonne qualité",
|
||||
"only_decent_quality_apps": "Seulement les applications d'une qualité satisfaisante",
|
||||
"orphaned": "Non maintenue",
|
||||
"orphaned_details": "Cette application n'a pas été maintenue depuis un certain temps. Elle peut encore fonctionner, mais ne recevra aucune mise à niveau jusqu'à ce que quelqu'un se porte volontaire pour s'en occuper. N'hésitez pas à contribuer à la faire revivre !",
|
||||
"from_to": "de {0} à {1}",
|
||||
"group_name": "Nom du groupe",
|
||||
"nobody": "Personne",
|
||||
"group": "Groupe",
|
||||
"group_all_users": "Tous les comptes",
|
||||
"group_visitors": "Visiteurs",
|
||||
"group_format_name_help": "Vous pouvez utiliser des caractères alphanumériques et des tirets bas",
|
||||
"group_add_member": "Ajouter un compte",
|
||||
"group_add_permission": "Ajouter une permission",
|
||||
"group_new": "Nouveau groupe",
|
||||
"group_explain_all_users": "Ceci est un groupe spécial contenant tous les comptes des personnes inscrites sur le serveur",
|
||||
"group_explain_visitors": "Ceci est un groupe spécial représentant les visiteurs anonymes",
|
||||
"group_specific_permissions": "Autorisations pour des comptes individuels",
|
||||
"groups_and_permissions": "Groupes et autorisations",
|
||||
"groups_and_permissions_manage": "Gérer les groupes et les autorisations",
|
||||
"permissions": "Permissions",
|
||||
"rerun_diagnosis": "Relancer le diagnostic",
|
||||
"details": "Détails",
|
||||
"everything_good": "Tout est OK !",
|
||||
"ignore": "Ignore",
|
||||
"ignored": "{count} ignoré",
|
||||
"last_ran": "Dernière exécution :",
|
||||
"unignore": "Cesser d'ignorer",
|
||||
"warnings": "{count} avertissements",
|
||||
"words": {
|
||||
"default": "Défaut",
|
||||
"collapse": "Replier",
|
||||
"browse": "Parcourir",
|
||||
"link": "Lien",
|
||||
"none": "Aucun",
|
||||
"separator": ", ",
|
||||
"valid": "Valide"
|
||||
},
|
||||
"configuration": "Configuration",
|
||||
"since": "depuis",
|
||||
"all": "Tout",
|
||||
"app_state_lowquality": "faible qualité",
|
||||
"app_state_lowquality_explanation": "Cette application peut être fonctionnelle, mais peut toujours contenir des problèmes, ou n'est pas entièrement intégrée à YunoHost, ou elle ne respecte pas les bonnes pratiques.",
|
||||
"catalog": "Catalogue",
|
||||
"others": "Autres",
|
||||
"diagnosis_first_run": "La fonctionnalité de diagnostic va tenter de trouver certains problèmes communs sur différents aspects de votre serveur pour être sûr que tout fonctionne normalement. Merci de ne pas paniquer si vous voyez une multitude d'erreurs après avoir configuré votre serveur : la fonctionnalité est précisément prévue pour les identifier et vous aider à les résoudre. Le diagnostic sera également effectué deux fois par jour et enverra un courriel au compte administrateur si des erreurs sont détectées.",
|
||||
"run_first_diagnosis": "Démarrer le diagnostic initial",
|
||||
"confirm_service_restart": "Voulez-vous vraiment redémarrer {name} ?",
|
||||
"restart": "Redémarrer",
|
||||
"group_explain_visitors_needed_for_external_client": "Veillez à ce que certaines applications soient autorisées pour les visiteurs si vous avez l'intention de les utiliser avec des clients externes. Par exemple, c'est le cas pour Nextcloud si vous souhaitez utiliser un client de synchronisation sur votre smartphone ou ordinateur de bureau.",
|
||||
"issues": "{count} problèmes",
|
||||
"operation_failed_explanation": "L'opération a échoué ! Veuillez-nous excuser pour ça :( Vous pouvez essayer de <a href='https://yunohost.org/help'>demander de l'aide</a>. Merci de fournir *le log complet* de l'opération pour les personnes qui vont vous aider. Vous pouvez cliquer sur le bouton vert 'Partager avec Yunopaste'. Quand vous partagez les logs, YunoHost essaie automatiquement d'anonymiser les informations privées comme le nom de domaine et l'adresses IP.",
|
||||
"diagnosis_explanation": "La fonctionnalité de diagnostic va tenter de trouver certains problèmes communs sur différents aspects de votre serveur pour être sûr que tout fonctionne normalement. Le diagnostic sera également effectué deux fois par jour et enverra un courriel au compte administrateur si des erreurs sont détectées. À noter que certains tests ne seront pas montrés si vous n'utilisez pas certaines fonctions spécifiques (XMPP, par exemple) ou s'ils échouent à cause d'une configuration trop complexe. Dans ce cas, et si vous savez ce que vous avez modifié, vous pouvez ignorer les problèmes et les avertissements correspondantes.",
|
||||
"pending_migrations": "Il y a des migrations en attente d'exécution. Veuillez aller dans <a href='#/tools/migrations'>Outils > Migrations</a> pour les exécuter.",
|
||||
"tip_about_user_email": "Les comptes sont créés avec une adresse email associée (et un compte XMPP) au format username@domain.tld. Des alias d'email et des transferts d'emails supplémentaires peuvent être ajoutés ultérieurement par les personnes administrant le serveur ainsi celles ayant accès au compte lui même.",
|
||||
"logs_suboperations": "Sous-opérations",
|
||||
"permission_show_tile_enabled": "Visible en tuile dans le portail YunoHost",
|
||||
"permission_main": "Label principal",
|
||||
"permission_corresponding_url": "URL correspondante",
|
||||
"app_manage_label_and_tiles": "Gérer les étiquettes et les tuiles",
|
||||
"user_emailforward_add": "Ajouter une adresse mail de redirection",
|
||||
"user_emailaliases_add": "Ajouter un alias de courriel",
|
||||
"unknown": "Inconnu",
|
||||
"traceback": "Retraçage",
|
||||
"tools_webadmin_settings": "Paramètres de l'administration web",
|
||||
"tools_webadmin": {
|
||||
"transitions": "Animations de transition entre les pages",
|
||||
"experimental_description": "Cela vous donne accès à des fonctionnalités expérimentales. Celles-ci sont considérées comme instables et peuvent casser votre système.<br> Ne les activez uniquement si vous savez ce que vous faites.",
|
||||
"experimental": "Mode expérimental",
|
||||
"cache_description": "Pensez à désactiver le cache si vous prévoyez de travailler avec l'interface en ligne de commande (CLI) tout en naviguant dans l'administration web (web-admin/panel web).",
|
||||
"cache": "Cache",
|
||||
"fallback_language_description": "Langue qui sera utilisée au cas où la traduction ne serait pas disponible dans la langue principale.",
|
||||
"fallback_language": "Langue de secours",
|
||||
"language": "Langue",
|
||||
"theme": "Basculer en mode sombre"
|
||||
},
|
||||
"search": {
|
||||
"not_found": "Il y a des {items} qui correspondent à vos critères. | Il y a un {items} qui correspond à vos critères. | Il y a des {items} qui correspondent à vos critères.",
|
||||
"for": "Rechercher {items}…"
|
||||
},
|
||||
"readme": "Lisez-moi",
|
||||
"postinstall_set_domain": "Définir le domaine principal",
|
||||
"placeholder": {
|
||||
"domain": "mon-domaine.fr",
|
||||
"groupname": "Le nom de mon groupe",
|
||||
"lastname": "Dupont",
|
||||
"firstname": "Camille",
|
||||
"fullname": "Camille Dupont",
|
||||
"username": "camilledupont",
|
||||
"file": "Parcourir un fichier ou le faire glisser et déposer"
|
||||
},
|
||||
"perform": "Exécuter",
|
||||
"migrations_disclaimer_not_checked": "Cette migration nécessite que vous preniez connaissance de sa décharge de responsabilité avant de l'exécuter.",
|
||||
"migrations_disclaimer_check_message": "J'ai lu et compris cette décharge de responsabilité",
|
||||
"mailbox_quota_example": "700 M correspond à un CD, 4 700 M correspond à un DVD",
|
||||
"items_verbose_count": "Il n'y a {items}. | Il y a un {items}. | Il y a des {items}.",
|
||||
"items": {
|
||||
"users": "aucun compte | compte | {c} comptes",
|
||||
"services": "aucun service | service | {c} services",
|
||||
"logs": "aucun historique/log | log | {c} logs",
|
||||
"installed_apps": "aucune application installée | application installée | {c} applications installées",
|
||||
"groups": "aucun groupe | groupe | {c} groupes",
|
||||
"domains": "aucun domaine | domaine | {c} domaines",
|
||||
"backups": "aucune sauvegarde | sauvegarde | {c} sauvegardes",
|
||||
"apps": "aucune application | app | {c} apps",
|
||||
"permissions": "pas d'autorisations | permission | {c} autorisations"
|
||||
},
|
||||
"history": {
|
||||
"methods": {
|
||||
"DELETE": "supprimer",
|
||||
"PUT": "modifier",
|
||||
"POST": "créer/exécuter",
|
||||
"GET": "lire"
|
||||
},
|
||||
"last_action": "Dernière action :",
|
||||
"title": "Historique",
|
||||
"is_empty": "Rien dans l'historique pour le moment."
|
||||
},
|
||||
"form_errors": {
|
||||
"required": "Ce champ est obligatoire.",
|
||||
"passwordMatch": "Les mots de passe ne correspondent pas.",
|
||||
"passwordLenght": "Le mot de passe doit comporter au moins 8 caractères.",
|
||||
"number": "La valeur doit être un nombre.",
|
||||
"notInUsers": "Le compte '{value}' existe déjà.",
|
||||
"minValue": "La valeur doit être un nombre égal ou supérieur à {min}.",
|
||||
"name": "Les noms ne peuvent pas comporter de caractères spéciaux, sauf <code> ,.'-</code>",
|
||||
"appRepoUrl": "Les URLs de dêpôt d'app YunoHost doivent ressembler à https://domain.tld/path/to/repo_ynh",
|
||||
"emailForward": "Adresse de transfert de courrier électronique invalide : elle doit être composée de caractères alphanumérique et de <code>_.-+</code> seulement (par exemple, someone+tag@example.com, s0me-1+tag@example.com)",
|
||||
"email": "Adresse de courriel invalide : elle doit être composée de caractères alphanumérique et des caractères <code>_.-</code> seulement (par exemple someone@example.com, s0me-1@example.com)",
|
||||
"dynDomain": "Nom de domaine invalide : Il doit être composé de minuscules alphanumériques et de tirets uniquement",
|
||||
"domain": "Nom de domaine invalide : Il doit être composé de minuscules alphanumériques, de points et de tirets uniquement",
|
||||
"between": "La valeur doit être comprise entre {min} et {max}.",
|
||||
"alpha": "La chaîne de caractères ne doit contenir que des lettres.",
|
||||
"alphalownumdot_": "La chaîne de caractères doit être composé uniquement de caractères alphanumériques minuscules, de points et de tirets bas (aussi appelé tiret du 8 ou underscore).",
|
||||
"maxValue": "La valeur doit être un nombre égal ou inférieur à {max}.",
|
||||
"remote": "{message}",
|
||||
"pattern": "{type}",
|
||||
"invalid_form": "Le formulaire contient des erreurs."
|
||||
},
|
||||
"footer": {
|
||||
"donate": "Faire un don",
|
||||
"help": "Besoin d'aide ?",
|
||||
"documentation": "Documentation"
|
||||
},
|
||||
"experimental": "Expérimental",
|
||||
"error": "Erreur",
|
||||
"enabled": "Activé",
|
||||
"domain_delete_forbidden_desc": "Vous ne pouvez pas supprimer '{domain}' car c'est le domaine par défaut, vous devez choisir un autre domaine (ou <a href='#/domains/add'> ajoutez en un nouveau</a>) et le définir comme le domaine par défaut pour pouvoir supprimer celui-ci.",
|
||||
"domain_add_dyndns_forbidden": "Vous avez déjà enregistré/souscrit à un domaine DynDNS du projet YunoHost. Par conception, cette fonctionnalité est limitée à un seul domaine de ce type par serveur. Si vous souhaitez utiliser un sous-domaine de votre domaine déjà souscrit, veuillez utiliser l'option 'Ajouter un domaine que je possède, ou un sous-domaine' ci-dessus. Si vous souhaitez utiliser un domaine complètement différent, vous devez d'abord supprimer votre domaine DynDNS existant. Les domaines DynDNS sont utiles pour débuter avec l'auto-hébergement, mais à moyen/long terme, nous recommandons d'acheter votre propre nom de domaine auprès d'un registrar/prestataire afin d'avoir la pleine propriété de votre domaine.",
|
||||
"disabled": "Désactivé",
|
||||
"dead": "Inactif",
|
||||
"day_validity": " Expiré | 1 jour | {count} jours",
|
||||
"confirm_app_install": "Voulez-vous vraiment installer cette application ?",
|
||||
"common": {
|
||||
"lastname": "Nom de famille",
|
||||
"firstname": "Prénom"
|
||||
},
|
||||
"code": "Code",
|
||||
"cancel": "Annuler",
|
||||
"app_show_categories": "Afficher les catégories",
|
||||
"app_choose_category": "Choisissez une catégorie",
|
||||
"api_waiting": "Attente de la réponse du serveur…",
|
||||
"api_errors_titles": {
|
||||
"APIConnexionError": "YunoHost a rencontré une erreur de connexion",
|
||||
"APINotRespondingError": "L'API YunoHost ne répond pas",
|
||||
"APIInternalError": "YunoHost a rencontré une erreur interne",
|
||||
"APIBadRequestError": "YunoHost a rencontré une erreur",
|
||||
"APIError": "YunoHost a rencontré une erreur inattendue",
|
||||
"APINotFoundError": "L'API YunoHost n'a pas pu trouver de chemin"
|
||||
},
|
||||
"api_error": {
|
||||
"sorry": "Vraiment désolé de cela.",
|
||||
"info": "Les informations suivantes peuvent être utiles à la personne qui vous aide :",
|
||||
"help": "Vous devez chercher de l'aide sur <a href=\"https://forum.yunohost.org/\"> le forum</a> ou <a href=\"https://chat.yunohost.org/\">le chat</a> pour corriger la situation, ou signaler le bug sur <a href=\"https://github.com/YunoHost/issues\"> le bugtracker</a>.",
|
||||
"error_message": "Message d'erreur :",
|
||||
"view_error": "Afficher l'erreur",
|
||||
"server_said": "Pendant le traitement de l'action, le serveur a dit :"
|
||||
},
|
||||
"address": {
|
||||
"local_part_description": {
|
||||
"email": "Choisissez une section locale pour votre courriel.",
|
||||
"domain": "Choisissez un sous-domaine."
|
||||
},
|
||||
"domain_description": {
|
||||
"email": "Choisissez un domaine pour votre courrier électronique.",
|
||||
"domain": "Choisissez un domaine."
|
||||
}
|
||||
},
|
||||
"api_not_found": "Il semblerait que l'interface d'administration web ait essayé d'accéder à quelque chose qui n'existe pas.",
|
||||
"api": {
|
||||
"query_status": {
|
||||
"error": "Échec",
|
||||
"success": "Terminé avec succès",
|
||||
"warning": "Terminé avec succès avec des erreurs ou des alertes",
|
||||
"pending": "En cours"
|
||||
},
|
||||
"processing": "Le serveur traite l'action…",
|
||||
"partial_logs": "[…] (voir l'historique pour consulter les logs complets)",
|
||||
"reconnecting": {
|
||||
"title": "Tentative de communication avec le serveur…",
|
||||
"failed": "Le serveur ne répond pas. Vous pouvez essayer de vous reconnecter ou essayer d'exécuter `systemctl restart yunohost-api` via SSH.",
|
||||
"reason": {
|
||||
"unknown": "La connexion avec le serveur a été fermée pour des raisons inconnues.",
|
||||
"reboot": "Votre serveur redémarre et ne sera pas joignable pendant un certain temps. Une invite de connexion sera disponible dès que le serveur sera accessible.",
|
||||
"shutdown": "Votre serveur est en cours d'extinction et n'est plus joignable. Redémarrez-le et une invitation de connexion sera disponible dès que le serveur sera joignable.",
|
||||
"upgrade_system": "La connexion avec le serveur a été fermée en raison de la mise à jour de YunoHost. Il vous faut patienter jusqu'à ce que le serveur soit à nouveau joignable…"
|
||||
},
|
||||
"success": "Le serveur est maintenant joignable ! Vous pouvez essayer de vous connecter"
|
||||
}
|
||||
},
|
||||
"go_back": "Revenir",
|
||||
"postinstall": {
|
||||
"force": "Forcer la post-installation",
|
||||
"title": "Post-installation",
|
||||
"user": {
|
||||
"title": "Création du premier compte d'administration",
|
||||
"first_user_help": "Ce compte se verra accorder des privilèges d'administration et sera autorisé à se connecter à cette interface d'administration ainsi que directement au serveur via SSH.\nComme il s'agit d'un compte normal, il pourra également se connecter au portail YunoHost (SSO) avec ses informations d'identification.\nUne fois la post-installation terminée, vous pourrez créer d'autres comptes d'administration en les ajoutant au groupe 'admins'."
|
||||
}
|
||||
},
|
||||
"human_routes": {
|
||||
"users": {
|
||||
"update": "Mettre à jour le compte '{name}'",
|
||||
"delete": "Supprimer le compte '{name}'",
|
||||
"create": "Créer le compte '{name}'"
|
||||
},
|
||||
"upgrade": {
|
||||
"app": "Mettre à jour l'application '{app}'",
|
||||
"apps": "Mettre à jour toutes les applications",
|
||||
"system": "Mettre à jour le système"
|
||||
},
|
||||
"update": "Rechercher les mises à jour",
|
||||
"shutdown": "Arrêter le serveur",
|
||||
"share_logs": "Générer le lien pour le journal '{name}'",
|
||||
"services": {
|
||||
"stop": "Arrêter le service '{name}'",
|
||||
"start": "Démarrer le service '{name}'",
|
||||
"restart": "Redémarrer le service '{name}'"
|
||||
},
|
||||
"reboot": "Redémarrer le serveur",
|
||||
"postinstall": "Exécuter la post-installation",
|
||||
"permissions": {
|
||||
"remove": "Supprimer l'accès '{name}' à '{perm}'",
|
||||
"add": "Autoriser '{name}' à accéder à '{perm}'"
|
||||
},
|
||||
"migrations": {
|
||||
"skip": "Ignorer les migrations",
|
||||
"run": "Exécuter les migrations"
|
||||
},
|
||||
"groups": {
|
||||
"remove": "Supprimer '{user}' du groupe '{name}'",
|
||||
"add": "Ajouter '{user}' au groupe '{name}'",
|
||||
"delete": "Supprimer le groupe '{name}'",
|
||||
"create": "Créer le groupe '{name}'"
|
||||
},
|
||||
"firewall": {
|
||||
"upnp": "{action} UPnP",
|
||||
"ports": "{action} port {port} ({protocol}, {connection})"
|
||||
},
|
||||
"domains": {
|
||||
"set_default": "Définir '{name}' comme domaine par défaut",
|
||||
"delete": "Supprimer le domaine '{name}'",
|
||||
"add": "Ajouter le domaine '{name}'",
|
||||
"update_config": "Mise à jour du panneau '{id}' de configuration du domaine '{name}'",
|
||||
"push_dns_changes": "Envoyer les enregistrements DNS au registraire pour '{name}'",
|
||||
"cert_install": "Installation d'un certificat pour '{name}'",
|
||||
"cert_renew": "Renouvellement du certificat pour '{name}'"
|
||||
},
|
||||
"diagnosis": {
|
||||
"unignore": {
|
||||
"warning": "Ne pas ignorer un avertissement",
|
||||
"error": "Ne pas ignorer une erreur"
|
||||
},
|
||||
"run_specific": "Lancer le diagnostic '{description}'",
|
||||
"run": "Exécuter le diagnostic",
|
||||
"ignore": {
|
||||
"warning": "Ignorer un avertissement",
|
||||
"error": "Ignorer une erreur"
|
||||
}
|
||||
},
|
||||
"backups": {
|
||||
"restore": "Restaurer la sauvegarde '{name}'",
|
||||
"delete": "Supprimer la sauvegarde '{name}'",
|
||||
"create": "Créer une sauvegarde"
|
||||
},
|
||||
"apps": {
|
||||
"update_config": "Mise à jour du panneau '{id}' de configuration de l'application '{name}'",
|
||||
"uninstall": "Désinstaller l'application '{name}'",
|
||||
"set_default": "Rediriger la racine du domaine '{domain}' vers '{name}'",
|
||||
"install": "Installer l'application '{name}'",
|
||||
"change_url": "Modifier l'URL d'accès de '{name}'",
|
||||
"change_label": "Changer le libellé de '{prevName}' par '{nextName}'",
|
||||
"action_config": "Exécuter l'action '{action}' de configuration de l'application '{name}'",
|
||||
"dismiss_notification": "Congédier la notification pour '{name}'"
|
||||
},
|
||||
"reconnecting": "Reconnexion",
|
||||
"settings": {
|
||||
"update": "Mise à jour des paramètres globaux de '{panel}'"
|
||||
}
|
||||
},
|
||||
"items_verbose_items_left": "Il reste des {items}. | Il reste un {items}. | Il reste des {items}.",
|
||||
"confirm_group_add_access_permission": "Voulez-vous vraiment accorder l'accès à {perm} à {name} ? Un tel accès augmente considérablement la surface d'attaque si {name} se trouve être une personne malveillante. Vous ne devriez le faire que si vous FAITES CONFIANCE à cette personne/ ce groupe.",
|
||||
"users_import": "Importer des comptes",
|
||||
"users_export": "Exporter les comptes",
|
||||
"users_import_csv_file": "Fichier CSV",
|
||||
"users_import_update": "Mettre à jour les comptes existants",
|
||||
"users_import_delete": "Supprimer les comptes non répertoriés",
|
||||
"users_import_update_desc": "Si coché, tous les comptes existants contenus dans le fichier CSV seront mis à jour avec les nouvelles valeurs",
|
||||
"users_import_delete_desc": "Si coché, tous les comptes existants qui ne sont pas dans le fichier CSV seront supprimés (et purgés).",
|
||||
"users_import_confirm_destructive": "Voulez-vous vraiment supprimer les comptes qui ne sont pas présents dans ce fichier ?",
|
||||
"users_import_delete_others": "Supprimer les comptes non répertoriés",
|
||||
"users_import_csv_file_desc": "Le fichier CSV doit être au format UTF-8 et avec les colonnes nom de compte, mot de passe, groupes, email et quota. Pour un exemple d'importation de fichier CSV, vous pouvez <a href='/yunohost/api/users/export' target='_BLANK'>exporter vos comptes dans un fichier CSV</a> et modifier le fichier.",
|
||||
"yunohost_admin": "YunoHost Admin",
|
||||
"domain": {
|
||||
"config": {
|
||||
"edit": "Modifier la configuration du domaine",
|
||||
"title": "Configuration du domaine"
|
||||
},
|
||||
"dns": {
|
||||
"auto_config": "Configuration automatique des enregistrements DNS",
|
||||
"auto_config_ok": "La configuration automatique semble être OK !",
|
||||
"auto_config_zone": "Zone DNS actuelle",
|
||||
"edit": "Modifier la configuration DNS",
|
||||
"info": "La configuration automatique des enregistrements DNS est une fonctionnalité expérimentale. <br>Envisagez de sauvegarder votre zone DNS actuelle à partir de l'interface de votre registraire DNS avant de transférer les enregistrements à partir d'ici.",
|
||||
"manual_config": "Enregistrements DNS suggérés pour la configuration manuelle",
|
||||
"push_force": "Écraser les enregistrements existants",
|
||||
"push_force_warning": "Il semble que certains enregistrements DNS que YunoHost aurait définis soient déjà dans la configuration du registrar. Vous pouvez utiliser l'option d'écrasement si vous savez ce que vous faites.",
|
||||
"push_force_confirm": "Voulez-vous vraiment forcer tous les enregistrements DNS suggérés ? Sachez que cela peut écraser une configuration manuelle ou des enregistrements par défaut importants définis par vous ou votre registrar.",
|
||||
"auto_config_ignored": "ignoré, ne sera pas modifié par YunoHost sauf si vous cochez l'option d'écrasement",
|
||||
"push": "Envoyer les enregistrements DNS vers le registrar",
|
||||
"methods": {
|
||||
"auto": "Automatique",
|
||||
"handled_in_parent": "Géré dans le domaine parent",
|
||||
"manual": "Manuelle",
|
||||
"none": "Aucune",
|
||||
"semi_auto": "Semi-automatique"
|
||||
}
|
||||
},
|
||||
"cert": {
|
||||
"types": {
|
||||
"selfsigned": "Auto-signé",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"other": "Autre/Inconnu"
|
||||
},
|
||||
"valid_for": "valable pendant {days}"
|
||||
},
|
||||
"explain": {
|
||||
"main_domain": "Le domaine principal est le domaine à partir duquel les personnes peuvent se connecter au portail (via \"{domain}/yunohost/sso\").<br>Il n'est donc pas possible de le supprimer.<br>Si vous voulez supprimer \"{domain}\", vous devrez d'abord choisir ou ajouter un autre domaine et le définir comme domaine principal."
|
||||
},
|
||||
"info": {
|
||||
"apps_on_domain": "Applications installées sur le domaine",
|
||||
"certificate_authority": "Autorité de certification SSL",
|
||||
"registrar": "Registraire de nom de domaine",
|
||||
"dyn_dns_remove_and_unsubscribe": "Annuler également l'enregistrement du domaine du service DynDNS de YunoHost"
|
||||
},
|
||||
"see_parent_domain": "Voir le domaine parent",
|
||||
"types": {
|
||||
"main_domain": "Domaine principal"
|
||||
},
|
||||
"toggle_subdomains": "Afficher les sous-domaines",
|
||||
"add": {
|
||||
"from_registrar_desc": "Vous devrez configurer manuellement les enregistrements DNS chez votre registrar auprès duquel vous avez acheté votre nom de domaine pour finaliser la configuration de ce domaine. Le diagnostic de YunoHost vous guidera sur les enregistrements DNS à configurer de façon adéquate.",
|
||||
"from_yunohost_desc": "Le projet YunoHost propose un service 'DynDNS' gratuit. Il est limité à un seul domaine par serveur (bien que vous puissiez également ajouter des sous-domaines plus tard en utilisant l'autre option 'Ajouter un domaine que je possède, ou un sous-domaine' ci-dessus). La configuration DNS sera automatiquement prise en charge par YunoHost. C'est l'idéal lorsque vous démarrez avec l'auto-hébergement en général et que vous ne souhaitez pas encore investir dans un nom de domaine. Cependant, à moyen/long terme, nous vous recommandons d'acheter votre propre nom de domaine auprès d'un registrar (fournisseur de nom de domaine) afin d'avoir la pleine propriété de votre domaine.",
|
||||
"dyn_dns_password": "Mot de passe de récupération du domaine",
|
||||
"dyn_dns_password_desc": "Ce mot de passe vous permettra de récupérer ultérieurement le contrôle du domaine si vous réinstallez votre système. Si vous avez déjà enregistré ce domaine auparavant, utilisez votre mot de passe de récupération ici pour le récupérer.",
|
||||
"from_local": "Je veux un domaine pour un usage local / test uniquement",
|
||||
"from_local_desc": "Si vous ne souhaitez pas un nom de domaine public \"réel\", vous pouvez utiliser n'importe quel nom se terminant par <code>.local</code> or <code>.test</code>. Les noms de domaine se terminant par <code>.local</code> sont particuliers en ce sens qu'ils peuvent être automatiquement résolus sur le réseau local, en supposant que les clients prennent en charge le protocole Bonjour. Il est également possible que vous deviez modifier le paramètre du fichier <code>/etc/hosts</code> (ou équivalent sous Windows) sur chaque client à partir duquel vous souhaitez utiliser ce domaine, ou de configurer des entrées DNS locales sur votre routeur internet.",
|
||||
"from_registrar": "Je veux ajouter un domaine que je possède, ou un sous-domaine",
|
||||
"from_yunohost": "Je ne possède pas de domaine, je veux enregistrer/utiliser un domaine DynDNS gratuit fourni par le projet YunoHost"
|
||||
}
|
||||
},
|
||||
"domain_dns_push_failed_to_authenticate": "Échec de l'authentification sur l'API du registrar. Les <a href='#/domains/{domain}/config'>informations d'identification</a> sont elles justes ? (Erreur : {error})",
|
||||
"domain_dns_push_managed_in_parent_domain": "La fonctionnalité d'enregistrement DNS automatique est gérée dans le domaine parent <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
|
||||
"domain_dns_push_not_applicable": "La fonctionnalité d'enregistrements DNS automatiques n'est pas applicable au domaine {domain},<br> Vous devez configurer manuellement vos enregistrements DNS en suivant la <a href='https://yunohost.org/dns'>documentation</a> et les suggestions configuration ci-dessous.",
|
||||
"text_selection_is_disabled": "La sélection du texte est désactivée. Si vous voulez partager ce log *complet*, vous pouvez le faire en cliquant sur le bouton 'Partager avec Yunopaste'.<br/><small>Ou, si vous voulez vraiment vraiment sélectionner du texte, appuyez sur ces touches : ↓↓↑↑.</small>",
|
||||
"retry": "Retenter",
|
||||
"important_yunohost_upgrade": "Une mise à jour majeure de YunoHost est disponible. Il est fortement recommandé de lire attentivement les notes de mise à jour sur le forum avant de procéder à celle-ci : <a href='https://forum.yunohost.org/tag/ynh_release'>Consultez les notes de mise à jour sur le forum.</a>",
|
||||
"app_state_broken": "Cassée",
|
||||
"app_state_broken_explanation": "Cette application est actuellement cassée et ne peut être installée selon les contrôles automatiques de YunoHost",
|
||||
"details_about": "Afficher plus de détails sur {subject}",
|
||||
"group_admins": "Comptes administrateurs",
|
||||
"group_explain_admins": "Il s'agit d'un groupe spécial correspondant aux comptes dits administrateurs. Les comptes affectés à ce groupe ont, pour faire simple, tous les droits sur le serveur (modification, création, ajout et suppression). Ils peuvent donc accéder à l'administration en ligne de YunoHost (panel web), se connecter au serveur avec SSH et utiliser la commande `sudo`. Ils recevront également les courriels envoyés à root@, admin@, admins@, tels que les notifications de diagnostic. Vous ne devriez ajouter dans ce groupe que des comptes de personnes en qui vous avez absolument confiance !",
|
||||
"label_for_manifestname_help": "Il s'agit du nom affiché dans le portail d'utilisation de YunoHost. Il peut être modifié ultérieurement.",
|
||||
"manage_groups": "Gestion des groupes",
|
||||
"tools_yunohost_settings": "Paramètres de YunoHost",
|
||||
"wrong_password_or_username": "Mot de passe ou nom de compte erroné",
|
||||
"confirm_install_app_broken": "AVERTISSEMENT ! Cette application est cassée selon les contrôles automatiques de YunoHost et elle est susceptible de casser votre système ! Vous ne devriez probablement PAS l'installer à moins de savoir ce que vous faites. Voulez-vous vraiment prendre ce risque ?",
|
||||
"app": {
|
||||
"links": {
|
||||
"code": "Dépôt officiel de code",
|
||||
"admindoc": "Documentation officielle d'administration",
|
||||
"forum": "Sujets concernant cette application sur le forum de YunoHost",
|
||||
"package": "Dépôt du paquet YunoHost",
|
||||
"package_license": "Licence du paquet YunoHost",
|
||||
"title": "Liens",
|
||||
"userdoc": "Documentation officielle d'utilisation",
|
||||
"website": "Site officiel",
|
||||
"license": "Licence de l'app"
|
||||
},
|
||||
"potential_alternative_to": "Alternative potentielle à :",
|
||||
"upgrade": {
|
||||
"notifs": {
|
||||
"pre": {
|
||||
"alert": "Vous devriez vérifier ces notifications avant de procéder à la mise à niveau, il pourrait y avoir des éléments d'information importants à connaître.",
|
||||
"title": "Avertissement !"
|
||||
},
|
||||
"post": {
|
||||
"alert": "Il semble que la mise à jour se soit bien passée !\nVoici quelques informations que le responsable du paquet juge important de connaître à propos de cette mise à niveau.\nVous pouvez les retrouver dans la page d'information de l'application.",
|
||||
"title": "Notifications post-mise à niveau pour '{name}'"
|
||||
}
|
||||
},
|
||||
"confirm": {
|
||||
"apps": "Applications qui seront mises à niveau",
|
||||
"title": "Confirmez les mises à niveau des applications"
|
||||
},
|
||||
"continue": "Passer à l'application suivante",
|
||||
"stop": "Annuler les prochaines mises à niveau d'applications"
|
||||
},
|
||||
"installed_version": "Version installée :",
|
||||
"open_this_app": "Ouvrez l'application",
|
||||
"antifeatures": "Cette application a des fonctionnalités que vous n'aimerez peut-être pas :",
|
||||
"doc": {
|
||||
"about": {
|
||||
"title": "À propos",
|
||||
"description": "Description"
|
||||
},
|
||||
"admin": {
|
||||
"title": "Documentation d'administration"
|
||||
},
|
||||
"notifications": {
|
||||
"understood": "Compris",
|
||||
"title": "Notifications",
|
||||
"post_upgrade": "Remarques suite à la mise à niveau",
|
||||
"post_install": "Remarques suite à l'installation"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"forum": "Cherchez ou demandez sur le forum !",
|
||||
"problem": "Un problème avec cette application ?",
|
||||
"config_panel_error": "Une erreur empêche l'affichage du panneau de configuration :",
|
||||
"config_panel_error_please_report": "Merci de signaler cette erreur à l'équipe de YunoHost pour qu'elle soit corrigée !"
|
||||
},
|
||||
"install": {
|
||||
"license": "Licence : {license}",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"title": "Notifications de post-installation pour '{name}'",
|
||||
"alert": "Il semble que l'installation se soit bien passée !\nVoici quelques notifications que le responsable du paquet considère comme importantes à connaître.\nVous pouvez les retrouver dans la page d'information de l'application."
|
||||
},
|
||||
"pre": {
|
||||
"warning": "Ce qu'il faut savoir avant l'installation",
|
||||
"danger": "L'installation de l'application entraînera très probablement des problèmes",
|
||||
"critical": "L'application ne peut pas être installée"
|
||||
}
|
||||
},
|
||||
"problems": {
|
||||
"arch": "Cette application ne peut être installée que sur des architectures spécifiques ({required}). L'architecture de votre serveur est {current}.",
|
||||
"broken": "Cette application est cassée selon les tests automatiques de YunoHost et elle est susceptible de casser votre système ! Vous ne devriez probablement PAS l'installer sauf si vous savez ce que vous faites.",
|
||||
"thirdparty": "Cette application ne fait pas partie du catalogue officiel de YunoHost, l'installation d'applications tierces peut compromettre l'intégrité et la sécurité de votre système. Vous ne devriez probablement PAS l'installer à moins de savoir ce que vous faites.",
|
||||
"ignore": "Je comprends que cette installation peut casser mon système mais je veux quand même essayer.",
|
||||
"inprogress": "Cette application est encore expérimentale (pour être plus clair elle ne fonctionne pas super bien et n'est pas encore bien intégrée dans YunoHost). En conséquence, elle est susceptible de casser votre système ! Vous ne devriez probablement PAS l'installer si vous ne savez pas ce que vous faites.",
|
||||
"install": "Cette application est déjà installée et ne peut être installée plus d'une fois.",
|
||||
"lowquality": "Cette application peut fonctionner mais n'est pas bien intégrée dans YunoHost. Certaines fonctionnalités telles que l'authentification unique (sso) et la sauvegarde/restauration peuvent ne pas être disponibles, ou ne pas respecter les bonnes pratiques.",
|
||||
"ram": "Cette application nécessite {required} de RAM pour être installée/mise à niveau mais seul {current} est disponible actuellement. Même si cette application pouvait fonctionner, son processus d'installation nécessite une grande quantité de RAM. Votre serveur risque donc de geler (freezer) et de planter lamentablement.",
|
||||
"version": "Cette application nécessite une version de YunoHost >= {required} et votre version installée est {current}, vous devriez envisager en premier lieu de mettre à niveau YunoHost."
|
||||
},
|
||||
"try_demo": "Essayer la démonstration",
|
||||
"version": "Version actuelle : {version}"
|
||||
},
|
||||
"integration": {
|
||||
"archs": "Architectures prises en charge :",
|
||||
"ldap": {
|
||||
"false": "Ne permet pas d'utiliser les comptes YunoHost pour se connecter (LDAP)",
|
||||
"true": "Utilise les comptes YunoHost pour se connecter (LDAP)",
|
||||
"?": "Aucune information sur l'intégration LDAP"
|
||||
},
|
||||
"multi_instance": {
|
||||
"false": "Ne peut être installé qu'une seule fois",
|
||||
"true": "Peut être installée plusieurs fois"
|
||||
},
|
||||
"resources": "Utilisation classique des ressources : {ram} RAM, {disk} disque",
|
||||
"sso": {
|
||||
"false": "Le système d'identification unique n'est pas disponible (SSO)",
|
||||
"true": "Le système d'identification unique est disponible (SSO)",
|
||||
"?": "Aucune information sur l'intégration du SSO"
|
||||
},
|
||||
"title": "Intégration avec YunoHost"
|
||||
},
|
||||
"uninstall": {
|
||||
"purge_desc": "Supprimez le répertoire de données associé à l'application (il s'agit généralement de données que vous avez téléchargées vous-même à l'aide de l'application)."
|
||||
}
|
||||
}
|
||||
}
|
695
app/src/i18n/locales/gl.json
Normal file
|
@ -0,0 +1,695 @@
|
|||
{
|
||||
"cancel": "Cancelar",
|
||||
"ok": "Ok",
|
||||
"password": "Contrasinal",
|
||||
"api_errors_titles": {
|
||||
"APINotRespondingError": "A API de YunoHost non está a responder",
|
||||
"APINotFoundError": "A API de YunoHost non puido atopar unha ruta",
|
||||
"APIInternalError": "YunoHost atopou un erro interno",
|
||||
"APIBadRequestError": "YunoHost atopou un erro",
|
||||
"APIError": "YunoHost atopou un erro non agardado",
|
||||
"APIConnexionError": "YunoHost atopou un fallo de conexión"
|
||||
},
|
||||
"api_error": {
|
||||
"view_error": "Ver erro",
|
||||
"sorry": "Sentimos gran pesar por isto.",
|
||||
"server_said": "Ao procesar a acción o servidor respondeu:",
|
||||
"info": "A seguinte información podería ser útil para a persoa que che axude:",
|
||||
"help": "Podes buscar axuda no <a href=\"https://forum.yunohost.org/\">foro</a> ou na <a href=\"https://chat.yunohost.org/\">conversa</a> para arranxar a situación, ou informar do fallo no <a href=\"https://github.com/YunoHost/issues\">seguimento de fallos</a>.",
|
||||
"error_message": "Mensaxe do erro:"
|
||||
},
|
||||
"api": {
|
||||
"query_status": {
|
||||
"warning": "Completada correctamente con erros ou alertas",
|
||||
"success": "Completada correctamente",
|
||||
"pending": "En progreso",
|
||||
"error": "Sen éxito"
|
||||
},
|
||||
"processing": "O servidor está procesando a acción…",
|
||||
"partial_logs": "[…] (mira o historial para ver o rexistro completo)",
|
||||
"reconnecting": {
|
||||
"title": "Intentando comunicarse co servidor…",
|
||||
"failed": "Semella que o servidor non responde. Podes intentar volver conectar ou intenta executar `systemctl restart yunohost-api`por ssh.",
|
||||
"reason": {
|
||||
"unknown": "Pechouse a conexión co servidor por razóns descoñecidas.",
|
||||
"reboot": "O servidor está reiniciando e non estará dispoñible por uns minutos. O formulario de conexión estará dispoñible tan pronto o servidor sexa accesible.",
|
||||
"shutdown": "O servidor estase apagando e non está dispoñible. Acéndeo e o formulario de conexión estará dispoñible tan pronto o servidor sexa accesible.",
|
||||
"upgrade_system": "Pechouse a conexión ao servidor debido á actualización de YunoHost. Agardando a que o servidor sexa accesible…"
|
||||
},
|
||||
"success": "O servidor está accesible! Podes intentar acceder"
|
||||
}
|
||||
},
|
||||
"all": "Todo",
|
||||
"administration_password": "Contrasinal de administración",
|
||||
"address": {
|
||||
"local_part_description": {
|
||||
"domain": "Elixe un subdominio.",
|
||||
"email": "Elixe a parte local para o teu email."
|
||||
},
|
||||
"domain_description": {
|
||||
"email": "Elixe un dominio para o teu email.",
|
||||
"domain": "Elixe un dominio."
|
||||
}
|
||||
},
|
||||
"add": "Engadir",
|
||||
"action": "Acción",
|
||||
"confirm_firewall_disallow": "Tes a certeza de querer pechar o porto {port}? (protocolo: {protocol}, conexión: {connection})",
|
||||
"confirm_firewall_allow": "Tes a certeza de querer abrir o porto {port}? (protocolo: {protocol}, conexión: {connection})",
|
||||
"confirm_delete": "Tes a certeza de querer eliminar {name}?",
|
||||
"confirm_change_maindomain": "Tes a certeza de querer cambiar o dominio principal?",
|
||||
"confirm_app_default": "Tes a certeza de querer establecer esta como a app por defecto?",
|
||||
"confirm_app_change_url": "Tes a certeza de querer cambiar o URL de acceso á app?",
|
||||
"configuration": "Configuración",
|
||||
"common": {
|
||||
"lastname": "Apelido",
|
||||
"firstname": "Nome"
|
||||
},
|
||||
"code": "Código",
|
||||
"close": "Pechar",
|
||||
"check": "Comprobar",
|
||||
"catalog": "Catálogo",
|
||||
"both": "Ambos",
|
||||
"begin": "Comezar",
|
||||
"backup_new": "Nova copia de apoio",
|
||||
"backup_create": "Crear copia de apoio",
|
||||
"backup_content": "Contido da copia de apoio",
|
||||
"backup_action": "Copia de apoio",
|
||||
"backup": "Copia de apoio",
|
||||
"archive_empty": "Arquivo baleiro",
|
||||
"applications": "Aplicacións",
|
||||
"app_state_highquality_explanation": "Esta app está ben integrada en YunoHost desde hai polo menos un ano.",
|
||||
"app_state_lowquality_explanation": "Esta app podería funcionar, pero con algún problema, ou non completamente integrada en YunoHost, ou non respectando as boas prácticas.",
|
||||
"app_state_lowquality": "baixa calidade",
|
||||
"app_state_inprogress": "aínda non funciona",
|
||||
"app_show_categories": "Mostrar categorías",
|
||||
"app_make_default": "Establecer por defecto",
|
||||
"app_install_parameters": "Axustes da instalación",
|
||||
"app_install_custom_no_manifest": "Non hai ficheiro manifest.json",
|
||||
"app_info_uninstall_desc": "Eliminar esta aplicación.",
|
||||
"app_info_change_url_disabled_tooltip": "Aínda non se implementou esta función para a app",
|
||||
"app_info_changeurl_desc": "Cambiar o URL de acceso a esta aplicación (domino e/ou ruta).",
|
||||
"app_info_default_desc": "Redireccionar a raíz do dominio a esta aplicación ({domain}).",
|
||||
"app_info_access_desc": "Gupos / usuarias que actualmente teñen acceso a esta app:",
|
||||
"app_choose_category": "Elixe unha categoría",
|
||||
"api_waiting": "Agardando pola resposta do servidor…",
|
||||
"api_not_responding": "A API de YunoHost non responde. Pode que 'yunohost-api' esté caída ou esté reiniciando?",
|
||||
"api_not_found": "Semella que o web-admin intentou solicitar algún recurso que non existe.",
|
||||
"all_apps": "Tódalas apps",
|
||||
"domain_delete_longdesc": "Eliminar este domino",
|
||||
"domain_default_longdesc": "Este é o teu dominio por defecto.",
|
||||
"domain_default_desc": "O dominio por defecto é o dominio de conexión onde accederán as usuarias.",
|
||||
"domain_add_dyndns_forbidden": "Xa tes unha subscrición/rexistro dun dominio DynDNS do proxecto YunoHost. Por decisión propia, esta característica está limitada a un dominio por servidor. Se queres engadir un subdominio pertencente ao dominio que xa tes utiliza a opción superior 'Engadir un dominio, ou subdominio, que xa posúo'. Se queres usar un dominio totalmente diferente, primeiro tes que eliminar o dominio DynDNS existente. Os dominios DynDNS son moi axeitados para aprender ao comezo dun proxecto de autohospedaxe, pero a medio/longo prazo recomendámosche mercar o teu propio nome de dominio nalgunha empresa rexistradora para ter a propiedade completa sobre o teu dominio.",
|
||||
"domain_add": "Engadir dominio",
|
||||
"dns": "DNS",
|
||||
"disabled": "Desactivado",
|
||||
"disable": "Desactivar",
|
||||
"run_first_diagnosis": "Executar diagnóstico inicial",
|
||||
"diagnosis_explanation": "A ferramenta de diagnóstico intentará identificar problemas habituais en diferentes ámbitos do teu servidor para asegurarse de que todo funciona como debe. O diagnóstico realízase automáticamente un par de veces ao día e envíase un email á usuaria administradora se aparecen problemas. Ten en conta que algúns test poderían non ser relevantes se non utilizas dito servizo (por exemplo XMPP) ou poderían fallar se realizas unha configuración moi complexa. Nestos casos, e se sabes o que estás a facer, podes ignorar estos avisos ou problemas.",
|
||||
"diagnosis_first_run": "A ferramenta de diagnóstico intentará identificar problemas habituais en diferentes ámbitos do teu servidor para ter a certeza de que todo funciona como debe. Non te preocupes se ves moitos erros cando finalizas a configuración do servidor: para iso está a ferramenta, para axudarche a identificar os problemas e guiarte coa solución. O diagnóstico realízase automáticamente un par de veces ao día e envíase un email á usuaria administradora se atopa problemas.",
|
||||
"diagnosis": "Diagnóstico",
|
||||
"domain_dns_conf_is_just_a_recommendation": "Esta sección amósache a configuración *recomendada*. *Non configura* os rexistros DNS por ti. É responsabilidade túa configurar as zonas DNS seguindo esta recomendación na web da empresa onde rexistraches o dominio.",
|
||||
"details": "Detalles",
|
||||
"description": "Descrición",
|
||||
"delete": "Eliminar",
|
||||
"dead": "Inactiva",
|
||||
"day_validity": " Caducada | 1 día | {count} días",
|
||||
"custom_app_install": "Instalar app personalizada",
|
||||
"created_at": "Creado o",
|
||||
"connection": "Conexión",
|
||||
"confirm_reboot_action_shutdown": "Tes a certeza de querer apagar o teu servidor?",
|
||||
"confirm_reboot_action_reboot": "Tes a certeza de querer reiniciar o teu servidor?",
|
||||
"confirm_upnp_disable": "Tes a certeza de querer desactivar UPnP?",
|
||||
"confirm_upnp_enable": "Tes a certeza de querer activar UPnP?",
|
||||
"confirm_update_specific_app": "Tes a certeza de querer actualizar {app}?",
|
||||
"confirm_update_system": "Tes a certeza de querer actualizar tódolos paquetes do sistema?",
|
||||
"confirm_update_apps": "Tes a certeza de querer actualizar tódalas aplicacións?",
|
||||
"confirm_uninstall": "Tes a certeza de querer desinstalar {name}?",
|
||||
"confirm_service_stop": "Tes a certeza de querer deter {name}?",
|
||||
"confirm_service_start": "Tes a certeza de querer iniciar {name}?",
|
||||
"confirm_service_restart": "Tes a certeza de querer reiniciar {name}?",
|
||||
"confirm_restore": "Tes a certeza de querer restaurar {name}?",
|
||||
"confirm_postinstall": "Vas a iniciar o proceso post-instalación no dominio {domain}. Pode demorar uns minutos, *non interrumpas a operación*.",
|
||||
"confirm_migrations_skip": "Non se recomenda omitir as migracións. Tes a certeza de querer facer isto?",
|
||||
"confirm_install_app_inprogress": "AVISO! Esta aplicación aínda é experimental (pode que aínda non sexa funcional) e pode que estrague o teu sistema! Probablemente NON DEBERÍAS instalala a menos que saibas o que fas. Estás preparada para asumir este risco?",
|
||||
"confirm_install_app_lowquality": "Aviso: esta aplicación seguramente funcione pero non está completamente integrada en YunoHost. Algunhas características como a conexión unificada e copia/restauración poderían non estar dispoñibles.",
|
||||
"confirm_app_install": "Tes a certeza de querer instalar esta aplicación?",
|
||||
"confirm_install_domain_root": "Tes a certeza de querer instalar esta aplicación en '/'? Non poderás instalar ningunha outra app en {domain}",
|
||||
"confirm_install_custom_app": "AVISO! Ao instalar aplicacións de terceiras partes podes comprometer a integridade e seguridade do teu sistema. Probablemente NON deberías instalalas a non ser que saibas o que fas. Estás preparada para asumir ese risco?",
|
||||
"confirm_group_add_access_permission": "Tes a certeza de querer concederlle a {name} acceso a {perm}? Este nivel de acceso aumenta de xeito significativo o risco de ataques se {name} resulta ser unha persoa maliciosa. Deberías facer isto só se CONFÍAS nesta persoa/grupo.",
|
||||
"app_state_inprogress_explanation": "As responsables desta app declaran que esta aplicación non está lista para usar en produción. TEN COIDADO!",
|
||||
"permission_show_tile_enabled": "Visible como tesela no portal da usuaria",
|
||||
"app_manage_label_and_tiles": "Xestionar etiqueta e teselas",
|
||||
"good_practices_about_admin_password": "Vas definir un novo contrasinal de administración. O contrasinal debe ter polo menos 8 caracteres - aínda que é mellor que teña máis (por exemplo unha frase de paso) e/ou utilices varios tipos de caracteres (maiúsculas, minúsculas, números e caracteres especiais).",
|
||||
"go_back": "Volver",
|
||||
"from_to": "de {0} a {1}",
|
||||
"form_input_example": "Exemplo: {example}",
|
||||
"form_errors": {
|
||||
"required": "Completa este campo.",
|
||||
"passwordMatch": "Os contrasinais non concordan.",
|
||||
"passwordLenght": "O contrasinal debe ter polo menos 8 caracteres.",
|
||||
"number": "Ten que ser un número.",
|
||||
"notInUsers": "A usuaria '{value}' xa existe.",
|
||||
"minValue": "O valor debe ser un número igual ou superior a {min}.",
|
||||
"name": "Os nomes non inclúen caracteres especiais excepto <code> ,.'-</code>",
|
||||
"emailForward": "Email de reenvío non válido: ten que ser alfanumérico e caracteres <code>_.-+</code> (ex. menganito+etiqueta@exemplo.com, m3ng4ni7-o+etiqueta@exemplo.com)",
|
||||
"email": "Email non válido: debe ser alfanumércio e caracteres <code>_.-</code> (ex. menganito@exemplo.com, p4c-0@exemplo.com)",
|
||||
"dynDomain": "Nome de dominio non válido: Só pode ter caracteres alfanuméricos en minúscula e barra",
|
||||
"domain": "Nome de dominio non válido: Só pode ser alfanumérico en minúsculas, punto e barra",
|
||||
"between": "O valor ten que estar entre {min} e {max}.",
|
||||
"alphalownumdot_": "O valor só pode ter caracteres alfanuméricos en minúscula e trazos baixos.",
|
||||
"alpha": "O valor só pode ter caracteres alfanuméricos.",
|
||||
"remote": "{message}",
|
||||
"pattern": "{type}",
|
||||
"maxValue": "O valor ten que ser un número igual ou menor que {max}.",
|
||||
"invalid_form": "O formulario contén erros.",
|
||||
"appRepoUrl": "É de esperar que os URL dos repositorios YunoHost teñan este formato https://domain.tld/path/to/repo_ynh"
|
||||
},
|
||||
"footer": {
|
||||
"donate": "Doa",
|
||||
"help": "Precisas axuda?",
|
||||
"documentation": "Documentación"
|
||||
},
|
||||
"footer_version": "Grazas a <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
|
||||
"firewall": "Cortalumes",
|
||||
"experimental_warning": "Aviso: esta característica é experimental e non se considera estable, non deberías utilizala a non ser que saibas o que estás a facer.",
|
||||
"experimental": "Experimental",
|
||||
"everything_good": "Todo ben!",
|
||||
"error_connection_interrupted": "O servidor pechou a conexión no lugar de responder. Detivéronse ou reiniciáronse por algunha razón nginx ou yunohost-api?",
|
||||
"error_server_unexpected": "Erro do servidor non agardado",
|
||||
"error_modify_something": "Deberías cambiar algo",
|
||||
"error": "Erro",
|
||||
"enabled": "Desactivado",
|
||||
"enable": "Activar",
|
||||
"download": "Descargar",
|
||||
"domains": "Dominios",
|
||||
"domain_name": "Nome de dominio",
|
||||
"domain_dns_longdesc": "Ver configuración DNS",
|
||||
"domain_dns_config": "Configuración DNS",
|
||||
"domain_delete_forbidden_desc": "Non podes eliminar '{domain}' porque é o dominio por defecto, tes que elixir outro dominio (ou <a href='#/domains/add'>engadir un novo</a>) e configuralo como dominio por defecto antes de poder eliminar este.",
|
||||
"items": {
|
||||
"groups": "sen grupos | grupo | {c} grupos",
|
||||
"domains": "sen dominios | dominio | {c} dominios",
|
||||
"backups": "0 copias | copia de apoio | {c} copias de apoio",
|
||||
"apps": "sen apps | app | {c} apps",
|
||||
"users": "sen usuarias | usuaria | {c} usuarias",
|
||||
"services": "sen servizos | servizo | {c} servizos",
|
||||
"permissions": "sen permisos | permiso | {c} permisos",
|
||||
"logs": "sen rexistros | rexistro | {c} rexistros",
|
||||
"installed_apps": "cero apps instaladas | app instalada | {c} apps instaladas"
|
||||
},
|
||||
"issues": "{count} asuntos",
|
||||
"ipv6": "IPv6",
|
||||
"ipv4": "IPv4",
|
||||
"installed": "Instalada",
|
||||
"installation_complete": "Instalación completa",
|
||||
"install_time": "Data de instalación",
|
||||
"install_name": "Instalar {id}",
|
||||
"install": "Instalar",
|
||||
"infos": "Info",
|
||||
"ignored": "{count} ignorados",
|
||||
"ignore": "Ignorar",
|
||||
"id": "ID",
|
||||
"hook_data_xmpp_desc": "Configuracións de salas e usuarias e ficheiros subidos",
|
||||
"hook_data_xmpp": "Datos XMPP",
|
||||
"hook_data_mail_desc": "Emails en bruto almacenados no servidor",
|
||||
"hook_data_mail": "Email",
|
||||
"hook_data_home_desc": "Datos da usuaria localizados en /home/USUARIA",
|
||||
"hook_data_home": "Datos da usuaria",
|
||||
"hook_conf_manually_modified_files": "Configuracións realizadas manualmente",
|
||||
"hook_conf_ynh_settings": "Configuracións de YunoHost",
|
||||
"hook_conf_ynh_certs": "Certificados SSL",
|
||||
"hook_conf_ldap": "Base de datos de usuarias",
|
||||
"hook_adminjs_group_configuration": "Configuracións do sistema",
|
||||
"home": "Inicio",
|
||||
"history": {
|
||||
"methods": {
|
||||
"PUT": "modificar",
|
||||
"POST": "crear/executar",
|
||||
"GET": "ler",
|
||||
"DELETE": "eliminar"
|
||||
},
|
||||
"last_action": "Última acción:",
|
||||
"title": "Historial",
|
||||
"is_empty": "Por agora non hai nada no historial."
|
||||
},
|
||||
"permissions": "Permisos",
|
||||
"groups_and_permissions_manage": "Xestionar grupos e permisos",
|
||||
"groups_and_permissions": "Grupos e permisos",
|
||||
"group_specific_permissions": "Permisos individuais da usuaria",
|
||||
"group_explain_visitors_needed_for_external_client": "Ten en conta que algunhas aplicacións precisan permitir o acceso a visitantes para poder utilizalas con clientes externos. É o caso de, por exemplo, Nextcloud se vas a utilizar un cliente de sincronización no teléfono móbil ou computadora de escritorio.",
|
||||
"group_explain_visitors": "Este é un grupo especial que representa ás persoas visitantes anónimas",
|
||||
"group_explain_all_users": "Este é un grupo especial que contén tódalas contas de usuaria do servidor",
|
||||
"group_new": "Novo grupo",
|
||||
"group_add_permission": "Engadir un permiso",
|
||||
"group_add_member": "Engadir usuaria",
|
||||
"group_format_name_help": "Podes utilizar caracteres alfanuméricos e trazo baixo",
|
||||
"group_visitors": "Visitantes",
|
||||
"group_all_users": "Todas as usuarias",
|
||||
"group_name": "Nome do grupo",
|
||||
"group": "Grupo",
|
||||
"good_practices_about_user_password": "Vas establecer un novo contrasinal de usuaria. O contrasinal debe ter polo menos 8 caracteres - aínda que é aconsellable que sexa máis longo (ex. unha frase) e/ou utilices diferentes tipos de caracteres (maiúsculas, minúsculas, números e caracteres especiais).",
|
||||
"orphaned": "Sen mantemento",
|
||||
"operations": "Operacións",
|
||||
"open": "Abrir",
|
||||
"only_decent_quality_apps": "Só apps de calidade decente",
|
||||
"only_working_apps": "Só apps que funcionan",
|
||||
"only_highquality_apps": "Só apps de alta calidade",
|
||||
"nobody": "Ninguén",
|
||||
"no": "Non",
|
||||
"next": "Seguinte",
|
||||
"multi_instance": "Pode ser instalada varias veces",
|
||||
"migrations_disclaimer_not_checked": "Esta migración require que aceptes o descargo de responsabilidade antes de realizala.",
|
||||
"migrations_disclaimer_check_message": "Lin e entendín o descargo de responsabilidade",
|
||||
"migrations_no_done": "Sen migracións previas",
|
||||
"migrations_no_pending": "Sen migracións pendentes",
|
||||
"migrations_done": "Migracións anteriores",
|
||||
"migrations_pending": "Migracións pendentes",
|
||||
"migrations": "Migracións",
|
||||
"manage_users": "Xestión de usuarias",
|
||||
"manage_domains": "Xestión de dominios",
|
||||
"manage_apps": "Xestión de apps",
|
||||
"mailbox_quota_placeholder": "Escribe 0 para desactivar.",
|
||||
"mailbox_quota_example": "700M é un CD, 4700M é un DVD",
|
||||
"mailbox_quota_description": "Establece o tamaño máximo para almacenaxe de email. <br>0 para desactivar.",
|
||||
"logout": "Pechar sesión",
|
||||
"login": "Acceder",
|
||||
"local_archives": "Arquivos locais",
|
||||
"license": "Licenza",
|
||||
"last_ran": "Última execución:",
|
||||
"label_for_manifestname": "Etiqueta para {name}",
|
||||
"label": "Etiqueta",
|
||||
"items_verbose_items_left": "Faltan {items}. | Falta 1 {items}. | Faltan {items}.",
|
||||
"items_verbose_count": "Hai {items}. | Hai 1 {items}. | Hai {items}.",
|
||||
"logs_share_with_yunopaste": "Compartir rexistros con YunoPaste",
|
||||
"logs_context": "Contexto",
|
||||
"logs_path": "Ruta",
|
||||
"logs_started_at": "Inicio",
|
||||
"logs_ended_at": "Fin",
|
||||
"logs_error": "Erro",
|
||||
"logs_no_logs_registered": "Sen rexistros nesta categoría",
|
||||
"logs_app": "Rexistros de apps",
|
||||
"logs_service": "Rexistros de servizos",
|
||||
"logs_access": "Lista de accesos e vetos",
|
||||
"logs_system": "Rexistros do kernel e outros eventos de baixo nivel",
|
||||
"logs_package": "Historial da xestión de paquetes Debian",
|
||||
"logs_history": "Historial de comandos executados no sistema",
|
||||
"logs_operation": "Operacións feitas no sistema con YunoHost",
|
||||
"logs_suboperations": "Sub-operacións",
|
||||
"logs": "Rexistros",
|
||||
"placeholder": {
|
||||
"domain": "o-meu-dominio.com",
|
||||
"groupname": "Nome do grupo",
|
||||
"lastname": "Louro",
|
||||
"firstname": "Pepa",
|
||||
"username": "pepalouro",
|
||||
"file": "Navega ata o ficheiro ou arrastra e sóltao",
|
||||
"fullname": "Pepa Louro"
|
||||
},
|
||||
"perform": "Realizar",
|
||||
"path": "Ruta",
|
||||
"password_confirmation": "Confirmación do contrasinal",
|
||||
"operation_failed_explanation": "A operación fallou! Lamentámolo :( Podes intentar <a href='https://yunohost.org/help'>pedir axuda</a>. Proporciona o *rexistro completo* da operación ás persoas que che axuden. Podes facelo premendo no botón verde 'Compartir con Yunopaste'. Ao compartir o rexistro, YunoHost intentará de xeito automático eliminar e anonimizar datos privados como nomes de dominio e IPs.",
|
||||
"others": "Outras",
|
||||
"orphaned_details": "Esta app non ten mantemento desde hai tempo. Aínda podería funcionar, pero non recibirá melloras ata que algunha persoa voluntaria se ocupe dela. Anímate a colaborar e revivila!",
|
||||
"system_packages_nothing": "Tódolos paquetes do sistema están ao día!",
|
||||
"system_apps_nothing": "Tódalas apps están ao día!",
|
||||
"system": "Sistema",
|
||||
"stop": "Deter",
|
||||
"status": "Estado",
|
||||
"start": "Iniciar",
|
||||
"skip": "Omitir",
|
||||
"since": "desde",
|
||||
"size": "Tamaño",
|
||||
"set_default": "Establecer por defecto",
|
||||
"services": "Servizos",
|
||||
"service_start_on_boot": "Executar no inicio",
|
||||
"select_none": "Seleccionar ningún",
|
||||
"select_all": "Seleccionar todo",
|
||||
"search": {
|
||||
"not_found": "Hai {items} que cumpren o criterio. | Hai 1 {items} que cumpre o teu criterio. | Hai {items} que cumpren o teu criterio.",
|
||||
"for": "Buscar {items}…"
|
||||
},
|
||||
"save": "Gardar",
|
||||
"running": "Executando",
|
||||
"run": "Executar",
|
||||
"human_routes": {
|
||||
"users": {
|
||||
"update": "Actualizar usuaria '{name}'",
|
||||
"delete": "Eliminar usuaria '{name}'",
|
||||
"create": "Crear usuaria '{name}'"
|
||||
},
|
||||
"upgrade": {
|
||||
"app": "Actualizar a app '{app}'",
|
||||
"apps": "Actualizar tódalas apps",
|
||||
"system": "Actualizar o sistema"
|
||||
},
|
||||
"update": "Comprobar actualizacións",
|
||||
"shutdown": "Apagar o servidor",
|
||||
"share_logs": "Crear ligazón para o rexistro '{name}'",
|
||||
"services": {
|
||||
"stop": "Deter o servizo '{name}'",
|
||||
"start": "Iniciar o servizo '{name}'",
|
||||
"restart": "Reiniciar o servizo '{name}'"
|
||||
},
|
||||
"reboot": "Reiniciar o servidor",
|
||||
"postinstall": "Executar a post-instalación",
|
||||
"permissions": {
|
||||
"remove": "Retirarlle a '{name}' o acceso a '{perm}'",
|
||||
"add": "Permitirlle a '{name}' acceso a '{perm}'"
|
||||
},
|
||||
"migrations": {
|
||||
"skip": "Omitir migracións",
|
||||
"run": "Realizar migracións"
|
||||
},
|
||||
"groups": {
|
||||
"remove": "Retirar a '{user}' do grupo '{name}'",
|
||||
"add": "Engadir '{user}' ao grupo '{name}'",
|
||||
"delete": "Eliminar grupo '{name}'",
|
||||
"create": "Crear grupo '{name}'"
|
||||
},
|
||||
"firewall": {
|
||||
"upnp": "{action} UPnP",
|
||||
"ports": "{action} porto {port} ({protocol}, {connection})"
|
||||
},
|
||||
"domains": {
|
||||
"set_default": "Establecer '{name}' como dominio por defecto",
|
||||
"delete": "Eliminar dominio '{name}'",
|
||||
"add": "Engadir dominio '{name}'",
|
||||
"push_dns_changes": "Subir rexistros DNS á rexistradora para '{name}'",
|
||||
"update_config": "Actualizar panel '{id}' da configuración de '{name}'",
|
||||
"cert_install": "Instalar certificado para '{name}'",
|
||||
"cert_renew": "Anovar certificado para '{name}'"
|
||||
},
|
||||
"diagnosis": {
|
||||
"unignore": {
|
||||
"warning": "Non ignorar aviso",
|
||||
"error": "Non ignorar erro"
|
||||
},
|
||||
"run_specific": "Realizar diagnóstico '{description}'",
|
||||
"run": "Realizar diagnóstico",
|
||||
"ignore": {
|
||||
"warning": "Ignorar un aviso",
|
||||
"error": "Ignorar un erro"
|
||||
}
|
||||
},
|
||||
"backups": {
|
||||
"restore": "Restaurar copia de apoio '{name}'",
|
||||
"delete": "Eliminar copia de apoio '{name}'",
|
||||
"create": "Crear copia de apoio"
|
||||
},
|
||||
"apps": {
|
||||
"update_config": "Actualizar panel '{id}' da configuración da app '{name}'",
|
||||
"uninstall": "Desinstalar app '{name}'",
|
||||
"set_default": "Redirixir raiz do dominio '{domain}' a '{name}'",
|
||||
"install": "Intalar app '{name}'",
|
||||
"change_url": "Cambiar URL de acceso a '{name}'",
|
||||
"change_label": "Cambiar etiqueta de '{prevName}' a '{nextName}'",
|
||||
"action_config": "Executar a acción '{action}' da configuración da app '{name}'",
|
||||
"dismiss_notification": "Desbotar a notificación de '{name}'"
|
||||
},
|
||||
"reconnecting": "Reconectando",
|
||||
"settings": {
|
||||
"update": "Actualizar axustes xerais '{panel}'"
|
||||
}
|
||||
},
|
||||
"restart": "Reiniciar",
|
||||
"restore": "Restaurar",
|
||||
"rerun_diagnosis": "Volver a executar diagnóstico",
|
||||
"readme": "Información",
|
||||
"protocol": "Protocolo",
|
||||
"previous": "Anterior",
|
||||
"postinstall_set_domain": "Establecer nome de dominio principal",
|
||||
"postinstall_intro_3": "Podes ler máis información se visitas a <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>páxina coa documentación relativa</a>",
|
||||
"postinstall_intro_2": "Requírense un par de pasos máis para activar os servizos do teu servidor.",
|
||||
"postinstall_intro_1": "Parabéns! YunoHost instalouse correctamente.",
|
||||
"postinstall_domain": "Este é o primeiro nome de dominio ligado ao teu servidor YunoHost, pero tamén o que utilizarán as usuarias para acceder ao portal de autenticación. Por isto, será visible para todo o mundo, así que elíxeo con coidado.",
|
||||
"postinstall": {
|
||||
"force": "Forzar a post-instalación",
|
||||
"title": "Postinstall",
|
||||
"user": {
|
||||
"title": "Crea a primeira usuaria administradora",
|
||||
"first_user_help": "Esta usuaria vai ter privilexios de administración e poderá conectarse á interface de administración así como ter acceso directo ao servidor a través de SSH. \nComo é unha usuaria normal, poderá tamén acceder a través do portal de usuaria (SSO) coas súas credenciais. \nUnha vez a instalación esté completada, poderás crear outras usuarias administradoras engadíndoas ao grupo 'admins'."
|
||||
}
|
||||
},
|
||||
"ports": "Portos",
|
||||
"port": "Porto",
|
||||
"permission_main": "Etiqueta principal",
|
||||
"permission_corresponding_url": "URL correspondente",
|
||||
"pending_migrations": "Hai algunha migración pendente agardando executarse. Vai a <a href='#/tools/migrations'>Ferramentas > Migracións</a> para realizalas.",
|
||||
"logs_more": "Mostrar máis liñas",
|
||||
"user_fullname": "Nome completo",
|
||||
"user_emailforward_add": "Engadir un reenvío de correo",
|
||||
"user_emailforward": "Reenvío de correo",
|
||||
"user_emailaliases_add": "Engadir un alias de email",
|
||||
"user_emailaliases": "Alias de email",
|
||||
"user_email": "Email",
|
||||
"url": "URL",
|
||||
"upnp_enabled": "UPnP activado.",
|
||||
"upnp_disabled": "UPnP desactivado.",
|
||||
"upnp": "UPnP",
|
||||
"unknown": "Descoñecido",
|
||||
"uninstall": "Desinstalar",
|
||||
"unignore": "Non ignorar",
|
||||
"unauthorized": "Sen autorización",
|
||||
"udp": "UDP",
|
||||
"traceback": "Trazas",
|
||||
"tools_webadmin_settings": "Axustes Web-admin",
|
||||
"tools_webadmin": {
|
||||
"transitions": "Animacións de transición de páxinas",
|
||||
"experimental_description": "Dache acceso a ferramentas experimentais. Considéranse inestables e poderían estragar o teu sistema. <br> Activa isto só se sabes o que estás a facer.",
|
||||
"experimental": "Modo experimental",
|
||||
"cache_description": "Considera desactivar a caché se pretendes traballar a través da CLI e ao mesmo tempo usar esta web-admin.",
|
||||
"cache": "Caché",
|
||||
"fallback_language_description": "Idioma que se utilizará en caso de que a tradución non esté dispoñible no idioma principal.",
|
||||
"fallback_language": "Idioma de apoio",
|
||||
"language": "Idioma",
|
||||
"theme": "Activar modo escuro"
|
||||
},
|
||||
"tools_shutdown_reboot": "Apagar/Reiniciar",
|
||||
"tools_shutdown_btn": "Apagar",
|
||||
"tools_shutdown": "Apagando o servidor",
|
||||
"tools_reboot_btn": "Reiniciar",
|
||||
"tools_reboot": "Reinicia o servidor",
|
||||
"tools": "Ferramentas",
|
||||
"tip_about_user_email": "As usuarias créanse cun enderezo de email asociado (e conta XMPP) co formato usuaria@dominio.tld. Alias de email adicionais e reenvíos de email pódense engadir posteriormente por parte da administración e a usuaria.",
|
||||
"tcp": "TCP",
|
||||
"system_upgrade_all_packages_btn": "Actualizar tódolos paquetes",
|
||||
"system_upgrade_all_applications_btn": "Actualizar tódalas aplicacións",
|
||||
"system_upgrade_btn": "Actualizar",
|
||||
"system_update": "Actualización do sistema",
|
||||
"purge_user_data_warning": "A eliminación dos datos da usuaria non é reversible. Ten a certeza de que sabes o que estás a facer!",
|
||||
"purge_user_data_checkbox": "Purgar os datos de {name}? (Esto vai eliminar o contido do seu /home e directorio de email.)",
|
||||
"certificate": "Certificado",
|
||||
"certificate_manage": "Xestionar certificado SSL",
|
||||
"yes": "Si",
|
||||
"words": {
|
||||
"default": "Por defecto",
|
||||
"collapse": "Pechar",
|
||||
"browse": "Navegar",
|
||||
"link": "Ligazón",
|
||||
"none": "Ningún",
|
||||
"separator": ", ",
|
||||
"valid": "Válido"
|
||||
},
|
||||
"warnings": "{count} avisos",
|
||||
"version": "Versión",
|
||||
"users_no": "Sen usuarias.",
|
||||
"users_new": "Nova usuaria",
|
||||
"users": "Usuarias",
|
||||
"user_username_edit": "Editar a conta de {name}",
|
||||
"user_username": "Identificador",
|
||||
"user_new_forward": "novoreenvio@omeudominoexterno.org",
|
||||
"user_mailbox_use": "Espazo de correo utilizado",
|
||||
"user_mailbox_quota": "Cota de correo",
|
||||
"user_interface_link": "Interface de usuaria",
|
||||
"users_import": "Importar usuarias",
|
||||
"users_export": "Exportar usuarias",
|
||||
"users_import_csv_file": "Ficheiro CSV",
|
||||
"users_import_update": "Actualizar usuarias existentes",
|
||||
"users_import_delete": "Eliminar usuarias fóra da lista",
|
||||
"users_import_csv_file_desc": "O ficheiro CSV ten que usar UTF-8 coas columnas nome de usuaria, contrasinal, grupos, email e cota. A xeito de exemplo de importación CSV, podes <a href='/yunohost/api/users/export' target='_BLANK'>exportar as túas usuarias a un ficheiro CSV</a> e edita o ficheiro.",
|
||||
"users_import_update_desc": "Se está marcado, tódalas usuarias existentes contidas no ficheiro CSV vanse actualizar co novo valor",
|
||||
"users_import_delete_desc": "Se está marcado, tódalas usuarias existentes que non están no ficheiro CSV van ser borradas (e eliminadas).",
|
||||
"users_import_confirm_destructive": "Tes a certeza de querer eliminar as usuarias que non están presentes neste ficheiro?",
|
||||
"users_import_delete_others": "Eliminar usuarias de fóra da lista",
|
||||
"yunohost_admin": "Admin YunoHost",
|
||||
"domain": {
|
||||
"config": {
|
||||
"edit": "Editar configuración do dominio",
|
||||
"title": "Configuración do dominio"
|
||||
},
|
||||
"dns": {
|
||||
"auto_config": "Configuración automática dos rexistros DNS",
|
||||
"auto_config_ignored": "ignorado, YunoHost non o cambiará a menos que marques a opción de sobrescritura",
|
||||
"auto_config_ok": "A configuración automática semella correcta!",
|
||||
"auto_config_zone": "Zona DNS actual",
|
||||
"edit": "Editar configuración DNS",
|
||||
"info": "A configuración automática dos rexistros DNS é unha ferramenta experimental. <br>Considera gardar a configuración actual na interface da empresa rexistradora antes de realizar cambios desde aquí.",
|
||||
"manual_config": "Rexistros DNS suxeridos para configuración manual",
|
||||
"push": "Enviar rexistros DNS á rexistradora",
|
||||
"push_force": "Sobrescribir rexistros existentes",
|
||||
"push_force_warning": "Semella que algúns rexistros DNS que YunoHost querería configurar xa están establecidos na configuración. Podes usar a sobrescritura se sabes o que estás a facer.",
|
||||
"push_force_confirm": "Tes a certeza de querer forzar a sobrescritura dos rexistros suxeridos? Ten en conta que poderías sobrescribir rexistros por defecto ou manuais establecidos na rexistradora.",
|
||||
"methods": {
|
||||
"auto": "Automático",
|
||||
"handled_in_parent": "Xestionado polo dominio nai",
|
||||
"manual": "Manual",
|
||||
"none": "Ningún",
|
||||
"semi_auto": "Semi-automático"
|
||||
}
|
||||
},
|
||||
"cert": {
|
||||
"types": {
|
||||
"selfsigned": "Auto-asinado",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"other": "Outro/Descoñecido"
|
||||
},
|
||||
"valid_for": "válido por {days}"
|
||||
},
|
||||
"info": {
|
||||
"apps_on_domain": "Apps instaladas no dominio",
|
||||
"certificate_authority": "Autoridade certificadora SSL",
|
||||
"registrar": "Rexistradora",
|
||||
"dyn_dns_remove_and_unsubscribe": "Tamén cancelar o rexistro do dominio no servizo DynDNS de YunoHost"
|
||||
},
|
||||
"see_parent_domain": "Ver dominio nai",
|
||||
"types": {
|
||||
"main_domain": "Dominio principal"
|
||||
},
|
||||
"toggle_subdomains": "Activar subdominios",
|
||||
"explain": {
|
||||
"main_domain": "O dominio principal é o dominio onde está o portal de acceso para as usuarias (vía \"{domain}/yunohost/sso\"). <br>Por tanto, non é posible eliminalo.<br>Se queres eliminar \"{domain}\", primeiro tes que escoller ou engadir outro dominio e establecelo como dominio principal."
|
||||
},
|
||||
"add": {
|
||||
"from_registrar_desc": "Deberás configurar manualmente os rexistros DNS na empresa rexistradora para finalizar a configuración do dominio. O sistema de diagnóstico de YNH dirache exactamente os rexistros DNS que debes configurar.",
|
||||
"from_yunohost_desc": "O proxecto YunoHost mantén un servizo gratuíto 'DynDNS'. Está limitado a un dominio por servidor (mais podes engadir subdominios usando a opción 'Engadir un dominio que posúo, ou un subdominio'). A configuración DNS vai ser xestionada automáticamente por YunoHost. Normalmente isto é o ideal para comezar a usar a auto-hospedaxe se aínda non queres mercar un dominio propio. Porén, a medio/longo prazo, recomendámosche usar o teu propio dominio para ter completo control sobre o dominio utilizado.",
|
||||
"dyn_dns_password": "Contrasinal de recuperación do dominio",
|
||||
"dyn_dns_password_desc": "Este contrasinal permitirache recuperar o control sobre o dominio se reinstalas o sistema. Se xa rexistraches con anterioridade o dominio, usa aquí o contrasinal de recuperación para reclamalo.",
|
||||
"from_local": "Quero un dominio só para uso local ou probas",
|
||||
"from_local_desc": "Se non precisas un nome de dominio público \"real\", podes usar calquera dominio que remate en <code>.local</code> ou <code>.test</code>. Os nomes de dominio <code>.local</code> son especiais no senso de que se resolven de xeito automático na rede local, se asumimos que os clientes teñen soporte para o protocolo Bonjour. Alternativamente, poderías precisar editar o ficheiro <code>/etc/hosts</code> (ou o equivalente en windows) en cada cliente que queira conectarse ao dominio, ou configurar as entradas do DNS local no teu rúter de internet.",
|
||||
"from_registrar": "Quero engadir un dominio, ou subdominio, que xa posúo",
|
||||
"from_yunohost": "Non teño un dominio, quero rexistrar/usar un dominio DynDNS de balde proporcionado por YunoHost"
|
||||
}
|
||||
},
|
||||
"domain_dns_push_managed_in_parent_domain": "A ferramenta para os rexistros DNS automáticos están xestionados polo dominio nai <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
|
||||
"domain_dns_push_failed_to_authenticate": "Fallou a autenticación na API da empresa rexistradora. Serán incorrectas as <a href='#/domains/{domain}/config'>credenciais</a>? (Erro: {error})",
|
||||
"domain_dns_push_not_applicable": "A ferramenta para rexistro automático DNS non é de aplicación ao dominio {domain}, <br> Deberías configurar manualmente os teus rexistros DNS seguindo a <a href='https://yunohost.org/dns'>documentación</a> e a configuración inferior suxerida.",
|
||||
"text_selection_is_disabled": "A selección de texto está desactivada. Se queres compartir este rexistro, comparte o rexistro *completo* co botón 'Compartir con YunoHost'. <br/><small>Ou se realmente queres seleccionar un texto, preme estas teclas: ↓↓↑↑.</small>",
|
||||
"retry": "Reintentar",
|
||||
"app_state_broken": "estragado",
|
||||
"app_state_broken_explanation": "Actualmente esta aplicación está estragada e non é instalable según o test automático que fai YunoHost",
|
||||
"details_about": "Mostrar máis detalles sobre {subject}",
|
||||
"group_admins": "Admins",
|
||||
"group_explain_admins": "Este é un grupo especial para as usuarias administradoras. As usuarias deste grupo poden acceder á web de administración de YunoHost, conectarse ao servidor por SSH e usar o comando `sudo`. Tamén recibirán os emails enviados a root@, admin@ e admins@, por exemplo as notificacións do diagnóstico. Só deberías engadir a persoas nas que confías totalmente!",
|
||||
"label_for_manifestname_help": "Este é o nome mostrado no portal da usuaria. Pódese cambiar despois.",
|
||||
"manage_groups": "Xestionar grupos",
|
||||
"tools_yunohost_settings": "Axustes YunoHost",
|
||||
"wrong_password_or_username": "Credenciais incorrectas",
|
||||
"confirm_install_app_broken": "AVISO! Esta aplicación está estragada se atendemos ao test automático que fai YunoHost e pode estragar o teu sistema! Probablemente NON debas instalala a menos que saibas o que estás a facer. Queres asumir o risco?",
|
||||
"important_yunohost_upgrade": "Está dispoñible unha actualización principal de YunoHost. É totalmente recomendable ler con atención no foro as notas de publicación antes de actualizar: <a href='https://forum.yunohost.org/tag/ynh_release'>Le as notas de publicación no foro</a>",
|
||||
"app": {
|
||||
"installed_version": "Versión instalada:",
|
||||
"open_this_app": "Abrir esta app",
|
||||
"antifeatures": "Esta app ten características que poderían non gustarche:",
|
||||
"doc": {
|
||||
"about": {
|
||||
"title": "Acerca de",
|
||||
"description": "Descrición"
|
||||
},
|
||||
"admin": {
|
||||
"title": "Doc Admin"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Notificacións",
|
||||
"post_upgrade": "Notas post actualización",
|
||||
"post_install": "Notas post instalación",
|
||||
"understood": "Entendo"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"forum": "Busca ou pregunta no foro!",
|
||||
"problem": "Tes un problema con esta app?",
|
||||
"config_panel_error_please_report": "Por favor informa a YunoHost acerca deste erro para poder solucionalo!",
|
||||
"config_panel_error": "Un erro fai que non se poida mostrar o panel de configuración:"
|
||||
},
|
||||
"install": {
|
||||
"license": "Licenza: {license}",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"title": "Notificacións post instalación para '{name}'",
|
||||
"alert": "Semella que a instalación foi correcta!\n Aquí tes información que as desenvolvedoras consideran debes coñecer.\nPodes lela cando queiras na páxina de info da app."
|
||||
},
|
||||
"pre": {
|
||||
"warning": "Debes saber antes de instalar",
|
||||
"danger": "A instalación da aplicación probablemente produza problemas",
|
||||
"critical": "A aplicación non pode ser instalada"
|
||||
}
|
||||
},
|
||||
"problems": {
|
||||
"arch": "Esta app só se pode instalar en determinadas architecturas ({required}) pero a do teu servidor é {current}.",
|
||||
"broken": "Esta aplicación está estragada segundo os test automáticos de YunoHost e probablemente estrague o teu sistema! Probablemente NON deberías instalala a menos saibas o que estás a facer.",
|
||||
"thirdparty": "Esta aplicación non forma parte do catálogo oficial de YunoHost, ao instalar aplicacións de terceiras partes poderías estar comprometendo a integridade e seguridade do teu sistema. Non deberías facelo a menos que saibas o que estás facendo.",
|
||||
"ignore": "Entendo que esta instalación podería estragar o meu sistema, pero quero facela igualmente.",
|
||||
"inprogress": "Esta aplicación é aínda experimental (e pode que nin funcione) e é probable que estrague o teu sistema! Probablemente NON deberías instalala a menos que saibas o que estás a facer.",
|
||||
"install": "Xa está instalada e non pode instalarse máis dunha vez.",
|
||||
"lowquality": "Esta aplicación podería funcionar pero non ten integración completa en YunoHost. Algunhas características como o acceso unificado e copias de apoio poderían non estar dispoñibles, ou pode que non respecte as boas prácticas de empaquetamento.",
|
||||
"ram": "Esta aplicación precisa {required} de RAM para instalar/actualizar pero só hai dispoñibles {current}. Incluso se a app funcionase, o proceso de instalación require moita RAM e o servidor podería fallar.",
|
||||
"version": "Esta aplicación require YunoHost >= {required} pero a versión actual instalada é {current}, considera actualizar primeiro YunoHost."
|
||||
},
|
||||
"try_demo": "Proba a demo",
|
||||
"version": "Versión actual: {version}"
|
||||
},
|
||||
"integration": {
|
||||
"archs": "Arquitecturas soportadas:",
|
||||
"ldap": {
|
||||
"false": "Non usa as contas de YunoHost para o acceso (LDAP)",
|
||||
"true": "Usa as contas de YunoHost para o acceso (LDAP)",
|
||||
"?": "Non hai información sobre a integración LDAP"
|
||||
},
|
||||
"multi_instance": {
|
||||
"false": "Só permite unha única instalación",
|
||||
"true": "Permite varias instalacións"
|
||||
},
|
||||
"resources": "Uso de recursos habitual: {ram} RAM, {disk} disco",
|
||||
"sso": {
|
||||
"false": "Non dispoñible o acceso unificado (SSO)",
|
||||
"true": "Dispoñible o acceso unificado (SSO)",
|
||||
"?": "Non hai información sobre a integración SSO"
|
||||
},
|
||||
"title": "Integración con YunoHost"
|
||||
},
|
||||
"links": {
|
||||
"admindoc": "Documentación oficial de Admin",
|
||||
"code": "Repositorio oficial do código",
|
||||
"forum": "Temas acerca desta app no foro YunoHost",
|
||||
"package": "Repositorio do paquete YunoHost",
|
||||
"title": "Ligazóns",
|
||||
"userdoc": "Documentación oficial para usuarias",
|
||||
"website": "Sitio Web Oficial",
|
||||
"license": "Licenza da app",
|
||||
"package_license": "Licenza do paquete YunoHost"
|
||||
},
|
||||
"potential_alternative_to": "Alternativa potencial para:",
|
||||
"upgrade": {
|
||||
"confirm": {
|
||||
"apps": "Apps que van ser actualizadas",
|
||||
"title": "Confirmar actualización das apps"
|
||||
},
|
||||
"continue": "Continuar coa seguinte app",
|
||||
"notifs": {
|
||||
"pre": {
|
||||
"alert": "Deberías ler as notificacións antes de actualizar, podería haber información que debas coñecer.",
|
||||
"title": "Ten coidado!"
|
||||
},
|
||||
"post": {
|
||||
"alert": "Semella que todo foi ben!\n Esta é unha información acerca da actualización que as desenvolvedoras cren que debes coñecer.\nPodes lela cando queiras na páxina de información da app.",
|
||||
"title": "Notificacións post-actualización para '{name}'"
|
||||
}
|
||||
},
|
||||
"stop": "Cancelar as actualizacións da app seguinte"
|
||||
},
|
||||
"uninstall": {
|
||||
"purge_desc": "Eliminar o directorio de datos asociados a esta app (normalmente son datos que ti subiches ao usar a app)."
|
||||
}
|
||||
}
|
||||
}
|
3
app/src/i18n/locales/he.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"action": "פעולה"
|
||||
}
|
16
app/src/i18n/locales/hi.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"password": "पासवर्ड",
|
||||
"action": "कार्रवाई",
|
||||
"add": "जोड़े।",
|
||||
"administration_password": "एडमिनिस्ट्रेटर का पासवर्ड।",
|
||||
"ok": "ठीक है",
|
||||
"address": {
|
||||
"local_part_description": {
|
||||
"domain": "एक उपडोमेन चुनें"
|
||||
},
|
||||
"domain_description": {
|
||||
"email": "अपने ईमेल के लिए एक डोमेन चुनें।",
|
||||
"domain": "एक डोमेन चुनें"
|
||||
}
|
||||
}
|
||||
}
|
4
app/src/i18n/locales/hu.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"password": "Jelszó",
|
||||
"ok": "Rendben"
|
||||
}
|
695
app/src/i18n/locales/id.json
Normal file
|
@ -0,0 +1,695 @@
|
|||
{
|
||||
"add": "Tambah",
|
||||
"address": {
|
||||
"domain_description": {
|
||||
"email": "Pilih domain untuk surel Anda.",
|
||||
"domain": "Pilih domain."
|
||||
},
|
||||
"local_part_description": {
|
||||
"domain": "Pilih subdomain.",
|
||||
"email": "Pilih bagian lokal untuk surel Anda."
|
||||
}
|
||||
},
|
||||
"administration_password": "Kata sandi administrasi",
|
||||
"all": "Semua",
|
||||
"api": {
|
||||
"processing": "Server sedang memproses tindakan…",
|
||||
"query_status": {
|
||||
"error": "Gagal",
|
||||
"pending": "Sedang berjalan",
|
||||
"success": "Berhasil diselesaikan",
|
||||
"warning": "Berhasil diselesaikan disertai dengan galat atau peringatan"
|
||||
},
|
||||
"reconnecting": {
|
||||
"reason": {
|
||||
"reboot": "Server Anda sedang dimulai ulang dan tidak akan bisa dicapai selama beberapa saat. Layar masuk akan tersedia setelah server Anda bisa dicapai.",
|
||||
"shutdown": "Server Anda telah dimatikan dan tidak lagi dapat dicapai. Nyalakan kembali dan layar masuk akan tersedia setelah server Anda bisa dicapai.",
|
||||
"upgrade_system": "Koneksi dengan server telah ditutup untuk pemutakhiran YunoHost. Menunggu server sampai bisa dipergunakan lagi…",
|
||||
"unknown": "Koneksi dengan server telah ditutup dengan alasan yang tidak diketahui."
|
||||
},
|
||||
"title": "Mencoba menghubungi server…",
|
||||
"failed": "Sepertinya peladen tidak merespons. Anda bisa coba memuat ulang atau coba jalankan `systemctl restart yunohost-api` via SSH.",
|
||||
"success": "Sekarang server bisa dipergunakan! Anda bisa mencoba untuk masuk"
|
||||
},
|
||||
"partial_logs": "[…] (periksa semua log di dalam riwayat)"
|
||||
},
|
||||
"api_error": {
|
||||
"server_said": "Ketika memproses tindakan tersebut server mengatakan:",
|
||||
"sorry": "Mohon maaf mengenai hal tersebut.",
|
||||
"info": "Informasi berikut mungkin bisa berguna untuk orang yang akan membantu Anda:",
|
||||
"error_message": "Pesan galat:",
|
||||
"help": "Anda bisa mencari bantuan di <a href=\"https://forum.yunohost.org/\">forum</a> atau <a href=\"https://chat.yunohost.org/\">obrolan</a> agar bisa memperbaiki keadaan, atau laporkan bug di <a href=\"https://github.com/YunoHost/issues\">bugtracker</a>.",
|
||||
"view_error": "Lihat galat"
|
||||
},
|
||||
"api_errors_titles": {
|
||||
"APINotRespondingError": "API YunoHost tidak merespons",
|
||||
"APIError": "YunoHost mengalami galat tak terduga",
|
||||
"APIBadRequestError": "YunoHost mengalami sebuah galat",
|
||||
"APIInternalError": "YunoHost mengalami sebuah galat internal",
|
||||
"APIConnexionError": "YunoHost mengalami galat pada koneksi",
|
||||
"APINotFoundError": "API YunoHost tidak dapat menemukan rutenya"
|
||||
},
|
||||
"all_apps": "Semua aplikasi",
|
||||
"api_waiting": "Menunggu respons peladen…",
|
||||
"app_choose_category": "Pilih sebuah kategori",
|
||||
"app_info_access_desc": "Kelompok/pengguna yang diizinkan mengakses aplikasi ini:",
|
||||
"app_info_change_url_disabled_tooltip": "Fitur ini belum diimplementasikan pada aplikasi ini",
|
||||
"app_info_uninstall_desc": "Hapus aplikasi ini.",
|
||||
"app_install_custom_no_manifest": "Tidak ada berkas manifest.json",
|
||||
"app_install_parameters": "Pengaturan pemasangan",
|
||||
"app_show_categories": "Tampilkan kategori",
|
||||
"app_state_lowquality": "kualitas rendah",
|
||||
"app_state_highquality_explanation": "Aplikasi ini terintegrasi dengan YunoHost dengan baik selama sekurang-kurangnya satu tahun.",
|
||||
"applications": "Aplikasi",
|
||||
"backup": "Pencadangan",
|
||||
"backup_action": "Cadangkan",
|
||||
"backup_new": "Cadangan baru",
|
||||
"begin": "Mulai",
|
||||
"both": "Keduanya",
|
||||
"cancel": "Batal",
|
||||
"catalog": "Katalog",
|
||||
"close": "Tutup",
|
||||
"code": "Kode",
|
||||
"common": {
|
||||
"firstname": "Nama depan",
|
||||
"lastname": "Nama belakang"
|
||||
},
|
||||
"configuration": "Konfigurasi",
|
||||
"confirm_change_maindomain": "Apakah Anda yakin ingin mengubah domain utama?",
|
||||
"confirm_delete": "Apakah Anda yakin ingin menghapus {name}?",
|
||||
"confirm_install_custom_app": "PERINGATAN! Memasang aplikasi pihak ketiga dapat membahayakan integritas serta keamanan sistem Anda. Anda sebaiknya TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan. Apakah Anda ingin menerima risiko tersebut?",
|
||||
"confirm_app_install": "Apakah Anda yakin ingin memasang aplikasi ini?",
|
||||
"confirm_service_restart": "Apakah Anda yakin ingin memulai-ulang {name}?",
|
||||
"confirm_service_start": "Apakah Anda yakin ingin memulai {name}?",
|
||||
"confirm_service_stop": "Apakah Anda yakin ingin menghentikan {name}?",
|
||||
"confirm_update_apps": "Apakah Anda yakin ingin memperbarui semua aplikasi?",
|
||||
"confirm_update_specific_app": "Apakah Anda yakin ingin memperbarui {app}?",
|
||||
"confirm_upnp_enable": "Apakah Anda yakin ingin mengaktifkan UPnP?",
|
||||
"confirm_upnp_disable": "Apakah Anda yakin ingin menonaktifkan UPnP?",
|
||||
"confirm_reboot_action_reboot": "Apakah Anda yakin ingin memulai ulang peladen Anda?",
|
||||
"confirm_reboot_action_shutdown": "Apakah Anda yakin ingin mematikan peladen Anda?",
|
||||
"created_at": "Dibuat pada",
|
||||
"day_validity": " Kedaluwarsa | 1 hari | {count} hari",
|
||||
"dead": "Nonaktif",
|
||||
"delete": "Hapus",
|
||||
"description": "Deskripsi",
|
||||
"details": "Keterangan",
|
||||
"diagnosis": "Diagnosis",
|
||||
"disable": "Nonaktifkan",
|
||||
"disabled": "Dinonaktifkan",
|
||||
"dns": "DNS",
|
||||
"domain_add": "Tambahkan domain",
|
||||
"domain_delete_longdesc": "Hapus domain ini",
|
||||
"download": "Unduh",
|
||||
"enable": "Aktifkan",
|
||||
"enabled": "Diaktifkan",
|
||||
"error": "Galat",
|
||||
"since": "sejak",
|
||||
"skip": "Lewati",
|
||||
"start": "Mulai",
|
||||
"status": "Status",
|
||||
"password": "Kata sandi",
|
||||
"human_routes": {
|
||||
"upgrade": {
|
||||
"system": "Perbarui sistem",
|
||||
"apps": "Perbarui semua aplikasi",
|
||||
"app": "Perbarui aplikasi '{app}'"
|
||||
},
|
||||
"reboot": "Mulai ulang peladen",
|
||||
"services": {
|
||||
"restart": "Mulai ulang layanan '{name}'",
|
||||
"start": "Jalankan layanan '{name}'",
|
||||
"stop": "Hentikan layanan '{name}'"
|
||||
},
|
||||
"users": {
|
||||
"create": "Buat pengguna '{name}'",
|
||||
"delete": "Hapus pengguna '{name}'",
|
||||
"update": "Perbarui pengguna '{name}'"
|
||||
},
|
||||
"shutdown": "Matikan peladen",
|
||||
"update": "Periksa pembaruan",
|
||||
"diagnosis": {
|
||||
"run_specific": "Jalankan diagnosis '{description}'",
|
||||
"run": "Jalankan diagnosis",
|
||||
"ignore": {
|
||||
"warning": "Abaikan peringatan",
|
||||
"error": "Abaikan galat"
|
||||
},
|
||||
"unignore": {
|
||||
"error": "Batal abaikan galat",
|
||||
"warning": "Batal abaikan peringatan"
|
||||
}
|
||||
},
|
||||
"apps": {
|
||||
"install": "Pasang aplikasi '{name}'",
|
||||
"uninstall": "Lepas aplikasi '{name}'",
|
||||
"change_url": "Ubah URL akses dari '{name}'",
|
||||
"set_default": "Mengalihkan pangkal domain '{domain}' ke '{name}'",
|
||||
"change_label": "Ubah label '{prevName}' menjadi '{nextName}'",
|
||||
"dismiss_notification": "Abaikan pemberitahuan untuk '{name}'",
|
||||
"action_config": "Jalankan tindakan '{action}' dari konfigurasi aplikasi '{name}'",
|
||||
"update_config": "Perbarui panel '{id}' dari konfigurasi aplikasi '{name}'"
|
||||
},
|
||||
"domains": {
|
||||
"add": "Tambahkan domain '{name}'",
|
||||
"delete": "Hapus domain '{name}'",
|
||||
"cert_install": "Pasang sertifikat untuk '{name}'",
|
||||
"cert_renew": "Perbarui sertifikat untuk '{name}'",
|
||||
"set_default": "Atur '{name}' sebagai domain utama",
|
||||
"push_dns_changes": "Kirim rekaman DNS ke registrar untuk '{name}'",
|
||||
"update_config": "Perbarui panel '{id}' dari konfigurasi domain '{name}'"
|
||||
},
|
||||
"backups": {
|
||||
"delete": "Hapus cadangan '{name}'",
|
||||
"restore": "Pulihkan cadangan '{name}'",
|
||||
"create": "Buat cadangan"
|
||||
},
|
||||
"groups": {
|
||||
"create": "Buat kelompok '{name}'",
|
||||
"delete": "Hapus kelompok '{name}'",
|
||||
"add": "Tambahkan pengguna '{user}' ke kelompok '{name}'",
|
||||
"remove": "Hapus pengguna '{user}' dari kelompok '{name}'"
|
||||
},
|
||||
"share_logs": "Buat tautan untuk log '{name}'",
|
||||
"firewall": {
|
||||
"upnp": "{action} UPnP",
|
||||
"ports": "{action} porta {port} ({protocol}, {connection})"
|
||||
},
|
||||
"reconnecting": "Menyambungkan ulang",
|
||||
"permissions": {
|
||||
"remove": "Hapus izin '{name}' untuk mengakses '{perm}'",
|
||||
"add": "Izinkan '{name}' untuk mengakses '{perm}'"
|
||||
},
|
||||
"postinstall": "Jalankan pasca pemasangan",
|
||||
"migrations": {
|
||||
"run": "Jalankan migrasi",
|
||||
"skip": "Lewati migrasi"
|
||||
},
|
||||
"settings": {
|
||||
"update": "Perbarui pengaturan '{panel}' global"
|
||||
}
|
||||
},
|
||||
"save": "Simpan",
|
||||
"search": {
|
||||
"not_found": "Ada {items} yang sesuai dengan kriteria Anda. | Ada 1 {items} yang sesuai kriteria Anda. | Ada {items} yang sesuai kriteria Anda.",
|
||||
"for": "Cari {items}…"
|
||||
},
|
||||
"select_all": "Pilih semua",
|
||||
"stop": "Berhenti",
|
||||
"system": "Sistem",
|
||||
"system_apps_nothing": "Semua aplikasi sudah mutakhir!",
|
||||
"system_upgrade_all_applications_btn": "Perbarui semua aplikasi",
|
||||
"system_upgrade_all_packages_btn": "Perbarui semua paket (package)",
|
||||
"tcp": "TCP",
|
||||
"tools_shutdown": "Matikan peladen Anda",
|
||||
"tools_shutdown_btn": "Matikan",
|
||||
"tools_shutdown_reboot": "Matikan/Mulai Ulang",
|
||||
"tools_webadmin": {
|
||||
"language": "Bahasa",
|
||||
"fallback_language_description": "Bahasa yang akan digunakan jika terjemahan tidak tersedia di bahasa utama.",
|
||||
"cache": "Tembolok",
|
||||
"cache_description": "Pertimbangkan menonaktifkan tembolok jika Anda ingin menggunakan CLI sembari menggunakan administrasi web.",
|
||||
"experimental": "Mode eksperimental",
|
||||
"theme": "Beralih mode gelap",
|
||||
"fallback_language": "Bahasa alternatif",
|
||||
"transitions": "Animasi transisi halaman",
|
||||
"experimental_description": "Memberikan Anda akses ke fitur eksperimental. Ini ditimbang sebagai tidak stabil dan mungkin akan merusak sistem Anda.<br> Aktifkan ini jika Anda tahu apa yang Anda lakukan."
|
||||
},
|
||||
"user_fullname": "Nama lengkap",
|
||||
"users_import_csv_file": "Berkas CSV",
|
||||
"warnings": "{count} peringatan",
|
||||
"certificate_manage": "Kelola sertifikat SSL",
|
||||
"ok": "Oke",
|
||||
"run": "Jalankan",
|
||||
"system_update": "Pembaruan sistem",
|
||||
"system_upgrade_btn": "Perbarui",
|
||||
"tools": "Alat",
|
||||
"tools_reboot": "Mulai ulang peladen Anda",
|
||||
"tools_reboot_btn": "Mulai ulang",
|
||||
"upnp": "UPnP",
|
||||
"upnp_disabled": "UPnP tidak aktif.",
|
||||
"upnp_enabled": "UPnP aktif.",
|
||||
"url": "URL",
|
||||
"user_email": "Surel",
|
||||
"user_interface_link": "Antarmuka pengguna",
|
||||
"users_import_confirm_destructive": "Apakah Anda yakin ingin menghapus pengguna yang tidak ada di dalam berkas ini?",
|
||||
"version": "Versi",
|
||||
"yes": "Ya",
|
||||
"yunohost_admin": "Admin YunoHost",
|
||||
"running": "Berjalan",
|
||||
"service_start_on_boot": "Mulai saat sistem dimulai",
|
||||
"services": "Layanan",
|
||||
"size": "Ukuran",
|
||||
"tools_webadmin_settings": "Pengaturan administrasi web",
|
||||
"udp": "UDP",
|
||||
"unignore": "Jangan diabaikan",
|
||||
"unknown": "Tidak diketahui",
|
||||
"user_username": "Nama pengguna",
|
||||
"user_username_edit": "Sunting akun milik {name}",
|
||||
"users": "Pengguna",
|
||||
"users_new": "Pengguna baru",
|
||||
"users_no": "Tidak ada pengguna.",
|
||||
"certificate": "Sertifikat",
|
||||
"purge_user_data_checkbox": "Bersihkan data milik {name}? (Ini akan menghapus isi direktori home dan mail mereka)",
|
||||
"purge_user_data_warning": "Membersihkan data pengguna tidak dapat dibatalkan. Pastikan Anda yakin dengan perbuatan Anda!",
|
||||
"domain_dns_config": "Konfigurasi DNS",
|
||||
"domain_dns_longdesc": "Lihat konfigurasi DNS",
|
||||
"footer": {
|
||||
"help": "Butuh bantuan?",
|
||||
"donate": "Berdonasi",
|
||||
"documentation": "Dokumentasi"
|
||||
},
|
||||
"form_errors": {
|
||||
"notInUsers": "Pengguna '{value}' sudah ada.",
|
||||
"passwordLenght": "Kata sandi harus memiliki sekurang-kurangnya 8 karakter.",
|
||||
"pattern": "{type}",
|
||||
"remote": "{message}",
|
||||
"passwordMatch": "Kata sandi tidak sama.",
|
||||
"required": "Bidang ini diperlukan.",
|
||||
"appRepoUrl": "URL depot aplikasi YunoHost seharusnya seperti https://domain.tld/jalur/ke/repo_ynh",
|
||||
"invalid_form": "Ada galat di formulir ini.",
|
||||
"maxValue": "Harus sama atau lebih kecil dari {max}.",
|
||||
"alpha": "Harus berupa huruf alfabet saja.",
|
||||
"minValue": "Harus sama atau lebih besar dari {min}.",
|
||||
"name": "Nama tidak diperbolehkan mengandung karakter spesial lain kecuali <code> ,.'-</code>",
|
||||
"number": "Harus berupa angka.",
|
||||
"between": "Harus di antara {min} dan {max}.",
|
||||
"dynDomain": "Nama domain tidak valid: Huruf kecil, angka, dan tanda hubung saja",
|
||||
"domain": "Nama domain tidak valid: Huruf kecil, angka, titik dan tanda hubung saja",
|
||||
"email": "Surel tidak valid: Huruf, angka, dan <code>_.-</code> saja (cth. blabla@contoh.com, b1la-2@contoh.com)",
|
||||
"alphalownumdot_": "Harus hanya berupa karakter alfanumerik kecil dan garis bawah.",
|
||||
"emailForward": "Penerusan surel tidak valid: harus alfanumerik dan hanya karakter <code>_.-+</code> (misal. someone+tag@example.com, s0me-1+tag@example.com)"
|
||||
},
|
||||
"form_input_example": "Contoh: {example}",
|
||||
"group": "Kelompok",
|
||||
"group_name": "Nama kelompok",
|
||||
"group_all_users": "Semua pengguna",
|
||||
"group_visitors": "Pengunjung",
|
||||
"group_add_member": "Tambahkan pengguna",
|
||||
"history": {
|
||||
"is_empty": "Tidak ada apapun di riwayat saat ini.",
|
||||
"last_action": "Tindakan terakhir:",
|
||||
"methods": {
|
||||
"DELETE": "hapus",
|
||||
"GET": "baca",
|
||||
"POST": "buat/eksekusi",
|
||||
"PUT": "modifikasi"
|
||||
},
|
||||
"title": "Riwayat"
|
||||
},
|
||||
"domain": {
|
||||
"config": {
|
||||
"title": "Konfigurasi domain",
|
||||
"edit": "Sunting konfigurasi domain"
|
||||
},
|
||||
"cert": {
|
||||
"types": {
|
||||
"selfsigned": "Disertifikasi sendiri",
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"other": "Lainnya/Tidak diketahui"
|
||||
},
|
||||
"valid_for": "berlaku untuk {days}"
|
||||
},
|
||||
"toggle_subdomains": "Alih subdomain",
|
||||
"types": {
|
||||
"main_domain": "Domain utama"
|
||||
},
|
||||
"dns": {
|
||||
"auto_config_ok": "Konfigurasi otomatis sepertinya oke!",
|
||||
"push_force": "Timpa rekaman yang ada",
|
||||
"auto_config": "Konfigurasi rekaman DNS otomatis",
|
||||
"auto_config_ignored": "diabaikan, tidak akan diubah oleh YunoHost kecuali Anda mencentang opsi timpa",
|
||||
"auto_config_zone": "Zona DNS saat ini",
|
||||
"methods": {
|
||||
"auto": "Otomatis",
|
||||
"handled_in_parent": "Dikelola di domain induk",
|
||||
"manual": "Manual",
|
||||
"none": "Tidak ada",
|
||||
"semi_auto": "Semi-otomatis"
|
||||
},
|
||||
"edit": "Sunting konfigurasi DNS",
|
||||
"manual_config": "DNS yang disarankan untuk konfigurasi manual",
|
||||
"push_force_confirm": "Apakah Anda yakin ingin mengirim paksa semua rekaman DNS ini? Perlu diketahui bahwa itu bisa menimpa konfigurasi rekaman atau rekaman baku yang sudah diatur oleh Anda atau registrar Anda.",
|
||||
"info": "Konfigurasi rekaman DNS otomatis merupakan fitur eksperimental. <br>Disarankan untuk menyimpan zona DNS Anda saat ini dari registrar DNS Anda sebelum mengirim rekaman dari sini.",
|
||||
"push": "Kirim rekaman DNS ke registrar",
|
||||
"push_force_warning": "Sepertinya ada beberapa rekaman DNS yang direkomendasikan YunoHost telah ada di konfigurasi registrar. Anda bisa menggunakan opsi untuk menimpa mereka jika Anda tahu apa yang Anda lakukan."
|
||||
},
|
||||
"info": {
|
||||
"apps_on_domain": "Aplikasi yang dipasang di domain",
|
||||
"registrar": "Registrar",
|
||||
"certificate_authority": "Otoritas Sertifikat SSL",
|
||||
"dyn_dns_remove_and_unsubscribe": "Sekaligus batalkan pendaftaran domain dari layanan DynDNS YunoHost"
|
||||
},
|
||||
"see_parent_domain": "Lihat domain induk",
|
||||
"explain": {
|
||||
"main_domain": "Domain utama adalah domain di mana pengguna terhubung ke portal (via \"{domain}/yunohost/sso\").<br>Karena itu, domain tersebut tidak bisa dihapus.<br>Jika Anda ingin menghapus \"{domain}\", Anda harus mengatur atau menambah domain lain dan menunjuknya menjadi domain utama."
|
||||
},
|
||||
"add": {
|
||||
"dyn_dns_password": "Sandi pemulihan domain",
|
||||
"dyn_dns_password_desc": "Sandi ini memungkinkan anda memulihkan kendali domain apabila nanti anda memasang ulang sistem anda. Jika anda sudah mendaftarkan domain ini sebelumnya, gunakan sandi pemulihan anda di sini untuk mengklaimnya.",
|
||||
"from_local": "Saya ingin satu domain untuk penggunaan / tes lokal saja",
|
||||
"from_registrar": "Saya ingin menambahkan satu domain yang saya miliki, atau satu subdomain",
|
||||
"from_registrar_desc": "Anda perlu mengonfigurasi catatan DNS secara manual pada registrar anda untuk menyelesaikan konfigurasi domain ini. Diagnosa YunoHost akan memandu anda tentang catatan DNS apa yang harus dikonfigurasi secara tepat.",
|
||||
"from_yunohost": "Saya tidak memiliki domain, Saya ingin mendaftar/menggunakan domain DynDNS gratis yang disediakan oleh proyek YunoHost",
|
||||
"from_yunohost_desc": "Proyek YunoHost mempertahankan layanan 'DynDNS' gratis. Ini terbatas pada satu domain per server (meskipun anda juga dapat menambahkan sub-domain nanti menggunakan opsi 'Tambahkan domain yang saya miliki, atau subdomain' lainnya di atas). Konfigurasi DNS akan ditangani secara otomatis oleh YunoHost. Ini sangat ideal ketika memulai dengan hosting mandiri secara umum dan anda belum ingin berinvestasi dalam nama domain. Namun, dalam jangka menengah/panjang, kami sarankan untuk membeli nama domain anda sendiri ke beberapa registrar agar anda memiliki kepemilikan penuh atas domain anda.",
|
||||
"from_local_desc": "Jika anda tidak ingin satu nama domain publik \"aktual\", anda dapat menggunakan apa saja yang berakhiran dengan <code>.local</code> atau <code>.test</code>. Nama domain yang diakhiri dengan <code>.local</code> adalah istimewa dalam artian bahwa mereka secara otomatis akan berubah kepada jaringan lokal, dengan asumsi klien mendukung protokol Bonjour. Alternatifnya, anda mungkin perlu melakukan penyesuaian pada berkas <code>/etc/hosts</code> (atau yang setara dengan Windows) pada setiap klien yang ingin anda gunakan dari domain ini, atau untuk mengkonfigurasi entri di router internet anda."
|
||||
}
|
||||
},
|
||||
"error_server_unexpected": "Galat peladen tak terduga",
|
||||
"everything_good": "Semuanya bagus!",
|
||||
"experimental": "Eksperimental",
|
||||
"footer_version": "Ditenegai oleh <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
|
||||
"go_back": "Kembali",
|
||||
"group_explain_all_users": "Ini adalah kelompok istimewa yang mengandung semua akun pengguna di peladen ini",
|
||||
"home": "Beranda",
|
||||
"hook_adminjs_group_configuration": "Konfigurasi sistem",
|
||||
"hook_conf_ldap": "Basis data pengguna",
|
||||
"hook_conf_ynh_settings": "Konfigurasi YunoHost",
|
||||
"restart": "Mulai ulang",
|
||||
"protocol": "Protokol",
|
||||
"readme": "Bacalah",
|
||||
"rerun_diagnosis": "Jalankan diagnosis lagi",
|
||||
"open": "Buka",
|
||||
"hook_data_xmpp": "Data XMPP",
|
||||
"ignored": "{count} diabaikan",
|
||||
"infos": "Informasi",
|
||||
"logout": "Keluar",
|
||||
"hook_data_home": "Data pengguna",
|
||||
"hook_data_home_desc": "Data pengguna terletak di /home/PENGGUNA",
|
||||
"install": "Pasang",
|
||||
"install_name": "Pasang {id}",
|
||||
"install_time": "Waktu pemasangan",
|
||||
"installation_complete": "Pemasangan selesai",
|
||||
"installed": "Terpasang",
|
||||
"ipv4": "IPv4",
|
||||
"ipv6": "IPv6",
|
||||
"issues": "{count} masalah",
|
||||
"label": "Label",
|
||||
"last_ran": "Terakhir dijalankan:",
|
||||
"license": "Lisensi",
|
||||
"login": "Masuk",
|
||||
"no": "Tidak",
|
||||
"only_highquality_apps": "Hanya aplikasi berkualitas tinggi",
|
||||
"only_working_apps": "Hanya aplikasi yang dapat bekerja",
|
||||
"only_decent_quality_apps": "Hanya aplikasi yang lumayan berkualitas",
|
||||
"placeholder": {
|
||||
"username": "mamat",
|
||||
"firstname": "Sam",
|
||||
"lastname": "Bambang",
|
||||
"domain": "domainku.com",
|
||||
"groupname": "Nama kelompok saya",
|
||||
"fullname": "John Doe",
|
||||
"file": "Jelajahi berkas atau seret dan jatuhkan di sini"
|
||||
},
|
||||
"postinstall_intro_1": "Selamat! YunoHost berhasil dipasang.",
|
||||
"postinstall_intro_3": "Anda dapat mendapatkan lebih banyak informasi dengan mengunjungi <a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>halaman dokumentasinya</a>",
|
||||
"app": {
|
||||
"install": {
|
||||
"notifs": {
|
||||
"post": {
|
||||
"title": "Catatan setelah pemasangan untuk '{name}'",
|
||||
"alert": "Sepertinya pemasangannya lancar!\nBerikut beberapa catatan pengelola paket yang cukup penting untuk diketahui.\nAnda bisa membacanya kembali di halaman informasi aplikasi."
|
||||
},
|
||||
"pre": {
|
||||
"warning": "Hal-hal yang perlu diketahui sebelum pemasangan",
|
||||
"danger": "Pemasangan aplikasi ini sepertinya akan mengakibatkan beberapa isu",
|
||||
"critical": "Aplikasi tidak dapat dipasang"
|
||||
}
|
||||
},
|
||||
"problems": {
|
||||
"arch": "Aplikasi ini hanya bisa dipasang pada arsitektur tertentu ({required}) tapi arsitektur peladen Anda adalah {current}.",
|
||||
"broken": "Aplikasi ini rusak menurut uji coba otomatis YunoHost dan mungkin akan merusak sistem Anda! Sebaiknya Anda TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan.",
|
||||
"thirdparty": "Aplikasi ini bukan bagian dari katalog resmi YunoHost, memasang aplikasi pihak ketiga dapat membahayakan integritas serta keamanan sistem Anda. Anda sebaiknya TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan.",
|
||||
"ignore": "Saya mengerti bahwa pemasangan ini mungkin akan merusak sistem saya tapi saya tetap ingin mencobanya.",
|
||||
"inprogress": "Aplikasi ini masih eksperimental (jika tidak secara jelas tidak bekerja) dan mungkin akan merusak sistem Anda! Sebaiknya Anda TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan.",
|
||||
"install": "Telah dipasang dan tidak dapat dipasang lebih dari sekali.",
|
||||
"lowquality": "Aplikasi ini mungkin bisa bekerja tapi tidak terintegrasi dengan baik di YunoHost. Beberapa fitur seperti SSO dan pencadangan mungkin tidak tersedia.",
|
||||
"ram": "Aplikasi ini memerlukan RAM sebanyak {required} untuk pemasangan/pembaruan tapi hanya {current} yang tersedia sekarang. Meski aplikasi ini bisa bekerja, proses pemasangannya memerlukan RAM yang banyak sehingga peladen Anda bisa rusak atau prosesnya gagal total.",
|
||||
"version": "Aplikasi ini memerlukan YunoHost >= {required} tapi versi yang terpasang adalah {current}, silakan YunoHost-nya diperbarui terlebih dahulu."
|
||||
},
|
||||
"license": "Lisensi: {license}",
|
||||
"try_demo": "Coba demonstrasi",
|
||||
"version": "Versi saat ini: {version}"
|
||||
},
|
||||
"integration": {
|
||||
"multi_instance": {
|
||||
"false": "Hanya bisa dipasang sekali",
|
||||
"true": "Bisa dipasang berkali-kali"
|
||||
},
|
||||
"sso": {
|
||||
"?": "Tidak ada informasi tentang integrasi SSO",
|
||||
"false": "SSO tidak tersedia",
|
||||
"true": "SSO tersedia"
|
||||
},
|
||||
"title": "Integrasi YunoHost",
|
||||
"archs": "Arsitektur yang didukung:",
|
||||
"ldap": {
|
||||
"false": "Tidak menggunakan akun YunoHost untuk masuk (LDAP)",
|
||||
"true": "Menggunakan akun YunoHost untuk masuk (LDAP)",
|
||||
"?": "Tidak ada informasi tentang integrasi LDAP"
|
||||
},
|
||||
"resources": "Penggunaan sumber daya: {ram} RAM, {disk} diska"
|
||||
},
|
||||
"links": {
|
||||
"admindoc": "Dokumentasi Admin Resmi",
|
||||
"code": "Depot Kode Resmi",
|
||||
"forum": "Topik tentang aplikasi ini di forum YunoHost",
|
||||
"package": "Depot Paket YunoHost",
|
||||
"title": "Tautan",
|
||||
"userdoc": "Dokumentasi Pengguna Resmi",
|
||||
"website": "Situs Resmi",
|
||||
"license": "Lisensi aplikasi",
|
||||
"package_license": "Lisensi paket YunoHost"
|
||||
},
|
||||
"potential_alternative_to": "Alternatif dari:",
|
||||
"upgrade": {
|
||||
"confirm": {
|
||||
"apps": "Aplikasi yang akan diperbarui",
|
||||
"title": "Konfirmasi pembaruan aplikasi"
|
||||
},
|
||||
"continue": "Ke aplikasi selanjutnya",
|
||||
"notifs": {
|
||||
"pre": {
|
||||
"alert": "Anda sebaiknya periksa catatan tersebut sebelum pembaruan, mungkin ada informasi penting yang perlu diketahui.",
|
||||
"title": "Peringatan!"
|
||||
},
|
||||
"post": {
|
||||
"alert": "Sepertinya pemasangannya lancar!\n Berikut beberapa catatan yang pengelola paket rasa cukup penting untuk diketahui tentang pembaruan ini.\nAnda bisa membacanya kembali di halaman informasi aplikasi.",
|
||||
"title": "Catatan setelah pembaruan untuk '{name}'"
|
||||
}
|
||||
},
|
||||
"stop": "Batalkan pembaruan aplikasi berikutnya"
|
||||
},
|
||||
"installed_version": "Versi terpasang:",
|
||||
"open_this_app": "Buka aplikasi ini",
|
||||
"antifeatures": "Aplikasi ini memiliki fitur yang mungkin Anda tidak suka:",
|
||||
"doc": {
|
||||
"about": {
|
||||
"title": "Tentang",
|
||||
"description": "Deskripsi"
|
||||
},
|
||||
"admin": {
|
||||
"title": "Dokumentasi admin"
|
||||
},
|
||||
"notifications": {
|
||||
"title": "Pemberitahuan",
|
||||
"post_upgrade": "Catatan setelah pembaruan",
|
||||
"post_install": "Catatan setelah pemasangan",
|
||||
"understood": "Mengerti"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"forum": "Cari atau tanyakan di forum!",
|
||||
"problem": "Masalah dengan aplikasi ini?",
|
||||
"config_panel_error": "Satu kesalahan mengakibatkan panel konfigurasi tidak dapat ditampilkan:",
|
||||
"config_panel_error_please_report": "Harap melaporkan galat ini kepada tim YunoHost agar dapat diperbaiki!"
|
||||
},
|
||||
"uninstall": {
|
||||
"purge_desc": "Singkirkan direktori data yang berkaitan dengan aplikasi (biasanya ini adalah data yang anda unggah sendiri menggunakan aplikasi)."
|
||||
}
|
||||
},
|
||||
"app_state_inprogress_explanation": "Pengelola aplikasi ini menyatakan bahwa aplikasi ini belum siap untuk penggunaan umum. HATI-HATI!",
|
||||
"group_explain_visitors": "Ini adalah kelompok khusus yang mewakili pengunjung awanama",
|
||||
"group_explain_visitors_needed_for_external_client": "Perlu diingat bahwa Anda memerlukan beberapa aplikasi untuk dibuka ke pengunjung (visitors) jika Anda ingin menggunakan mereka dengan aplikasi eksternal. Sebagai contoh, Nextcloud perlu dibuka jika Anda ingin menggunakan aplikasi sinkronisasi di ponsel atau komputer Anda.",
|
||||
"port": "Porta",
|
||||
"restore": "Pulihkan",
|
||||
"tools_yunohost_settings": "Pengaturan YunoHost",
|
||||
"action": "Tindakan",
|
||||
"api_not_found": "Sepertinya web administrasi mencoba mengkueri sesuatu yang tidak ada.",
|
||||
"api_not_responding": "API YunoHost tidak merespons. Mungkin 'yunohost-api' mati atau sedang dimulai ulang?",
|
||||
"app_make_default": "Jadikan aplikasi utama",
|
||||
"app_state_inprogress": "belum selesai",
|
||||
"app_state_lowquality_explanation": "Aplikasi ini mungkin bisa bekerja, tapi masih memiliki masalah atau belum sepenuhnya terintegrasi dengan YunoHost atau tidak mengikuti panduan umum.",
|
||||
"backup_content": "Konten cadangan",
|
||||
"backup_create": "Buat cadangan",
|
||||
"archive_empty": "Arsip kosong",
|
||||
"check": "Periksa",
|
||||
"confirm_app_change_url": "Apakah Anda yakin ingin mengubah URL akses aplikasi ini?",
|
||||
"confirm_update_system": "Apakah Anda yakin ingin memperbarui semua paket sistem?",
|
||||
"custom_app_install": "Pasang aplikasi lain",
|
||||
"connection": "Koneksi",
|
||||
"domain_default_longdesc": "Ini adalah domain utama Anda.",
|
||||
"domains": "Domain",
|
||||
"hook_data_mail": "Surel",
|
||||
"group_new": "Kelompok baru",
|
||||
"groups_and_permissions": "Kelompok dan izin",
|
||||
"groups_and_permissions_manage": "Kelola kelompok dan izin",
|
||||
"permissions": "Izin",
|
||||
"ports": "Porta",
|
||||
"postinstall_set_domain": "Atur domain utama",
|
||||
"users_export": "Ekspor pengguna",
|
||||
"words": {
|
||||
"browse": "Jelajah",
|
||||
"default": "Baku",
|
||||
"link": "Tautan",
|
||||
"none": "Tidak ada",
|
||||
"separator": ", ",
|
||||
"valid": "Valid",
|
||||
"collapse": "Perkecil"
|
||||
},
|
||||
"domain_name": "Nama domain",
|
||||
"hook_conf_manually_modified_files": "Konfigurasi yang diubah secara manual",
|
||||
"hook_conf_ynh_certs": "Sertifikat SSL",
|
||||
"app_state_broken": "rusak",
|
||||
"app_state_broken_explanation": "Saat ini, aplikasi ini rusak dan tidak dapat dipasang menurut uji coba otomatis YunoHost",
|
||||
"group_admins": "Admin",
|
||||
"group_explain_admins": "Ini adalah kelompok khusus yang memuat pengguna administrator. Pengguna di kelompok ini bisa mengakses web administrasi YunoHost, terhubung ke peladen dengan SSH, dan menggunakan perintah `sudo`. Yang di kelompok tersebut juga akan menerima surel yang dikirim ke root@, admin@, dan admins@ seperti pemberitahuan diagnosis. Anda sebaiknya menambahkan orang-orang yang Anda sangat percaya ke kelompok ini!",
|
||||
"password_confirmation": "Konfirmasi kata sandi",
|
||||
"app_info_changeurl_desc": "Ubah URL akses aplikasi ini (domain dan/atau jalur).",
|
||||
"confirm_uninstall": "Apakah Anda yakin ingin melepas {name}?",
|
||||
"from_to": "dari {0} ke {1}",
|
||||
"group_add_permission": "Tambahkan izin",
|
||||
"group_specific_permissions": "Izin pengguna",
|
||||
"multi_instance": "Bisa dipasang berkali-kali",
|
||||
"previous": "Sebelumnya",
|
||||
"set_default": "Atur yang baku",
|
||||
"confirm_restore": "Apakah Anda yakin ingin memulihkan {name}?",
|
||||
"confirm_install_domain_root": "Apakah Anda yakin ingin memasang aplikasi ini di '/'? Anda tidak akan dapat memasang aplikasi lain di {domain}",
|
||||
"details_about": "Tampilkan lebih banyak detail tentang {subject}",
|
||||
"wrong_password_or_username": "Nama pengguna atau kata sandi salah",
|
||||
"firewall": "Tembok Api",
|
||||
"user_new_forward": "terusanbaru@domainlainku.org",
|
||||
"experimental_warning": "Peringatan: fitur ini bersifat eksperimental dan belum bisa diputuskan sebagai stabil, Anda jangan menggunakannya kecuali jika Anda mengetahui apa yang Anda lakukan.",
|
||||
"users_import": "Impor pengguna",
|
||||
"app_info_default_desc": "Alihkan pangkal domain ke aplikasi ini ({domain}).",
|
||||
"diagnosis_explanation": "Fitur diagnosis akan berusaha mencari masalah umum di setiap aspek peladen Anda untuk memastikan semuanya berjalan dengan baik. Diagnosis akan berjalan secara otomatis dua kali sehari dan sebuah surel akan dikirim ke administrator jika ada masalah yang ditemukan. Perlu dicatat bahwa beberapa uji coba mungkin tidak akan relevan jika Anda tidak ingin beberapa fitur (seperti XMPP) atau mungkin gagal jika Anda memiliki pengaturan yang kompleks. Jika begitu dan jika Anda mengetahui apa yang Anda lakukan, dipersilakan untuk mengabaikan masalah atau peringatan tersebut.",
|
||||
"diagnosis_first_run": "Fitur diagnosis akan berusaha mencari masalah umum di setiap aspek peladen Anda untuk memastikan semuanya berjalan dengan baik. Mohon jangan panik jika Anda melihat banyak galat setelah Anda mengatur peladen Anda, itu ditujukan untuk membantu Anda menemukan masalahnya dan membantu Anda memperbaikinya. Diagnosis juga akan berjalan secara otomatis dua kali sehari dan sebuah surel akan dikirim ke administrator jika ada masalah yang ditemukan.",
|
||||
"domain_add_dyndns_forbidden": "Anda sudah terdaftar/berlangganan ke satu domain DynDNS dari proyek YunoHost. Sesuai desain, fitur ini terbatas pada satu domain per server. Apabila Anda ingin menambahkan satu subdomain di domain Anda yang sudah ada, harap menggunakan opsi 'Tambah satu domain yang sudah saya miliki, atau satu subdomain' di atas. Apabila Anda ingin menggunakan domain yang berbeda, Anda harus menghapus domain DynDNS yang sudah ada. Domain DynDNS bagus apabila dipergunakan untuk hos mandiri, tetapi untuk jangka menengah/panjang, kami merekomendasikan kepada Anda agar membeli nama domain Anda sendiri pada suatu regstrar untuk kepemilikan penuh atas domain Anda.",
|
||||
"domain_default_desc": "Domain utama adalah domain di mana pengguna masuk ke SSO.",
|
||||
"error_connection_interrupted": "Server menutup koneksi alih-alih menjawabnya. Apakah nginx atau yunohost-api dimulai ulang atau terhenti untuk beberapa alasan?",
|
||||
"good_practices_about_admin_password": "Sekarang Anda akan menentukan kata sandi admin baru. Kata sandi harus terdiri dari minimal 8 karakter - meskipun sebaiknya menggunakan kata sandi yang lebih panjang (misalnya parafrasa) dan/atau menggunakan beragam karakter (huruf besar, huruf kecil, angka, dan karakter khusus).",
|
||||
"good_practices_about_user_password": "Sekarang Anda akan menentukan kata sandi pengguna baru. Kata sandi harus terdiri dari minimal 8 karakter - meskipun sebaiknya menggunakan kata sandi yang lebih panjang (misalnya parafrasa) dan/atau menggunakan beragam karakter (huruf besar, huruf kecil, angka, dan karakter khusus).",
|
||||
"label_for_manifestname_help": "Ini adalah nama yang ditampilkan di portal pengguna. Bisa diubah lagi nanti.",
|
||||
"manage_apps": "Kelola aplikasi",
|
||||
"postinstall": {
|
||||
"user": {
|
||||
"first_user_help": "Pengguna ini akan diberikan hak administrator dan akan diperbolehkan untuk terhubung ke antarmuka administrasi atau lewat SSH.\nSeperti layaknya pengguna biasa, Anda juga bisa terhubung ke SSO dengan kredensialnya.\nSetelah pemasangan selesai, Anda bisa membuat pengguna administrator lain dengan menambahkan mereka ke kelompok 'admins'.",
|
||||
"title": "Buat pengguna administrator pertama"
|
||||
},
|
||||
"force": "Paksakan langkah setelah pemasangan",
|
||||
"title": "Langkah Setelah Pemasangan"
|
||||
},
|
||||
"postinstall_domain": "Ini adalah domain pertama yang ditautkan ke peladen YunoHost Anda dan yang akan digunakan oleh pengguna peladen Anda untuk mengakses SSO. Ini akan terlihat ke semua orang, jadi pilih dengan bijak.",
|
||||
"retry": "Ulang",
|
||||
"system_packages_nothing": "Semua paket sistem sudah mutakhir!",
|
||||
"text_selection_is_disabled": "Pemilihan teks dinonaktifkan. Jika Anda ingin membagikan log ini, silakan bagikan log dengan tombol 'Bagikan dengan Yunopaste'.<br/><small>Atau jika Anda benar-benar ingin pemilihan teks, tekan tombol ini: ↓↓↑↑.</small>",
|
||||
"confirm_group_add_access_permission": "Apakah Anda yakin ingin memberi akses {perm} ke {name}? Akses tersebut bisa meningkatkan ancaman jika {name} merupakan orang jahat. Anda sebaiknya lakukan ini jika Anda PERCAYA kepada orang tersebut.",
|
||||
"confirm_migrations_skip": "Melewati migrasi tidak direkomendasikan. Apakah Anda yakin ingin melewatinya?",
|
||||
"confirm_install_app_inprogress": "PERINGATAN! Aplikasi ini masih bersifat eksperimental (bila tidak secara jelas tidak dapat bekerja) dan mungkin akan merusak sistem Anda! Sebaiknya Anda TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan. Apakah Anda ingin mengambil risiko tersebut?",
|
||||
"run_first_diagnosis": "Jalankan diagnosis pertama",
|
||||
"domain_delete_forbidden_desc": "Anda tidak bisa menghapus '{domain}' dikarenakan itu adalah domain utama, Anda harus memilih domain lain (atau <a href='#/domains/add'>tambahkan yang baru</a>) dan atur itu menjadi domain utama supaya bisa menghapus domain ini.",
|
||||
"hook_data_xmpp_desc": "Konfigurasi pengguna dan ruangan, berkas unggahan",
|
||||
"hook_data_mail_desc": "Mentahan surel yang tersimpan di peladen",
|
||||
"id": "ID",
|
||||
"items": {
|
||||
"services": "tidak ada layanan | layanan | {c} layanan",
|
||||
"users": "tidak ada pengguna | pengguna | {c} pengguna",
|
||||
"backups": "tidak ada cadangan | cadangan | {c} cadangan",
|
||||
"logs": "tidak ada log | log | {c} log",
|
||||
"permissions": "tidak ada perizinan | perizinan | {c} perizinan",
|
||||
"apps": "tidak ada aplikasi | aplikasi | {c} aplikasi",
|
||||
"domains": "tidak ada domain | domain | {c} domain",
|
||||
"groups": "tidak ada kelompok | kelompok | {c} kelompok",
|
||||
"installed_apps": "tidak ada aplikasi yang terpasang | aplikasi yang terpasang | {c} aplikasi yang terpasang"
|
||||
},
|
||||
"migrations_no_pending": "Tidak ada migrasi yang tertunda",
|
||||
"orphaned_details": "Aplikasi ini sudah tidak dikelola beberapa lama. Mungkin masih bekerja, tapi tidak akan menerima pembaruan sampai orang lain mengelolanya. Silakan jika Anda mau untuk berkontribusi mengelolanya!",
|
||||
"others": "Lain-lain",
|
||||
"logs_service": "Log layanan",
|
||||
"path": "Jalur",
|
||||
"logs_app": "Log aplikasi",
|
||||
"logs_share_with_yunopaste": "Bagikan log dengan YunoPaste",
|
||||
"tip_about_user_email": "Pengguna dibuat dengan alamat surelnya (dan akun XMPP) tersendiri dengan format namapengguna@domain.tld. Surel tambahan seperti alias surel dan surel terusan bisa ditambahkan oleh administrator dan pengguna itu sendiri.",
|
||||
"user_emailforward": "Surel terusan",
|
||||
"user_emailforward_add": "Tambah surel terusan",
|
||||
"user_emailaliases_add": "Tambah alias surel",
|
||||
"mailbox_quota_description": "Atur batas ukuran penyimpanan untuk konten surel.<br>Atur ke 0 untuk menonaktifkannya.",
|
||||
"logs": "Log",
|
||||
"logs_suboperations": "Sub-tindakan",
|
||||
"logs_context": "Konteks",
|
||||
"logs_history": "Riwayat perintah yang dijalankan pada sistem",
|
||||
"logs_more": "Tampilkan lebih banyak",
|
||||
"logs_package": "Riwayat pengelolaan paket Debian",
|
||||
"mailbox_quota_example": "700M pada CD, 4700M pada DVD",
|
||||
"mailbox_quota_placeholder": "Atur ke 0 untuk menonaktifkan.",
|
||||
"manage_groups": "Kelola kelompok",
|
||||
"logs_error": "Galat",
|
||||
"logs_no_logs_registered": "Tidak ada log yang tersedia di kategori ini",
|
||||
"logs_operation": "Tindakan yang dilakukan di sistem dengan YunoHost",
|
||||
"user_emailaliases": "Alias surel",
|
||||
"users_import_delete_others": "Hapus pengguna yang tidak ada di daftar",
|
||||
"app_manage_label_and_tiles": "Kelola label dan kisi",
|
||||
"confirm_app_default": "Apakah Anda yakin ingin menjadikan aplikasi ini sebagai default?",
|
||||
"unauthorized": "Tidak terotoriasasi",
|
||||
"logs_ended_at": "Akhir",
|
||||
"permission_main": "Label utama",
|
||||
"uninstall": "Lepas",
|
||||
"users_import_update": "Perbarui pengguna yang telah ada",
|
||||
"migrations_done": "Migrasi sebelumnya",
|
||||
"migrations_no_done": "Belum ada migrasi",
|
||||
"migrations_disclaimer_check_message": "Saya membaca dan mengerti peringatan ini",
|
||||
"migrations_disclaimer_not_checked": "Migrasi ini memerlukan Anda mengetahui peringatannya sebelum bisa dijalankan.",
|
||||
"logs_path": "Jalur",
|
||||
"permission_show_tile_enabled": "Terlihat sebagai kisi di portal pengguna",
|
||||
"confirm_firewall_allow": "Apakah Anda yakin ingin membuka port {port}? (protokol: {protocol}, koneksi: {connection})",
|
||||
"confirm_firewall_disallow": "Apakah Anda yakin ingin menutup port {port}? (protokol: {protocol}, koneksi: {connection})",
|
||||
"manage_domains": "Kelola domain",
|
||||
"migrations_pending": "Migrasi yang tertunda",
|
||||
"operations": "Tindakan",
|
||||
"orphaned": "Tidak dikelola",
|
||||
"postinstall_intro_2": "Dua langkah konfigurasi lagi diperlukan untuk mengaktifkan layanan peladen Anda.",
|
||||
"confirm_install_app_broken": "PERINGATAN! Aplikasi ini rusak menurut uji coba otomatis YunoHost dan mungkin akan merusak sistem Anda! Sebaiknya Anda TIDAK memasangnya kecuali Anda yakin dengan apa yang Anda lakukan. Apakah Anda yakin ingin memasangnya?",
|
||||
"domain_dns_conf_is_just_a_recommendation": "Bagian ini hanya menampilkan kepada Anda konfigurasi *yang direkomendasikan*. Ini *tidak* mengonfigurasi DNS untuk Anda. Merupakan tugas Anda untuk mengonfigurasi zona DNS Anda di registrar DNS Anda menurut rekomendasi ini.",
|
||||
"domain_dns_push_failed_to_authenticate": "Autentikasi gagal pada API registrar. Besar kemungkinan karena <a href='#/domains/{domain}/config'>kredensial</a> tidak sesuai? (Galat: {error})",
|
||||
"ignore": "Abaikan",
|
||||
"label_for_manifestname": "Label untuk {name}",
|
||||
"local_archives": "Arsip lokal",
|
||||
"user_mailbox_quota": "Kuota penyimpanan surel",
|
||||
"user_mailbox_use": "Penyimpanan surel yang digunakan",
|
||||
"important_yunohost_upgrade": "Pembaruan besar YunoHost tersedia. Sangat direkomendasikan untuk membaca catatan rilis di forum sebelum pembaruan: <a href='https://forum.yunohost.org/tag/ynh_release'>Baca catatan rilis di forum</a>",
|
||||
"logs_started_at": "Awal",
|
||||
"manage_users": "Kelola pengguna",
|
||||
"migrations": "Migrasi",
|
||||
"next": "Selanjutnya",
|
||||
"domain_dns_push_not_applicable": "Fitur rekaman DNS otomatis tidak tersedia untuk domain {domain},<br> Anda harus secara manual mengonfigurasi rekaman DNS Anda dengan mengikuti <a href='https://yunohost.org/dns'>dokumentasi</a> dan konfigurasi yang disarankan di bawah ini.",
|
||||
"logs_system": "Log kernel dan peristiwa tingkat dasar lainnya",
|
||||
"operation_failed_explanation": "Tindakan ini gagal! Sangat maaf sekali :( Anda bisa mencoba <a href='https://yunohost.org/help'>tanya-tanya</a>. Mohon sediakan *log penuh* dari tindakan tersebut kepada yang membantu Anda. Anda bisa melakukan tersebut dengan tombol 'Bagikan dengan Yunopaste'. Ketika membagikan log tersebut, YunoHost akan secara otomatis mencoba menyembunyikan data pribadi seperti nama domain dan IP.",
|
||||
"items_verbose_count": "Ada {items}. | Ada 1 {items}. | Ada {items}.",
|
||||
"perform": "Laksanakan",
|
||||
"domain_dns_push_managed_in_parent_domain": "Fitur rekaman DNS otomatis dikelola di domain induk <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
|
||||
"confirm_install_app_lowquality": "Peringatan: aplikasi ini mungkin bisa bekerja tapi tidak terintegrasi dengan baik di YunoHost. Beberapa fitur seperti SSO dan pencadangan mungkin tidak tersedia.",
|
||||
"logs_access": "Daftar akses dan blokiran",
|
||||
"permission_corresponding_url": "URL yang sesuai",
|
||||
"users_import_delete_desc": "Jika dipilih, semua pengguna yang telah ada yang tidak ada di berkas CSV akan dihapus (dan dibersihkan).",
|
||||
"users_import_update_desc": "Jika dipilih, semua pengguna yang ada di dalam berkas CSV akan diperbarui dengan nilai baru",
|
||||
"users_import_delete": "Hapus pengguna yang tidak ada di daftar",
|
||||
"users_import_csv_file_desc": "Berkas CSV harus dalam UTF-8 dan dengan kolom nama pengguna, kata sandi, kelompok, surel, dan kuota surel. Sebagai contoh berkas CSV impornya, Anda bisa <a href='/yunohost/api/users/export' target='_BLANK'>mengekspor daftar pengguna Anda ke berkas CSV</a> dan mengubah berkas tersebut.",
|
||||
"pending_migrations": "Terdapat migrasi tertunda yang menunggu untuk dijalankan. Silakan ke <a href='#/tools/migrations'>Alat > Migrasi</a> untuk memulai mereka.",
|
||||
"error_modify_something": "Anda harus mengubah sesuatu",
|
||||
"group_format_name_help": "Anda bisa menggunakan karakter alfanumerik dan garis bawah",
|
||||
"items_verbose_items_left": "Ada {items} tersisa. | Ada 1 {items} tersisa. | Ada {items} tersisa.",
|
||||
"traceback": "Telusur",
|
||||
"select_none": "Pilih tidak sama sekali",
|
||||
"nobody": "Bukan siapa-siapa",
|
||||
"confirm_postinstall": "Anda akan meluncurkan proses pasca instalasi pada domain {domain}. Mungkin memerlukan waktu beberapa menit, *jangan hentikan pengoperasian*."
|
||||
}
|
695
app/src/i18n/locales/it.json
Normal file
|
@ -0,0 +1,695 @@
|
|||
{
|
||||
"action": "Azione",
|
||||
"add": "Aggiungi",
|
||||
"administration_password": "Password amministrazione",
|
||||
"api_not_responding": "Le API YunoHost non rispondono. Forse 'yunohost-api' è giù o è stato riavviato?",
|
||||
"app_info_access_desc": "Gruppi / utenti attualmente autorizzati ad accedere a questa applicazione:",
|
||||
"app_info_default_desc": "Redirigi root dominio su questa applicazione ({domain}).",
|
||||
"app_info_uninstall_desc": "Rimuovi questa applicazione.",
|
||||
"app_install_custom_no_manifest": "Nessun file manifest.json",
|
||||
"app_make_default": "Imposta predefinito",
|
||||
"applications": "Applicazioni",
|
||||
"archive_empty": "Archivio vuoto",
|
||||
"backup": "Backup",
|
||||
"backup_action": "Backup",
|
||||
"backup_content": "Contenuto del backup",
|
||||
"backup_create": "Creare un backup",
|
||||
"backup_new": "Nuovo backup",
|
||||
"both": "Entrambi",
|
||||
"close": "Chiudi",
|
||||
"confirm_app_default": "Sei sicuro di voler impostare questa app come predefinita?",
|
||||
"confirm_change_maindomain": "Sei sicuro di voler cambiare il dominio principale?",
|
||||
"confirm_delete": "Sei sicuro di voler eliminare {name} ?",
|
||||
"confirm_uninstall": "Sei sicuro di voler disinstallare {name} ?",
|
||||
"connection": "Connessione",
|
||||
"created_at": "Creato a",
|
||||
"custom_app_install": "Installa app personalizzata",
|
||||
"delete": "Elimina",
|
||||
"description": "Descrizione",
|
||||
"disable": "Disabilita",
|
||||
"domain_add": "Aggiungi dominio",
|
||||
"domain_dns_config": "Configurazione del DNS",
|
||||
"domain_name": "Nome a domino",
|
||||
"domains": "Domini",
|
||||
"download": "Scaricare",
|
||||
"enable": "Abilita",
|
||||
"error_modify_something": "Dovresti modificare qualcosa",
|
||||
"firewall": "Firewall",
|
||||
"home": "Home",
|
||||
"hook_adminjs_group_configuration": "Configurazioni di sistema",
|
||||
"hook_conf_ldap": "Database utenti",
|
||||
"hook_data_home": "Dati utente",
|
||||
"hook_data_mail": "Mail",
|
||||
"hook_data_mail_desc": "Mail raw presenti sul server",
|
||||
"id": "ID",
|
||||
"infos": "Info",
|
||||
"install": "Installa",
|
||||
"install_name": "Installa {id}",
|
||||
"install_time": "Tempo installazione",
|
||||
"installation_complete": "Installazione completata",
|
||||
"installed": "Installato",
|
||||
"ipv4": "IPv4",
|
||||
"ipv6": "IPv6",
|
||||
"label": "Etichetta",
|
||||
"label_for_manifestname": "Etichetta per {name}",
|
||||
"login": "Accedi",
|
||||
"logout": "Esci",
|
||||
"mailbox_quota_description": "Per esempio, 700M è un CD, 4700M è un DVD.",
|
||||
"manage_apps": "Gestisci app",
|
||||
"manage_domains": "Gestisci domini",
|
||||
"manage_users": "Gestisci utenti",
|
||||
"multi_instance": "Può essere installato più volte",
|
||||
"next": "Successivo",
|
||||
"no": "No",
|
||||
"open": "Apri",
|
||||
"operations": "Operazioni",
|
||||
"password": "Password",
|
||||
"password_confirmation": "Conferma password",
|
||||
"path": "Percorso",
|
||||
"port": "Porta",
|
||||
"ports": "Porte",
|
||||
"postinstall_intro_1": "Congratulazioni! YunoHost è stato installato con successo.",
|
||||
"previous": "Precedente",
|
||||
"protocol": "Protocollo",
|
||||
"restore": "Ripristina",
|
||||
"save": "Salva",
|
||||
"service_start_on_boot": "In esecuzione all'avvio",
|
||||
"services": "Servizi",
|
||||
"set_default": "Imposta predefinito",
|
||||
"size": "Dimensione",
|
||||
"start": "Avvia",
|
||||
"status": "Stato",
|
||||
"stop": "Arresta",
|
||||
"system": "Sistema",
|
||||
"system_apps_nothing": "Tutte le applicazioni sono aggiornate!",
|
||||
"system_packages_nothing": "Tutti i pacchetti di sistema sono aggiornati!",
|
||||
"system_upgrade_btn": "Aggiorna",
|
||||
"tcp": "TCP",
|
||||
"tools": "Strumenti",
|
||||
"udp": "UDP",
|
||||
"unauthorized": "Non autorizzato",
|
||||
"uninstall": "Disinstalla",
|
||||
"upnp": "UPnP",
|
||||
"upnp_disabled": "UPnP è disabilitato.",
|
||||
"upnp_enabled": "UPnP è abilitato.",
|
||||
"url": "URL",
|
||||
"user_email": "Email",
|
||||
"user_emailaliases": "Alias email",
|
||||
"user_emailforward": "Inoltro email",
|
||||
"user_fullname": "Nome completo",
|
||||
"user_interface_link": "Interfaccia utente",
|
||||
"user_mailbox_quota": "Quota della casella di posta",
|
||||
"user_new_forward": "nuovoinoltro@miodominiodifferente.org",
|
||||
"user_username": "Nome utente",
|
||||
"user_username_edit": "Modifica account di {name}",
|
||||
"users": "Utenti",
|
||||
"users_new": "Nuovo utente",
|
||||
"users_no": "Nessun utente.",
|
||||
"yes": "Si",
|
||||
"app_state_inprogress": "ancora non funzionante",
|
||||
"confirm_install_custom_app": "ATTENZIONE! L'installazione di applicazioni di terze parti può compromettere l'integrità e la sicurezza del tuo sistema. Probabilmente NON dovresti installarle a meno che tu non sappia cosa stai facendo. Sei sicuro di volerti prendere questo rischio?",
|
||||
"confirm_install_domain_root": "Sei sicuro di voler installare l'applicazione su '/'? Non sarai in grado di installare qualsiasi altra applicazione su {domain}",
|
||||
"begin": "Iniziamo",
|
||||
"check": "Verifica",
|
||||
"confirm_postinstall": "Stai per lanciare il processo di post-installazione sul dominio {domain}. Potrebbe richiedere alcuni minuti, *non interrompere l'operazione*.",
|
||||
"confirm_restore": "Sei sicuro di volere ripristinare {name} ?",
|
||||
"diagnosis": "Diagnosi",
|
||||
"dns": "DNS",
|
||||
"domain_default_desc": "Il dominio predefinito è il dominio di connessione dove gli utenti effettuano l'accesso.",
|
||||
"domain_default_longdesc": "Questo è il tuo dominio predefinito.",
|
||||
"domain_delete_longdesc": "Rimuovi questo dominio",
|
||||
"domain_dns_longdesc": "Vedi la configurazione DNS",
|
||||
"error_server_unexpected": "Errore server inaspettato",
|
||||
"footer_version": "Offerto da <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
|
||||
"form_input_example": "Esempio: {example}",
|
||||
"hook_conf_ynh_certs": "Certificati SSL",
|
||||
"hook_data_home_desc": "Dati dell'utente posizionati in /home/USER",
|
||||
"local_archives": "Archivi locali",
|
||||
"mailbox_quota_placeholder": "Lascia vuoto o metti 0 per disattivare.",
|
||||
"postinstall_domain": "Questo è il primo nome di dominio collegato al tuo server Yunohost, ma anche quello che verrà usato dagli utenti del tuo server per accedere al portale di autenticazione. Di conseguenza sarà visibile da tutti, perciò sceglilo con attenzione.",
|
||||
"postinstall_intro_2": "Sono richiesti ancora due passi da configurare per attivare i servizi del tuo server.",
|
||||
"postinstall_intro_3": "Puoi ottenere ulteriori informazioni visitando la <a href='//yunohost.org/it/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>pagina appropriata nella documentazione</a>",
|
||||
"running": "In esecuzione",
|
||||
"system_update": "Aggiornamento del sistema",
|
||||
"user_mailbox_use": "Spazio utilizzato dalla casella di posta",
|
||||
"ok": "OK",
|
||||
"app_info_changeurl_desc": "Cambia l'URL di accesso di questa applicazione (dominio e/o percorso).",
|
||||
"app_info_change_url_disabled_tooltip": "Questa funzionalità non è ancora stata implementata in questa applicazione",
|
||||
"confirm_app_change_url": "Sei sicuro di voler cambiare l'URL di accesso all'applicazione ?",
|
||||
"confirm_firewall_allow": "Sei sicuro di voler aprire la porta {port}? (protocollo: {protocol}, connessione: {connection})",
|
||||
"confirm_firewall_disallow": "Sei sicuro di voler chiudere la porta {port}? (protocollo: {protocol}, connessione: {connection})",
|
||||
"confirm_migrations_skip": "Saltare le migrazioni è sconsigliato. Sei sicuro di volerlo fare?",
|
||||
"confirm_service_start": "Sei sicuro di voler eseguire {name}?",
|
||||
"confirm_service_stop": "Sei sicuro di voler fermare {name}?",
|
||||
"confirm_update_apps": "Sei sicuro di voler aggiornare tutte le applicazioni?",
|
||||
"confirm_update_specific_app": "Sei sicuro di voler aggiornare {app}?",
|
||||
"confirm_upnp_enable": "Sei sicuro di voler abilitare UPnP?",
|
||||
"confirm_upnp_disable": "Sei sicuro di voler disabilitare UPnP?",
|
||||
"confirm_reboot_action_reboot": "Sei sicuro di voler riavviare il tuo server?",
|
||||
"confirm_reboot_action_shutdown": "Sei sicuro di voler spegnere il tuo server?",
|
||||
"domain_dns_conf_is_just_a_recommendation": "Questa sezione mostra la configurazione *raccomandata*. *Non* configura il DNS per te. Configurare le tue zone DNS nel registrar DNS in accordo con queste raccomandazioni è compito tuo.",
|
||||
"migrations": "Migrazioni",
|
||||
"migrations_pending": "Migrazioni in attesa",
|
||||
"migrations_done": "Migrazioni precedenti",
|
||||
"migrations_no_pending": "Nessuna migrazione in attesa",
|
||||
"migrations_no_done": "Nessuna migrazione precedente",
|
||||
"run": "Esegui",
|
||||
"skip": "Salta",
|
||||
"system_upgrade_all_applications_btn": "Aggiorna tutte le applicazioni",
|
||||
"system_upgrade_all_packages_btn": "Aggiorna tutti i pacchetti",
|
||||
"tools_reboot": "Riavvia il tuo server",
|
||||
"tools_reboot_btn": "Riavviare",
|
||||
"tools_shutdown": "Spegni il tuo server",
|
||||
"tools_shutdown_btn": "Spegnere",
|
||||
"tools_shutdown_reboot": "Spegnere/Riavviare",
|
||||
"certificate_manage": "Gestisci certificato SSL",
|
||||
"certificate": "Certificato",
|
||||
"all_apps": "Tutte le app",
|
||||
"confirm_install_app_lowquality": "Attenzione: questa applicazione può funzionare ma non è ben integrata in Yunohost. Alcune funzionalità come il single sign-on (accesso unico) e backup/ripristino potrebbero non essere disponibili.",
|
||||
"confirm_install_app_inprogress": "ATTENZIONE! Questa applicazione è ancora sperimentale (se non esplicitamente non funzionante) ed è probabile che rovini il tuo sistema! Probabilmente NON dovresti installarla a meno che tu non sappia cosa stai facendo. Sei sicuro di voler prenderti questo rischio?",
|
||||
"error_connection_interrupted": "Il server ha chiuso la connessione invece che rispondere. Probabilmente nginx o le API di YunoHost sono stato riavviati per qualche ragione?",
|
||||
"experimental_warning": "Attenzione: questa funzionalità è sperimentale e non è considerata stabile, non dovresti utilizzarla a meno che tu non sappia cosa stai facendo.",
|
||||
"good_practices_about_admin_password": "Ora stai per impostare una nuova password di amministratore. La password dovrebbe essere di almeno 8 caratteri - anche se è buona pratica utilizzare password più lunghe (es. una sequenza di parole) e/o utilizzare vari tipi di caratteri (maiuscole, minuscole, numeri e simboli).",
|
||||
"good_practices_about_user_password": "Ora stai per impostare una nuova password utente. La password dovrebbe essere di almeno 8 caratteri - anche se è buona pratica utilizzare password più lunghe (es. una sequenza di parole) e/o utilizzare vari tipi di caratteri (maiuscole, minuscole, numeri e simboli).",
|
||||
"only_working_apps": "Solo app funzionanti",
|
||||
"logs": "Registri",
|
||||
"logs_operation": "Operazioni fatte sul sistema con YunoHost",
|
||||
"logs_history": "Cronologia dei comandi eseguiti sul sistema",
|
||||
"logs_package": "Cronologia della gestione dei pacchetti Debian",
|
||||
"logs_system": "Registri del kernel ed altri eventi di basso livello",
|
||||
"logs_access": "Lista degli accessi e ban",
|
||||
"logs_service": "Registri dei servizi",
|
||||
"logs_app": "Registri delle app",
|
||||
"logs_no_logs_registered": "Nessun registro associato a questa categoria",
|
||||
"logs_error": "Errore",
|
||||
"logs_ended_at": "Fine",
|
||||
"logs_started_at": "Inizio",
|
||||
"logs_path": "Percorso",
|
||||
"logs_context": "Contesto",
|
||||
"logs_share_with_yunopaste": "Condividi con YunoPaste",
|
||||
"logs_more": "Mostra più linee",
|
||||
"select_all": "Seleziona tutto",
|
||||
"select_none": "Deseleziona tutto",
|
||||
"version": "Versione",
|
||||
"purge_user_data_checkbox": "Eliminare i dati di {name}? (Questo rimuoverà il contenuto delle sue cartelle home e mail.)",
|
||||
"purge_user_data_warning": "L'eliminazione dei dati utente non è annullabile. Assicurati di sapere cosa stai facendo!",
|
||||
"confirm_update_system": "Sei sicuro di voler aggiornare tutti i pacchetti di sistema?",
|
||||
"app_state_inprogress_explanation": "Questo maintainer di questa applicazione ha dichiarato che l'applicazione non è ancora pronta per l'uso in produzione. ATTENZIONE!",
|
||||
"group_add_permission": "Aggiungere un permesso",
|
||||
"group_explain_all_users": "Questo è un gruppo speciale contenente tutti gli account di tutti gli utenti sul server",
|
||||
"group": "Gruppo",
|
||||
"group_name": "Nome del gruppo",
|
||||
"group_all_users": "Tutti gli utenti",
|
||||
"group_visitors": "Visitatori",
|
||||
"group_format_name_help": "È possibile utilizzare caratteri alfanumerici e spazio",
|
||||
"group_add_member": "Aggiungere un utente",
|
||||
"app_state_highquality_explanation": "Questa applicazione è ben integrata con YunoHost da almeno un anno a questa parte.",
|
||||
"details": "Dettagli",
|
||||
"everything_good": "Tutto ok!",
|
||||
"from_to": "da {0} a {1}",
|
||||
"configuration": "Configuratione",
|
||||
"group_new": "Nuovo gruppo",
|
||||
"warnings": "{count} avvisi",
|
||||
"words": {
|
||||
"default": "Predefinito",
|
||||
"collapse": "Collassa",
|
||||
"browse": "Naviga",
|
||||
"none": "Nessuno",
|
||||
"separator": ", ",
|
||||
"link": "Collegamento",
|
||||
"valid": "Valido"
|
||||
},
|
||||
"unignore": "Non ignorare più",
|
||||
"since": "da",
|
||||
"restart": "Riavvia",
|
||||
"rerun_diagnosis": "Riavvia la diagnostica",
|
||||
"operation_failed_explanation": "Questa operazione è fallita! Siamo spiacenti :( Puoi provare a <a href='https://yunohost.org/help'>chiedere aiuto</a>. Sei pregato di fornire *il log completo* dell'operazione alle persone che ti aiuteranno. Per farlo clicca sul bottone verde 'Condividi con Yunopaste'. Quando condividi i log YunoHost cercherà automaticamente di renderli anonimi eliminando dati privato come nomi di dominio e IP.",
|
||||
"others": "Altre",
|
||||
"orphaned_details": "Questa applicazione non è più stata manutenuta da qualche tempo. Potrebbe funzionare ancora ma non riceverà più aggiornamenti fino a quando non verrà adottata da qualche volontario. Potresti contribuire facendolo!",
|
||||
"orphaned": "Non mantenuta",
|
||||
"only_decent_quality_apps": "Solo applicazioni di qualità decente",
|
||||
"only_highquality_apps": "Solo applicazioni di alta qualità",
|
||||
"nobody": "Nessuno",
|
||||
"license": "Licenza",
|
||||
"last_ran": "Ultima esecuzione:",
|
||||
"issues": "{count} problemi",
|
||||
"ignored": "{count} ignorato",
|
||||
"ignore": "Ignora",
|
||||
"permissions": "Permessi",
|
||||
"groups_and_permissions_manage": "Gestisci i gruppi e i permessi",
|
||||
"groups_and_permissions": "Gruppi e permessi",
|
||||
"group_specific_permissions": "Permessi per l’utente singolo",
|
||||
"group_explain_visitors_needed_for_external_client": "Poni attenzione al fatto che dovrai dare l'accesso ai visitatori ad alcune applicazioni se pensi di usarle con dei client esterni. Ad esempio questo è il caso di Nextcloud nel caso tu lo voglia usare con un client di sincronizzazione dal tuo smartphone o dal computer desktop.",
|
||||
"group_explain_visitors": "Questo è un gruppo speciale che individua i visitatori anonimi",
|
||||
"run_first_diagnosis": "Avvio diagnosi iniziali",
|
||||
"diagnosis_explanation": "La funzione di diagnosi cercherà di identificare problemi comuni nei differenti aspetti del tuo server per essere sicuri che tutto funzioni correttamente. La diagnosi si avvia automaticamente due volte al giorno e un email viene inviata all'amministratore se vengono identificati dei problemi. Nota che alcuni test possono non essere rilevanti se non vuoi usare alcune specifiche funzionalità (come ad esempio XMPP) oppure potrebbero fallire sei hai un setup complesso. In questi casi, se sai quello che stai facendo, puoi ignorare questi problemi o avvisi.",
|
||||
"diagnosis_first_run": "La funzione di diagnosi cercherà di identificare problemi comuni nei differenti aspetti del tuo server per essere sicuri che tutto funzioni correttamente. Sei invitato a non farti prendere dal panico nel caso vengano indicati molti errori dopo la prima installazione del tuo server perché questa funzione cerca di aiutarti ad identificare i problemi e guidarti nella loro soluzione. La diagnosi inoltre si avvierà automaticamente due volte al giorno e un email verrà inviata all'amministratore se vengono identificati dei problemi.",
|
||||
"confirm_service_restart": "Sei sicuro di voler riavviare {name}?",
|
||||
"catalog": "Catalogo",
|
||||
"app_state_lowquality_explanation": "Questa applicazione può essere funzionale ma potrebbe presentare dei problemi oppure non essere pienamente integrata con YunoHost oppure non rispettare le pratiche consigliate.",
|
||||
"app_state_lowquality": "bassa qualità",
|
||||
"all": "Tutti",
|
||||
"pending_migrations": "Ci sono alcune migrazioni in sospeso in attesa di essere eseguite. Vai in <a href='#/tools/migrations'>Strumenti > Migrazioni</a> per eseguirle.",
|
||||
"tip_about_user_email": "Gli utenti sono creati associati ad un indirizzo email (e un account XMPP) del tipo utente@domain.tld. Indirizzi email addizionali e forward possono essere aggiunti successivamente dall'amministratore e dall'utente.",
|
||||
"logs_suboperations": "Sub-operazioni",
|
||||
"permission_show_tile_enabled": "Mostra il tile nel portale dell'utente",
|
||||
"permission_main": "Etichetta principale",
|
||||
"permission_corresponding_url": "URL corrispondente",
|
||||
"app_manage_label_and_tiles": "Gestisci etichette e tiles",
|
||||
"user_emailforward_add": "Aggiungi un reindirizzamento mail",
|
||||
"user_emailaliases_add": "Aggiungi un alias mail",
|
||||
"unknown": "Sconosciuto",
|
||||
"traceback": "Traceback",
|
||||
"tools_webadmin_settings": "Impostazioni Web-admin",
|
||||
"tools_webadmin": {
|
||||
"transitions": "Animazione di transizione di pagina",
|
||||
"experimental_description": "Ti concede l'accesso alle funzionalità sperimentali. Sono considerate instabili e potrebbero rompere il tuo sistema.<br>Abilita solo se sai quello che stai facendo.",
|
||||
"experimental": "Modalità sperimentale",
|
||||
"cache_description": "Prendi in considerazione di disabilitare la cache se pianifichi di lavorare con la CLI nel mentre che navighi in questo web-admin.",
|
||||
"cache": "Cache",
|
||||
"fallback_language_description": "Lingua utilizzata nel caso che la traduzione non sia disponibile.",
|
||||
"fallback_language": "Lingua di riserva",
|
||||
"language": "Lingua",
|
||||
"theme": "Attiva o disattiva la modalità scura"
|
||||
},
|
||||
"search": {
|
||||
"not_found": "Ci sono {items} che corrispondono ai tuoi criteri. | C’è un {items} che corrisponde ai tuoi criteri. | Ci sono {items} che corrispondono ai tuoi criteri.",
|
||||
"for": "Cerca per {items}…"
|
||||
},
|
||||
"readme": "Leggimi",
|
||||
"postinstall_set_domain": "Imposta dominio principale",
|
||||
"placeholder": {
|
||||
"domain": "mio-dominio.it",
|
||||
"groupname": "Nome del mio gruppo",
|
||||
"lastname": "Rossi",
|
||||
"firstname": "Mario",
|
||||
"username": "mariorossi",
|
||||
"file": "Scegli un file o trascinalo qui",
|
||||
"fullname": "Mario Rossi"
|
||||
},
|
||||
"perform": "Eseguire",
|
||||
"migrations_disclaimer_not_checked": "Questa migrazione necessita della tua accettazione delle condizioni d'utilizzo prima di essere eseguita.",
|
||||
"migrations_disclaimer_check_message": "Ho letto e compreso le condizioni d'utilizzo",
|
||||
"mailbox_quota_example": "700MB è un CD, 4700M è un DVD",
|
||||
"items_verbose_count": "Ci sono {items}. | C’è 1 {items}. | Ci sono {items}.",
|
||||
"items": {
|
||||
"users": "nessun utente | utente | {c} utenti",
|
||||
"services": "nessun servizio | servizio | {c} servizi",
|
||||
"logs": "nessun log | log | {c} logs",
|
||||
"installed_apps": "nessun app installata | app installata | {c} apps installate",
|
||||
"groups": "nessun gruppo | gruppo | {c} gruppi",
|
||||
"domains": "nessun dominio | dominio | {c} domini",
|
||||
"backups": "nessun backup | backup | {c} backups",
|
||||
"apps": "nessuna app | app | {c} apps",
|
||||
"permissions": "nessun permesso | permesso | {c} permessi"
|
||||
},
|
||||
"history": {
|
||||
"methods": {
|
||||
"PUT": "modifica",
|
||||
"POST": "crea/esegui",
|
||||
"GET": "leggi",
|
||||
"DELETE": "elimina"
|
||||
},
|
||||
"last_action": "Ultima azione:",
|
||||
"title": "Cronologia",
|
||||
"is_empty": "Nessuno storico per ora."
|
||||
},
|
||||
"go_back": "Torna indietro",
|
||||
"form_errors": {
|
||||
"required": "Campo richiesto.",
|
||||
"passwordMatch": "Le password non coincidono.",
|
||||
"passwordLenght": "La password dev'essere di almeno 8 caratteri.",
|
||||
"number": "Il valore dev'essere un numero.",
|
||||
"notInUsers": "L'utente '{value}' esiste già.",
|
||||
"minValue": "Il valore dev'essere maggiore o uguale a {min}.",
|
||||
"name": "I nomi non devono includere caratteri speciali, tolti <code> ,.'-</code>",
|
||||
"emailForward": "Inoltro email non valido: dev'esser composta di soli caratteri alfanumerici e <code>_.-+</code> (es: prova+ricevute@esempio.com, m4r1-0@esempio.com)",
|
||||
"email": "Email non valida: dev'esser composta di soli caratteri alfanumerici e <code>_.-</code> (es: prova@esempio.com, m4r1-0@esempio.com)",
|
||||
"dynDomain": "Nome dominio non valido: Dev'esser composto di soli caratteri alfanumerici minuscoli e trattini",
|
||||
"domain": "Nome dominio non valido: Dev'esser composto di soli caratteri alfanumerici minuscoli, punti e trattini",
|
||||
"between": "Il valore dev'essere compreso tra {min} e {max}.",
|
||||
"alphalownumdot_": "Il valore deve contenere solo caratteri alfanumerici minuscoli e underscore.",
|
||||
"alpha": "Il valore deve comprendere solo caratteri alfanumerici.",
|
||||
"remote": "{message}",
|
||||
"pattern": "{type}",
|
||||
"maxValue": "Il valore deve essere un numero uguale o minore di {max}.",
|
||||
"invalid_form": "Il modulo contiene alcuni errori.",
|
||||
"appRepoUrl": "Gli URL della repository delle app di YunoHost dovrebbero essere come https://dominio.tld/percorso/alla/repo_ynh"
|
||||
},
|
||||
"footer": {
|
||||
"donate": "Dona",
|
||||
"help": "Serve aiuto?",
|
||||
"documentation": "Documentazione"
|
||||
},
|
||||
"experimental": "Sperimentale",
|
||||
"error": "Errore",
|
||||
"enabled": "Abilitato",
|
||||
"domain_delete_forbidden_desc": "Non puoi rimuovere '{domain}' fintanto che è il tuo dominio principale, devi prima selezionare un altro dominio (o <a href='#/domains/add'>crearne un'altro</a>) e impostarlo come dominio principale.",
|
||||
"domain_add_dyndns_forbidden": "Hai già registrato/sottoscritto un dominio DynDNS dal progetto YunoHost. Quest’opzione è intenzionalmente limitata a un solo dominio di questo genere per ciascun server. Se vuoi aggiungere un sottodominio al tuo dominio già sottoscritto, usa l’opzione “Aggiungi un dominio o un sottodominio che possiedo” qui sopra. Se vuoi usare un dominio completamente differente, dovresti prima rimuovere il tuo dominio DynDNS esistente. I domini DynDNS sono un’ottima possibilità per esordire nel self-hosting, ma nel medio/lungo termine raccomandiamo di acquistare il proprio nome dominio, per averne un controllo completo.",
|
||||
"disabled": "Disabilitato",
|
||||
"dead": "Inattivo",
|
||||
"day_validity": " Scaduto | 1 giorno | {count} giorni",
|
||||
"confirm_app_install": "Sicuro di voler installare questa applicazione?",
|
||||
"common": {
|
||||
"lastname": "Cognome",
|
||||
"firstname": "Nome"
|
||||
},
|
||||
"code": "Codice",
|
||||
"app_show_categories": "Mostra categorie",
|
||||
"app_choose_category": "Scegli una categoria",
|
||||
"api_waiting": "Aspetto la risposta del server…",
|
||||
"api_not_found": "Sembra che l'amministratore ha provato a richiedere qualcosa che non esiste.",
|
||||
"api_errors_titles": {
|
||||
"APIConnexionError": "YunoHost ha riscontrato un errore di connessione",
|
||||
"APINotRespondingError": "La YunoHost API non risponde",
|
||||
"APINotFoundError": "La YunoHost API non ha trovato un percorso",
|
||||
"APIInternalError": "YunoHost ha riscontrato un errore interno",
|
||||
"APIBadRequestError": "YunoHost ha incontrato un errore",
|
||||
"APIError": "YunoHost ha incontrato un errore inaspettato"
|
||||
},
|
||||
"api_error": {
|
||||
"view_error": "Visualizza errore",
|
||||
"sorry": "Sono molto dispiaciuto per questo.",
|
||||
"server_said": "Processando la richiesta, il server dice:",
|
||||
"info": "La seguente informazione potrebbe essere utile alla persona che ti sta aiutando:",
|
||||
"help": "Cerca supporto <a href=\"https://forum.yunohost.org/\">sul forum</a> o<a href=\"https://chat.yunohost.org/\">sulla chat</a> per risolvere la situazione, o segnala un bug <a href=\"https://github.com/YunoHost/issues\">sul bugtracker</a>.",
|
||||
"error_message": "Messaggio d'errore:"
|
||||
},
|
||||
"api": {
|
||||
"query_status": {
|
||||
"warning": "Completato con errori o alert",
|
||||
"success": "Completato con successo",
|
||||
"pending": "In corso",
|
||||
"error": "Fallito"
|
||||
},
|
||||
"processing": "Il server sta processando la richiesta…",
|
||||
"partial_logs": "[…] (controlla i log completi nella cronologia)",
|
||||
"reconnecting": {
|
||||
"title": "Sto cercando di comunicare con il server…",
|
||||
"failed": "Sembra che il server non stia rispondendo. Puoi riprovare a collegarti oppure prova a dare il comando `systemctl restart yunohost-api` da ssh.",
|
||||
"reason": {
|
||||
"shutdown": "Il tuo server si sta spegnendo e non è più raggiungibile. Accendilo nuovamente e un prompt di login sarà visualizzato appena il server tornerà raggiungibile.",
|
||||
"unknown": "La connessione al server è stata interrotta per ragioni sconosciute.",
|
||||
"reboot": "Il tuo server si sta riavviando e non sarà raggiungibile per un po'. Il prompt per il login sarà disponibile non appena il server diventerà raggiungibile.",
|
||||
"upgrade_system": "La connessione al server è stata chiusa per un aggiornamento di YunoHost. Attendi che il server sia nuovamente raggiungibile…"
|
||||
},
|
||||
"success": "Il server è nuovamente raggiungibile! Puoi provare a fare il login"
|
||||
}
|
||||
},
|
||||
"address": {
|
||||
"local_part_description": {
|
||||
"email": "Scegli il nome dell'indirizzo mail.",
|
||||
"domain": "Scegli un sottodominio."
|
||||
},
|
||||
"domain_description": {
|
||||
"email": "Seleziona un dominio per la tua email.",
|
||||
"domain": "Scegli un dominio."
|
||||
}
|
||||
},
|
||||
"cancel": "Annulla",
|
||||
"human_routes": {
|
||||
"users": {
|
||||
"update": "Aggiorna utente '{name}'",
|
||||
"delete": "Elimina utente '{name}'",
|
||||
"create": "Crea utente '{name}'"
|
||||
},
|
||||
"upgrade": {
|
||||
"app": "Aggiorna l'app '{app}'",
|
||||
"apps": "Aggiorna tutte le app",
|
||||
"system": "Aggiorna il sistema"
|
||||
},
|
||||
"update": "Controlla aggiornamenti",
|
||||
"shutdown": "Spegni il server",
|
||||
"share_logs": "Genera link per il log '{name}'",
|
||||
"services": {
|
||||
"stop": "Ferma il servizio '{name}'",
|
||||
"start": "Avvio il servizio '{name}'",
|
||||
"restart": "Riavvia il servizio '{name}'"
|
||||
},
|
||||
"reboot": "Riavvia il server",
|
||||
"postinstall": "Esegui il post-install",
|
||||
"permissions": {
|
||||
"remove": "Rimuovi l'accesso per '{perm}' a '{name}'",
|
||||
"add": "Permetti a '{name}' di accedere a '{perm}'"
|
||||
},
|
||||
"migrations": {
|
||||
"skip": "Salta migrazioni",
|
||||
"run": "Esegui migrazioni"
|
||||
},
|
||||
"groups": {
|
||||
"remove": "Rimuovi '{user}' dal gruppo '{name}'",
|
||||
"add": "Aggiungi '{user}' al gruppo '{name}'",
|
||||
"delete": "Elimina gruppo '{name}'",
|
||||
"create": "Crea gruppo '{name}'"
|
||||
},
|
||||
"firewall": {
|
||||
"upnp": "{action} UPnP",
|
||||
"ports": "{action} porta {port} ({protocol}, {connection})"
|
||||
},
|
||||
"domains": {
|
||||
"set_default": "Imposta '{name}' come dominio di default",
|
||||
"delete": "Elimina dominio '{name}'",
|
||||
"add": "Aggiungi dominio '{name}'",
|
||||
"push_dns_changes": "Sincronizza i record DNS al registrar per '{name}'",
|
||||
"update_config": "Aggiorna il pannello ‘{id}’ della configurazione del dominio ‘{name}’",
|
||||
"cert_renew": "Rinnova il certificato per ‘{name}’",
|
||||
"cert_install": "Installa il certificato per ‘{name}’"
|
||||
},
|
||||
"diagnosis": {
|
||||
"unignore": {
|
||||
"warning": "Non ignorare avviso",
|
||||
"error": "Non ignorare errore"
|
||||
},
|
||||
"run_specific": "Esegui diagnosi '{description}'",
|
||||
"run": "Esegui diagnosi",
|
||||
"ignore": {
|
||||
"warning": "Ignora avviso",
|
||||
"error": "Ignora errore"
|
||||
}
|
||||
},
|
||||
"backups": {
|
||||
"restore": "Ripristina backup '{name}'",
|
||||
"delete": "Elimina backup '{name}'",
|
||||
"create": "Crea backup"
|
||||
},
|
||||
"apps": {
|
||||
"update_config": "Aggiorna il pannello ‘{id}’ della configurazione dell’app ‘{name}’",
|
||||
"uninstall": "Disinstalla l'app '{name}'",
|
||||
"set_default": "Reindirizza la domain root di '{domain}' a '{name}'",
|
||||
"install": "Installa l'app '{name}'",
|
||||
"change_url": "Cambia l'URL d'accesso di '{name}'",
|
||||
"change_label": "Cambia label da '{prevName}' a '{nextName}'",
|
||||
"dismiss_notification": "Nascondi la notifica per ‘{name}’",
|
||||
"action_config": "Esegui l’azione ‘{action}’ della configurazione dell’app ‘{name}’"
|
||||
},
|
||||
"reconnecting": "Riconnessione",
|
||||
"settings": {
|
||||
"update": "Aggiorna le impostazioni globali di ‘{panel}’"
|
||||
}
|
||||
},
|
||||
"postinstall": {
|
||||
"force": "Forza il post-install",
|
||||
"title": "Post-installazione",
|
||||
"user": {
|
||||
"title": "Crea il primo utente amministratore",
|
||||
"first_user_help": "Questo utente avrà privilegi da amministratore e gli sarà permesso di connettersi sia a quest’interfaccia di amministrazione chee direttamente al server via SSH.\nPoiché si tratta di un utente normale, potrà anche connettersi al portale utente (SSO) con le sue credenziali.\nQuando la post-installazione sarà completa, potrai creare altri utenti amministratori aggiungendoli al gruppo ‘amministratori’."
|
||||
}
|
||||
},
|
||||
"items_verbose_items_left": "Ci sono {items} oggetti rimasti. | C’è un {items} rimasto | Ci sono {items} rimasti.",
|
||||
"hook_data_xmpp_desc": "Configurazioni utenti e stanze, upload file",
|
||||
"hook_data_xmpp": "Dati XMPP",
|
||||
"hook_conf_manually_modified_files": "Configurazioni modificate manualmente",
|
||||
"hook_conf_ynh_settings": "Configurazioni YunoHost",
|
||||
"confirm_group_add_access_permission": "Sei sicuro di voler concedere l'accesso {perm} a {name}? Questo accesso aumenta significativamente la superficie di attacco nel caso {name} fosse una persona malevola. Dovresti effettuare quest'azione solo se hai FIDUCIA in questa persona/gruppo.",
|
||||
"app_install_parameters": "Parametri installazione",
|
||||
"domain": {
|
||||
"config": {
|
||||
"edit": "Modifica la configurazione del dominio",
|
||||
"title": "Configurazione del dominio"
|
||||
},
|
||||
"dns": {
|
||||
"push": "Invia records DNS al registrar",
|
||||
"push_force": "Sovrascivi records esistenti",
|
||||
"push_force_confirm": "Sei sicuro di voler impostare tutti i records dns suggeriti? Sii consapevole che potresti sovrascrivere records predefiniti importanti o impostati manualmente da te o dal tuo registrar.",
|
||||
"auto_config": "Configurazione automatica dei records DNS",
|
||||
"auto_config_ignored": "ignorato, non verrà cambiato da YunoHost a meno che non selezioni l'opzione di sovrascrittura",
|
||||
"auto_config_ok": "La configurazione automatica sembra essere a posto!",
|
||||
"auto_config_zone": "Zona DNS corrente",
|
||||
"edit": "Modifica la configurazione DNS",
|
||||
"manual_config": "Records DNS suggeriti per la configurazione manuale",
|
||||
"info": "La configurazione automatica dei records DNS e una funzione sperimentale. <br>Considera il salvataggio della tua zona DNS corrente dall'interfaccia del tuo registrar DNS prima di impostare records da qui.",
|
||||
"push_force_warning": "Sembra che alcuni records DNS che YunoHost avrebbe impostato, sono già presenti nella configurazione del registrar. Puoi usare l'opzione sovrascrivi se sai ciò che stai facendo.",
|
||||
"methods": {
|
||||
"semi_auto": "Semi-automatico",
|
||||
"manual": "Manuale",
|
||||
"none": "Nessuno",
|
||||
"handled_in_parent": "Gestito nel dominio genitore",
|
||||
"auto": "Automatico"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"apps_on_domain": "App installate in questo dominio",
|
||||
"dyn_dns_remove_and_unsubscribe": "De-registra inoltre il dominio dal servizio DynDNS di YunoHost",
|
||||
"certificate_authority": "Autorità di certificazione SSL",
|
||||
"registrar": "Registro"
|
||||
},
|
||||
"add": {
|
||||
"dyn_dns_password": "Password per il recupero del dominio",
|
||||
"dyn_dns_password_desc": "Questa password ti permetterà di recuperare il controllo del dominio qualora scegliessi di reinstallare il tuo sistema in un secondo momento. Se hai già registrato questo dominio in precedenza, usa qui la tua password di recupero per riottenerlo.",
|
||||
"from_local": "Voglio un dominio per uso locale/solo test",
|
||||
"from_yunohost_desc": "Il progetto YunoHost mantiene un servizio “DynDNS” gratuito. È limitato a un dominio per server (anche se puoi anche aggiungere sottodomini successivamente, usando l’opzione “Aggiungi un dominio o un sottodominio che possiedo” qui sopra). La configurazione DNS sarà gestita da YunoHost. Quest’opzione è l’ideale per esordire nel self-hosting e se non vuoi investire in un nome dominio per il momento. Tuttavia, nel medio/lungo termine raccomandiamo di acquistare il tuo nome dominio da un registrar, per avere un controllo completo del tuo dominio.",
|
||||
"from_local_desc": "Se non vuoi un “vero” nome di dominio pubblico, puoi usare qualunque cosa che termini con <code>.local</code> o <code>.test</code>. I nomi dominio che terminano con <code>.local</code> sono speciali perché possono essere risolti automaticamente dal network locale, assumendo che i client supportino il protocollo Bonjour. Alternativamente potresti dover modificare il file <code>/etc/hosts</code> (o l’equivalente di Windows) su ogni client da cui desideri utilizzare questo dominio, o dover configurare parametri DNS locali sul tuo router internet.",
|
||||
"from_registrar": "Vorrei aggiungere un dominio o un sottodominio che possiedo",
|
||||
"from_registrar_desc": "Dovrai configurare manualmente i registri DNS sul tuo registrar per finalizzare la configurazione di questo dominio. La diagnosi di YunoHost ti guiderà per individuare quali registri DNS devi configurare.",
|
||||
"from_yunohost": "Non possiedo un dominio, voglio registrare/usare un dominio DynDNS gratuito, offerto dal progetto YunoHost"
|
||||
},
|
||||
"toggle_subdomains": "Attiva o disattiva i sottodomini",
|
||||
"types": {
|
||||
"main_domain": "Dominio principale"
|
||||
},
|
||||
"explain": {
|
||||
"main_domain": "Il dominio principale è il dominio da cui gli utenti possono connettersi al portale (via “{domain}/yunohost/sso”).<br>Per questa ragione non è possibile eliminarlo.<br>Se vuoi eliminare “{domain}”, devi prima scegliere o aggiungere un altro dominio come principale."
|
||||
},
|
||||
"cert": {
|
||||
"valid_for": "Valido per {days}",
|
||||
"types": {
|
||||
"selfsigned": "Auto-verificato",
|
||||
"other": "Altro/Sconosciuto",
|
||||
"letsencrypt": "Let’s Encrypt"
|
||||
}
|
||||
},
|
||||
"see_parent_domain": "Vedi il dominio genitore"
|
||||
},
|
||||
"users_import_csv_file_desc": "Il file CSV dovrebbe essere in UTF-8 e con le colonne username, password , gruppi, email e quota. Per avere un esempio di un file CSV da importare, puoi <a href='/yunohost/api/users/export' target='_blank'>esportare i tuoi attuali utenti in un file CSV</a> e modificarlo.",
|
||||
"users_import_delete_others": "Elimina utenti non in lista",
|
||||
"domain_dns_push_failed_to_authenticate": "L’autenticazione sull’API del registrar è fallita. È probabile che le <a href='#/domains/{domain}/config'>credenziali</a> non siano corrette. (Errore: {error})",
|
||||
"domain_dns_push_managed_in_parent_domain": "Il settaggio automatico dei DNS record è gestita nel dominio genitore <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>.",
|
||||
"users_import_confirm_destructive": "Sei sicurə di voler eliminare gli utenti che non sono presenti in questo file?",
|
||||
"yunohost_admin": "Amministratore di YunoHost",
|
||||
"users_import": "Importa utenti",
|
||||
"users_export": "Esporta utenti",
|
||||
"users_import_csv_file": "File CSV",
|
||||
"users_import_update": "Aggiorna gli utenti esistenti",
|
||||
"users_import_delete": "Elimina gli utenti non in lista",
|
||||
"users_import_update_desc": "Se spuntato, tutti gli utenti contenuti nel file CSV saranno aggiornati con il nuovo valore",
|
||||
"domain_dns_push_not_applicable": "Il settaggio automatico dei record DNS non è applicabile al dominio {domain},<br>Dovresti configurare i tuoi record DNS seguendo la <a href='https://yunohost.org/dns'>documentazione</a> e la configurazione suggerita qui sotto.",
|
||||
"text_selection_is_disabled": "La selezione del testo è disabilitata. Se vuoi condividere questo log, sei pregato di condividere il log *interamente*, tramite il bottone 'condividi con Yunopaste'.<br/><small>Oppure, se vuoi proprio proprio selezionare il testo, premi i tasti: ↓↓↑↑.</small>",
|
||||
"users_import_delete_desc": "Se spuntato, tutti gli utenti esistenti che non sono nel file CSV saranno eliminati (e espulsi).",
|
||||
"retry": "Riprova",
|
||||
"app_state_broken_explanation": "Questa applicazione è attualmente non funzionante e quindi non installabile secondo i controlli automatici di YunoHost",
|
||||
"confirm_install_app_broken": "ATTENZIONE! Questa applicazione non è funzionante secondo i controlli automatici di YunoHost e quindi potrebbe rovinare il vostro sistema! Probabilmente NON dovreste installarla a meno che non sappiate cosa state facendo. Volete prendervi questo rischio?",
|
||||
"app": {
|
||||
"doc": {
|
||||
"notifications": {
|
||||
"understood": "Ho capito",
|
||||
"title": "Notifiche",
|
||||
"post_upgrade": "Note post-aggiornamento",
|
||||
"post_install": "Note post-installazione"
|
||||
},
|
||||
"about": {
|
||||
"title": "Altro su",
|
||||
"description": "Descrizione"
|
||||
},
|
||||
"admin": {
|
||||
"title": "Documentazione admin"
|
||||
}
|
||||
},
|
||||
"antifeatures": "Questa app ha funzionalità che potrebbero non piacerti:",
|
||||
"info": {
|
||||
"forum": "Cerca o domanda sul forum!",
|
||||
"problem": "Un problema con quest'app?",
|
||||
"config_panel_error_please_report": "Per favore, segnala questo errore al team di YunoHost, perché sia risolto!",
|
||||
"config_panel_error": "Un errore impedisce di mostrare il pannello di configurazione:"
|
||||
},
|
||||
"install": {
|
||||
"license": "Licenza: {license}",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"title": "Notifiche successive all'installazione di '{name}'",
|
||||
"alert": "Sembra che l’installazione abbia funzionato!\nEcco alcune notifiche che la persona che ha creato il pacchetto considera importante conoscere.\nPuoi leggerle di nuovo nella pagina di informazione dell’applicazione."
|
||||
},
|
||||
"pre": {
|
||||
"warning": "Ciò che occorre sapere prima dell'installazione",
|
||||
"danger": "L'installazione dell'applicazione determinerà molto probabilmente dei problemi",
|
||||
"critical": "L'applicazione non può essere installata"
|
||||
}
|
||||
},
|
||||
"problems": {
|
||||
"arch": "Questa applicazione può essere installata solo su architetture specifiche ({required}), ma l'architettura del tuo server è {current}.",
|
||||
"broken": "Questa applicazione è guasta secondo le verifiche automatiche di YunoHost ed è probabile che guasti il tuo sistema! Probabilmente NON dovresti installarla a meno che sappia ciò che stai facendo.",
|
||||
"ignore": "Capisco che questa installazione può guastare il mio sistema, ma voglio provare comunque.",
|
||||
"inprogress": "Questa applicazione è ancora sperimentale (non funziona ancora alla perfezione) ed è probabile che guasti il tuo sistema! Probabilmente NON dovresti installarla a meno che tu non sappia cosa stai facendo.",
|
||||
"install": "È già installato e non può essere installato più di una volta.",
|
||||
"version": "Quest’applicazione richiede YunoHost ≥ {required}, ma la versione attualmente installata è {current}. Considera di aggiornare YunoHost, prima.",
|
||||
"lowquality": "Anche se quest’applicazione funziona, non è ben integrata in YunoHost. Alcune funzionalità, come single sign-on e backup/recupero potrebbero non essere disponibili, oppure l’applicazione potrebbe non rispettare buone pratiche.",
|
||||
"ram": "Quest’applicazione richiede {required} di RAM per l’installazione o l’aggiornamento, ma solo {current} sono disponibili al momento. Anche se l’app può funzionare, il suo processo d’installazione richiede una grande quantità di RAM, perciò il tuo server potrebbe bloccarsi e fallire miseramente.",
|
||||
"thirdparty": "Quest’applicazione non è parte del catalogo ufficiale di YunoHost. Installare applicazioni di terze parti potrebbe compromettere l’integrità e la sicurezza del tuo sistema. NON dovresti installarla se non sei sicurə di ciò che stai facendo."
|
||||
},
|
||||
"try_demo": "Prova la demo",
|
||||
"version": "Versione corrente: {version}"
|
||||
},
|
||||
"open_this_app": "Apri quest’app",
|
||||
"integration": {
|
||||
"ldap": {
|
||||
"true": "Usa gli account YunoHost per l’accesso (LDAP)",
|
||||
"?": "Nessuna informazione riguardo all’integrazione LDAP",
|
||||
"false": "Non usa gli account YunoHost per l’accesso (LDAP)"
|
||||
},
|
||||
"sso": {
|
||||
"true": "Il sign-on singolo è disponibile (SSO)",
|
||||
"?": "Nessuna informazione riguardo all’integrazione SSO",
|
||||
"false": "Il sign-on singolo non è disponibile (SSO)"
|
||||
},
|
||||
"archs": "Architetture supportate:",
|
||||
"multi_instance": {
|
||||
"false": "Può essere installata solo una volta",
|
||||
"true": "Può essere installata più volte"
|
||||
},
|
||||
"resources": "Utilizzo di risorse tipico: {ram} RAM, {disk} disco",
|
||||
"title": "Integrazione con YunoHost"
|
||||
},
|
||||
"links": {
|
||||
"package": "Repository dei pacchetti di YunoHost",
|
||||
"title": "Collegamenti",
|
||||
"userdoc": "Documentazione ufficiale per gli utenti",
|
||||
"website": "Sito web ufficiale",
|
||||
"admindoc": "Documentazione Admin ufficiale",
|
||||
"code": "Repository ufficiale del codice sorgente",
|
||||
"license": "Licenza dell’app",
|
||||
"forum": "Argomenti collegati a quest’app nel forum di YunoHost",
|
||||
"package_license": "Licenza del pacchetto YunoHost"
|
||||
},
|
||||
"upgrade": {
|
||||
"confirm": {
|
||||
"apps": "Applicazioni che saranno aggiornate",
|
||||
"title": "Conferma l’aggiornamento delle app"
|
||||
},
|
||||
"continue": "Continua all’app successiva",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"title": "Notifiche post-aggiornamento per ‘{name}’",
|
||||
"alert": "Sembra che l’aggiornamento sia andato bene!\nEcco alcune notifiche che la persona che ha creato il pacchetto considera importanti riguardo a questo aggiornamento.\nPotrai leggerle nuovamente nella pagina di informazioni dell’app."
|
||||
},
|
||||
"pre": {
|
||||
"alert": "Dovresti controllare queste notifiche prima di aggiornare, potrebbero esserci cose importanti da sapere.",
|
||||
"title": "Attenzione!"
|
||||
}
|
||||
},
|
||||
"stop": "Annulla i prossimi aggiornamenti di app"
|
||||
},
|
||||
"installed_version": "Versione installata:",
|
||||
"potential_alternative_to": "Potenziale alternativa a:",
|
||||
"uninstall": {
|
||||
"purge_desc": "Rimuovi la directory dei dati associati all’app (solitamente, si tratta di dati che hai caricato tu stessə usando l’app)."
|
||||
}
|
||||
},
|
||||
"wrong_password_or_username": "Password o username sbagliati",
|
||||
"manage_groups": "Gestisci i gruppi",
|
||||
"tools_yunohost_settings": "Impostazioni di YunoHost",
|
||||
"app_state_broken": "rottə",
|
||||
"details_about": "Mostra maggiori dettagli riguardo a {subject}",
|
||||
"group_explain_admins": "Questo è un gruppo speciale, che corrisponde agli utenti amministratori. Gli utenti di questo gruppo possono accedere all’interfaccia di amministrazione web di YunoHost, connettersi al server tramite SSH e usare il comando `sudo`. Inoltre, ricevono le email inviate a root@, admin@ e admins@, come le notifiche di diagnosi. Dovresti aggiungere a questo gruppo solo persone di cui ti fidi completamente!",
|
||||
"group_admins": "Amministratori",
|
||||
"important_yunohost_upgrade": "Un importante aggiornamento di YunoHost è importante. È fortemente raccomandato di leggere attentamente le note di rilascio sul forum, prima di aggiornare: <a href='https://forum.yunohost.org/tag/ynh_release'>Visita le note di rilascio sul forum</a>",
|
||||
"label_for_manifestname_help": "Questo è il nome mostrato nel portale dell’utente. Potrà essere cambiato in seguito."
|
||||
}
|
680
app/src/i18n/locales/ja.json
Normal file
|
@ -0,0 +1,680 @@
|
|||
{
|
||||
"action": "アクション",
|
||||
"add": "追加",
|
||||
"address": {
|
||||
"domain_description": {
|
||||
"domain": "ドメインを選択してください。",
|
||||
"email": "メールアドレス用ドメインを選択してください。"
|
||||
},
|
||||
"local_part_description": {
|
||||
"domain": "サブドメインを選択してください。",
|
||||
"email": "電子メールのローカルパート(@の右側)を選択してください。"
|
||||
}
|
||||
},
|
||||
"administration_password": "管理用パスワード",
|
||||
"all": "すべて",
|
||||
"all_apps": "すべてのアプリ",
|
||||
"api": {
|
||||
"partial_logs": "[…] (詳細ログで履歴を確認)",
|
||||
"processing": "サーバーはアクションを実行中です…",
|
||||
"query_status": {
|
||||
"error": "失敗",
|
||||
"pending": "実行中",
|
||||
"success": "成功",
|
||||
"warning": "成功(エラーまたは警告あり)"
|
||||
},
|
||||
"reconnecting": {
|
||||
"reason": {
|
||||
"shutdown": "サーバーがシャットダウン中のため、接続できません。サーバーの電源をオンにし、起動後にログイン画面が利用可能になります。",
|
||||
"unknown": "原因は不明ですが、サーバーとの接続が切断されました。",
|
||||
"upgrade_system": "YunoHostのアップグレードのためサーバーとの接続が切断されました。サーバーが再度利用可能になるまでお待ちください…",
|
||||
"reboot": "サーバーが再起動中のため、接続が途切れることがあります。再起動後、すぐにログイン画面が利用可能になります。"
|
||||
},
|
||||
"success": "サーバーが利用可能になりました!ログインが可能です",
|
||||
"title": "サーバーと通信中…",
|
||||
"failed": "サーバーが応答していないようです。再接続するか、SSH経由で`systemctl restart yunohost-api`を実行してみてください。"
|
||||
}
|
||||
},
|
||||
"api_error": {
|
||||
"error_message": "エラーメッセージ:",
|
||||
"info": "以下の情報はあなたの状況を周りに伝えるのに役立ちます:",
|
||||
"server_said": "アクションの実行中にサーバーが生成したメッセージ:",
|
||||
"sorry": "申し訳ありません。",
|
||||
"view_error": "ビューエラー",
|
||||
"help": "ヘルプが必要ですか? <a href=\"https://forum.yunohost.org/\">フォーラム</a> または <a href=\"https://chat.yunohost.org/\">チャット</a> をご利用ください。もしバグを報告したい場合は <a href=\"https://github.com/YunoHost/issues\">バグトラッカー</a>にどうぞ。"
|
||||
},
|
||||
"api_errors_titles": {
|
||||
"APIBadRequestError": "YunoHostにエラーが発生しました",
|
||||
"APIConnexionError": "YunoHostに接続エラーが発生しました",
|
||||
"APIError": "YunoHostに予期しないエラーが発生しました",
|
||||
"APIInternalError": "YunoHostに内部エラーが発生しました",
|
||||
"APINotFoundError": "YunoHost APIはルートを見つけることができませんでした",
|
||||
"APINotRespondingError": "YunoHost APIが応答していません"
|
||||
},
|
||||
"api_not_responding": "YunoHost APIは応答していません。'yunohost-api'が停止しているか、再起動中ではありませんか?",
|
||||
"api_waiting": "サーバーの応答を待っています…",
|
||||
"app": {
|
||||
"installed_version": "インストール済バージョン:",
|
||||
"open_this_app": "このアプリを開く",
|
||||
"antifeatures": "このアプリはあなたが気に入らないかもしれない機能を持っています:",
|
||||
"doc": {
|
||||
"about": {
|
||||
"title": "YunoHostについて",
|
||||
"description": "説明"
|
||||
},
|
||||
"admin": {
|
||||
"title": "管理者ドキュメント"
|
||||
},
|
||||
"notifications": {
|
||||
"understood": "了解",
|
||||
"title": "通知",
|
||||
"post_upgrade": "アップグレード後のお知らせ",
|
||||
"post_install": "アップグレード後のお知らせ"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"forum": "フォーラムで検索するか、相談してください!",
|
||||
"config_panel_error": "設定パネル表示を妨げるエラー:",
|
||||
"problem": "このアプリに問題がありましたか?",
|
||||
"config_panel_error_please_report": "YunoHostチームにこのエラーを報告して修正してもらいましょう!"
|
||||
},
|
||||
"install": {
|
||||
"license": "ライセンス: {license}",
|
||||
"notifs": {
|
||||
"post": {
|
||||
"title": "インストール後の通知 - '{name}'",
|
||||
"alert": "インストールが成功したようです!\n パッケージ作成者が重要と指定したいくつかの通知があります。\nこの通知はアプリの情報ページからも確認できます。"
|
||||
},
|
||||
"pre": {
|
||||
"danger": "このアプリケーションをインストールすると問題が発生する可能性が高まります",
|
||||
"warning": "インストール前に知っておくべきこと",
|
||||
"critical": "アプリケーションはインストールできません"
|
||||
}
|
||||
},
|
||||
"problems": {
|
||||
"thirdparty": "このアプリケーションは、YunoHostの公式カタログの一部ではありません。サードパーティのアプリケーションをインストールすると、システムの整合性とセキュリティが損なわれる可能性があります。あなたが何をやろうとしているか十分に理解していないのであれば、インストールをするべきではありません。",
|
||||
"install": "すでにインストールされており、複数回インストールすることはできません。",
|
||||
"ram": "このアプリケーションのインストール/アップグレードには{required}のRAMが必要ですが、現在利用可能なのは{current}です。このアプリが実行できたとしても、インストールには大量のRAMが必要なため、サーバーがフリーズして失敗する可能性があります。",
|
||||
"version": "このアプリケーションは YunoHost >= {required} を要求していますが、現在インストールされているバージョンは{current}です。",
|
||||
"arch": "このアプリは特定のアーキテクチャ({required})でしかインストールできません。あなたのアーキテクチャは{current}です。",
|
||||
"broken": "YunoHostの自動テストにより、このアプリケーションは破損しており、インストールすることでシステムが壊れる可能性が高いと判断されました!あなたが何をやろうとしているか十分に理解していないのであれば、インストールをするべきではありません。",
|
||||
"ignore": "インストールすることで私のシステムが壊れるかもしれないことは理解していますが、それでも試します。",
|
||||
"inprogress": "このアプリケーションはまだ実験的なものであり(明確に動作しないわけではありませんが)、あなたのシステムを壊す可能性があります!あなたが何をやろうとしているか十分に理解していないのであれば、インストールをするべきではありません。",
|
||||
"lowquality": "このアプリケーションは動作するかもしれませんが、YunoHostへ十分に統合されていません。シングルサインオンやバックアップ/リストアなど一部の機能は利用できないか、グッドプラクティスに沿わない可能性があります。"
|
||||
},
|
||||
"try_demo": "デモを試す",
|
||||
"version": "現在のバージョン: {version}"
|
||||
},
|
||||
"integration": {
|
||||
"archs": "サポートするアーキテクチャ:",
|
||||
"ldap": {
|
||||
"false": "YunoHostアカウントをログインに利用しない(LDAP)",
|
||||
"true": "YunoHostアカウントをログインに利用する(LDAP)",
|
||||
"?": "LDAP統合の情報がありません"
|
||||
},
|
||||
"multi_instance": {
|
||||
"false": "インストールは一度しか行えません",
|
||||
"true": "複数回インストールすることが可能"
|
||||
},
|
||||
"resources": "一般的なリソース消費: {ram} RAM, {disk} disk",
|
||||
"sso": {
|
||||
"true": "シングルサインオン(SSO)は利用可能",
|
||||
"?": "シングルサインオン(SSO)統合の情報がありません",
|
||||
"false": "シングルサインオン(SSO)は利用可能ではありません"
|
||||
},
|
||||
"title": "YunoHost統合"
|
||||
},
|
||||
"links": {
|
||||
"admindoc": "公式管理者ドキュメント",
|
||||
"code": "公式コードレポジトリ",
|
||||
"package": "YunoHost パッケージ レポジトリ",
|
||||
"title": "リンク",
|
||||
"userdoc": "公式ユーザードキュメント",
|
||||
"website": "公式ウェブサイト",
|
||||
"license": "ライセンス",
|
||||
"forum": "このアプリに関するYunoHostフォーラム上の話題"
|
||||
},
|
||||
"potential_alternative_to": "代替できるかも:",
|
||||
"upgrade": {
|
||||
"confirm": {
|
||||
"title": "アプリをアップグレードする",
|
||||
"apps": "アップグレードされるアプリ"
|
||||
},
|
||||
"continue": "次のアプリに続ける",
|
||||
"notifs": {
|
||||
"pre": {
|
||||
"title": "警告!",
|
||||
"alert": "アップグレード前にそれらの通知を確認するべきです。重要な情報が記載されているかもしれません。"
|
||||
},
|
||||
"post": {
|
||||
"title": "アップグレード後の通知 - '{name}'",
|
||||
"alert": "アップグレードはうまくいったようです!\n パッケージ製作者がこのアップグレードで重要と考えている事項について、通知があります。\nこの通知はアプリの情報ページからも確認できます。"
|
||||
}
|
||||
},
|
||||
"stop": "次のアプリのアップグレードをキャンセルする"
|
||||
}
|
||||
},
|
||||
"app_info_change_url_disabled_tooltip": "この機能はまだアプリに実装されていません",
|
||||
"app_info_default_desc": "このアプリケーションへリダイレクトするドメインルート ({domain})。",
|
||||
"app_install_custom_no_manifest": "manifest.jsonファイルがありません",
|
||||
"app_install_parameters": "インストール設定",
|
||||
"app_make_default": "デフォルトにする",
|
||||
"app_manage_label_and_tiles": "ラベルとタイトルを管理する",
|
||||
"app_show_categories": "カテゴリを表示",
|
||||
"app_state_broken": "壊れている",
|
||||
"app_state_broken_explanation": "このアプリケーションは現在壊れており、YunoHostの自動テストによるとインストール不能です",
|
||||
"app_state_highquality_explanation": "このアプリは(少なくとも)昨年からYunoHostとよく統合されています。",
|
||||
"app_state_inprogress": "まだ動いていない",
|
||||
"app_state_inprogress_explanation": "このアプリのメンテナーは、このアプリケーションはまだ実環境(production)での利用に十分備えられていないとしています。ご注意ください!",
|
||||
"app_state_lowquality": "低品質",
|
||||
"app_state_lowquality_explanation": "このアプリはおそらく動きますが、問題があるか、全ての機能がYunoHostと統合されておらず、グッドプラクティスに沿わないでしょう。",
|
||||
"applications": "アプリケーション",
|
||||
"archive_empty": "空のアーカイブ",
|
||||
"backup": "バックアップ",
|
||||
"backup_action": "バックアップ",
|
||||
"backup_content": "コンテンツをバックアップ",
|
||||
"backup_create": "バックアップする",
|
||||
"backup_new": "新しいバックアップ",
|
||||
"begin": "始める",
|
||||
"both": "両方",
|
||||
"cancel": "キャンセル",
|
||||
"catalog": "カタログ",
|
||||
"certificate": "証明書",
|
||||
"certificate_manage": "SSL証明書を管理",
|
||||
"close": "閉じる",
|
||||
"common": {
|
||||
"firstname": "名前",
|
||||
"lastname": "苗字"
|
||||
},
|
||||
"configuration": "設定",
|
||||
"confirm_app_change_url": "このアプリのアクセスURLを変更してよいですか?",
|
||||
"confirm_app_default": "このアプリをデフォルトに変更してよろしいですか?",
|
||||
"confirm_app_install": "このアプリケーションをインストールしますか?",
|
||||
"confirm_change_maindomain": "メインドメインを変更してもよろしいですか?",
|
||||
"confirm_firewall_disallow": "閉鎖してもよろしいですか? port {port} (protocol: {protocol}, connection: {connection})",
|
||||
"confirm_install_app_broken": "警告!このアプリケーションはYunoHostの自動テストによると壊れており、あなたのシステムを壊す可能性があります!あなたが何をやろうとしているか十分に理解していないのであれば、インストールをするべきではありません。リスクを承知で実行しますか?",
|
||||
"confirm_install_app_lowquality": "警告: このアプリケーションはおそらく動きますが、YunoHostとよく統合されていません。いくつかの機能(シングルサインオン、バックアップ/リストアなど)はおそらく使えません。",
|
||||
"confirm_install_domain_root": "このアプリを'/'(root)にインストールしてもよろしいですか?その場合、 {domain} に対して他のアプリをインストールできなくなります",
|
||||
"confirm_migrations_skip": "マイグレーションをスキップすることは推奨されません。スキップしてもよろしいですか?",
|
||||
"confirm_postinstall": "ドメイン {domain} のインストール後処理を開始しようとしています。数分かかりますので、 *処理を中断しないでください*。",
|
||||
"confirm_reboot_action_reboot": "サーバーを再起動してもよろしいですか?",
|
||||
"confirm_reboot_action_shutdown": "サーバーをシャットダウンしてもよろしいですか?",
|
||||
"confirm_restore": "{name} をリストアしてもよろしいですか?",
|
||||
"confirm_service_restart": "{name} を再起動してもよろしいですか?",
|
||||
"confirm_service_start": "{name} を開始してもよろしいですか?",
|
||||
"confirm_service_stop": "{name} を停止してもよろしいですか?",
|
||||
"confirm_uninstall": "{name} をアンインストールしてもよろしいですか?",
|
||||
"confirm_upnp_enable": "UPnPを有効化してもよろしいですか?",
|
||||
"confirm_update_apps": "全てのアプリケーションをアップデートしてもよろしいですか?",
|
||||
"confirm_upnp_disable": "UPnPを無効化してもよろしいですか?",
|
||||
"connection": "コネクション",
|
||||
"created_at": "作成時刻",
|
||||
"custom_app_install": "カスタムアプリをインストール",
|
||||
"day_validity": " 期限切れ | 1日 | {count} 日",
|
||||
"dead": "非アクティブ",
|
||||
"delete": "削除",
|
||||
"description": "説明",
|
||||
"details": "詳細",
|
||||
"diagnosis": "診断",
|
||||
"disable": "無効",
|
||||
"disabled": "無効化済み",
|
||||
"dns": "DNS",
|
||||
"domain": {
|
||||
"cert": {
|
||||
"types": {
|
||||
"letsencrypt": "Let's Encrypt",
|
||||
"other": "その他/不明",
|
||||
"selfsigned": "自己署名"
|
||||
},
|
||||
"valid_for": "あと {days} 日有効"
|
||||
},
|
||||
"config": {
|
||||
"edit": "ドメイン設定を編集する",
|
||||
"title": "ドメイン設定"
|
||||
},
|
||||
"dns": {
|
||||
"auto_config": "自動DNSレコード設定",
|
||||
"auto_config_ignored": "上書きオプションを有効にしない限り、YunoHostによって変更されることはありません",
|
||||
"auto_config_ok": "自動設定は問題ないようですね!",
|
||||
"auto_config_zone": "現在のDNSゾーン",
|
||||
"edit": "DNS設定を編集する",
|
||||
"manual_config": "手動設定用の推奨DNSレコード",
|
||||
"methods": {
|
||||
"auto": "自動的",
|
||||
"handled_in_parent": "親ドメインにて処理される",
|
||||
"manual": "手動",
|
||||
"none": "なし",
|
||||
"semi_auto": "半自動"
|
||||
},
|
||||
"push": "DNSレコードをレジスターに登録する",
|
||||
"push_force": "既存のレコードを上書きする",
|
||||
"push_force_warning": "既存のDNSレコードのうち、いくつかはYunoHostが登録したもののように見えます。何をやっているのか自分で理解しているのであれば、上書きオプションを利用することもできます。",
|
||||
"info": "DNSレコードの自動設定は実験的な機能です。<br>ここからレコードを操作する前に、DNSレジストラのインターフェイスから現在のDNSゾーンを保存することを検討してください。",
|
||||
"push_force_confirm": "提案された全てのDNSレコードを登録してもよろしいですか?この操作によりあなたが手動で登録したり、レジスターが登録した重要なレコードが上書きされる可能性があります。"
|
||||
},
|
||||
"info": {
|
||||
"apps_on_domain": "このドメインにインストールされているアプリ",
|
||||
"certificate_authority": "SSL認証局",
|
||||
"registrar": "レジスター"
|
||||
},
|
||||
"see_parent_domain": "親ドメインを見る",
|
||||
"toggle_subdomains": "サブドメインを切り替える",
|
||||
"types": {
|
||||
"main_domain": "メインドメイン"
|
||||
},
|
||||
"explain": {
|
||||
"main_domain": "メインドメインは、ユーザーがポータルに接続するためのドメインです(\"{domain}/yunohost/sso \"経由で)。<br>そのため、それを削除することはできません。<br>\"{domain}\"を削除したい場合は、まず別のドメインを選択または追加し、メインドメインとして設定する必要があります。"
|
||||
}
|
||||
},
|
||||
"domain_add": "ドメインを追加する",
|
||||
"domain_default_desc": "デフォルトドメインとは、ユーザーがログインするために接続するドメインです。",
|
||||
"domain_default_longdesc": "それはあなたのデフォルトドメインです。",
|
||||
"domain_delete_longdesc": "このドメインを削除する",
|
||||
"domain_dns_conf_is_just_a_recommendation": "このセクションでは、*推奨される*設定を示します。あなたのためにDNSを設定することは*ありません*。この推奨に従ってDNSレジストラでDNSゾーンを設定するのはあなたの責任です。",
|
||||
"domain_dns_config": "DNS設定",
|
||||
"domain_dns_longdesc": "DNS設定を見る",
|
||||
"domain_dns_push_failed_to_authenticate": "レジスターのAPI認証に失敗しました。おそらく <a href='#/domains/{domain}/config'>資格情報</a> が間違っていませんか? (Error: {error})",
|
||||
"domain_name": "ドメイン名",
|
||||
"domains": "ドメイン",
|
||||
"download": "ダウンロード",
|
||||
"enable": "有効か",
|
||||
"enabled": "有効化済み",
|
||||
"error": "エラー",
|
||||
"error_modify_something": "なにか編集しなければなりません",
|
||||
"error_server_unexpected": "予期せぬサーバーエラー",
|
||||
"everything_good": "問題なし!",
|
||||
"experimental": "実験的",
|
||||
"footer": {
|
||||
"donate": "寄付",
|
||||
"help": "ヘルプが必要ですか?",
|
||||
"documentation": "ドキュメント"
|
||||
},
|
||||
"footer_version": "Powered by <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
|
||||
"form_errors": {
|
||||
"alpha": "値はアルファベットである必要があります。",
|
||||
"alphalownumdot_": "値は小文字の英数字である必要があります。",
|
||||
"between": "値は{min}から{max}の間である必要があります。",
|
||||
"domain": "不正なドメイン名: 小文字の英数字、.(ドット)、-(ダッシュ)である必要があります",
|
||||
"dynDomain": "不正なドメイン名: 小文字の英数字、-(ダッシュ)である必要があります",
|
||||
"invalid_form": "フォームにエラーがあります。",
|
||||
"maxValue": "値は{max}より小さい必要があります。",
|
||||
"minValue": "値は{min}より大きい必要があります。",
|
||||
"email": "不正な電子メール: 小文字の英数字、<code>_.-</code> である必要があります (例: someone@example.com, s0me-1@example.com)",
|
||||
"emailForward": "不正な電子メール転送: 小文字の英数字、<code>_.-</code> である必要があります (例: someone+tag@example.com, s0me-1+tag@example.com)",
|
||||
"pattern": "{type}",
|
||||
"remote": "{message}",
|
||||
"required": "フィールドは必要です。",
|
||||
"appRepoUrl": "YunoHostアプリリポジトリのURLは次のようになります https://domain.tld/path/to/repo_ynh",
|
||||
"name": "名前に次の特殊文字を含めることはできません。 <code> ,.'-</code>",
|
||||
"notInUsers": "ユーザー '{value}' は既に存在します。",
|
||||
"passwordLenght": "パスワードは最低8文字必要です。",
|
||||
"passwordMatch": "パスワードが一致しません。",
|
||||
"number": "値は数値でなければなりません。"
|
||||
},
|
||||
"group": "グループ",
|
||||
"group_admins": "管理者",
|
||||
"group_visitors": "ビジター",
|
||||
"history": {
|
||||
"methods": {
|
||||
"DELETE": "削除",
|
||||
"GET": "読み取り",
|
||||
"POST": "作成/実行",
|
||||
"PUT": "編集"
|
||||
},
|
||||
"title": "履歴",
|
||||
"is_empty": "現在は履歴がありません。",
|
||||
"last_action": "最後のアクション:"
|
||||
},
|
||||
"home": "ホーム",
|
||||
"hook_data_mail": "メール",
|
||||
"human_routes": {
|
||||
"reconnecting": "再接続",
|
||||
"backups": {
|
||||
"delete": "バックアップを削除’する {name}'",
|
||||
"restore": "バックアップを復元する ‘{name}’",
|
||||
"create": "バックアップを作成する"
|
||||
},
|
||||
"domains": {
|
||||
"cert_install": "証明書 ‘{name}’ をインストールする",
|
||||
"cert_renew": "証明書 ‘{name}’ を再発行する",
|
||||
"delete": "ドメイン ‘{name}’ を削除する",
|
||||
"push_dns_changes": "‘{name}’ DNSレコードを登録する",
|
||||
"set_default": "‘{name}’ をデフォルトドメインに設定",
|
||||
"add": "ドメイン ‘{name}’ を追加する",
|
||||
"update_config": "ドメイン ’{name}’ の設定パネル ’{id}’ を更新"
|
||||
},
|
||||
"migrations": {
|
||||
"run": "移行を実行する",
|
||||
"skip": "移行をスキップする"
|
||||
},
|
||||
"reboot": "サーバーを再起動する",
|
||||
"services": {
|
||||
"restart": "サービス ‘{name}’ をリスタートする",
|
||||
"start": "サービス ‘{name}’ をスタートする",
|
||||
"stop": "サービス ‘{name}’ をストップする"
|
||||
},
|
||||
"shutdown": "サーバーをシャットダウンする",
|
||||
"update": "アップデートを確認する",
|
||||
"upgrade": {
|
||||
"app": "アプリ '{app}' をアップグレードする",
|
||||
"apps": "全てのアプリをアップグレードする",
|
||||
"system": "システムをアップグレードする"
|
||||
},
|
||||
"apps": {
|
||||
"action_config": "‘{name}’ アプリのアクション ’{action}' を実行する",
|
||||
"change_label": "ラベルを '{prevName}' から '{nextName}' に変更",
|
||||
"change_url": "'{name}' のアクセスURLを変更",
|
||||
"install": "アプリをインストール ‘{name}’",
|
||||
"set_default": "'{domain}' ドメインのルートを '{name}' にリダイレクト",
|
||||
"dismiss_notification": "'{name}' の通知を消去する",
|
||||
"uninstall": "アプリ ‘{name}’ を削除する",
|
||||
"update_config": "'{name}' の ‘{id}’ パネル設定をアップデートする"
|
||||
},
|
||||
"diagnosis": {
|
||||
"ignore": {
|
||||
"error": "エラーを無視する",
|
||||
"warning": "警告を無視する"
|
||||
},
|
||||
"run": "診断を実行する",
|
||||
"run_specific": "'{description}' 診断を実行する",
|
||||
"unignore": {
|
||||
"error": "エラーを無視しない",
|
||||
"warning": "警告を無視しない"
|
||||
}
|
||||
},
|
||||
"groups": {
|
||||
"add": "'{user}' をグループ '{name}' に追加",
|
||||
"create": "グループ ‘{name}’ を作成する",
|
||||
"delete": "グループ ‘{name}’ を削除する",
|
||||
"remove": "'{user}' をグループ '{name}' から削除する"
|
||||
},
|
||||
"users": {
|
||||
"create": "ユーザー ‘{name}’ を作成する",
|
||||
"delete": "ユーザー ‘{name}’ を削除する",
|
||||
"update": "ユーザー ‘{name}’ を更新する"
|
||||
},
|
||||
"firewall": {
|
||||
"ports": "{action} ポート {port} ({protocol}, {connection})",
|
||||
"upnp": "{action} UPnP"
|
||||
},
|
||||
"permissions": {
|
||||
"add": "'{name}' に '{perm}' アクセスを許可する",
|
||||
"remove": "'{name}' の '{perm}' アクセス許可を剥奪する"
|
||||
},
|
||||
"postinstall": "ポストインストールを実行する",
|
||||
"settings": {
|
||||
"update": "'{panel}' のグローバル設定を更新する"
|
||||
},
|
||||
"share_logs": "ログ '{name}' へのリンクを生成する"
|
||||
},
|
||||
"ignore": "無視",
|
||||
"infos": "情報",
|
||||
"install": "インストール",
|
||||
"installed": "インストール済み",
|
||||
"ipv4": "IPv4",
|
||||
"ipv6": "IPv6",
|
||||
"label": "ラベル",
|
||||
"license": "ライセンス",
|
||||
"login": "ログイン",
|
||||
"logout": "ログアウト",
|
||||
"logs": "ログ",
|
||||
"logs_context": "コンテキスト",
|
||||
"logs_ended_at": "終了",
|
||||
"logs_error": "エラー",
|
||||
"logs_path": "パス",
|
||||
"logs_started_at": "開始",
|
||||
"logs_suboperations": "サブ・オペレーション",
|
||||
"next": "次",
|
||||
"no": "No",
|
||||
"nobody": "無人",
|
||||
"ok": "OK",
|
||||
"open": "開く",
|
||||
"operations": "操作",
|
||||
"others": "その他",
|
||||
"password": "パスワード",
|
||||
"path": "パス",
|
||||
"placeholder": {
|
||||
"domain": "my-domain.com",
|
||||
"firstname": "太郎",
|
||||
"lastname": "山田",
|
||||
"username": "山田太郎",
|
||||
"file": "ファイルを選択するかドラッグ&ドロップする",
|
||||
"fullname": "山田 太郎",
|
||||
"groupname": "グループ名"
|
||||
},
|
||||
"previous": "前",
|
||||
"protocol": "プロトコル",
|
||||
"readme": "Readme",
|
||||
"restart": "リスタート",
|
||||
"restore": "リストア",
|
||||
"retry": "リトライ",
|
||||
"run": "実行",
|
||||
"running": "実行中",
|
||||
"save": "保存",
|
||||
"services": "サービス",
|
||||
"size": "サイズ",
|
||||
"skip": "スキップ",
|
||||
"start": "スタート",
|
||||
"status": "状態",
|
||||
"stop": "ストップ",
|
||||
"system": "システム",
|
||||
"system_upgrade_btn": "アップグレード",
|
||||
"tcp": "TCP",
|
||||
"tools": "ツール",
|
||||
"tools_reboot_btn": "再起動",
|
||||
"tools_shutdown_btn": "シャットダウン",
|
||||
"tools_shutdown_reboot": "シャットダウン/再起動",
|
||||
"tools_webadmin": {
|
||||
"cache": "キャッシュ",
|
||||
"language": "言語",
|
||||
"experimental": "実験的モード",
|
||||
"fallback_language": "フォールバック言語",
|
||||
"fallback_language_description": "主言語が利用できない際に使用される言語です。",
|
||||
"theme": "ダークモード切り替え",
|
||||
"transitions": "ページ推移アニメーション",
|
||||
"cache_description": "この Web 管理画面を使いながら CLI 操作をする場合は、キャッシュを無効にすることを検討してください。",
|
||||
"experimental_description": "実験的な機能にアクセスできます。これらは不安定であると見なされ、システムを壊す可能性があります。<br> 自分が何をしているかがわかっている場合にのみ有効にしてください。"
|
||||
},
|
||||
"traceback": "トレースバック",
|
||||
"udp": "UDP",
|
||||
"unknown": "未知",
|
||||
"upnp": "UPnP",
|
||||
"url": "URL",
|
||||
"user_email": "電子メール",
|
||||
"user_new_forward": "newforward@myforeigndomain.org",
|
||||
"user_username": "ユーザー名",
|
||||
"users": "ユーザー",
|
||||
"words": {
|
||||
"collapse": "たたむ",
|
||||
"default": "デフォルト",
|
||||
"link": "リンク",
|
||||
"none": "なし",
|
||||
"separator": ", ",
|
||||
"valid": "有効",
|
||||
"browse": "参照"
|
||||
},
|
||||
"yes": "はい",
|
||||
"api_not_found": "Web管理者が存在しない何かを検索したようです。",
|
||||
"app_choose_category": "カテゴリーを選択する",
|
||||
"app_info_access_desc": "現在このアプリへアクセスが許可されている グループ / ユーザー:",
|
||||
"app_info_changeurl_desc": "このアプリへアクセスするURLを変更します(ドメイン または パス)。",
|
||||
"app_info_uninstall_desc": "このアプリケーションを削除する。",
|
||||
"check": "チェック",
|
||||
"code": "コード",
|
||||
"confirm_delete": "{name} を削除してもよろしいですか?",
|
||||
"confirm_firewall_allow": "開放してもよろしいですか? port {port} (protocol: {protocol}, connection: {connection})",
|
||||
"confirm_group_add_access_permission": "本当に {perm} 権限を {name} へ許可しますか?このような権限は、 {name} が悪意のある人物であった場合、攻撃経路を大幅に増やします。この人物/グループを **信頼** できる場合にのみ許可してください。",
|
||||
"confirm_install_app_inprogress": "警告!このアプリケーションはまだ実験段階であり、あなたのシステムを壊す可能性があります!あなたが何をやろうとしているか十分に理解していないのであれば、インストールをするべきではありません。リスクを承知で実行しますか?",
|
||||
"confirm_install_custom_app": "警告!サードパーティのアプリケーションをインストールすると、システムの完全性とセキュリティが損なわれる可能性があります。あなたが何をやろうとしているか十分に理解していないのであれば、インストールをするべきではありません。リスクを承知で実行しますか?",
|
||||
"confirm_update_system": "全てのシステムパッケージを更新してもよろしいですか?",
|
||||
"confirm_update_specific_app": "{app} をアップデートしてもよろしいですか?",
|
||||
"details_about": "{subject} について詳細を表示する",
|
||||
"diagnosis_explanation": "診断機能は、サーバーのさまざまな側面における一般的な問題を特定し、すべてがスムーズに動作するように試みます。診断は1日2回自動的に実行され、問題が見つかった場合は管理者にメールが送信されます。特定の機能(例えばXMPP)を使用したくない場合、または複雑なセットアップを行った場合、いくつかのテストは適切でない可能性があります。そのような場合、また自分が何をしているかわかっている場合は、対応する問題や警告を無視してもかまいません。",
|
||||
"diagnosis_first_run": "診断機能は、サーバーのさまざまな側面で一般的な問題を特定し、すべてがスムーズに動作するように試みます。サーバーをセットアップした直後に大量のエラーが表示されても慌てないでください。これは問題を特定し、解決するための指針を示すためのものです。また、診断は1日2回自動的に実行され、問題が見つかった場合は管理者にメールが送信されます。",
|
||||
"domain_add_dyndns_forbidden": "DynDNSで既にドメインを登録している場合,DynDNSドメインの削除についてはフォーラムの<a href='//forum.yunohost.org/t/nohost-domain-recovery-suppression-de-domaine-en-nohost-me-noho-st-et-ynh-fr/442'>関連スレッド</a>で依頼することができます.",
|
||||
"domain_delete_forbidden_desc": "'{domain}' はデフォルトドメインのため、削除することができません。削除したい場合は、別のドメインを選択 (または <a href='#/domains/add'>新しいドメインを追加</a>)し、メインドメインとして設定する必要があります。",
|
||||
"firewall": "ファイアウォール",
|
||||
"id": "ID",
|
||||
"migrations": "移行",
|
||||
"permissions": "権限",
|
||||
"port": "ポート",
|
||||
"ports": "ポート",
|
||||
"uninstall": "アンインストール",
|
||||
"version": "バージョン",
|
||||
"group_add_member": "ユーザーを追加",
|
||||
"group_add_permission": "権限を追加",
|
||||
"group_all_users": "全てのユーザー",
|
||||
"group_name": "グループ名",
|
||||
"group_new": "新しいグループ",
|
||||
"hook_adminjs_group_configuration": "システム設定",
|
||||
"hook_conf_ldap": "ユーザーデータベース",
|
||||
"hook_conf_manually_modified_files": "手動変更された設定",
|
||||
"ignored": "{count} 回無視",
|
||||
"local_archives": "ローカルアーカイブ",
|
||||
"logs_access": "アクセス/BANのリスト",
|
||||
"logs_app": "アプリログ",
|
||||
"logs_history": "システムで実行されたコマンドログ",
|
||||
"logs_more": "もっと表示する",
|
||||
"logs_operation": "YunoHostによるシステム操作",
|
||||
"logs_package": "Debianパッケージ管理履歴",
|
||||
"logs_service": "サービスログ",
|
||||
"logs_share_with_yunopaste": "ログをYunoPasteで共有する",
|
||||
"mailbox_quota_example": "CDは700M, DVDは 4700M",
|
||||
"multi_instance": "複数回インストール可能",
|
||||
"only_decent_quality_apps": "ふさわしい品質のアプリのみ",
|
||||
"only_highquality_apps": "高い品質のアプリのみ",
|
||||
"only_working_apps": "機能するアプリのみ",
|
||||
"orphaned": "メンテナンスされていない",
|
||||
"password_confirmation": "パスワード確認",
|
||||
"permission_main": "メインラベル",
|
||||
"permission_show_tile_enabled": "ユーザーポータルでタイルに表示する",
|
||||
"rerun_diagnosis": "診断を再実行",
|
||||
"run_first_diagnosis": "初回診断を実行する",
|
||||
"select_all": "全てを選択",
|
||||
"select_none": "選択を外す",
|
||||
"service_start_on_boot": "起動時にスタート",
|
||||
"system_apps_nothing": "全てのアプリが最新になりました!",
|
||||
"system_packages_nothing": "全てのシステムパッケージが最新になりました!",
|
||||
"system_update": "システムアップデート",
|
||||
"tools_reboot": "サーバーを再起動",
|
||||
"tools_shutdown": "サーバーをシャットダウン",
|
||||
"unignore": "無視しない",
|
||||
"upnp_disabled": "UPnPは無効化されています。",
|
||||
"upnp_enabled": "UPnPは有効化されています。",
|
||||
"user_emailaliases": "メールエイリアス",
|
||||
"user_mailbox_use": "メールボックス使用スペース",
|
||||
"user_username_edit": "{name}のアカウントを編集する",
|
||||
"users_import_delete": "リストにないユーザーを削除する",
|
||||
"warnings": "{count} 件の警告",
|
||||
"wrong_password_or_username": "パスワードかユーザー名が間違っています",
|
||||
"yunohost_admin": "YunoHost 管理者",
|
||||
"form_input_example": "例: {example}",
|
||||
"from_to": "{0} から {1}",
|
||||
"go_back": "戻る",
|
||||
"group_specific_permissions": "ユーザー個別権限",
|
||||
"groups_and_permissions": "グループと権限",
|
||||
"groups_and_permissions_manage": "グループと権限を管理する",
|
||||
"hook_conf_ynh_certs": "SSL証明書",
|
||||
"hook_conf_ynh_settings": "YunoHost設定",
|
||||
"hook_data_home": "ユーザーデータ",
|
||||
"hook_data_home_desc": "/home/USER 配下のユーザーデータ",
|
||||
"hook_data_mail_desc": "サーバー内に保存されている電子メールアドレス",
|
||||
"hook_data_xmpp": "XMPPデータ",
|
||||
"install_name": "インストール {id}",
|
||||
"install_time": "インストール時間",
|
||||
"installation_complete": "インストール完了",
|
||||
"issues": "{count} 個の問題",
|
||||
"label_for_manifestname": "{name} のラベル",
|
||||
"last_ran": "最後の実行:",
|
||||
"logs_no_logs_registered": "このカテゴリーにログが登録されていません",
|
||||
"manage_domains": "ドメイン管理",
|
||||
"manage_groups": "グループ管理",
|
||||
"manage_users": "ユーザー管理",
|
||||
"migrations_disclaimer_check_message": "私はこの免責条項を読み、理解しました",
|
||||
"migrations_disclaimer_not_checked": "このマイグレーションを実行する前に、免責条項を確認する必要があります。",
|
||||
"migrations_done": "以前のマイグレーション",
|
||||
"migrations_no_done": "以前のマイグレーションはありません",
|
||||
"migrations_no_pending": "中断したマイグレーションはありません",
|
||||
"migrations_pending": "中断しているマイグレーション",
|
||||
"logs_system": "カーネルログとその他低レベルログイベント",
|
||||
"mailbox_quota_placeholder": "0にセットすると無効化します。",
|
||||
"manage_apps": "アプリ管理",
|
||||
"set_default": "デフォルトに設定",
|
||||
"system_upgrade_all_applications_btn": "全てのアプリケーションをアップグレード",
|
||||
"system_upgrade_all_packages_btn": "全てのパッケージをアップグレード",
|
||||
"tools_webadmin_settings": "Web管理者設定",
|
||||
"tools_yunohost_settings": "YunoHost設定",
|
||||
"user_emailaliases_add": "メールエイリアスを追加する",
|
||||
"user_emailforward": "メール転送",
|
||||
"user_emailforward_add": "メール転送を追加する",
|
||||
"user_fullname": "フルネーム",
|
||||
"user_interface_link": "ユーザーインターフェイス",
|
||||
"user_mailbox_quota": "メールボックス クォータ",
|
||||
"users_export": "ユーザーをエクスポート",
|
||||
"users_import": "ユーザーをインポート",
|
||||
"users_import_csv_file": "CSVファイル",
|
||||
"users_import_delete_desc": "チェックを入れた場合、既存のユーザーのうちCSVファイルに入っていないユーザーは削除されます。",
|
||||
"users_import_delete_others": "リストにないユーザーを削除する",
|
||||
"users_import_update": "既存のユーザーを更新する",
|
||||
"users_import_update_desc": "チェックを入れた場合、CSVファイルに入っている全てのユーザー情報が新しい値に更新されます",
|
||||
"users_new": "新しいユーザー",
|
||||
"users_no": "ユーザーがいません。",
|
||||
"domain_dns_push_managed_in_parent_domain": "自動 DNS レコード機能は、親ドメイン <a href='#/domains/{parent_domain}/dns'>{parent_domain}</a>で管理されます。",
|
||||
"domain_dns_push_not_applicable": "自動DNSレコード機能はドメイン {domain}には適用されません。<br> 以下の <a href='https://yunohost.org/dns'>ドキュメント</a> と推奨される構成に従って、DNS レコードを手動で構成する必要があります。",
|
||||
"error_connection_interrupted": "サーバーは接続に応答する代わりに接続を閉じました。nginxまたはyunohost-apiが何らかの理由で再起動または停止されていませんか?",
|
||||
"hook_data_xmpp_desc": "ルームとユーザーの設定、ファイルのアップロード",
|
||||
"important_yunohost_upgrade": "YunoHostのメジャーアップグレードが利用可能です。アップグレードする前に、フォーラムのリリースノートを注意深く読むことを強くお勧めします: フォーラムの<a href='https://forum.yunohost.org/tag/ynh_release'>リリースノートを閲覧</a>",
|
||||
"items": {
|
||||
"apps": "アプリなし | アプリ | {c} 個のアプリ",
|
||||
"backups": "バックアップなし | バックアップ | {c} 個のバックアップ",
|
||||
"domains": "ドメインなし | ドメイン | {c} 個のドメイン",
|
||||
"groups": "グループなし | グループ | {c} 個のグループ",
|
||||
"installed_apps": "インストール済アプリなし | インストール済アプリ | {c} 個のインストール済アプリ",
|
||||
"logs": "ログなし | ログ | {c} 個のログ",
|
||||
"permissions": "権限なし | 権限 | {c} 個の権限",
|
||||
"services": "サービスなし | サービス | {c} 個のサービス",
|
||||
"users": "ユーザーなし | ユーザー | {c} 人のユーザー"
|
||||
},
|
||||
"mailbox_quota_description": "メールのストレージサイズ制限を設定します。<br>無効にするには 0 を設定します。",
|
||||
"perform": "実行する",
|
||||
"permission_corresponding_url": "対応する URL",
|
||||
"postinstall": {
|
||||
"force": "インストール後処理の強制",
|
||||
"title": "インストール後処理",
|
||||
"user": {
|
||||
"first_user_help": "このユーザーには管理者権限が付与され、この管理インターフェイスへの接続と、SSH 経由でサーバーへの直接接続が許可されます。\n通常のユーザーであるため、資格情報を使用してユーザーポータル(SSO)に接続することもできます。\nインストール後処理が完了すると、他のユーザーを「admins」グループに追加することで管理者ユーザーを作成できるようになります。",
|
||||
"title": "最初の管理者ユーザーを作成する"
|
||||
}
|
||||
},
|
||||
"postinstall_intro_1": "やりました!YunoHostは正常にインストールされました。",
|
||||
"postinstall_intro_2": "サーバーのサービスを有効化するには、さらに 2 つの設定手順が必要です。",
|
||||
"search": {
|
||||
"for": "{items}について検索…",
|
||||
"not_found": "条件に合致する {items} が存在する。 | 条件に合致する1つの {items} が存在する。 | 条件に合致する {items} が存在する。"
|
||||
},
|
||||
"since": "から",
|
||||
"text_selection_is_disabled": "テキスト選択は無効です。このログを共有したい場合は、[Yunopasteで共有]ボタンで *フル*ログ を共有してください。<br/><small>または、本当にテキストを選択したい場合は、次のキーを押します:↓↓↑↑。</small>",
|
||||
"tip_about_user_email": "ユーザーは、username@domain.tld 形式の関連付けられた電子メール アドレス (および XMPP アカウント) を使用して作成されます。追加のメール エイリアスとメール転送については、管理者とユーザーの両方が後から追加できます。",
|
||||
"unauthorized": "許可されていないアクセス",
|
||||
"users_import_confirm_destructive": "このファイルに存在しないユーザーを削除してもよろしいですか?",
|
||||
"users_import_csv_file_desc": "CSV ファイルは UTF-8 でエンコードされており、username, password, groups, email, quota の列が含まれている必要があります。よくわからない場合、一旦 <a href='/yunohost/api/users/export' target='_BLANK'>ユーザーを CSV ファイルにエクスポート</a> し、そのファイルを変更してください。",
|
||||
"experimental_warning": "警告:この機能は実験的なものであり、安定しているとは見なされないため、自分が何をしているのかを知っている場合を除いて、使用しないでください。",
|
||||
"good_practices_about_admin_password": "新しい管理者パスワードを設定しようとしています。パスワードは少なくとも8文字である必要がありますが、より長いパスワード(パスフレーズなど)を使用したり、さまざまな種類の文字(大文字、小文字、数字、特殊文字)を使用したりすることをお勧めします。",
|
||||
"good_practices_about_user_password": "新しいユーザー・パスワードを定義しようとしています。パスワードは少なくとも8文字である必要がありますが、より長いパスワード(パスフレーズなど)を使用したり、さまざまな種類の文字(大文字、小文字、数字、特殊文字)を使用したりすることをお勧めします。",
|
||||
"group_explain_all_users": "これは、サーバー上のすべてのユーザー アカウントを含む特別なグループです",
|
||||
"group_explain_visitors": "これは匿名の訪問者を代表する特別なグループです",
|
||||
"group_explain_visitors_needed_for_external_client": "一部のアプリケーションを外部クライアントで使用する場合は、訪問者に許可しておく必要があることに注意してください。たとえば、スマートフォンまたはデスクトップコンピューターで同期クライアントを使用する場合、Nextcloudの場合がこれに当てはまります。",
|
||||
"group_format_name_help": "英数字の文字とアンダースコアを使用できます",
|
||||
"items_verbose_count": "存在する {items}. | 存在する 1つの {items}. | 存在する {items}.",
|
||||
"items_verbose_items_left": "{items} 個残っている。 | 1個の {items} が残っている。 | {items} が残っている。",
|
||||
"label_for_manifestname_help": "これはユーザーポータルに表示される名前です。後で変更できます。",
|
||||
"operation_failed_explanation": "この操作は失敗しました。本当に申し訳ありません :( あなたは <a href='https://yunohost.org/help'>ヘルプ</a>を試すことができます。あなたを助けてくれる人々に、操作の*完全なログ*を提供してください。これを行うには、[Yunopasteで共有] と書かれた緑色のボタンをクリックします。ログを共有する場合、YunoHostは自動的にドメイン名やIPなどの個人データの匿名化を試みます。",
|
||||
"orphaned_details": "このアプリはかなり長い間メンテナンスされていません。まだ機能しているかもしれませんが、誰かがそれをメンテナンスと言い始めるまで、アップグレードを受け取りません。このアプリを復活させるために力を貸してください!",
|
||||
"pending_migrations": "実行を待機している保留中の移行がいくつかあります。<a href='#/tools/migrations'>ツール > 移行</a> に移動して、移行を実行してください。",
|
||||
"postinstall_domain": "これは、YunoHostサーバーにリンクされた最初のドメイン名ですが、サーバーのユーザーが認証ポータルにアクセスするために使用するドメイン名でもあります。したがって、誰にでも見えるものになりますので、慎重に選択してください。",
|
||||
"postinstall_set_domain": "メインドメインの設定",
|
||||
"purge_user_data_checkbox": "{name}のデータをパージ(削除)しますか?(これにより、ホームディレクトリとメールディレクトリの内容が削除されます)",
|
||||
"purge_user_data_warning": "ユーザーのデータのパージ(削除)は一度行うと元に戻せません。自分が何をしようとしているのか、十分に理解してくださいね!",
|
||||
"group_explain_admins": "これは管理者ユーザーに対応する特別なグループです。このグループのユーザーは、YunoHostのウェブ管理者にアクセスし、SSHでサーバーに接続し、「sudo」コマンドを使用できます。また、root@、admin@、admins@に送信された診断通知などの電子メールも受信します。このグループには、絶対に信頼できる人だけを追加する必要があります!",
|
||||
"postinstall_intro_3": "詳細については、<a href='//yunohost.org/en/install/hardware:vps_debian#fa-cog-proceed-with-the-initial-configuration' target='_blank'>適切なドキュメントページ</a>を参照してください"
|
||||
}
|
170
app/src/i18n/locales/kab.json
Normal file
|
@ -0,0 +1,170 @@
|
|||
{
|
||||
"add": "Rnu",
|
||||
"address": {
|
||||
"domain_description": {
|
||||
"domain": "Fren taɣult.",
|
||||
"email": "Fren taɣult i imayl inek·inem."
|
||||
},
|
||||
"local_part_description": {
|
||||
"email": "Fren aḥric adigan n imayl.",
|
||||
"domain": "Fren taɣult ddaw."
|
||||
}
|
||||
},
|
||||
"action": "Tigawt",
|
||||
"all": "Akk",
|
||||
"api": {
|
||||
"query_status": {
|
||||
"pending": "Iteddu"
|
||||
}
|
||||
},
|
||||
"connection": "Tuqqna",
|
||||
"created_at": "Yettwarna di",
|
||||
"domain_name": "Isem n Taɣult",
|
||||
"domains": "Tiɣula",
|
||||
"download": "Sider",
|
||||
"enable": "Rmed",
|
||||
"enabled": "Yermed",
|
||||
"error": "Tuccḍa",
|
||||
"go_back": "Uɣal ɣer deffir",
|
||||
"group_new": "Agraw amaynut",
|
||||
"permissions": "Tisirag",
|
||||
"history": {
|
||||
"title": "Amazray",
|
||||
"last_action": "Tigawt taneggarut:",
|
||||
"methods": {
|
||||
"DELETE": "Kkes",
|
||||
"GET": "ɣeṛ"
|
||||
}
|
||||
},
|
||||
"home": "Agejdan",
|
||||
"id": "ID",
|
||||
"ignore": "Ignorer",
|
||||
"infos": "talɣut",
|
||||
"next": "Suivant",
|
||||
"no": "Uhu",
|
||||
"nobody": "Ula yiwen",
|
||||
"ok": "Ih",
|
||||
"open": "Ldi",
|
||||
"operations": "Timhalin",
|
||||
"logs": "Aɣmis",
|
||||
"logs_error": "Tuccḍa",
|
||||
"logs_ended_at": "Fin",
|
||||
"logs_started_at": "Démarrer",
|
||||
"logs_context": "Asatal",
|
||||
"port": "Port",
|
||||
"previous": "Précédent",
|
||||
"service_start_on_boot": "Bdu seg usenker",
|
||||
"services": "Imeẓla",
|
||||
"tools": "Ifecka",
|
||||
"tools_webadmin": {
|
||||
"cache": "Tuffirt",
|
||||
"language": "Tutlayt"
|
||||
},
|
||||
"udp": "UDP",
|
||||
"unignore": "Ur yettwazgel ara",
|
||||
"uninstall": "Désinstaller",
|
||||
"unknown": "D arussin",
|
||||
"url": "URL",
|
||||
"user_email": "Imayl",
|
||||
"user_fullname": "Isem inek ummid",
|
||||
"user_interface_link": "Agrudem n useqdac",
|
||||
"version": "Lqem",
|
||||
"words": {
|
||||
"browse": "Snirem",
|
||||
"collapse": "Ḍfes",
|
||||
"default": "Prédéfini(e)",
|
||||
"link": "Aseɣwen",
|
||||
"none": "Ula d yiwen",
|
||||
"separator": ", ",
|
||||
"valid": "Tettwaqbel"
|
||||
},
|
||||
"yes": "Ih",
|
||||
"api_error": {
|
||||
"error_message": "Izen n tuccḍa:"
|
||||
},
|
||||
"app_make_default": "Err-it d amezwer",
|
||||
"applications": "Isnasen",
|
||||
"backup": "Asekles",
|
||||
"backup_action": "Sekles",
|
||||
"begin": "Bdu",
|
||||
"cancel": "Sefsex",
|
||||
"catalog": "Akaram",
|
||||
"check": "Rrcem",
|
||||
"close": "Mdel",
|
||||
"code": "Tangalt",
|
||||
"common": {
|
||||
"firstname": "Isem",
|
||||
"lastname": "Isem n tmagit"
|
||||
},
|
||||
"dead": "D arurmid",
|
||||
"delete": "Kkes",
|
||||
"configuration": "Tawila",
|
||||
"description": "Asnummel",
|
||||
"details": "Talqayt",
|
||||
"disable": "Désactiver",
|
||||
"disabled": "Ittwarermed",
|
||||
"experimental": "Expérimental",
|
||||
"firewall": "Aɣṛab n tmes",
|
||||
"group_name": "Isem n wegraw",
|
||||
"footer": {
|
||||
"documentation": "Tasemlit",
|
||||
"help": "Tesriḍ tallelt?",
|
||||
"donate": "Tawsa"
|
||||
},
|
||||
"group_all_users": "Meṛṛa iseqdacen",
|
||||
"group": "Agraw",
|
||||
"group_visitors": "Imerza",
|
||||
"group_add_member": "Rnu aseqdac",
|
||||
"hook_data_mail": "Imayl",
|
||||
"install": "sebdeed",
|
||||
"installation_complete": "Asebded immed",
|
||||
"installed": "Yettwasbedd",
|
||||
"label": "Tabzimt",
|
||||
"license": "Licence",
|
||||
"login": "Aseqdac",
|
||||
"logout": "Tufɣa",
|
||||
"manage_users": "Sefrek iseqdacen",
|
||||
"others": "Wiyyaḍ",
|
||||
"password": "Awal n uɛeddi",
|
||||
"password_confirmation": "Asentem n wawal uffir",
|
||||
"path": "Chemin d'accès",
|
||||
"logs_path": "Chemin d'accès",
|
||||
"restart": "Ales tanekra",
|
||||
"protocol": "Protocole",
|
||||
"restore": "Err-d",
|
||||
"retry": "Ɛreḍ tikkelt-nniḍen",
|
||||
"run": "Selkem",
|
||||
"running": "En cours d'exécution",
|
||||
"save": "Sekles",
|
||||
"select_all": "Fren akk",
|
||||
"size": "Teɣzi",
|
||||
"skip": "Zgel",
|
||||
"start": "Démarrer",
|
||||
"status": "État",
|
||||
"stop": "Arrêter",
|
||||
"system": "Anagraw",
|
||||
"system_upgrade_btn": "Leqqem",
|
||||
"tcp": "TCP",
|
||||
"tools_reboot_btn": "Alles asekker",
|
||||
"tools_shutdown_btn": "Sexsi",
|
||||
"user_username": "Isem n useqdac",
|
||||
"users": "Iseqdacen",
|
||||
"administration_password": "Awal uffir n tedbelt",
|
||||
"domain": {
|
||||
"dns": {
|
||||
"methods": {
|
||||
"none": "Ula d yiwen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"group_admins": "Inedbalen",
|
||||
"footer_version": "Yezreɛ-it <a href='https://yunohost.org'>YunoHost</a> {version} ({repo}).",
|
||||
"users_new": "Aseqdac amaynut",
|
||||
"human_routes": {
|
||||
"upgrade": {
|
||||
"system": "Aleqqem n unagraw"
|
||||
}
|
||||
},
|
||||
"tools_yunohost_settings": "Iɣewwaṛen n YunoHost",
|
||||
"user_username_edit": "Ẓreg amaɣnu n {name}"
|
||||
}
|
41
app/src/i18n/locales/ko.json
Normal file
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"action": "동작",
|
||||
"add": "추가",
|
||||
"address": {
|
||||
"domain_description": {
|
||||
"domain": "도메인을 선택하세요.",
|
||||
"email": "이메일에 사용할 도메인을 선택하세요."
|
||||
},
|
||||
"local_part_description": {
|
||||
"domain": "서브도메인을 선택하세요.",
|
||||
"email": "이메일의 주소 부분(@의 오른쪽 부분)를 선택하세요."
|
||||
}
|
||||
},
|
||||
"administration_password": "관리자 비밀번호",
|
||||
"all": "모두",
|
||||
"all_apps": "모든 앱",
|
||||
"api": {
|
||||
"partial_logs": "[…] (전체 로그는 기록에 있음)",
|
||||
"processing": "서버가 동작을 수행 중입니다…",
|
||||
"query_status": {
|
||||
"error": "실패",
|
||||
"pending": "실행 중",
|
||||
"warning": "오류나 알림과 함께 성공적으로 완료됨",
|
||||
"success": "성공적으로 완료됨"
|
||||
},
|
||||
"reconnecting": {
|
||||
"reason": {
|
||||
"reboot": "서버가 다시 시작되는 중이며 잠시동안 연결할 수 없습니다. 서버가 연결되면 로그인 프롬포트가 표시됩니다.",
|
||||
"shutdown": "서버가 종료되는 중이며 더 이상 연결할 수 없습니다. 서버가 시작된 후 연결되면 로그인 프롬포트가 표시됩니다.",
|
||||
"unknown": "알 수 없는 이유로 서버와의 연결이 종료되었습니다.",
|
||||
"upgrade_system": "YunoHost 업그레이드를 위해 서버와의 연결이 종료되었습니다. 다시 연결될 때까지 잠시 기다리세요…"
|
||||
},
|
||||
"success": "서버와 연결되었습니다! 다시 로그인할 수 있습니다",
|
||||
"title": "서버와 통신중…",
|
||||
"failed": "서버가 응답하지 않는 것 같습니다. 다시 연결하거나 ssh를 통해 `systemctl restart yunohost-api` 명령을 실행하세요."
|
||||
}
|
||||
},
|
||||
"api_error": {
|
||||
"error_message": "오류 메시지:"
|
||||
}
|
||||
}
|
118
app/src/i18n/locales/lt.json
Normal file
|
@ -0,0 +1,118 @@
|
|||
{
|
||||
"address": {
|
||||
"domain_description": {
|
||||
"domain": "Pasirinkite domeną.",
|
||||
"email": "Pasirinkite domeną savo el. paštui."
|
||||
},
|
||||
"local_part_description": {
|
||||
"domain": "Pasirinkite subdomeną.",
|
||||
"email": "Pasirinkite vietinę el. pašto dalį."
|
||||
}
|
||||
},
|
||||
"api": {
|
||||
"partial_logs": "[…] (visas išvestis rasite istorijoje)",
|
||||
"reconnecting": {
|
||||
"failed": "Atrodo, kad serveris neatsako. Galite pabandyti dar kartą prisijungti arba per ssh paleisti `systemctl restart yunohost-api`.",
|
||||
"reason": {
|
||||
"shutdown": "Jūsų serveris išjungiamas ir nebėra pasiekiamas. Įjunkite jį iš naujo ir prisijungimo užklausa bus rodoma, kai tik serveris taps pasiekiamas.",
|
||||
"reboot": "Jūsų serveris perkraunamas ir kurį laiką nebus pasiekiamas. Kai tik serveris taps pasiekiamas, bus pateikta prisijungimo užklausa.",
|
||||
"unknown": "Ryšys su serveriu nutrauktas dėl nežinomų priežasčių.",
|
||||
"upgrade_system": "Ryšys su serveriu nutrauktas dėl YunoHost atnaujinimo. Laukiama, kol serveris vėl bus pasiekiamas…"
|
||||
},
|
||||
"success": "Dabar serveris pasiekiamas! Galite pabandyti prisijungti",
|
||||
"title": "Bandoma susisiekti su serveriu…"
|
||||
},
|
||||
"processing": "Serveris apdoroja veiksmą…",
|
||||
"query_status": {
|
||||
"error": "Nesėkminga",
|
||||
"pending": "Vykdoma",
|
||||
"success": "Sėkmingai užbaigta",
|
||||
"warning": "Sėkminga užbaiga su klaidom arba įspėjimais"
|
||||
}
|
||||
},
|
||||
"api_error": {
|
||||
"help": "Turėtumėte ieškoti pagalbos <a href=\"https://forum.yunohost.org/\">Forume</a> arba <a href=\"https://chat.yunohost.org/\">Pokalbiuose</a> , kad ištaisyti padėtį arba praneškite apie klaidą <a href=\"https://github.com/YunoHost/issues\"> klaidų stebėjimo sistemoje</a>.",
|
||||
"error_message": "Pranešimas apie klaidą:",
|
||||
"info": "Toliau pateikta informacija gali būti naudinga jums padedančiam asmeniui:",
|
||||
"server_said": "Apdorojant veiksmą serveris pranešė:",
|
||||
"sorry": "Labai atsiprašau apie tai.",
|
||||
"view_error": "Peržiūros klaida"
|
||||
},
|
||||
"api_not_found": "Atrodo, kad žiniatinklio administratorius bandė pateikti užklausą apie tai, ko nėra.",
|
||||
"api_not_responding": "\"YunoHost\" API neatsako. Galbūt 'yunohost-api' neveikia arba buvo paleista iš naujo?",
|
||||
"api_waiting": "Laukiama serverio atsakymo…",
|
||||
"app": {
|
||||
"open_this_app": "Atidarykite šią programėlę",
|
||||
"doc": {
|
||||
"notifications": {
|
||||
"post_upgrade": "Pastabos po atnaujinimo",
|
||||
"title": "Pranešimai",
|
||||
"post_install": "Pastabos po diegimo"
|
||||
},
|
||||
"about": {
|
||||
"title": "Apie",
|
||||
"description": "Aprašymas"
|
||||
},
|
||||
"admin": {
|
||||
"title": "Admin dokumentacija"
|
||||
}
|
||||
},
|
||||
"install": {
|
||||
"notifs": {
|
||||
"post": {
|
||||
"alert": "Atrodo, kad diegimas pavyko gerai!\n Štai keletas pranešimų, kuriuos, pakuotojo nuomone, svarbu žinoti.\nJuos dar kartą galite perskaityti programėlės informacijos puslapyje.",
|
||||
"title": "Pranešimai po įdiegimo '{name}'"
|
||||
},
|
||||
"pre": {
|
||||
"warning": "Ką reikia žinoti prieš diegimą",
|
||||
"danger": "Įdiegus programą greičiausiai kils problemų",
|
||||
"critical": "Programos neįmanoma įdiegti"
|
||||
}
|
||||
},
|
||||
"problems": {
|
||||
"arch": "Šią programą galima įdiegti tik tam tikrose architektūrose ({required}), tačiau jūsų serverio architektūra yra {current}.",
|
||||
"thirdparty": "Ši programa nepriklauso oficialiam \"YunoHost\" katalogui, todėl įdiegus trečiųjų šalių programas gali būti pažeistas jūsų sistemos vientisumas ir saugumas. Neturėtumėte jos diegti, nebent žinote, ką darote.",
|
||||
"lowquality": "Ši programa gali veikti, tačiau ji nėra gerai integruota į \"YunoHost\". Kai kurios funkcijos, pavyzdžiui, vieno prisijungimo ir atsarginių kopijų darymo / atkūrimo, gali būti nepasiekiamos arba neatitinka standartų.",
|
||||
"broken": "Pagal \"YunoHost\" automatinius testus ši programa yra sugedusi ir gali sugadinti jūsų sistemą! Neturėtumėte jos diegti, nebent žinote, ką darote.",
|
||||
"ignore": "Suprantu, kad šis diegimas gali sugadinti mano sistemą, bet vis tiek noriu pabandyti.",
|
||||
"inprogress": "Ši programa vis dar yra eksperimentinė (jei ne neveikianti) ir gali sugadinti jūsų sistemą! Neturėtumėte jos diegti, jei nežinote, ką darote.",
|
||||
"install": "Tai jau įdiegta ir negali būti įdiegta daugiau nei vieną kartą.",
|
||||
"ram": "Šiai programai įdiegti / atnaujinti reikia {required} operatyviosios atminties, tačiau dabar galima naudoti tik {current}. Net jei ši programa galėtų veikti, jos diegimo procesui reikia daug operatyviosios atminties, todėl jūsų serveris gali užšalti ir žlugti.",
|
||||
"version": "Šiai programai reikia \"YunoHost\" >= {required}, bet jūsų dabartinė įdiegta versija yra {current}, pirmiausia atnaujinkite \"YunoHost\"."
|
||||
},
|
||||
"license": "Licencija: {license}",
|
||||
"try_demo": "Išbandykite demonstracinę versiją",
|
||||
"version": "Dabartinė versija: {version}"
|
||||
},
|
||||
"integration": {
|
||||
"ldap": {
|
||||
"?": "Nėra informacijos apie LDAP integraciją",
|
||||
"false": "Nenaudoja \"YunoHost\" paskyrų prisijungimui (LDAP)",
|
||||
"true": "Naudokite \"YunoHost\" paskyras prisijungimui (LDAP)"
|
||||
},
|
||||
"archs": "Palaikomos architektūros:",
|
||||
"multi_instance": {
|
||||
"false": "Galima įdiegti tik vieną kartą"
|
||||
}
|
||||
},
|
||||
"installed_version": "Įdiegta versija:",
|
||||
"antifeatures": "Ši programėlė turi funkcijų, kurios jums gali nepatikti:",
|
||||
"info": {
|
||||
"forum": "Ieškokite arba klauskite forume!",
|
||||
"problem": "Problema su šia programėle?"
|
||||
}
|
||||
},
|
||||
"action": "Veiksmas",
|
||||
"add": "Pridėti",
|
||||
"administration_password": "Administracijos slaptažodis",
|
||||
"all": "Visi",
|
||||
"all_apps": "Visos programėlės",
|
||||
"api_errors_titles": {
|
||||
"APIBadRequestError": "\"YunoHost\" susidūrė su klaida",
|
||||
"APIConnexionError": "\"YunoHost\" susidūrė su ryšio klaida",
|
||||
"APIError": "\"YunoHost\" susidūrė su netikėta klaida",
|
||||
"APIInternalError": "\"YunoHost\" susidūrė su vidine klaida",
|
||||
"APINotFoundError": "YunoHost API nepavyko rasti maršruto",
|
||||
"APINotRespondingError": "\"YunoHost\" API neatsako"
|
||||
}
|
||||
}
|
13
app/src/i18n/locales/mk.json
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"action": "акција",
|
||||
"add": "додади",
|
||||
"address": {
|
||||
"domain_description": {
|
||||
"domain": "одбери домен",
|
||||
"email": "одбери домен за вашиот емаил"
|
||||
},
|
||||
"local_part_description": {
|
||||
"domain": "одбери под домен"
|
||||
}
|
||||
}
|
||||
}
|