mirror of
https://github.com/processone/ejabberd
synced 2025-10-03 09:49:18 +02:00
Compare commits
1081 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
060992bafa | ||
![]() |
c0c69394b9 | ||
![]() |
2b7285e0b2 | ||
![]() |
c3a24ffdf8 | ||
![]() |
48fb446f8c | ||
![]() |
0283a501fa | ||
![]() |
fb572bf901 | ||
![]() |
7eb09295a3 | ||
![]() |
e0eae52eae | ||
![]() |
dd270f99fc | ||
![]() |
1472caab50 | ||
![]() |
ef2e62a01c | ||
![]() |
4e909fc50d | ||
![]() |
19b7106124 | ||
![]() |
4dea2f1eb6 | ||
![]() |
1d5b9bba15 | ||
![]() |
2951281115 | ||
![]() |
fd8aba6d41 | ||
![]() |
066e0a8101 | ||
![]() |
bf262a6051 | ||
![]() |
7840924b17 | ||
![]() |
60bdab4e52 | ||
![]() |
3a36a722c5 | ||
![]() |
00c75c3dc9 | ||
![]() |
cae7850a70 | ||
![]() |
ce668bef14 | ||
![]() |
3887b6d930 | ||
![]() |
b7bd0e196d | ||
![]() |
6d63842ad3 | ||
![]() |
2f3b9015e9 | ||
![]() |
6ae48eb991 | ||
![]() |
c508795ad4 | ||
![]() |
4a053807e0 | ||
![]() |
dd5bbda2dc | ||
![]() |
98469678a0 | ||
![]() |
b8550e087e | ||
![]() |
644d468b4f | ||
![]() |
74c810eeaa | ||
![]() |
a46325166a | ||
![]() |
654d4b81b1 | ||
![]() |
ff3d33dde4 | ||
![]() |
3183e2f733 | ||
![]() |
e1dc686ae7 | ||
![]() |
38b203feb1 | ||
![]() |
8b61cf0742 | ||
![]() |
a02c75aa08 | ||
![]() |
51af393baa | ||
![]() |
41318e45a5 | ||
![]() |
a94f227103 | ||
![]() |
517776acd4 | ||
![]() |
212a5ded6e | ||
![]() |
fd9c929e37 | ||
![]() |
ce828163af | ||
![]() |
97e1b419a0 | ||
![]() |
d70ac7f7c5 | ||
![]() |
7065cb69f1 | ||
![]() |
7815463ba0 | ||
![]() |
48e6631751 | ||
![]() |
903e6b70b4 | ||
![]() |
5edba59b24 | ||
![]() |
31cb4b06e4 | ||
![]() |
10f6723f00 | ||
![]() |
f594620c68 | ||
![]() |
dacfad61d8 | ||
![]() |
7c1da7e0cf | ||
![]() |
e709f99b47 | ||
![]() |
f150419891 | ||
![]() |
053fd26994 | ||
![]() |
bba1a1e3ca | ||
![]() |
e5da1efea4 | ||
![]() |
fbfd41c16e | ||
![]() |
4391921727 | ||
![]() |
4cd3c657e2 | ||
![]() |
7647b77225 | ||
![]() |
fe8710fe00 | ||
![]() |
1a9b147baf | ||
![]() |
6214e0385d | ||
![]() |
f7002c31f0 | ||
![]() |
99b75396ad | ||
![]() |
b1c3baa7bd | ||
![]() |
355eb5dfde | ||
![]() |
d269e32c3a | ||
![]() |
214b76f763 | ||
![]() |
73a8fbdfb5 | ||
![]() |
9b6f0aeb3c | ||
![]() |
45a6aed57f | ||
![]() |
9d17a160b6 | ||
![]() |
850d097660 | ||
![]() |
8ce8f67c06 | ||
![]() |
a17c2c166d | ||
![]() |
a64aa9e280 | ||
![]() |
3834a47a39 | ||
![]() |
9f6ff515ff | ||
![]() |
64a210842e | ||
![]() |
c0de52c967 | ||
![]() |
67c3df05b3 | ||
![]() |
4a66616756 | ||
![]() |
e4d424bf56 | ||
![]() |
c0fc6091b1 | ||
![]() |
ef35d19ff1 | ||
![]() |
cfa787c4b6 | ||
![]() |
611ebce0d2 | ||
![]() |
1e0b8cb547 | ||
![]() |
99d323b1dd | ||
![]() |
72bc9b6c7f | ||
![]() |
4694a482f4 | ||
![]() |
443f39bfdb | ||
![]() |
b118dd8fc6 | ||
![]() |
bf39da7b8b | ||
![]() |
ad3eee059e | ||
![]() |
e94ccabcf0 | ||
![]() |
427a29c74e | ||
![]() |
1d79edbae0 | ||
![]() |
9e4a6d09df | ||
![]() |
7b08289799 | ||
![]() |
bc937546ec | ||
![]() |
3b972fe4a3 | ||
![]() |
5e93725044 | ||
![]() |
500af47b79 | ||
![]() |
d862e04186 | ||
![]() |
5f293cb1e0 | ||
![]() |
c93ea2c22f | ||
![]() |
c567005241 | ||
![]() |
a6823d157c | ||
![]() |
bf54cc59e1 | ||
![]() |
740b0c7dd7 | ||
![]() |
c3f5083f15 | ||
![]() |
b65c11daf6 | ||
![]() |
263e1f59f7 | ||
![]() |
3d89c9199c | ||
![]() |
4a51bf90ab | ||
![]() |
a77c7e36b0 | ||
![]() |
88ae3fddf3 | ||
![]() |
bddcf0624e | ||
![]() |
6b47d3eb0d | ||
![]() |
a0c97b33e0 | ||
![]() |
5def9cef9f | ||
![]() |
c20d745028 | ||
![]() |
e099435cd6 | ||
![]() |
d6a00f5151 | ||
![]() |
653413e912 | ||
![]() |
288eecc23d | ||
![]() |
b55b6f3d26 | ||
![]() |
d00561b58c | ||
![]() |
432810db89 | ||
![]() |
f3b1b5d419 | ||
![]() |
d9a7b67f0e | ||
![]() |
85f05192c8 | ||
![]() |
149b715b4f | ||
![]() |
bae345b92b | ||
![]() |
10ec128b94 | ||
![]() |
7a6e409879 | ||
![]() |
ea19e4bc7f | ||
![]() |
6122a525d2 | ||
![]() |
b607d95a93 | ||
![]() |
ee46333def | ||
![]() |
34b40aec66 | ||
![]() |
639147be41 | ||
![]() |
c48aa38c39 | ||
![]() |
70bec7b714 | ||
![]() |
a7c15eaccf | ||
![]() |
c78e99dd54 | ||
![]() |
3196779308 | ||
![]() |
064b005ec5 | ||
![]() |
2d2b98e525 | ||
![]() |
71f623ddbf | ||
![]() |
f03b5f4c44 | ||
![]() |
aff8b47b6c | ||
![]() |
6c1452435d | ||
![]() |
38f365ffeb | ||
![]() |
ed846c4a88 | ||
![]() |
8855a304cc | ||
![]() |
95a083a6f4 | ||
![]() |
0bb99bb371 | ||
![]() |
38cc3ccb1e | ||
![]() |
c51b044b3f | ||
![]() |
363351b18c | ||
![]() |
167bbc768a | ||
![]() |
591e15f0f6 | ||
![]() |
b4a917db09 | ||
![]() |
7755fcc846 | ||
![]() |
250af8f06a | ||
![]() |
9569e407b5 | ||
![]() |
573d5525ec | ||
![]() |
f1de7b008b | ||
![]() |
c10e6ded78 | ||
![]() |
9bc991cb7d | ||
![]() |
ffa7c32d80 | ||
![]() |
038491d2ec | ||
![]() |
9d1d57cd82 | ||
![]() |
c38b2bfc21 | ||
![]() |
18e7805ef5 | ||
![]() |
010eab6e30 | ||
![]() |
30c8088d73 | ||
![]() |
354009033a | ||
![]() |
bf3f904fe9 | ||
![]() |
d65cafae64 | ||
![]() |
128103b7b2 | ||
![]() |
cbb88638d2 | ||
![]() |
f046aeeaa2 | ||
![]() |
bd5f9537c5 | ||
![]() |
838bbd70ef | ||
![]() |
e7997244af | ||
![]() |
3874e71971 | ||
![]() |
67cc0c5286 | ||
![]() |
826123db56 | ||
![]() |
05b0037462 | ||
![]() |
54796f888e | ||
![]() |
82ec0a4837 | ||
![]() |
7167df7979 | ||
![]() |
45e7d8426d | ||
![]() |
ef754939c4 | ||
![]() |
ee3a0b8b1a | ||
![]() |
2182cb60ae | ||
![]() |
4da8278e66 | ||
![]() |
629db496b5 | ||
![]() |
f79b8e166a | ||
![]() |
fae4ab97fd | ||
![]() |
da8d04a654 | ||
![]() |
ce02fc485f | ||
![]() |
69695ffe27 | ||
![]() |
6fdb467484 | ||
![]() |
d8016a6477 | ||
![]() |
e43d864184 | ||
![]() |
4d3681aba1 | ||
![]() |
d791f6ceaa | ||
![]() |
602a42f5ce | ||
![]() |
c98739d5b5 | ||
![]() |
425504454c | ||
![]() |
780031847c | ||
![]() |
c3af613db1 | ||
![]() |
babd01a87f | ||
![]() |
17b605a32b | ||
![]() |
fc813acd7b | ||
![]() |
d842d6772d | ||
![]() |
67aaf93157 | ||
![]() |
9154275431 | ||
![]() |
c343ef7aad | ||
![]() |
78093735b7 | ||
![]() |
ed6a111982 | ||
![]() |
a8a5be7a34 | ||
![]() |
5008947e32 | ||
![]() |
0827a5116f | ||
![]() |
85d0e93af5 | ||
![]() |
f677436437 | ||
![]() |
05f8992e3e | ||
![]() |
2ed7ce49a2 | ||
![]() |
9087867631 | ||
![]() |
f58a0cdbfd | ||
![]() |
91fb02d62e | ||
![]() |
d831fd4789 | ||
![]() |
322e642f19 | ||
![]() |
4967acaec9 | ||
![]() |
113e5a322e | ||
![]() |
9c29457ee2 | ||
![]() |
4fe5ee034c | ||
![]() |
78650f827e | ||
![]() |
a4fc448a52 | ||
![]() |
01a71dc189 | ||
![]() |
90a200be25 | ||
![]() |
9c92fcc92d | ||
![]() |
6f9f4b3635 | ||
![]() |
968fbc9424 | ||
![]() |
7862c6a7db | ||
![]() |
ced72f4a89 | ||
![]() |
85dbadee5c | ||
![]() |
cf13abdab6 | ||
![]() |
239d4a5bfb | ||
![]() |
51e96433ea | ||
![]() |
12274a969a | ||
![]() |
79a4dd4a26 | ||
![]() |
d9e86600dc | ||
![]() |
b8cb1bbdcf | ||
![]() |
c180349fc6 | ||
![]() |
a6fec278c3 | ||
![]() |
999ede59ce | ||
![]() |
30a7b0ef3b | ||
![]() |
16af90648e | ||
![]() |
7723951c05 | ||
![]() |
1668cde93f | ||
![]() |
418ca34c85 | ||
![]() |
6d8e588b78 | ||
![]() |
9bf2d6ce5b | ||
![]() |
496daf9220 | ||
![]() |
573e06cc0c | ||
![]() |
6d77ace5c9 | ||
![]() |
aa78362c7f | ||
![]() |
6151674e64 | ||
![]() |
1ea0dde417 | ||
![]() |
53dea7b6d7 | ||
![]() |
c87ba45a86 | ||
![]() |
6ea25e2272 | ||
![]() |
888c335c2e | ||
![]() |
4dcf97c4c1 | ||
![]() |
352ee3a318 | ||
![]() |
c8abff33c1 | ||
![]() |
998690f58c | ||
![]() |
6e68c2ec02 | ||
![]() |
896b7c7559 | ||
![]() |
69b190775c | ||
![]() |
b769de0690 | ||
![]() |
19482529ee | ||
![]() |
ad8e325139 | ||
![]() |
b901a69f5c | ||
![]() |
62a165e4cf | ||
![]() |
29616dc163 | ||
![]() |
60324d4b7a | ||
![]() |
cfa6575b4f | ||
![]() |
3b01e4e4e0 | ||
![]() |
fa4a93c465 | ||
![]() |
74d6d53ac6 | ||
![]() |
8070a656fe | ||
![]() |
105a0c2029 | ||
![]() |
e887546c27 | ||
![]() |
9305232f8c | ||
![]() |
7832a6342a | ||
![]() |
c924a47188 | ||
![]() |
1d42d55064 | ||
![]() |
dd7550dbad | ||
![]() |
7df7daa050 | ||
![]() |
090a7e664e | ||
![]() |
3d49bed0cf | ||
![]() |
9f28098d04 | ||
![]() |
e761b22c61 | ||
![]() |
4d62f545c5 | ||
![]() |
f789495c39 | ||
![]() |
46a64c0f68 | ||
![]() |
ab8a39e71f | ||
![]() |
630301a7ba | ||
![]() |
d4fd987e84 | ||
![]() |
c5abe5d882 | ||
![]() |
71dbbc1b5a | ||
![]() |
c9a9585573 | ||
![]() |
bb2f398fa2 | ||
![]() |
afc54aeb20 | ||
![]() |
9c142e5509 | ||
![]() |
27f98f50d3 | ||
![]() |
0145594adc | ||
![]() |
67ee0de7e3 | ||
![]() |
087718c47a | ||
![]() |
6bf5930703 | ||
![]() |
90c4fa2a84 | ||
![]() |
b75c3257bd | ||
![]() |
178b09f5bb | ||
![]() |
70980efe39 | ||
![]() |
c124dbdd6a | ||
![]() |
6af2a65e53 | ||
![]() |
54f89e7568 | ||
![]() |
66205cf648 | ||
![]() |
b38d8618b2 | ||
![]() |
051093f4f8 | ||
![]() |
2a85c0a474 | ||
![]() |
7018b8b164 | ||
![]() |
41232ccb39 | ||
![]() |
6bd4399aee | ||
![]() |
45dafbcdcc | ||
![]() |
a32bfd1215 | ||
![]() |
78f7a9a244 | ||
![]() |
44782001e2 | ||
![]() |
c7d7d07ee4 | ||
![]() |
27390c387d | ||
![]() |
ceee3d3be1 | ||
![]() |
983c016bba | ||
![]() |
8a7e955453 | ||
![]() |
376f7b261e | ||
![]() |
80423d7e69 | ||
![]() |
da61f3dfea | ||
![]() |
a49ec4d583 | ||
![]() |
5f849bdb3f | ||
![]() |
d875e0280c | ||
![]() |
4188c062e7 | ||
![]() |
21ae72d02e | ||
![]() |
d834a9c1c1 | ||
![]() |
07b102bb80 | ||
![]() |
480e2442ee | ||
![]() |
a9c7bf97ef | ||
![]() |
cae40c3f72 | ||
![]() |
4f90d1a0d9 | ||
![]() |
22b3d0e49f | ||
![]() |
0732603a4e | ||
![]() |
e34b6f4204 | ||
![]() |
64142de4fe | ||
![]() |
a4062f6ac0 | ||
![]() |
76baf58d5d | ||
![]() |
e134d7f0b4 | ||
![]() |
20a0051578 | ||
![]() |
eca3204e82 | ||
![]() |
a19ab9f4e3 | ||
![]() |
133d52d040 | ||
![]() |
20a77cb9c7 | ||
![]() |
cab96d2156 | ||
![]() |
9be76cce9e | ||
![]() |
e7035f3235 | ||
![]() |
6e4ac0c501 | ||
![]() |
aa612463cc | ||
![]() |
9827ad43e4 | ||
![]() |
e0bb900651 | ||
![]() |
ad1b577ca9 | ||
![]() |
f72cfa9a13 | ||
![]() |
056635119c | ||
![]() |
2e754a5557 | ||
![]() |
6959447c2c | ||
![]() |
4a363b6e76 | ||
![]() |
862cacabcb | ||
![]() |
29e6204bde | ||
![]() |
bc6c868c8a | ||
![]() |
9d87193d80 | ||
![]() |
85b660fb4b | ||
![]() |
5a6e46c32a | ||
![]() |
457d8fc6cc | ||
![]() |
8ebbb45a19 | ||
![]() |
13dae75d01 | ||
![]() |
172847bc76 | ||
![]() |
2b2551bc50 | ||
![]() |
aa8957f137 | ||
![]() |
ba9a7916db | ||
![]() |
5945dba412 | ||
![]() |
7d5413ce95 | ||
![]() |
364ee0f8ed | ||
![]() |
213a513f54 | ||
![]() |
aa65e626f4 | ||
![]() |
5b3b29565c | ||
![]() |
f38f81159d | ||
![]() |
7511307868 | ||
![]() |
1cadc6b1dc | ||
![]() |
405437b086 | ||
![]() |
51f4382b9f | ||
![]() |
e967a409d3 | ||
![]() |
eaebfc795e | ||
![]() |
3bc66a7054 | ||
![]() |
8cfcc69100 | ||
![]() |
ce3bc85d32 | ||
![]() |
1fe9e3aa67 | ||
![]() |
d93a8e341f | ||
![]() |
1107cefdb6 | ||
![]() |
92b2bb7532 | ||
![]() |
9a2a9187cd | ||
![]() |
50b57ada7c | ||
![]() |
a8649767f2 | ||
![]() |
2eb605873c | ||
![]() |
26e8679359 | ||
![]() |
2aa673e780 | ||
![]() |
06303ae7ab | ||
![]() |
2b3d588f10 | ||
![]() |
3dd7febb98 | ||
![]() |
beb5bfea36 | ||
![]() |
628f286eb6 | ||
![]() |
9e14c7a803 | ||
![]() |
863f2e019c | ||
![]() |
4334ce9c29 | ||
![]() |
7008e49675 | ||
![]() |
b84596be57 | ||
![]() |
4fd26306fe | ||
![]() |
8e9ea2d98c | ||
![]() |
1024cbe5b3 | ||
![]() |
a16ef68a49 | ||
![]() |
7726904f79 | ||
![]() |
1481734f47 | ||
![]() |
01955b867d | ||
![]() |
549a2b0790 | ||
![]() |
2caaa09c99 | ||
![]() |
da06a50072 | ||
![]() |
2b02af13ba | ||
![]() |
ae238bc984 | ||
![]() |
3d2036db61 | ||
![]() |
b8360cae08 | ||
![]() |
790cb104cd | ||
![]() |
f3c935d2e1 | ||
![]() |
e589265921 | ||
![]() |
eb6f242d99 | ||
![]() |
ce6d5aa6a0 | ||
![]() |
f269d5b613 | ||
![]() |
a84c492130 | ||
![]() |
3ae636b454 | ||
![]() |
06e3f9f0a4 | ||
![]() |
1669303a40 | ||
![]() |
39e37b6175 | ||
![]() |
c72ba1f188 | ||
![]() |
4d625e5574 | ||
![]() |
803f95050f | ||
![]() |
c021cf34be | ||
![]() |
7fce7d1049 | ||
![]() |
bd36895afe | ||
![]() |
b90c48f837 | ||
![]() |
344775aa8e | ||
![]() |
7d0c20e133 | ||
![]() |
ab5a2e8d10 | ||
![]() |
e34c1ebcba | ||
![]() |
73dbc01c2e | ||
![]() |
f0773c4ab8 | ||
![]() |
cc5c9f6008 | ||
![]() |
da9c591eed | ||
![]() |
6790ab01e8 | ||
![]() |
f9cecca362 | ||
![]() |
f4009939a6 | ||
![]() |
17b5b34e3c | ||
![]() |
c291c20a3b | ||
![]() |
22e7ce37d4 | ||
![]() |
2137602a6a | ||
![]() |
c7b29b5a9a | ||
![]() |
715b5b64c6 | ||
![]() |
c20ed8c7b3 | ||
![]() |
d3baacd78e | ||
![]() |
07e20784cb | ||
![]() |
9eb8bb6c40 | ||
![]() |
e10c0f3120 | ||
![]() |
6f7efebb56 | ||
![]() |
a657778065 | ||
![]() |
3650d94bb5 | ||
![]() |
6a428f3d02 | ||
![]() |
abe1d96c58 | ||
![]() |
29a59cfe48 | ||
![]() |
18c54f4e9e | ||
![]() |
c7d967a2b5 | ||
![]() |
b50ea7ef1f | ||
![]() |
4843cd432f | ||
![]() |
d56eae809d | ||
![]() |
af97211ecc | ||
![]() |
601fcba4cb | ||
![]() |
cc3a9f7722 | ||
![]() |
296ef8287f | ||
![]() |
b5dab24679 | ||
![]() |
319414b985 | ||
![]() |
6b0058c89c | ||
![]() |
855c828d1f | ||
![]() |
c72ef537ee | ||
![]() |
11e86811a0 | ||
![]() |
2183f60917 | ||
![]() |
05f0fbf195 | ||
![]() |
853da159de | ||
![]() |
643ae7e5f9 | ||
![]() |
322e25d18e | ||
![]() |
bdd8ba115e | ||
![]() |
71ad7c368d | ||
![]() |
8be0f8a0b0 | ||
![]() |
e9e678a994 | ||
![]() |
a89152a3d7 | ||
![]() |
73f5d950e5 | ||
![]() |
46d5ab369f | ||
![]() |
81906b74ed | ||
![]() |
74b0f64645 | ||
![]() |
50948d1619 | ||
![]() |
38f1132192 | ||
![]() |
50ef49d190 | ||
![]() |
3669ac8aed | ||
![]() |
7f8519c0af | ||
![]() |
859ba3e0c2 | ||
![]() |
94c2a115d5 | ||
![]() |
634b646711 | ||
![]() |
2a9dc2c7b2 | ||
![]() |
ef93a5359b | ||
![]() |
efb1fc9b3f | ||
![]() |
aa5faf1f36 | ||
![]() |
4723283896 | ||
![]() |
36187e07d0 | ||
![]() |
a9583b43c3 | ||
![]() |
ca54f81f58 | ||
![]() |
b4399291ef | ||
![]() |
a8df58f056 | ||
![]() |
54a89b39fb | ||
![]() |
4a931b42ab | ||
![]() |
15d73b9d20 | ||
![]() |
c2d4f73893 | ||
![]() |
31b85351f2 | ||
![]() |
c900f0ad83 | ||
![]() |
b2e6749fd2 | ||
![]() |
2437dc4e06 | ||
![]() |
115e7d08aa | ||
![]() |
d9ddbe0212 | ||
![]() |
512285e48d | ||
![]() |
642e7ecc29 | ||
![]() |
ce5a8acaf7 | ||
![]() |
3d9a5a1635 | ||
![]() |
3469a51f58 | ||
![]() |
d4b30957a3 | ||
![]() |
cc377bbebf | ||
![]() |
eec836239f | ||
![]() |
941d51a6e7 | ||
![]() |
e3243fa35b | ||
![]() |
70512c7116 | ||
![]() |
3c896d1c6a | ||
![]() |
b455d93c69 | ||
![]() |
017b2feac1 | ||
![]() |
5f47860ee1 | ||
![]() |
795498fa45 | ||
![]() |
aa1717ee77 | ||
![]() |
db6d3e63f2 | ||
![]() |
0304428d95 | ||
![]() |
74b80bfe08 | ||
![]() |
90ce65e4dc | ||
![]() |
d4d9771a71 | ||
![]() |
70ee294079 | ||
![]() |
5f4d17621f | ||
![]() |
8f4179050b | ||
![]() |
fddacd51a4 | ||
![]() |
e726ba9a8b | ||
![]() |
da1673e264 | ||
![]() |
7cd34d3709 | ||
![]() |
ec7fd05987 | ||
![]() |
34a58863e3 | ||
![]() |
3237a955e5 | ||
![]() |
8e7489c2be | ||
![]() |
df5202a2f0 | ||
![]() |
db3a5d8915 | ||
![]() |
6110f213de | ||
![]() |
e99fe98db4 | ||
![]() |
b07e28be2c | ||
![]() |
937d5fe495 | ||
![]() |
01141e5f69 | ||
![]() |
15569d0b13 | ||
![]() |
918806006c | ||
![]() |
d5e030a638 | ||
![]() |
47f1beca0c | ||
![]() |
a565b0e4c1 | ||
![]() |
10d1704899 | ||
![]() |
bc7c8e3952 | ||
![]() |
4e35515a8c | ||
![]() |
d2a3fe3ed2 | ||
![]() |
9bd1b39f9f | ||
![]() |
20a01a25e4 | ||
![]() |
68e69debff | ||
![]() |
7a333eecbe | ||
![]() |
e274bcc87d | ||
![]() |
c42cb2bbac | ||
![]() |
9ee7054823 | ||
![]() |
65e16dcac1 | ||
![]() |
97c2d6a29d | ||
![]() |
93cdee80ed | ||
![]() |
11055f61a6 | ||
![]() |
af99799e8a | ||
![]() |
926f60b2ed | ||
![]() |
0fdbb03f54 | ||
![]() |
bd0332c716 | ||
![]() |
45007809f6 | ||
![]() |
0e0fdb440c | ||
![]() |
2016cf547f | ||
![]() |
ead87e3727 | ||
![]() |
f56739fd9f | ||
![]() |
c5f2b389c3 | ||
![]() |
4cc95dda42 | ||
![]() |
0bfbe3e154 | ||
![]() |
9bd6b11007 | ||
![]() |
c013a59d16 | ||
![]() |
aa02c4de1e | ||
![]() |
fb9e2b9603 | ||
![]() |
a70bdc0776 | ||
![]() |
936460212f | ||
![]() |
8ac51e63b5 | ||
![]() |
090a8e3c95 | ||
![]() |
101cce0c1e | ||
![]() |
a935302a19 | ||
![]() |
9a0ff13cc2 | ||
![]() |
ef933c07cc | ||
![]() |
df5291e4bd | ||
![]() |
7a8c0331c1 | ||
![]() |
28e37bcaad | ||
![]() |
8a3344e78a | ||
![]() |
ce95f1f25a | ||
![]() |
f1739ce34d | ||
![]() |
1add1de23b | ||
![]() |
e25bdba16d | ||
![]() |
7c63cd1000 | ||
![]() |
4192190a96 | ||
![]() |
a733ba311c | ||
![]() |
fe472a63a0 | ||
![]() |
25b78b73d0 | ||
![]() |
b978a47925 | ||
![]() |
b44b1304b8 | ||
![]() |
a4fd756eae | ||
![]() |
8d4c1e3617 | ||
![]() |
54f5db851d | ||
![]() |
35042ebc6a | ||
![]() |
6c2dfd3d31 | ||
![]() |
543b874a10 | ||
![]() |
4258d3dc24 | ||
![]() |
949649e3a9 | ||
![]() |
82d95ac81d | ||
![]() |
3124644315 | ||
![]() |
27ba09debf | ||
![]() |
686938045b | ||
![]() |
5645858262 | ||
![]() |
410c81a51d | ||
![]() |
d19bac70ce | ||
![]() |
9b9eb409b2 | ||
![]() |
f3ad49ebc4 | ||
![]() |
394ba26d1d | ||
![]() |
cafe28fdea | ||
![]() |
22cefeb2bd | ||
![]() |
9e4cccd4db | ||
![]() |
3ff3bdf812 | ||
![]() |
45f0f983b1 | ||
![]() |
28e94513db | ||
![]() |
afe32e2c05 | ||
![]() |
0b6d40c9df | ||
![]() |
992d84c002 | ||
![]() |
9b675fe775 | ||
![]() |
35783d9a2c | ||
![]() |
f28e7b37bc | ||
![]() |
eceb9b729f | ||
![]() |
ce348596b7 | ||
![]() |
b85cd9a487 | ||
![]() |
d170885d8d | ||
![]() |
9a6bd83aa1 | ||
![]() |
0d31482647 | ||
![]() |
40c27b54b0 | ||
![]() |
0380695bba | ||
![]() |
899b77cdf4 | ||
![]() |
4819baaa07 | ||
![]() |
5a34020d23 | ||
![]() |
2b1d4ff98d | ||
![]() |
ed4843b0ed | ||
![]() |
30bd8f1570 | ||
![]() |
74d6f0a68d | ||
![]() |
5872ccc992 | ||
![]() |
9ee23d3649 | ||
![]() |
724f304e48 | ||
![]() |
a16e5a7055 | ||
![]() |
3bda858225 | ||
![]() |
701d2ce0f6 | ||
![]() |
be847a7e91 | ||
![]() |
fff0b5209c | ||
![]() |
2c5a8f0860 | ||
![]() |
103a30df2c | ||
![]() |
e4c8dbc2af | ||
![]() |
882cd8faf5 | ||
![]() |
7ba9f2e4e8 | ||
![]() |
52abe8016b | ||
![]() |
b840ab9907 | ||
![]() |
b977eb7193 | ||
![]() |
a179d5e34b | ||
![]() |
ab274147d8 | ||
![]() |
d81a844e1c | ||
![]() |
b288d5c763 | ||
![]() |
1b81af00b2 | ||
![]() |
d04f92d44e | ||
![]() |
80dc95fc03 | ||
![]() |
a8e36e7b1b | ||
![]() |
ec13350b24 | ||
![]() |
1076f8bfc2 | ||
![]() |
599cddfb67 | ||
![]() |
034af6aefd | ||
![]() |
5d2a111b9c | ||
![]() |
ca9ca7f5af | ||
![]() |
677d66d818 | ||
![]() |
750bf07e13 | ||
![]() |
2cd53410bc | ||
![]() |
ad7008a545 | ||
![]() |
bedfc2e188 | ||
![]() |
83b1a40f8b | ||
![]() |
a05dbcc2b2 | ||
![]() |
01f2697faf | ||
![]() |
fba915e04e | ||
![]() |
0d1cbc62d4 | ||
![]() |
f72cb1b5c8 | ||
![]() |
cb49fcf459 | ||
![]() |
66a08b6f18 | ||
![]() |
2554b51173 | ||
![]() |
d2e7b5ffa0 | ||
![]() |
38fd9a3ed2 | ||
![]() |
4ec236966a | ||
![]() |
696e42b5b4 | ||
![]() |
0ad1d315e8 | ||
![]() |
4697a9295a | ||
![]() |
9fbc7b96e4 | ||
![]() |
392d7ee30b | ||
![]() |
025e2a5760 | ||
![]() |
f7dc4fa2ac | ||
![]() |
13ebe89fdc | ||
![]() |
c7c3cc10c5 | ||
![]() |
e9b9159d23 | ||
![]() |
f15d5d073e | ||
![]() |
b461657407 | ||
![]() |
0da767f568 | ||
![]() |
395a73bbe0 | ||
![]() |
5870e2e378 | ||
![]() |
94a0aa6967 | ||
![]() |
2bfc4b0f5d | ||
![]() |
374f6b8e7d | ||
![]() |
33c6b3700e | ||
![]() |
eb975268f4 | ||
![]() |
b0afe4946d | ||
![]() |
5c6a399f5b | ||
![]() |
e744665171 | ||
![]() |
0b16cbddde | ||
![]() |
7ea2c6eabf | ||
![]() |
45ca11ecd0 | ||
![]() |
d8cdd82bf8 | ||
![]() |
345af5a535 | ||
![]() |
6e5895ce45 | ||
![]() |
b70a2fe4cf | ||
![]() |
da01d932ea | ||
![]() |
7cd5808766 | ||
![]() |
c98302b3c0 | ||
![]() |
cd7eedf589 | ||
![]() |
27bd8852a1 | ||
![]() |
effcf0b7cf | ||
![]() |
71b9db688a | ||
![]() |
8be6dc7758 | ||
![]() |
569f0b303b | ||
![]() |
15e3add909 | ||
![]() |
68c0c4d94f | ||
![]() |
a550a1c55c | ||
![]() |
832588f861 | ||
![]() |
73bcabd2fa | ||
![]() |
da8c9f3357 | ||
![]() |
6cfef4f476 | ||
![]() |
e9fbfaf536 | ||
![]() |
0407c56605 | ||
![]() |
1a63443e02 | ||
![]() |
0345f798bd | ||
![]() |
ee9d4d56a9 | ||
![]() |
44bafa478e | ||
![]() |
ce57e02769 | ||
![]() |
64cd794c02 | ||
![]() |
9c8ae96f25 | ||
![]() |
e973360aa7 | ||
![]() |
697e5b8b6c | ||
![]() |
017f609a51 | ||
![]() |
22f0d44fed | ||
![]() |
0fdf58b1ec | ||
![]() |
051bf2968a | ||
![]() |
4fd83631ec | ||
![]() |
a29d54c497 | ||
![]() |
ed6762b8ee | ||
![]() |
b6a0c7e57f | ||
![]() |
ba0be28d45 | ||
![]() |
ef5a435480 | ||
![]() |
61ad808d26 | ||
![]() |
426e33d3a6 | ||
![]() |
d6d8bce0e4 | ||
![]() |
7c76f2b764 | ||
![]() |
735516ed37 | ||
![]() |
dbf0fb8e86 | ||
![]() |
f50b5e1a58 | ||
![]() |
50c74ab821 | ||
![]() |
a1b76ac0a9 | ||
![]() |
49ca325845 | ||
![]() |
703e98ec45 | ||
![]() |
208f798b07 | ||
![]() |
059a028c0c | ||
![]() |
7269d171a7 | ||
![]() |
3ca2d99a47 | ||
![]() |
9ab60935a4 | ||
![]() |
c5437235f3 | ||
![]() |
537aac24f7 | ||
![]() |
8f20dd8425 | ||
![]() |
1639471250 | ||
![]() |
fcc5f00e75 | ||
![]() |
80b06da56b | ||
![]() |
2c1b0bb77b | ||
![]() |
f5c8406353 | ||
![]() |
c7f76944f3 | ||
![]() |
6542a70c05 | ||
![]() |
5bb94f1d9e | ||
![]() |
2378ea9c07 | ||
![]() |
cd30538130 | ||
![]() |
356ee22cc5 | ||
![]() |
281515cd9f | ||
![]() |
c0055b7a7f | ||
![]() |
6bdbafcd5c | ||
![]() |
a29955ff96 | ||
![]() |
91cca3cff3 | ||
![]() |
716f5de517 | ||
![]() |
aac0e782d0 | ||
![]() |
c69884fa3f | ||
![]() |
06675e4fb2 | ||
![]() |
ad67710f7e | ||
![]() |
654601ff23 | ||
![]() |
d29ef59514 | ||
![]() |
e3e8b9afb4 | ||
![]() |
a8e3af3586 | ||
![]() |
11ff7d1ff9 | ||
![]() |
b04b16825f | ||
![]() |
0f43a7f36b | ||
![]() |
95e9a63dcb | ||
![]() |
146d958fc0 | ||
![]() |
bb349d6085 | ||
![]() |
cb9053cd79 | ||
![]() |
4146f19814 | ||
![]() |
79eca7c098 | ||
![]() |
723c53e1df | ||
![]() |
daca3b558b | ||
![]() |
2075480b14 | ||
![]() |
e43194d59b | ||
![]() |
8bbc27fd39 | ||
![]() |
9a9a466bd4 | ||
![]() |
92c533f42a | ||
![]() |
863b7eee8b | ||
![]() |
417294339d | ||
![]() |
6aaefc663b | ||
![]() |
a6b10ac4c0 | ||
![]() |
2b7b92edee | ||
![]() |
f4de0cef26 | ||
![]() |
1b5a9c1a1f | ||
![]() |
a09f222b4c | ||
![]() |
5fb76b4918 | ||
![]() |
27d5a1d5bb | ||
![]() |
ba1917d23c | ||
![]() |
0b37d50dac | ||
![]() |
9275bf40b2 | ||
![]() |
4431fbbe5a | ||
![]() |
8c64ce67fc | ||
![]() |
1ddc4a5c5d | ||
![]() |
081cab821b | ||
![]() |
efe5c76469 | ||
![]() |
16c9b169f2 | ||
![]() |
73f20a8f1e | ||
![]() |
70e430cff1 | ||
![]() |
aa21aee14b | ||
![]() |
59ff77e171 | ||
![]() |
045170a67e | ||
![]() |
c9deea1f6f | ||
![]() |
c10f2a22b6 | ||
![]() |
45f24c63cb | ||
![]() |
18cb0bca19 | ||
![]() |
071dc08405 | ||
![]() |
b8181974ec | ||
![]() |
816900a6cf | ||
![]() |
2438fc8b31 | ||
![]() |
8b84f991e1 | ||
![]() |
3c98ec5b48 | ||
![]() |
e1f863afa4 | ||
![]() |
f40a036d97 | ||
![]() |
3f07e232aa | ||
![]() |
f44e23b8cc | ||
![]() |
67a6776fba | ||
![]() |
cdaf45f91c | ||
![]() |
e1b94487ef | ||
![]() |
2531ebf685 | ||
![]() |
01909b07ce | ||
![]() |
39ea08b7cb | ||
![]() |
413ffd7470 | ||
![]() |
66645baa75 | ||
![]() |
021f0be119 | ||
![]() |
1962fc88d6 | ||
![]() |
fa12301e08 | ||
![]() |
9f934abd48 | ||
![]() |
4680954112 | ||
![]() |
7e6ffc34fb | ||
![]() |
95135af6b3 | ||
![]() |
c81a47a692 | ||
![]() |
3bd9fc9f43 | ||
![]() |
c664d6dc32 | ||
![]() |
a182ec12cf | ||
![]() |
70bf316f9d | ||
![]() |
2979fb4a9b | ||
![]() |
a33be2d67a | ||
![]() |
c6878f9c9d | ||
![]() |
1d65f4471b | ||
![]() |
e9de3748bd | ||
![]() |
ea40afbe03 | ||
![]() |
01c70868ef | ||
![]() |
66d701e788 | ||
![]() |
6eff14a71d | ||
![]() |
506152d4e7 | ||
![]() |
6e9c96a0e5 | ||
![]() |
e58be4d57e | ||
![]() |
e94edbdb8f | ||
![]() |
0c8d2ea557 | ||
![]() |
07e3456631 | ||
![]() |
e65d554309 | ||
![]() |
f5652cf946 | ||
![]() |
399d0a5bf0 | ||
![]() |
589521bfd8 | ||
![]() |
d802b6ab44 | ||
![]() |
45863b4651 | ||
![]() |
f34c2b1714 | ||
![]() |
78750bf753 | ||
![]() |
65d585496c | ||
![]() |
194d3b9e17 | ||
![]() |
b4b85e569e | ||
![]() |
daabfeb0e2 | ||
![]() |
c61b57f7ab | ||
![]() |
7cae0920b8 | ||
![]() |
920e4ba6b1 | ||
![]() |
16e58a1911 | ||
![]() |
ec7570f93e | ||
![]() |
ae2993ecae | ||
![]() |
ee778ca8f9 | ||
![]() |
a2ff5fbfdb | ||
![]() |
eeb4be6e4b | ||
![]() |
aad3306bdf | ||
![]() |
35b727ac39 | ||
![]() |
abf07966be | ||
![]() |
a1c81955d3 | ||
![]() |
ad7538f394 | ||
![]() |
c0a909296e | ||
![]() |
7186cd09bf | ||
![]() |
db8583b1c6 | ||
![]() |
07be61585c | ||
![]() |
8bdd811a16 | ||
![]() |
c69d88c45a | ||
![]() |
b18fa2ebc2 | ||
![]() |
f838319455 | ||
![]() |
0d852474be | ||
![]() |
dd5a198222 | ||
![]() |
2d067f7498 | ||
![]() |
a6c1e42c0a | ||
![]() |
ff783d15e8 | ||
![]() |
e1f14aca9b | ||
![]() |
65ff45e202 | ||
![]() |
f330267361 | ||
![]() |
1de28fa566 | ||
![]() |
b08001183e | ||
![]() |
0121adec03 | ||
![]() |
4daeb41f0e | ||
![]() |
b2df22469b | ||
![]() |
1bf80e861d | ||
![]() |
5bb2beb179 | ||
![]() |
852a540cb0 | ||
![]() |
8b38aebbc7 | ||
![]() |
fa3c25ab66 | ||
![]() |
30df1dbe3f | ||
![]() |
6d61e3590d | ||
![]() |
e71650e6ab | ||
![]() |
d81b3805e3 | ||
![]() |
416253496d | ||
![]() |
29ec5bff60 | ||
![]() |
6c691a73bd | ||
![]() |
74cb2e054f | ||
![]() |
5b6329a12e | ||
![]() |
973ba58744 | ||
![]() |
1f60bcb2d0 | ||
![]() |
8e8354caec | ||
![]() |
e26c547afc | ||
![]() |
fc13fdceca | ||
![]() |
d585b1fcb6 | ||
![]() |
57bd0ef4f5 | ||
![]() |
d140f99b68 | ||
![]() |
90766685ae | ||
![]() |
d65638efe1 | ||
![]() |
b34572e7ce | ||
![]() |
c4c0cd1b77 | ||
![]() |
9f42f17088 | ||
![]() |
d570870be5 | ||
![]() |
8671bf70ab | ||
![]() |
e26729b483 | ||
![]() |
d4113d9569 | ||
![]() |
c5a5dd859e | ||
![]() |
0961fa1830 | ||
![]() |
f18b8d464d | ||
![]() |
98d7519274 | ||
![]() |
1326a7764a | ||
![]() |
97568195d6 | ||
![]() |
8d2d3a6540 | ||
![]() |
4f6730621a | ||
![]() |
a4bb695fc3 | ||
![]() |
a57bdfffb7 | ||
![]() |
bdb513a660 | ||
![]() |
b5ce53c907 | ||
![]() |
b556fae08f | ||
![]() |
f87ab9a99f | ||
![]() |
a5c973f86b | ||
![]() |
6b2b89da78 | ||
![]() |
7d4330b57a | ||
![]() |
225d14cbbe | ||
![]() |
d2a84c96a4 | ||
![]() |
48f0d9c15e | ||
![]() |
9c7e91a1e9 | ||
![]() |
91e74204b2 | ||
![]() |
fdee4efe98 | ||
![]() |
59bb6dae14 | ||
![]() |
3300f8bafb | ||
![]() |
c61e56d8a6 | ||
![]() |
ad15659fb2 | ||
![]() |
efffc3142a | ||
![]() |
b0a9b58958 | ||
![]() |
4ea46c5765 | ||
![]() |
7de0ba95d0 | ||
![]() |
3ad30c3ff5 | ||
![]() |
3ed2b41a5a | ||
![]() |
3bf4cf5c3f | ||
![]() |
52e7c166fc | ||
![]() |
08a78a1654 | ||
![]() |
81ceefe2f1 | ||
![]() |
c2d04bc478 | ||
![]() |
36fffa5b23 | ||
![]() |
841d5c0299 | ||
![]() |
0bdca8fd9e | ||
![]() |
f48275bc11 | ||
![]() |
aa369de280 |
445 changed files with 31900 additions and 9980 deletions
96
.github/container/Dockerfile
vendored
96
.github/container/Dockerfile
vendored
|
@ -1,20 +1,22 @@
|
|||
#' Define default build variables
|
||||
## specifc ARGs for METHOD='direct'
|
||||
ARG OTP_VSN='25.3'
|
||||
ARG ELIXIR_VSN='1.14.4'
|
||||
## specifc ARGs for METHOD='package'
|
||||
ARG ALPINE_VSN='3.17'
|
||||
## general ARGs
|
||||
ARG OTP_VSN='27.3.4.3'
|
||||
ARG ELIXIR_VSN='1.18.4'
|
||||
ARG UID='9000'
|
||||
ARG USER='ejabberd'
|
||||
ARG HOME="opt/$USER"
|
||||
ARG METHOD='direct'
|
||||
ARG BUILD_DIR="/$USER"
|
||||
ARG VERSION='master'
|
||||
|
||||
################################################################################
|
||||
#' METHOD='direct' - build and install ejabberd directly from source
|
||||
FROM docker.io/erlang:${OTP_VSN}-alpine AS direct
|
||||
#' Compile ejabberdapi
|
||||
FROM docker.io/golang:1.25-alpine AS api
|
||||
RUN go install -v \
|
||||
github.com/processone/ejabberd-api/cmd/ejabberd@master \
|
||||
&& mv bin/ejabberd bin/ejabberdapi
|
||||
|
||||
################################################################################
|
||||
#' build and install ejabberd directly from source
|
||||
FROM docker.io/erlang:${OTP_VSN}-alpine AS ejabberd
|
||||
|
||||
RUN apk -U add --no-cache \
|
||||
autoconf \
|
||||
|
@ -39,7 +41,8 @@ ARG ELIXIR_VSN
|
|||
RUN wget -O - https://github.com/elixir-lang/elixir/archive/v$ELIXIR_VSN.tar.gz \
|
||||
| tar -xzf -
|
||||
|
||||
WORKDIR elixir-$ELIXIR_VSN
|
||||
WORKDIR /elixir-$ELIXIR_VSN
|
||||
ENV ERL_FLAGS="+JPperf true"
|
||||
RUN make install clean
|
||||
|
||||
RUN mix local.hex --force \
|
||||
|
@ -50,6 +53,7 @@ COPY / $BUILD_DIR/
|
|||
|
||||
WORKDIR $BUILD_DIR
|
||||
RUN mv .github/container/ejabberdctl.template . \
|
||||
&& mv .github/container/ejabberd.yml.example . \
|
||||
&& ./autogen.sh \
|
||||
&& ./configure --with-rebar=mix --enable-all \
|
||||
&& make deps \
|
||||
|
@ -67,36 +71,18 @@ RUN cp -p $BUILD_DIR/tools/captcha*.sh $HOME-$VERSION/lib
|
|||
RUN find "$HOME-$VERSION/bin" -name 'ejabberd' -delete \
|
||||
&& find "$HOME-$VERSION/releases" -name 'COOKIE' -delete
|
||||
|
||||
RUN wget -O "$HOME/conf/cacert.pem" 'https://curl.se/ca/cacert.pem' \
|
||||
&& sed -i '/^loglevel:/a \ \
|
||||
\nca_file: /opt/ejabberd/conf/cacert.pem \
|
||||
\ncertfiles: \
|
||||
\n - /opt/ejabberd/conf/server.pem' "$HOME/conf/ejabberd.yml"
|
||||
RUN wget -O "$HOME/conf/cacert.pem" 'https://curl.se/ca/cacert.pem'
|
||||
|
||||
################################################################################
|
||||
#' METHOD='package' - install ejabberd from binary tarball package
|
||||
FROM docker.io/alpine:${ALPINE_VSN} AS package
|
||||
COPY tarballs/ejabberd-*-linux-musl-*.tar.gz /tmp/
|
||||
WORKDIR /rootfs
|
||||
ARG HOME
|
||||
RUN home_root_dir=$(echo $HOME | sed 's|\(.*\)/.*|\1 |') \
|
||||
&& mkdir -p $home_root_dir \
|
||||
&& ARCH=$(uname -m | sed -e 's/x86_64/x64/;s/aarch64/arm64/') \
|
||||
&& tar -xzf /tmp/ejabberd-*-linux-musl-$ARCH.tar.gz -C $home_root_dir
|
||||
|
||||
################################################################################
|
||||
#' Prepare ejabberd for runtime
|
||||
FROM ${METHOD} AS ejabberd
|
||||
RUN apk -U add --no-cache \
|
||||
git \
|
||||
libcap \
|
||||
openssl
|
||||
|
||||
WORKDIR /rootfs
|
||||
ARG HOME
|
||||
RUN mkdir -p usr/local/bin $HOME/conf $HOME/database $HOME/logs $HOME/upload
|
||||
|
||||
ARG BUILD_DIR
|
||||
COPY --from=api /go/bin/ejabberdapi usr/local/bin/
|
||||
|
||||
RUN if [ ! -d $HOME/.ejabberd-modules ]; \
|
||||
then \
|
||||
if [ -d $BUILD_DIR/.ejabberd-modules ]; \
|
||||
|
@ -116,11 +102,35 @@ RUN export PEM=$HOME/conf/server.pem \
|
|||
-days 3650 \
|
||||
-subj "/CN=localhost"
|
||||
|
||||
RUN sed -i 's|^#CTL_OVER_HTTP=|CTL_OVER_HTTP=../|' "$HOME/conf/ejabberdctl.cfg"
|
||||
|
||||
RUN home_root_dir=$(echo $HOME | sed 's|\(.*\)/.*|\1 |') \
|
||||
&& setcap 'cap_net_bind_service=+ep' $(find $home_root_dir -name beam.smp) \
|
||||
&& echo -e \
|
||||
"#!/bin/sh \
|
||||
\n[ -z \$ERLANG_NODE_ARG ] && export ERLANG_NODE_ARG=ejabberd@localhost \
|
||||
\nexport EMA=\"\$EJABBERD_MACRO_ADMIN\" \
|
||||
\nexport HOST=\"\${EJABBERD_MACRO_HOST:-localhost}\" \
|
||||
\nif [ -n \"\$EMA\" ] \
|
||||
\nthen \
|
||||
\n if [ \"\$EMA\" != \"\${EMA%%@*}\" ] \
|
||||
\n then \
|
||||
\n export USERNAME=\"\${EMA%%@*}\" \
|
||||
\n export HOST=\"\${EMA##*@}\" \
|
||||
\n else \
|
||||
\n export USERNAME=\"\$EMA\" \
|
||||
\n export SHOW_WARNING=\"true\" \
|
||||
\n fi \
|
||||
\nelif [ -n \"\$REGISTER_ADMIN_PASSWORD\" ] \
|
||||
\nthen \
|
||||
\n export USERNAME=\"admin\" \
|
||||
\nelse \
|
||||
\n export USERNAME=\"\$(od -A n -N 8 -t x8 /dev/urandom)\" \
|
||||
\nfi \
|
||||
\nexport EJABBERD_MACRO_ADMIN=\"\$USERNAME@\$HOST\" \
|
||||
\n[ -n \"\$SHOW_WARNING\" ] && echo \"WARNING: The EJABBERD_MACRO_ADMIN environment variable was set to '\$EMA', but it should include the host... I'll overwrite it to become '\$EJABBERD_MACRO_ADMIN'.\" \
|
||||
\n[ -n \"\$CTL_ON_CREATE\" ] && export SEPARATOR=\";\" \
|
||||
\n[ -n \"\$REGISTER_ADMIN_PASSWORD\" ] && export CTL_ON_CREATE=\"register \${EJABBERD_MACRO_ADMIN%%@*} \${EJABBERD_MACRO_ADMIN##*@} \$REGISTER_ADMIN_PASSWORD \$SEPARATOR \$CTL_ON_CREATE\" \
|
||||
\nexport CONFIG_DIR=/$HOME/conf \
|
||||
\nexport LOGS_DIR=/$HOME/logs \
|
||||
\nexport SPOOL_DIR=/$HOME/database \
|
||||
|
@ -137,28 +147,28 @@ RUN home_root_dir=$(echo $HOME | sed 's|\(.*\)/.*|\1 |') \
|
|||
ARG UID
|
||||
RUN chown -R $UID:$UID $HOME
|
||||
|
||||
RUN cp /rootfs/$HOME-$VERSION/lib/captcha*.sh usr/local/bin/
|
||||
RUN mkdir $HOME/sql \
|
||||
&& find /rootfs/$HOME-$VERSION/lib/ -name *.sql -exec cp {} $HOME/sql \; -exec cp {} $HOME/database \;
|
||||
|
||||
################################################################################
|
||||
#' METHOD='direct' - Remove erlang/OTP & rebar3
|
||||
FROM docker.io/erlang:${OTP_VSN}-alpine AS runtime-direct
|
||||
#' Remove erlang/OTP & rebar3
|
||||
FROM docker.io/erlang:${OTP_VSN}-alpine AS runtime
|
||||
RUN apk del .erlang-rundeps \
|
||||
&& rm -f $(which rebar3) \
|
||||
&& find /usr -type d -name 'erlang' -exec rm -rf {} + \
|
||||
&& find /usr -type l -exec test ! -e {} \; -delete
|
||||
|
||||
################################################################################
|
||||
#' METHOD='package' - define runtime base image
|
||||
FROM docker.io/alpine:${ALPINE_VSN} AS runtime-package
|
||||
|
||||
################################################################################
|
||||
#' Update alpine, finalize runtime environment
|
||||
FROM runtime-${METHOD} AS runtime
|
||||
COPY --from=ejabberd /tmp/runDeps /tmp/runDeps
|
||||
RUN apk -U upgrade --available --no-cache \
|
||||
&& apk add --no-cache \
|
||||
$(cat /tmp/runDeps) \
|
||||
so:libcap.so.2 \
|
||||
so:libtdsodbc.so.0 \
|
||||
curl \
|
||||
tini \
|
||||
&& rm /tmp/runDeps \
|
||||
&& ln -fs /usr/lib/libtdsodbc.so.0 /usr/lib/libtdsodbc.so
|
||||
|
||||
ARG USER
|
||||
|
@ -167,9 +177,13 @@ ARG HOME
|
|||
RUN addgroup $USER -g $UID \
|
||||
&& adduser -s /sbin/nologin -D -u $UID -h /$HOME -G $USER $USER
|
||||
|
||||
RUN ln -fs /usr/local/bin/ /opt/ejabberd/bin
|
||||
RUN rm -rf /home \
|
||||
&& ln -fs /opt /home
|
||||
|
||||
################################################################################
|
||||
#' Build together production image
|
||||
FROM scratch AS prod
|
||||
FROM scratch
|
||||
ARG USER
|
||||
ARG HOME
|
||||
|
||||
|
@ -186,7 +200,7 @@ HEALTHCHECK \
|
|||
WORKDIR /$HOME
|
||||
USER $USER
|
||||
VOLUME ["/$HOME"]
|
||||
EXPOSE 1883 4369-4399 5210 5222 5269 5280 5443
|
||||
EXPOSE 1880 1883 4369-4399 5210 5222 5269 5280 5443
|
||||
|
||||
ENTRYPOINT ["/sbin/tini","--","ejabberdctl"]
|
||||
CMD ["foreground"]
|
||||
|
|
278
.github/container/ejabberd.yml.example
vendored
Normal file
278
.github/container/ejabberd.yml.example
vendored
Normal file
|
@ -0,0 +1,278 @@
|
|||
###
|
||||
### ejabberd configuration file
|
||||
###
|
||||
### The parameters used in this configuration file are explained at
|
||||
###
|
||||
### https://docs.ejabberd.im/admin/configuration
|
||||
###
|
||||
### The configuration file is written in YAML.
|
||||
### *******************************************************
|
||||
### ******* !!! WARNING !!! *******
|
||||
### ******* YAML IS INDENTATION SENSITIVE *******
|
||||
### ******* MAKE SURE YOU INDENT SECTIONS CORRECTLY *******
|
||||
### *******************************************************
|
||||
### Refer to http://en.wikipedia.org/wiki/YAML for the brief description.
|
||||
###
|
||||
|
||||
define_macro:
|
||||
HOST: localhost
|
||||
## ADMIN: ... # set by /usr/local/bin/ejabberdctl
|
||||
PORT_C2S: 5222
|
||||
PORT_C2S_TLS: 5223
|
||||
PORT_S2S: 5269
|
||||
PORT_HTTP_TLS: 5443
|
||||
PORT_HTTP: 5280
|
||||
PORT_BROWSER: 1880
|
||||
PORT_STUN: 5478
|
||||
PORT_MQTT: 1883
|
||||
PORT_PROXY65: 7777
|
||||
|
||||
hosts:
|
||||
- HOST
|
||||
|
||||
loglevel: info
|
||||
|
||||
## If you already have certificates, list them here
|
||||
# certfiles:
|
||||
# - /etc/letsencrypt/live/domain.tld/fullchain.pem
|
||||
# - /etc/letsencrypt/live/domain.tld/privkey.pem
|
||||
|
||||
ca_file: /opt/ejabberd/conf/cacert.pem
|
||||
certfiles:
|
||||
- /opt/ejabberd/conf/server.pem
|
||||
|
||||
listen:
|
||||
-
|
||||
port: PORT_C2S
|
||||
ip: "::"
|
||||
module: ejabberd_c2s
|
||||
max_stanza_size: 262144
|
||||
shaper: c2s_shaper
|
||||
access: c2s
|
||||
starttls_required: true
|
||||
-
|
||||
port: PORT_C2S_TLS
|
||||
ip: "::"
|
||||
module: ejabberd_c2s
|
||||
max_stanza_size: 262144
|
||||
shaper: c2s_shaper
|
||||
access: c2s
|
||||
tls: true
|
||||
-
|
||||
port: PORT_S2S
|
||||
ip: "::"
|
||||
module: ejabberd_s2s_in
|
||||
max_stanza_size: 524288
|
||||
shaper: s2s_shaper
|
||||
-
|
||||
port: PORT_HTTP_TLS
|
||||
ip: "::"
|
||||
module: ejabberd_http
|
||||
tls: true
|
||||
request_handlers:
|
||||
/admin: ejabberd_web_admin
|
||||
/api: mod_http_api
|
||||
/bosh: mod_bosh
|
||||
/captcha: ejabberd_captcha
|
||||
/upload: mod_http_upload
|
||||
/ws: ejabberd_http_ws
|
||||
-
|
||||
port: PORT_HTTP
|
||||
ip: "::"
|
||||
module: ejabberd_http
|
||||
request_handlers:
|
||||
/admin: ejabberd_web_admin
|
||||
/.well-known/acme-challenge: ejabberd_acme
|
||||
-
|
||||
port: PORT_BROWSER
|
||||
ip: "::"
|
||||
module: ejabberd_http
|
||||
request_handlers:
|
||||
/: ejabberd_web_admin
|
||||
-
|
||||
port: "unix:../sockets/ctl_over_http.sock"
|
||||
module: ejabberd_http
|
||||
unix_socket:
|
||||
mode: '0600'
|
||||
request_handlers:
|
||||
/ctl: ejabberd_ctl
|
||||
-
|
||||
port: PORT_STUN
|
||||
ip: "::"
|
||||
transport: udp
|
||||
module: ejabberd_stun
|
||||
use_turn: true
|
||||
## The server's public IPv4 address:
|
||||
# turn_ipv4_address: "203.0.113.3"
|
||||
## The server's public IPv6 address:
|
||||
# turn_ipv6_address: "2001:db8::3"
|
||||
-
|
||||
port: PORT_MQTT
|
||||
ip: "::"
|
||||
module: mod_mqtt
|
||||
backlog: 1000
|
||||
|
||||
s2s_use_starttls: optional
|
||||
|
||||
acl:
|
||||
local:
|
||||
user_regexp: ""
|
||||
loopback:
|
||||
ip:
|
||||
- 127.0.0.0/8
|
||||
- ::1/128
|
||||
admin:
|
||||
user:
|
||||
- ADMIN
|
||||
|
||||
access_rules:
|
||||
local:
|
||||
allow: local
|
||||
c2s:
|
||||
deny: blocked
|
||||
allow: all
|
||||
announce:
|
||||
allow: admin
|
||||
configure:
|
||||
allow: admin
|
||||
muc_create:
|
||||
allow: local
|
||||
pubsub_createnode:
|
||||
allow: local
|
||||
trusted_network:
|
||||
allow: loopback
|
||||
|
||||
api_permissions:
|
||||
"console commands":
|
||||
from: ejabberd_ctl
|
||||
who: all
|
||||
what: "*"
|
||||
"webadmin commands":
|
||||
from: ejabberd_web_admin
|
||||
who: admin
|
||||
what: "*"
|
||||
"admin access":
|
||||
who:
|
||||
access:
|
||||
allow:
|
||||
- acl: loopback
|
||||
- acl: admin
|
||||
oauth:
|
||||
scope: "ejabberd:admin"
|
||||
access:
|
||||
allow:
|
||||
- acl: loopback
|
||||
- acl: admin
|
||||
what:
|
||||
- "*"
|
||||
- "!stop"
|
||||
- "!start"
|
||||
"public commands":
|
||||
who:
|
||||
ip: 127.0.0.1/8
|
||||
what:
|
||||
- status
|
||||
- connected_users_number
|
||||
|
||||
shaper:
|
||||
normal:
|
||||
rate: 3000
|
||||
burst_size: 20000
|
||||
fast: 100000
|
||||
|
||||
shaper_rules:
|
||||
max_user_sessions: 10
|
||||
max_user_offline_messages:
|
||||
5000: admin
|
||||
100: all
|
||||
c2s_shaper:
|
||||
none: admin
|
||||
normal: all
|
||||
s2s_shaper: fast
|
||||
|
||||
modules:
|
||||
mod_adhoc: {}
|
||||
mod_admin_extra: {}
|
||||
mod_announce:
|
||||
access: announce
|
||||
mod_avatar: {}
|
||||
mod_blocking: {}
|
||||
mod_bosh: {}
|
||||
mod_caps: {}
|
||||
mod_carboncopy: {}
|
||||
mod_client_state: {}
|
||||
mod_configure: {}
|
||||
mod_disco: {}
|
||||
mod_fail2ban: {}
|
||||
mod_http_api: {}
|
||||
mod_http_upload:
|
||||
put_url: https://@HOST_URL_ENCODE@:5443/upload
|
||||
custom_headers:
|
||||
"Access-Control-Allow-Origin": "https://@HOST@"
|
||||
"Access-Control-Allow-Methods": "GET,HEAD,PUT,OPTIONS"
|
||||
"Access-Control-Allow-Headers": "Content-Type"
|
||||
mod_last: {}
|
||||
mod_mam:
|
||||
## Mnesia is limited to 2GB, better to use an SQL backend
|
||||
## For small servers SQLite is a good fit and is very easy
|
||||
## to configure. Uncomment this when you have SQL configured:
|
||||
## db_type: sql
|
||||
assume_mam_usage: true
|
||||
default: always
|
||||
mod_mqtt: {}
|
||||
mod_muc:
|
||||
access:
|
||||
- allow
|
||||
access_admin:
|
||||
- allow: admin
|
||||
access_create: muc_create
|
||||
access_persistent: muc_create
|
||||
access_mam:
|
||||
- allow
|
||||
default_room_options:
|
||||
mam: true
|
||||
mod_muc_admin: {}
|
||||
mod_offline:
|
||||
access_max_user_messages: max_user_offline_messages
|
||||
mod_ping: {}
|
||||
mod_privacy: {}
|
||||
mod_private: {}
|
||||
mod_proxy65:
|
||||
access: local
|
||||
max_connections: 5
|
||||
port: PORT_PROXY65
|
||||
mod_pubsub:
|
||||
access_createnode: pubsub_createnode
|
||||
plugins:
|
||||
- flat
|
||||
- pep
|
||||
force_node_config:
|
||||
## Avoid buggy clients to make their bookmarks public
|
||||
storage:bookmarks:
|
||||
access_model: whitelist
|
||||
mod_push: {}
|
||||
mod_push_keepalive: {}
|
||||
mod_register:
|
||||
## Only accept registration requests from the "trusted"
|
||||
## network (see access_rules section above).
|
||||
## Think twice before enabling registration from any
|
||||
## address. See the Jabber SPAM Manifesto for details:
|
||||
## https://github.com/ge0rg/jabber-spam-fighting-manifesto
|
||||
ip_access: trusted_network
|
||||
mod_roster:
|
||||
versioning: true
|
||||
mod_s2s_bidi: {}
|
||||
mod_s2s_dialback: {}
|
||||
mod_shared_roster: {}
|
||||
mod_stream_mgmt:
|
||||
resend_on_timeout: if_offline
|
||||
mod_stun_disco: {}
|
||||
mod_vcard: {}
|
||||
mod_vcard_xupdate: {}
|
||||
mod_version:
|
||||
show_os: false
|
||||
|
||||
### Local Variables:
|
||||
### mode: yaml
|
||||
### End:
|
||||
### vim: set filetype=yaml tabstop=8
|
294
.github/container/ejabberdctl.template
vendored
294
.github/container/ejabberdctl.template
vendored
|
@ -15,8 +15,8 @@ SCRIPT_DIR="$(cd "$(dirname "$SCRIPT")" && pwd -P)"
|
|||
# shellcheck disable=SC2034
|
||||
ERTS_VSN="{{erts_vsn}}"
|
||||
ERL="{{erl}}"
|
||||
IEX="{{bindir}}/iex"
|
||||
EPMD="{{epmd}}"
|
||||
IEX="{{iexpath}}"
|
||||
COOKIE_FILE="$HOME"/.erlang.cookie
|
||||
[ -n "$ERLANG_COOKIE" ] && [ ! -f "$COOKIE_FILE" ] && echo "$ERLANG_COOKIE" > "$COOKIE_FILE" && chmod 400 "$COOKIE_FILE"
|
||||
|
||||
|
@ -60,7 +60,6 @@ done
|
|||
# define ejabberd variables if not already defined from the command line
|
||||
: "${CONFIG_DIR:="{{config_dir}}"}"
|
||||
: "${LOGS_DIR:="{{logs_dir}}"}"
|
||||
: "${SPOOL_DIR:="{{spool_dir}}"}"
|
||||
: "${EJABBERD_CONFIG_PATH:="$CONFIG_DIR/ejabberd.yml"}"
|
||||
: "${EJABBERDCTL_CONFIG_PATH:="$CONFIG_DIR/ejabberdctl.cfg"}"
|
||||
# Allows passing extra Erlang command-line arguments in vm.args file
|
||||
|
@ -69,8 +68,13 @@ done
|
|||
[ -f "$EJABBERDCTL_CONFIG_PATH" ] && . "$EJABBERDCTL_CONFIG_PATH"
|
||||
[ -n "$ERLANG_NODE_ARG" ] && ERLANG_NODE="$ERLANG_NODE_ARG"
|
||||
[ "$ERLANG_NODE" = "${ERLANG_NODE%.*}" ] && S="-s"
|
||||
: "${SPOOL_DIR:="{{spool_dir}}"}"
|
||||
: "${EJABBERD_LOG_PATH:="$LOGS_DIR/ejabberd.log"}"
|
||||
|
||||
# backward support for old mnesia spool dir path
|
||||
: "${SPOOL_DIR_OLD:="$SPOOL_DIR/$ERLANG_NODE"}"
|
||||
[ -r "$SPOOL_DIR_OLD/schema.DAT" ] && [ ! -r "$SPOOL_DIR/schema.DAT" ] && SPOOL_DIR="$SPOOL_DIR_OLD"
|
||||
|
||||
# define erl parameters
|
||||
ERLANG_OPTS="+K $POLL +P $ERL_PROCESSES $ERL_OPTIONS"
|
||||
if [ -n "$FIREWALL_WINDOW" ] ; then
|
||||
|
@ -79,6 +83,9 @@ fi
|
|||
if [ -n "$INET_DIST_INTERFACE" ] ; then
|
||||
INET_DIST_INTERFACE2=$("$ERL" $ERLANG_OPTS -noshell -eval 'case inet:parse_address("'$INET_DIST_INTERFACE'") of {ok,IP} -> io:format("~p",[IP]); _ -> ok end.' -s erlang halt)
|
||||
if [ -n "$INET_DIST_INTERFACE2" ] ; then
|
||||
if [ "$(echo "$INET_DIST_INTERFACE2" | grep -o "," | wc -l)" -eq 7 ] ; then
|
||||
INET_DIST_INTERFACE2="$INET_DIST_INTERFACE2 -proto_dist inet6_tcp"
|
||||
fi
|
||||
ERLANG_OPTS="$ERLANG_OPTS -kernel inet_dist_use_interface $INET_DIST_INTERFACE2"
|
||||
fi
|
||||
fi
|
||||
|
@ -90,11 +97,12 @@ ERL_CRASH_DUMP="$LOGS_DIR"/erl_crash_$(date "+%Y%m%d-%H%M%S").dump
|
|||
ERL_INETRC="$CONFIG_DIR"/inetrc
|
||||
|
||||
# define ejabberd parameters
|
||||
EJABBERD_OPTS="$EJABBERD_OPTS\
|
||||
EJABBERD_OPTS="\
|
||||
$(sed '/^log_rotate_size/!d;s/:[ \t]*\([0-9]\{1,\}\).*/ \1/;s/:[ \t]*\(infinity\).*/ \1 /;s/^/ /' "$EJABBERD_CONFIG_PATH")\
|
||||
$(sed '/^log_rotate_count/!d;s/:[ \t]*\([0-9]*\).*/ \1 /;s/^/ /' "$EJABBERD_CONFIG_PATH")\
|
||||
$(sed '/^log_burst_limit_count/!d;s/:[ \t]*\([0-9]*\).*/ \1 /;s/^/ /' "$EJABBERD_CONFIG_PATH")\
|
||||
$(sed '/^log_burst_limit_window_time/!d;s/:[ \t]*\([0-9]*[a-z]*\).*/ \1/;s/^/ /' "$EJABBERD_CONFIG_PATH")"
|
||||
$(sed '/^log_burst_limit_window_time/!d;s/:[ \t]*\([0-9]*[a-z]*\).*/ \1 /;s/^/ /' "$EJABBERD_CONFIG_PATH")\
|
||||
$EJABBERD_OPTS"
|
||||
[ -n "$EJABBERD_OPTS" ] && EJABBERD_OPTS="-ejabberd $EJABBERD_OPTS"
|
||||
EJABBERD_OPTS="-mnesia dir \"$SPOOL_DIR\" $MNESIA_OPTIONS $EJABBERD_OPTS -s ejabberd"
|
||||
|
||||
|
@ -187,8 +195,10 @@ livewarning()
|
|||
echo "Please be extremely cautious with your actions,"
|
||||
echo "and exit immediately if you are not completely sure."
|
||||
echo ""
|
||||
echo "To exit this LIVE mode and stop ejabberd, press:"
|
||||
echo " q(). and press the Enter key"
|
||||
echo "To stop ejabberd gracefully:"
|
||||
echo " ejabberd:stop()."
|
||||
echo "To quit erlang immediately, press:"
|
||||
echo " control+g and then q"
|
||||
echo ""
|
||||
echo "--------------------------------------------------------------------"
|
||||
echo "To bypass permanently this warning, add to ejabberdctl.cfg the line:"
|
||||
|
@ -199,6 +209,39 @@ livewarning()
|
|||
fi
|
||||
}
|
||||
|
||||
check_etop_result()
|
||||
{
|
||||
result=$?
|
||||
if [ $result -eq 1 ] ; then
|
||||
echo ""
|
||||
echo "It seems there was some problem running 'ejabberdctl etop'."
|
||||
echo "Is the error message something like this?"
|
||||
echo " Failed to load module 'etop' because it cannot be found..."
|
||||
echo "Then probably ejabberd was compiled with development tools disabled."
|
||||
echo "To use 'etop', recompile ejabberd with: ./configure --enable-tools"
|
||||
echo ""
|
||||
exit $result
|
||||
fi
|
||||
}
|
||||
|
||||
check_iex_result()
|
||||
{
|
||||
result=$?
|
||||
if [ $result -eq 127 ] ; then
|
||||
echo ""
|
||||
echo "It seems there was some problem finding 'iex' binary from Elixir."
|
||||
echo "Probably ejabberd was compiled with Rebar3 and Elixir disabled, like:"
|
||||
echo " ./configure"
|
||||
echo "which is equivalent to:"
|
||||
echo " ./configure --with-rebar=rebar3 --disable-elixir"
|
||||
echo "To use 'iex', recompile ejabberd enabling Elixir or using Mix:"
|
||||
echo " ./configure --enable-elixir"
|
||||
echo " ./configure --with-rebar=mix"
|
||||
echo ""
|
||||
exit $result
|
||||
fi
|
||||
}
|
||||
|
||||
help()
|
||||
{
|
||||
echo ""
|
||||
|
@ -227,16 +270,34 @@ help()
|
|||
}
|
||||
|
||||
# dynamic node name helper
|
||||
uid()
|
||||
{
|
||||
uuid=$(uuidgen 2>/dev/null)
|
||||
random=$(awk 'BEGIN { srand(); print int(rand()*32768) }' /dev/null)
|
||||
[ -z "$uuid" ] && [ -f /proc/sys/kernel/random/uuid ] && uuid=$(cat /proc/sys/kernel/random/uuid)
|
||||
[ -z "$uuid" ] && uuid=$(printf "%X" "${random:-$$}$(date +%M%S)")
|
||||
uuid=$(printf '%s' $uuid | sed 's/^\(...\).*$/\1/')
|
||||
[ $# -eq 0 ] && echo "${uuid}-${ERLANG_NODE}"
|
||||
[ $# -eq 1 ] && echo "${uuid}-${1}-${ERLANG_NODE}"
|
||||
[ $# -eq 2 ] && echo "${uuid}-${1}@${2}"
|
||||
uid() {
|
||||
ERTSVERSION="$("$ERL" -version 2>&1 | sed 's|.* \([0-9]*[0-9]\).*|\1|g')"
|
||||
if [ $ERTSVERSION -lt 11 ] ; then # otp 23.0 includes erts 11.0
|
||||
# Erlang/OTP lower than 23, which doesn's support dynamic node code
|
||||
N=1
|
||||
PF=$(( $$ % 97 ))
|
||||
while
|
||||
case $# in
|
||||
0) NN="${PF}-${N}-${ERLANG_NODE}"
|
||||
;;
|
||||
1) NN="${PF}-${N}-${1}-${ERLANG_NODE}"
|
||||
;;
|
||||
2) NN="${PF}-${N}-${1}@${2}"
|
||||
;;
|
||||
esac
|
||||
N=$(( N + 1 + ( $$ % 5 ) ))
|
||||
"$EPMD" -names 2>/dev/null | grep -q " ${NN%@*} "
|
||||
do :; done
|
||||
echo $NN
|
||||
else
|
||||
# Erlang/OTP 23 or higher: use native dynamic node code
|
||||
# https://www.erlang.org/patches/otp-23.0#OTP-13812
|
||||
if [ "$ERLANG_NODE" != "${ERLANG_NODE%.*}" ]; then
|
||||
echo "undefined@${ERLANG_NODE#*@}"
|
||||
else
|
||||
echo "undefined"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# stop epmd if there is no other running node
|
||||
|
@ -250,6 +311,8 @@ stop_epmd()
|
|||
# if all ok, ensure runtime directory exists and make it current directory
|
||||
check_start()
|
||||
{
|
||||
ECSIMAGE_DBPATH=$HOME/database/$ERLANG_NODE
|
||||
[ ! -d "$ECSIMAGE_DBPATH" ] && ln -s $HOME/database $HOME/database/$ERLANG_NODE
|
||||
[ -n "$ERL_DIST_PORT" ] && return
|
||||
"$EPMD" -names 2>/dev/null | grep -q " ${ERLANG_NODE%@*} " && {
|
||||
pgrep -f "$ERLANG_NODE" >/dev/null && {
|
||||
|
@ -283,20 +346,32 @@ post_waiter_loop()
|
|||
LIST=$@
|
||||
HEAD=${LIST%% ; *}
|
||||
TAIL=${LIST#* ; }
|
||||
echo ":> ejabberdctl $HEAD"
|
||||
$0 $HEAD
|
||||
HEAD2=${HEAD#\! *}
|
||||
echo ":> ejabberdctl $HEAD2"
|
||||
$0 $HEAD2
|
||||
ctlstatus=$?
|
||||
if [ $ctlstatus -ne 0 ] ; then
|
||||
if [ "$HEAD" != "$HEAD2" ] ; then
|
||||
echo ":> FAILURE in command '$HEAD2' !!! Ignoring result"
|
||||
else
|
||||
echo ":> FAILURE in command '$HEAD' !!! Stopping ejabberd..."
|
||||
$0 halt > /dev/null
|
||||
exit $ctlstatus
|
||||
fi
|
||||
fi
|
||||
[ "$HEAD" = "$TAIL" ] || post_waiter_loop $TAIL
|
||||
}
|
||||
|
||||
# allow sync calls
|
||||
wait_status()
|
||||
{
|
||||
wait_status_node "$ERLANG_NODE" $1 $2 $3
|
||||
}
|
||||
|
||||
wait_status_node()
|
||||
{
|
||||
CONNECT_NODE=$1
|
||||
shift
|
||||
# args: status try delay
|
||||
# return: 0 OK, 1 KO
|
||||
timeout="$2"
|
||||
|
@ -307,14 +382,71 @@ wait_status()
|
|||
if [ $timeout -eq 0 ] ; then
|
||||
status="$1"
|
||||
else
|
||||
run_erl "$(uid ctl)" -hidden -noinput -s ejabberd_ctl \
|
||||
-extra "$ERLANG_NODE" $NO_TIMEOUT status > /dev/null
|
||||
run_erl "$(uid ctl)" -hidden -noinput \
|
||||
-eval 'net_kernel:connect_node('"'$CONNECT_NODE'"')' \
|
||||
-s ejabberd_ctl \
|
||||
-extra "$CONNECT_NODE" $NO_TIMEOUT status > /dev/null
|
||||
status="$?"
|
||||
fi
|
||||
done
|
||||
[ $timeout -gt 0 ]
|
||||
}
|
||||
|
||||
exec_other_command()
|
||||
{
|
||||
exec_other_command_node $ERLANG_NODE "$@"
|
||||
}
|
||||
|
||||
exec_other_command_node()
|
||||
{
|
||||
CONNECT_NODE=$1
|
||||
shift
|
||||
if [ -z "$CTL_OVER_HTTP" ] || [ ! -S "$CTL_OVER_HTTP" ] \
|
||||
|| [ ! -x "$(command -v curl)" ] || [ -z "$1" ] || [ "$1" = "help" ] \
|
||||
|| [ "$1" = "mnesia_info_ctl" ]|| [ "$1" = "print_sql_schema" ] ; then
|
||||
run_erl "$(uid ctl)" -hidden -noinput \
|
||||
-eval 'net_kernel:connect_node('"'$CONNECT_NODE'"')' \
|
||||
-s ejabberd_ctl \
|
||||
-extra "$CONNECT_NODE" $NO_TIMEOUT "$@"
|
||||
result=$?
|
||||
case $result in
|
||||
3) help;;
|
||||
*) :;;
|
||||
esac
|
||||
return $result
|
||||
else
|
||||
exec_ctl_over_http_socket "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
exec_ctl_over_http_socket()
|
||||
{
|
||||
COMMAND=${1}
|
||||
CARGS=""
|
||||
while [ $# -gt 0 ]; do
|
||||
[ -z "$CARGS" ] && CARGS="[" || CARGS="${CARGS}, "
|
||||
CARGS="${CARGS}\"$1\""
|
||||
shift
|
||||
done
|
||||
CARGS="${CARGS}]"
|
||||
TEMPHEADERS=temp-headers.log
|
||||
curl \
|
||||
--unix-socket ${CTL_OVER_HTTP} \
|
||||
--header "Content-Type: application/json" \
|
||||
--header "Accept: application/json" \
|
||||
--data "${CARGS}" \
|
||||
--dump-header ${TEMPHEADERS} \
|
||||
--no-progress-meter \
|
||||
"http://localhost/ctl/${COMMAND}"
|
||||
result=$(sed -n 's/.*status-code: \([0-9]*\).*/\1/p' < $TEMPHEADERS)
|
||||
rm ${TEMPHEADERS}
|
||||
case $result in
|
||||
2|3) exec_other_command help ${COMMAND};;
|
||||
*) :;;
|
||||
esac
|
||||
exit $result
|
||||
}
|
||||
|
||||
# ensure we can change current directory to SPOOL_DIR
|
||||
[ -f "$SPOOL_DIR/schema.DAT" ] || FIRST_RUN=true
|
||||
[ -d "$SPOOL_DIR" ] || run_cmd mkdir -p "$SPOOL_DIR"
|
||||
|
@ -323,6 +455,103 @@ cd "$SPOOL_DIR" || {
|
|||
exit 6
|
||||
}
|
||||
|
||||
printe()
|
||||
{
|
||||
printf "\n"
|
||||
printf "\e[1;40;32m==> %s\e[0m\n" "$1"
|
||||
}
|
||||
|
||||
## Function copied from tools/make-installers
|
||||
user_agrees()
|
||||
{
|
||||
question="$*"
|
||||
|
||||
if [ -t 0 ]
|
||||
then
|
||||
printe "$question (y/n) [n]"
|
||||
read -r response
|
||||
case "$response" in
|
||||
[Yy]|[Yy][Ee][Ss])
|
||||
return 0
|
||||
;;
|
||||
[Nn]|[Nn][Oo]|'')
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
echo 'Please respond with "yes" or "no".'
|
||||
user_agrees "$question"
|
||||
;;
|
||||
esac
|
||||
else # Assume 'yes' if not running interactively.
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
mnesia_change()
|
||||
{
|
||||
ERLANG_NODE_OLD="$1"
|
||||
[ "$ERLANG_NODE_OLD" = "" ] \
|
||||
&& echo "Error: Please provide the old erlang node name, for example:" \
|
||||
&& echo " ejabberdctl mnesia_change ejabberd@oldmachine" \
|
||||
&& exit 1
|
||||
|
||||
SPOOL_DIR_BACKUP=$SPOOL_DIR/$ERLANG_NODE_OLD-backup/
|
||||
OLDFILE=$SPOOL_DIR_BACKUP/$ERLANG_NODE_OLD.backup
|
||||
NEWFILE=$SPOOL_DIR_BACKUP/$ERLANG_NODE.backup
|
||||
|
||||
printe "This changes your mnesia database from node name '$ERLANG_NODE_OLD' to '$ERLANG_NODE'"
|
||||
|
||||
[ -d "$SPOOL_DIR_BACKUP" ] && printe "WARNING! A backup of old node already exists in $SPOOL_DIR_BACKUP"
|
||||
|
||||
if ! user_agrees "Do you want to proceed?"
|
||||
then
|
||||
echo 'Operation aborted.'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printe "Starting ejabberd with old node name $ERLANG_NODE_OLD ..."
|
||||
exec_erl "$ERLANG_NODE_OLD" $EJABBERD_OPTS -detached
|
||||
wait_status_node $ERLANG_NODE_OLD 0 30 2
|
||||
result=$?
|
||||
case $result in
|
||||
1) echo "There was a problem starting ejabberd with the old erlang node name. " \
|
||||
&& echo "Check for log errors in $EJABBERD_LOG_PATH" \
|
||||
&& exit $result;;
|
||||
*) :;;
|
||||
esac
|
||||
exec_other_command_node $ERLANG_NODE_OLD "status"
|
||||
|
||||
printe "Making backup of old database to file $OLDFILE ..."
|
||||
mkdir $SPOOL_DIR_BACKUP
|
||||
exec_other_command_node $ERLANG_NODE_OLD backup "$OLDFILE"
|
||||
|
||||
printe "Changing node name in new backup file $NEWFILE ..."
|
||||
exec_other_command_node $ERLANG_NODE_OLD mnesia_change_nodename "$ERLANG_NODE_OLD" "$ERLANG_NODE" "$OLDFILE" "$NEWFILE"
|
||||
|
||||
printe "Stopping old ejabberd..."
|
||||
exec_other_command_node $ERLANG_NODE_OLD "stop"
|
||||
wait_status_node $ERLANG_NODE_OLD 3 30 2 && stop_epmd
|
||||
|
||||
printe "Moving old mnesia spool files to backup subdirectory $SPOOL_DIR_BACKUP ..."
|
||||
mv $SPOOL_DIR/*.DAT $SPOOL_DIR_BACKUP
|
||||
mv $SPOOL_DIR/*.DCD $SPOOL_DIR_BACKUP
|
||||
mv $SPOOL_DIR/*.LOG $SPOOL_DIR_BACKUP
|
||||
|
||||
printe "Starting ejabberd with new node name $ERLANG_NODE ..."
|
||||
exec_erl "$ERLANG_NODE" $EJABBERD_OPTS -detached
|
||||
wait_status 0 30 2
|
||||
exec_other_command "status"
|
||||
|
||||
printe "Installing fallback of new mnesia..."
|
||||
exec_other_command install_fallback "$NEWFILE"
|
||||
|
||||
printe "Stopping new ejabberd..."
|
||||
exec_other_command "stop"
|
||||
wait_status 3 30 2 && stop_epmd
|
||||
|
||||
printe "Finished, now you can start ejabberd normally"
|
||||
}
|
||||
|
||||
# main
|
||||
case $1 in
|
||||
start)
|
||||
|
@ -350,24 +579,31 @@ case $1 in
|
|||
;;
|
||||
etop)
|
||||
set_dist_client
|
||||
exec_erl "$(uid top)" -hidden -node "$ERLANG_NODE" -s etop \
|
||||
-s erlang halt -output text
|
||||
exec_erl "$(uid top)" -hidden -remsh "$ERLANG_NODE" \
|
||||
-eval 'net_kernel:connect_node('"'$ERLANG_NODE'"')' \
|
||||
-s etop \
|
||||
-output text
|
||||
check_etop_result
|
||||
;;
|
||||
iexdebug)
|
||||
debugwarning
|
||||
set_dist_client
|
||||
exec_iex "$(uid debug)" --remsh "$ERLANG_NODE"
|
||||
check_iex_result
|
||||
;;
|
||||
iexlive)
|
||||
livewarning
|
||||
exec_iex "$ERLANG_NODE" --erl "$EJABBERD_OPTS"
|
||||
check_iex_result
|
||||
;;
|
||||
ping)
|
||||
PEER=${2:-$ERLANG_NODE}
|
||||
[ "$PEER" = "${PEER%.*}" ] && PS="-s"
|
||||
set_dist_client
|
||||
exec_cmd "$ERL" ${PS:--}name "$(uid ping "$(hostname $PS)")" $ERLANG_OPTS \
|
||||
-noinput -hidden -eval 'io:format("~p~n",[net_adm:ping('"'$PEER'"')])' \
|
||||
-noinput -hidden \
|
||||
-eval 'net_kernel:connect_node('"'$PEER'"')' \
|
||||
-eval 'io:format("~p~n",[net_adm:ping('"'$PEER'"')])' \
|
||||
-s erlang halt -output text
|
||||
;;
|
||||
started)
|
||||
|
@ -378,18 +614,14 @@ case $1 in
|
|||
set_dist_client
|
||||
wait_status 3 30 2 && stop_epmd # wait 30x2s before timeout
|
||||
;;
|
||||
mnesia_change)
|
||||
mnesia_change $2
|
||||
;;
|
||||
post_waiter)
|
||||
post_waiter_waiting
|
||||
;;
|
||||
*)
|
||||
set_dist_client
|
||||
run_erl "$(uid ctl)" -hidden -noinput -s ejabberd_ctl \
|
||||
-extra "$ERLANG_NODE" $NO_TIMEOUT "$@"
|
||||
result=$?
|
||||
case $result in
|
||||
2|3) help;;
|
||||
*) :;;
|
||||
esac
|
||||
exit $result
|
||||
exec_other_command "$@"
|
||||
;;
|
||||
esac
|
||||
|
|
99
.github/workflows/ci.yml
vendored
99
.github/workflows/ci.yml
vendored
|
@ -25,20 +25,20 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
otp: ['20.0', '25.3', '26.1']
|
||||
runs-on: ubuntu-20.04
|
||||
otp: ['25', '26', '27', '28']
|
||||
runs-on: ubuntu-24.04
|
||||
services:
|
||||
redis:
|
||||
image: redis
|
||||
image: public.ecr.aws/docker/library/redis
|
||||
ports:
|
||||
- 6379:6379
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Test shell scripts
|
||||
if: matrix.otp == '25.3'
|
||||
if: matrix.otp == '27'
|
||||
run: |
|
||||
shellcheck test/ejabberd_SUITE_data/gencerts.sh
|
||||
shellcheck tools/captcha.sh
|
||||
|
@ -46,18 +46,10 @@ jobs:
|
|||
shellcheck -x ejabberdctl.template
|
||||
|
||||
- name: Get specific Erlang/OTP
|
||||
if: matrix.otp != '25.3'
|
||||
uses: erlef/setup-beam@v1
|
||||
with:
|
||||
otp-version: ${{ matrix.otp }}
|
||||
|
||||
- name: Get a compatible Rebar3
|
||||
if: matrix.otp <= '21.3'
|
||||
run: |
|
||||
rm rebar3
|
||||
wget https://github.com/processone/ejabberd/raw/21.12/rebar3
|
||||
chmod +x rebar3
|
||||
|
||||
- name: Install MS SQL Server
|
||||
run: |
|
||||
docker run -d -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=ejabberd_Test1" \
|
||||
|
@ -69,8 +61,8 @@ jobs:
|
|||
|
||||
- name: Prepare databases
|
||||
run: |
|
||||
docker exec ejabberd-mssql /opt/mssql-tools/bin/sqlcmd -U SA -P ejabberd_Test1 -S localhost -i /initdb_mssql.sql
|
||||
docker exec ejabberd-mssql /opt/mssql-tools/bin/sqlcmd -U SA -P ejabberd_Test1 -S localhost -d ejabberd_test -i /mssql.sql
|
||||
docker exec ejabberd-mssql /opt/mssql-tools18/bin/sqlcmd -C -U SA -P ejabberd_Test1 -S localhost -i /initdb_mssql.sql
|
||||
docker exec ejabberd-mssql /opt/mssql-tools18/bin/sqlcmd -C -U SA -P ejabberd_Test1 -S localhost -d ejabberd_test -i /mssql.sql
|
||||
sudo systemctl start mysql.service
|
||||
sudo systemctl start postgresql.service
|
||||
mysql -u root -proot -e "CREATE DATABASE ejabberd_test;"
|
||||
|
@ -78,14 +70,14 @@ jobs:
|
|||
IDENTIFIED BY 'ejabberd_test';"
|
||||
mysql -u root -proot -e "GRANT ALL ON ejabberd_test.*
|
||||
TO 'ejabberd_test'@'localhost';"
|
||||
mysql -u ejabberd_test -pejabberd_test ejabberd_test < sql/mysql.sql
|
||||
pg_isready
|
||||
sudo -u postgres psql -c "CREATE DATABASE ejabberd_test;"
|
||||
sudo -u postgres psql -c "CREATE USER ejabberd_test
|
||||
WITH PASSWORD 'ejabberd_test';"
|
||||
sudo -u postgres psql -c "GRANT ALL PRIVILEGES
|
||||
ON DATABASE ejabberd_test TO ejabberd_test;"
|
||||
PGPASSWORD="ejabberd_test" psql -h localhost -U ejabberd_test ejabberd_test -f sql/pg.sql
|
||||
sudo -u postgres psql -c "GRANT ALL ON SCHEMA public TO ejabberd_test;"
|
||||
sudo -u postgres psql -c "ALTER DATABASE ejabberd_test OWNER TO ejabberd_test;"
|
||||
sudo -u postgres psql ejabberd_test -c "GRANT ALL PRIVILEGES ON ALL
|
||||
TABLES IN SCHEMA public
|
||||
TO ejabberd_test;"
|
||||
|
@ -103,22 +95,13 @@ jobs:
|
|||
- name: Remove syntax_tools from release
|
||||
run: sed -i 's|, syntax_tools||g' src/ejabberd.app.src.script
|
||||
|
||||
- name: Cache rebar
|
||||
uses: actions/cache@v3
|
||||
- name: Cache Hex.pm
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cache/rebar3/
|
||||
key: ${{matrix.otp}}-${{hashFiles('rebar.config')}}
|
||||
|
||||
- name: Download test logs
|
||||
if: matrix.otp == '25.3' && github.repository == 'processone/ejabberd'
|
||||
continue-on-error: true
|
||||
run: |
|
||||
mkdir -p _build/test
|
||||
curl -sSL https://github.com/processone/ecil/tarball/gh-pages |
|
||||
tar -C _build/test --strip-components=1 --wildcards -xzf -
|
||||
rm -rf _build/test/logs/last/
|
||||
|
||||
- name: Compile
|
||||
run: |
|
||||
./autogen.sh
|
||||
|
@ -128,7 +111,6 @@ jobs:
|
|||
--disable-elixir \
|
||||
--disable-mssql \
|
||||
--disable-odbc
|
||||
make update
|
||||
make
|
||||
|
||||
- run: make install -s
|
||||
|
@ -136,6 +118,9 @@ jobs:
|
|||
- run: make options
|
||||
- run: make xref
|
||||
- run: make dialyzer
|
||||
- run: make test-eunit
|
||||
- run: make elvis
|
||||
if: matrix.otp >= '26'
|
||||
|
||||
- name: Check Production Release
|
||||
run: |
|
||||
|
@ -148,12 +133,30 @@ jobs:
|
|||
cat $RE/logs/ejabberd.log
|
||||
grep -q "is stopped in" $RE/logs/ejabberd.log
|
||||
|
||||
- name: Check Development Release
|
||||
- name: Start Development Release
|
||||
run: |
|
||||
make dev
|
||||
RE=_build/dev/rel/ejabberd
|
||||
sed -i 's/starttls_required: true/starttls_required: false/g' $RE/conf/ejabberd.yml
|
||||
$RE/bin/ejabberdctl start
|
||||
$RE/bin/ejabberdctl started
|
||||
$RE/bin/ejabberdctl register admin localhost admin
|
||||
grep -q "is started in" $RE/logs/ejabberd.log
|
||||
|
||||
- name: Run XMPP Interoperability Tests against CI server.
|
||||
if: matrix.otp == '27'
|
||||
continue-on-error: true
|
||||
uses: XMPP-Interop-Testing/xmpp-interop-tests-action@v1.6.1
|
||||
with:
|
||||
domain: 'localhost'
|
||||
adminAccountUsername: 'admin'
|
||||
adminAccountPassword: 'admin'
|
||||
disabledSpecifications: RFC6121,XEP-0030,XEP-0045,XEP-0054,XEP-0060,XEP-0080,XEP-0115,XEP-0118,XEP-0215,XEP-0347,XEP-0363,XEP-0384
|
||||
|
||||
- name: Stop Development Release
|
||||
if: always()
|
||||
run: |
|
||||
RE=_build/dev/rel/ejabberd
|
||||
$RE/bin/ejabberdctl stop
|
||||
$RE/bin/ejabberdctl stopped
|
||||
cat $RE/logs/ejabberd.log
|
||||
|
@ -173,7 +176,7 @@ jobs:
|
|||
./rebar3 cover
|
||||
|
||||
- name: Check results
|
||||
if: always() && (steps.ct.outcome != 'skipped' || steps.ct2.outcome != 'skipped')
|
||||
if: always() && (steps.ct.outcome != 'skipped')
|
||||
id: ctresults
|
||||
run: |
|
||||
[[ -d _build ]] && ln -s _build/test/logs/last/ logs || true
|
||||
|
@ -191,7 +194,7 @@ jobs:
|
|||
find logs/ -name exunit.log -exec cat '{}' ';'
|
||||
|
||||
- name: Send to coveralls
|
||||
if: matrix.otp == '25.3'
|
||||
if: matrix.otp == '27'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
|
@ -203,24 +206,8 @@ jobs:
|
|||
"payload":{"build_num":$GITHUB_RUN_ID,
|
||||
"status":"done"}}'
|
||||
|
||||
- name: Upload test logs
|
||||
if: always() && steps.ct.outcome == 'failure' && github.repository == 'processone/ejabberd'
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
publish_dir: _build/test
|
||||
exclude_assets: '.github,lib,plugins'
|
||||
external_repository: processone/ecil
|
||||
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
||||
keep_files: true
|
||||
|
||||
- name: View ECIL address
|
||||
if: always() && steps.ct.outcome == 'failure' && github.repository == 'processone/ejabberd'
|
||||
run: |
|
||||
CTRUN=`ls -la _build/test/logs/last | sed 's|.*-> ||'`
|
||||
echo "::notice::View CT results: https://processone.github.io/ecil/logs/$CTRUN/"
|
||||
|
||||
- name: Check for changes to trigger schema upgrade test
|
||||
uses: dorny/paths-filter@v2
|
||||
uses: dorny/paths-filter@v3
|
||||
id: filter
|
||||
with:
|
||||
filters: |
|
||||
|
@ -259,20 +246,20 @@ jobs:
|
|||
run: |
|
||||
[[ -d logs ]] && rm -rf logs
|
||||
[[ -d _build/test/logs ]] && rm -rf _build/test/logs || true
|
||||
docker exec ejabberd-mssql /opt/mssql-tools/bin/sqlcmd -U SA -P ejabberd_Test1 -S localhost -Q "drop database [ejabberd_test];"
|
||||
docker exec ejabberd-mssql /opt/mssql-tools/bin/sqlcmd -U SA -P ejabberd_Test1 -S localhost -Q "drop login [ejabberd_test];"
|
||||
docker exec ejabberd-mssql /opt/mssql-tools18/bin/sqlcmd -C -U SA -P ejabberd_Test1 -S localhost -Q "drop database [ejabberd_test];"
|
||||
docker exec ejabberd-mssql /opt/mssql-tools18/bin/sqlcmd -C -U SA -P ejabberd_Test1 -S localhost -Q "drop login [ejabberd_test];"
|
||||
mysql -u root -proot -e "DROP DATABASE ejabberd_test;"
|
||||
sudo -u postgres psql -c "DROP DATABASE ejabberd_test;"
|
||||
docker exec ejabberd-mssql /opt/mssql-tools/bin/sqlcmd -U SA -P ejabberd_Test1 -S localhost -i /initdb_mssql.sql
|
||||
docker exec ejabberd-mssql /opt/mssql-tools/bin/sqlcmd -U SA -P ejabberd_Test1 -S localhost -d ejabberd_test -i /mssql.new.sql
|
||||
docker exec ejabberd-mssql /opt/mssql-tools18/bin/sqlcmd -C -U SA -P ejabberd_Test1 -S localhost -i /initdb_mssql.sql
|
||||
docker exec ejabberd-mssql /opt/mssql-tools18/bin/sqlcmd -C -U SA -P ejabberd_Test1 -S localhost -d ejabberd_test -i /mssql.new.sql
|
||||
mysql -u root -proot -e "CREATE DATABASE ejabberd_test;"
|
||||
mysql -u root -proot -e "GRANT ALL ON ejabberd_test.*
|
||||
TO 'ejabberd_test'@'localhost';"
|
||||
mysql -u ejabberd_test -pejabberd_test ejabberd_test < sql/mysql.new.sql
|
||||
sudo -u postgres psql -c "CREATE DATABASE ejabberd_test;"
|
||||
sudo -u postgres psql -c "GRANT ALL PRIVILEGES
|
||||
ON DATABASE ejabberd_test TO ejabberd_test;"
|
||||
PGPASSWORD="ejabberd_test" psql -h localhost -U ejabberd_test ejabberd_test -f sql/pg.new.sql
|
||||
sudo -u postgres psql -c "GRANT ALL ON SCHEMA public TO ejabberd_test;"
|
||||
sudo -u postgres psql -c "ALTER DATABASE ejabberd_test OWNER TO ejabberd_test;"
|
||||
sudo -u postgres psql ejabberd_test -c "GRANT ALL PRIVILEGES ON ALL
|
||||
TABLES IN SCHEMA public
|
||||
TO ejabberd_test;"
|
||||
|
@ -301,7 +288,7 @@ jobs:
|
|||
|
||||
- name: Upload CT logs
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ejabberd-ct-logs-${{matrix.otp}}
|
||||
#
|
||||
|
|
57
.github/workflows/container.yml
vendored
57
.github/workflows/container.yml
vendored
|
@ -1,8 +1,6 @@
|
|||
name: Container
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '22 2 */6 * *' # every 6 days to avoid gha cache being evicted
|
||||
push:
|
||||
paths-ignore:
|
||||
- '.devcontainer/**'
|
||||
|
@ -19,63 +17,17 @@ env:
|
|||
jobs:
|
||||
container:
|
||||
name: Container
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
packages: write
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Cache build directory
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/build/
|
||||
key: ${{runner.os}}-ctr-ct-ng-1.25.0
|
||||
|
||||
- name: Get erlang/OTP version for bootstrapping
|
||||
run: |
|
||||
echo "OTP_VSN=$(awk '/^otp_vsn=/ {{gsub(/[^0-9.]/, ""); print}}' tools/make-binaries)" >> $GITHUB_ENV
|
||||
echo "ELIXIR_VSN=$(awk '/^elixir_vsn=/ {{gsub(/[^0-9.]/, ""); print}}' tools/make-binaries)" >> $GITHUB_ENV
|
||||
|
||||
- name: Install prerequisites
|
||||
run: |
|
||||
sudo apt-get -qq update
|
||||
sudo apt-get -qq install makeself
|
||||
# https://github.com/crosstool-ng/crosstool-ng/blob/master/testing/docker/ubuntu21.10/Dockerfile
|
||||
sudo apt-get -qq install build-essential autoconf bison flex gawk
|
||||
sudo apt-get -qq install help2man libncurses5-dev libtool libtool-bin
|
||||
sudo apt-get -qq install python3-dev texinfo unzip
|
||||
|
||||
- name: Install erlang/OTP
|
||||
uses: erlef/setup-beam@v1
|
||||
with:
|
||||
otp-version: ${{ env.OTP_VSN }}
|
||||
elixir-version: ${{ env.ELIXIR_VSN }}
|
||||
version-type: strict
|
||||
|
||||
- name: Remove Elixir Matchers
|
||||
run: |
|
||||
echo "::remove-matcher owner=elixir-mixCompileWarning::"
|
||||
echo "::remove-matcher owner=elixir-credoOutputDefault::"
|
||||
echo "::remove-matcher owner=elixir-mixCompileError::"
|
||||
echo "::remove-matcher owner=elixir-mixTestFailure::"
|
||||
echo "::remove-matcher owner=elixir-dialyzerOutputDefault::"
|
||||
|
||||
- name: Build musl-libc based binary archives
|
||||
run: |
|
||||
sed -i "s|targets='.*'|targets='x86_64-linux-musl aarch64-linux-musl'|" tools/make-binaries
|
||||
mv .github/container/ejabberdctl.template .
|
||||
CHECK_DEPS=false tools/make-binaries
|
||||
|
||||
- name: Collect packages
|
||||
run: |
|
||||
mkdir tarballs
|
||||
mv ejabberd-*.tar.gz tarballs
|
||||
|
||||
- name: Checkout ejabberd-contrib
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
repository: processone/ejabberd-contrib
|
||||
path: .ejabberd-modules/sources/ejabberd-contrib
|
||||
|
@ -108,10 +60,9 @@ jobs:
|
|||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v5
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
build-args: |
|
||||
METHOD=package
|
||||
VERSION=${{ steps.gitdescribe.outputs.ver }}
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
|
|
16
.github/workflows/installers.yml
vendored
16
.github/workflows/installers.yml
vendored
|
@ -21,13 +21,13 @@ on:
|
|||
jobs:
|
||||
binaries:
|
||||
name: Binaries
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Cache build directory
|
||||
uses: actions/cache@v3
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/build/
|
||||
key: ${{runner.os}}-ct-ng-1.26.0
|
||||
key: ${{runner.os}}-ct-ng-1.27.0
|
||||
- name: Install prerequisites
|
||||
run: |
|
||||
sudo apt-get -qq update
|
||||
|
@ -41,7 +41,7 @@ jobs:
|
|||
gem install --no-document --user-install fpm
|
||||
echo $HOME/.local/share/gem/ruby/*/bin >> $GITHUB_PATH
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Build binary archives
|
||||
|
@ -55,7 +55,7 @@ jobs:
|
|||
mkdir ejabberd-packages
|
||||
mv ejabberd_*.deb ejabberd-*.rpm ejabberd-*.run ejabberd-packages
|
||||
- name: Upload packages
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ejabberd-packages
|
||||
#
|
||||
|
@ -70,15 +70,15 @@ jobs:
|
|||
release:
|
||||
name: Release
|
||||
needs: [binaries]
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
if: github.ref_type == 'tag'
|
||||
steps:
|
||||
- name: Download packages
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: ejabberd-packages
|
||||
- name: Draft Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
draft: true
|
||||
files: ejabberd-packages/*
|
||||
|
|
367
.github/workflows/runtime.yml
vendored
367
.github/workflows/runtime.yml
vendored
|
@ -31,139 +31,197 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
otp: ['20.3', '25.3', '26']
|
||||
otp: ['24', '25', '26', '27', '28']
|
||||
rebar: ['rebar', 'rebar3']
|
||||
exclude:
|
||||
- otp: '26'
|
||||
- otp: '24'
|
||||
rebar: 'rebar'
|
||||
runs-on: ubuntu-latest
|
||||
- otp: '27'
|
||||
rebar: 'rebar'
|
||||
- otp: '28'
|
||||
rebar: 'rebar'
|
||||
runs-on: ubuntu-24.04
|
||||
container:
|
||||
image: erlang:${{ matrix.otp }}
|
||||
image: public.ecr.aws/docker/library/erlang:${{ matrix.otp }}
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Get old compatible Rebar binaries
|
||||
if: matrix.otp < 24
|
||||
run: |
|
||||
rm rebar
|
||||
rm rebar3
|
||||
wget https://github.com/processone/ejabberd/raw/21.12/rebar
|
||||
wget https://github.com/processone/ejabberd/raw/21.12/rebar3
|
||||
chmod +x rebar
|
||||
chmod +x rebar3
|
||||
|
||||
- name: Get recent compatible Rebar binaries
|
||||
if: matrix.otp > 23 && matrix.otp < 25
|
||||
run: |
|
||||
rm rebar
|
||||
rm rebar3
|
||||
wget https://github.com/processone/ejabberd/raw/24.12/rebar
|
||||
wget https://github.com/processone/ejabberd/raw/24.12/rebar3
|
||||
chmod +x rebar
|
||||
chmod +x rebar3
|
||||
|
||||
- name: Prepare libraries
|
||||
run: |
|
||||
apt-get -qq update
|
||||
apt-get purge -y libgd3
|
||||
apt-get purge -y libgd3 nginx
|
||||
apt-get -qq install libexpat1-dev libgd-dev libpam0g-dev \
|
||||
libsqlite3-dev libwebp-dev libyaml-dev
|
||||
|
||||
- name: Cache Hex.pm
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cache/rebar3/
|
||||
key: ${{matrix.otp}}-${{hashFiles('rebar.config')}}
|
||||
|
||||
- name: Unlock eredis dependency
|
||||
if: matrix.rebar == 'rebar3' && matrix.otp < 21
|
||||
run: rebar3 unlock eredis
|
||||
|
||||
- name: Compile
|
||||
run: |
|
||||
./autogen.sh
|
||||
./configure --with-rebar=`which ${{ matrix.rebar }}` \
|
||||
./configure --with-rebar=./${{ matrix.rebar }} \
|
||||
--prefix=/tmp/ejabberd \
|
||||
--with-min-erlang=9.0.5 \
|
||||
--enable-all \
|
||||
--disable-elixir \
|
||||
--disable-tools \
|
||||
--disable-odbc
|
||||
make update
|
||||
make
|
||||
|
||||
- run: make xref
|
||||
|
||||
- name: Test rel (rebar2)
|
||||
- run: make dialyzer
|
||||
|
||||
- name: Prepare rel (rebar2)
|
||||
if: matrix.rebar == 'rebar'
|
||||
run: |
|
||||
make rel
|
||||
rel/ejabberd/bin/ejabberdctl start \
|
||||
&& rel/ejabberd/bin/ejabberdctl started
|
||||
rel/ejabberd/bin/ejabberdctl register user1 localhost s0mePass
|
||||
rel/ejabberd/bin/ejabberdctl registered_users localhost
|
||||
cat rel/ejabberd/logs/*
|
||||
mkdir -p _build/prod && ln -s `pwd`/rel/ _build/prod/rel
|
||||
mkdir -p _build/dev && ln -s `pwd`/rel/ _build/dev/rel
|
||||
|
||||
- name: Test rel
|
||||
if: matrix.rebar != 'rebar'
|
||||
- name: Run rel
|
||||
run: |
|
||||
make rel
|
||||
_build/prod/rel/ejabberd/bin/ejabberdctl start \
|
||||
&& _build/prod/rel/ejabberd/bin/ejabberdctl started
|
||||
_build/prod/rel/ejabberd/bin/ejabberdctl register user1 localhost s0mePass
|
||||
_build/prod/rel/ejabberd/bin/ejabberdctl registered_users localhost
|
||||
_build/prod/rel/ejabberd/bin/ejabberdctl registered_users localhost > registered.log
|
||||
_build/prod/rel/ejabberd/bin/ejabberdctl stop \
|
||||
&& _build/prod/rel/ejabberd/bin/ejabberdctl stopped
|
||||
cat _build/prod/rel/ejabberd/logs/*
|
||||
|
||||
- name: Test dev
|
||||
if: matrix.rebar != 'rebar'
|
||||
- name: Run dev
|
||||
run: |
|
||||
make dev
|
||||
_build/dev/rel/ejabberd/bin/ejabberdctl start \
|
||||
&& _build/dev/rel/ejabberd/bin/ejabberdctl started
|
||||
_build/dev/rel/ejabberd/bin/ejabberdctl register user1 localhost s0mePass
|
||||
_build/dev/rel/ejabberd/bin/ejabberdctl registered_users localhost
|
||||
_build/dev/rel/ejabberd/bin/ejabberdctl register user2 localhost s0mePass
|
||||
_build/dev/rel/ejabberd/bin/ejabberdctl registered_users localhost >> registered.log
|
||||
_build/dev/rel/ejabberd/bin/ejabberdctl stop \
|
||||
&& _build/dev/rel/ejabberd/bin/ejabberdctl stopped
|
||||
cat _build/dev/rel/ejabberd/logs/*
|
||||
|
||||
mix:
|
||||
name: Mix
|
||||
- name: Run install
|
||||
run: |
|
||||
make install
|
||||
/tmp/ejabberd/sbin/ejabberdctl start \
|
||||
&& /tmp/ejabberd/sbin/ejabberdctl started
|
||||
/tmp/ejabberd/sbin/ejabberdctl register user3 localhost s0mePass
|
||||
/tmp/ejabberd/sbin/ejabberdctl registered_users localhost >> registered.log
|
||||
/tmp/ejabberd/sbin/ejabberdctl stop \
|
||||
&& /tmp/ejabberd/sbin/ejabberdctl stopped
|
||||
|
||||
- name: View logs
|
||||
run: |
|
||||
echo "===> Registered:"
|
||||
cat registered.log
|
||||
echo "===> Prod:"
|
||||
cat _build/prod/rel/ejabberd/logs/*
|
||||
echo "===> Dev:"
|
||||
cat _build/dev/rel/ejabberd/logs/*
|
||||
echo "===> Install:"
|
||||
cat /tmp/ejabberd/var/log/ejabberd/*
|
||||
|
||||
- name: Check logs
|
||||
run: |
|
||||
grep -q '^user1$' registered.log
|
||||
grep -q '^user2$' registered.log
|
||||
grep -q '^user3$' registered.log
|
||||
grep -q 'is started' _build/prod/rel/ejabberd/logs/ejabberd.log
|
||||
grep -q 'is stopped' _build/prod/rel/ejabberd/logs/ejabberd.log
|
||||
test $(find _build/prod/rel/ -empty -name error.log)
|
||||
grep -q 'is started' _build/dev/rel/ejabberd/logs/ejabberd.log
|
||||
grep -q 'is stopped' _build/dev/rel/ejabberd/logs/ejabberd.log
|
||||
test $(find _build/dev/rel/ -empty -name error.log)
|
||||
grep -q 'is started' /tmp/ejabberd/var/log/ejabberd/ejabberd.log
|
||||
grep -q 'is stopped' /tmp/ejabberd/var/log/ejabberd/ejabberd.log
|
||||
test $(find /tmp/ejabberd/var/log/ejabberd/ -empty -name error.log)
|
||||
|
||||
- name: View logs failures
|
||||
if: always()
|
||||
run: |
|
||||
cat _build/prod/rel/ejabberd/logs/ejabberd.log
|
||||
cat _build/prod/rel/ejabberd/logs/error.log
|
||||
cat _build/dev/rel/ejabberd/logs/ejabberd.log
|
||||
cat _build/dev/rel/ejabberd/logs/error.log
|
||||
cat /tmp/ejabberd/var/log/ejabberd/ejabberd.log
|
||||
cat /tmp/ejabberd/var/log/ejabberd/error.log
|
||||
|
||||
rebar3-elixir:
|
||||
name: Rebar3+Elixir
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
otp: ['21.3', '25.0', '26']
|
||||
elixir: ['1.10.3', '1.11.4', '1.12.3', '1.13.4', '1.14.5', '1.15']
|
||||
exclude:
|
||||
- otp: '21.3'
|
||||
elixir: '1.12.3'
|
||||
- otp: '21.3'
|
||||
elixir: '1.13.4'
|
||||
- otp: '21.3'
|
||||
elixir: '1.14.5'
|
||||
- otp: '21.3'
|
||||
elixir: '1.15'
|
||||
- otp: '25.0'
|
||||
elixir: '1.10.3'
|
||||
- otp: '25.0'
|
||||
elixir: '1.11.4'
|
||||
- otp: '25.0'
|
||||
elixir: '1.12.3'
|
||||
- otp: '26'
|
||||
elixir: '1.10.3'
|
||||
- otp: '26'
|
||||
elixir: '1.11.4'
|
||||
- otp: '26'
|
||||
elixir: '1.12.3'
|
||||
- otp: '26'
|
||||
elixir: '1.13.4'
|
||||
runs-on: ubuntu-20.04
|
||||
elixir: ['1.14', '1.15', '1.16', '1.17', '1.18']
|
||||
runs-on: ubuntu-24.04
|
||||
container:
|
||||
image: public.ecr.aws/docker/library/elixir:${{ matrix.elixir }}
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Get specific Erlang/OTP
|
||||
uses: erlef/setup-beam@v1
|
||||
with:
|
||||
otp-version: ${{matrix.otp}}
|
||||
elixir-version: ${{matrix.elixir}}
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Prepare libraries
|
||||
run: |
|
||||
sudo apt-get -qq update
|
||||
sudo apt-get -y purge libgd3 nginx
|
||||
sudo apt-get -qq install libexpat1-dev libgd-dev libpam0g-dev \
|
||||
apt-get -qq update
|
||||
apt-get -y purge libgd3 nginx
|
||||
apt-get -qq install libexpat1-dev libgd-dev libpam0g-dev \
|
||||
libsqlite3-dev libwebp-dev libyaml-dev
|
||||
|
||||
- name: Remove Elixir Matchers
|
||||
- name: Enable Module.Example and an Elixir dependency
|
||||
run: |
|
||||
echo "::remove-matcher owner=elixir-mixCompileWarning::"
|
||||
echo "::remove-matcher owner=elixir-credoOutputDefault::"
|
||||
echo "::remove-matcher owner=elixir-mixCompileError::"
|
||||
echo "::remove-matcher owner=elixir-mixTestFailure::"
|
||||
echo "::remove-matcher owner=elixir-dialyzerOutputDefault::"
|
||||
sed -i "s|^modules:|modules:\n 'Ejabberd.Module.Example': {}|g" ejabberd.yml.example
|
||||
cat ejabberd.yml.example
|
||||
sed -i 's|^{deps, \[\(.*\)|{deps, [{decimal, ".*", {git, "https://github.com/ericmj/decimal", {branch, "main"}}},\n \1|g' rebar.config
|
||||
cat rebar.config
|
||||
|
||||
- name: Cache Hex.pm
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cache/rebar3/
|
||||
key: ${{matrix.elixir}}-${{hashFiles('rebar.config')}}
|
||||
|
||||
- name: Install Hex and Rebar3 manually on older Elixir
|
||||
if: matrix.elixir <= '1.14'
|
||||
run: |
|
||||
mix local.hex --force
|
||||
mix local.rebar --force
|
||||
|
||||
- name: Compile
|
||||
run: |
|
||||
./autogen.sh
|
||||
./configure --with-rebar=mix \
|
||||
./configure --with-rebar=./rebar3 \
|
||||
--prefix=/tmp/ejabberd \
|
||||
--enable-all \
|
||||
--disable-elixir \
|
||||
--disable-odbc
|
||||
mix deps.get
|
||||
make
|
||||
|
||||
- run: make xref
|
||||
|
@ -188,17 +246,46 @@ jobs:
|
|||
_build/dev/rel/ejabberd/bin/ejabberdctl stop \
|
||||
&& _build/dev/rel/ejabberd/bin/ejabberdctl stopped
|
||||
|
||||
- name: Check rel
|
||||
- name: Run install
|
||||
run: |
|
||||
make install
|
||||
/tmp/ejabberd/sbin/ejabberdctl start \
|
||||
&& /tmp/ejabberd/sbin/ejabberdctl started
|
||||
/tmp/ejabberd/sbin/ejabberdctl register user3 localhost s0mePass
|
||||
/tmp/ejabberd/sbin/ejabberdctl registered_users localhost >> registered.log
|
||||
/tmp/ejabberd/sbin/ejabberdctl stop \
|
||||
&& /tmp/ejabberd/sbin/ejabberdctl stopped
|
||||
|
||||
- name: View logs
|
||||
if: always()
|
||||
run: |
|
||||
echo "===> Registered:"
|
||||
cat registered.log
|
||||
echo "===> Prod:"
|
||||
cat _build/prod/rel/ejabberd/logs/*
|
||||
echo "===> Dev:"
|
||||
cat _build/dev/rel/ejabberd/logs/*
|
||||
echo "===> Install:"
|
||||
cat /tmp/ejabberd/var/log/ejabberd/*
|
||||
|
||||
- name: Check logs
|
||||
if: always()
|
||||
run: |
|
||||
grep -q '^user1$' registered.log
|
||||
grep -q '^user2$' registered.log
|
||||
grep -q '^user3$' registered.log
|
||||
grep -q 'is started' _build/prod/rel/ejabberd/logs/ejabberd.log
|
||||
grep -q 'is stopped' _build/prod/rel/ejabberd/logs/ejabberd.log
|
||||
grep -q 'Stopping Ejabberd.Module.Example' _build/prod/rel/ejabberd/logs/ejabberd.log
|
||||
test $(find _build/prod/ -empty -name error.log)
|
||||
grep -q 'is started' _build/dev/rel/ejabberd/logs/ejabberd.log
|
||||
grep -q 'is stopped' _build/dev/rel/ejabberd/logs/ejabberd.log
|
||||
grep -q 'Stopping Ejabberd.Module.Example' _build/dev/rel/ejabberd/logs/ejabberd.log
|
||||
test $(find _build/dev/ -empty -name error.log)
|
||||
grep -q 'is started' /tmp/ejabberd/var/log/ejabberd/ejabberd.log
|
||||
grep -q 'is stopped' /tmp/ejabberd/var/log/ejabberd/ejabberd.log
|
||||
grep -q 'Stopping Ejabberd.Module.Example' /tmp/ejabberd/var/log/ejabberd/ejabberd.log
|
||||
test $(find /tmp/ejabberd/var/log/ejabberd/ -empty -name error.log)
|
||||
|
||||
- name: View logs failures
|
||||
if: failure()
|
||||
|
@ -207,3 +294,139 @@ jobs:
|
|||
cat _build/prod/rel/ejabberd/logs/error.log
|
||||
cat _build/dev/rel/ejabberd/logs/ejabberd.log
|
||||
cat _build/dev/rel/ejabberd/logs/error.log
|
||||
cat /tmp/ejabberd/var/log/ejabberd/ejabberd.log
|
||||
cat /tmp/ejabberd/var/log/ejabberd/error.log
|
||||
|
||||
mix:
|
||||
name: Mix
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
elixir: ['1.14', '1.15', '1.16', '1.17', '1.18']
|
||||
runs-on: ubuntu-24.04
|
||||
container:
|
||||
image: public.ecr.aws/docker/library/elixir:${{ matrix.elixir }}
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Prepare libraries
|
||||
run: |
|
||||
apt-get -qq update
|
||||
apt-get -y purge libgd3 nginx
|
||||
apt-get -qq install libexpat1-dev libgd-dev libpam0g-dev \
|
||||
libsqlite3-dev libwebp-dev libyaml-dev
|
||||
|
||||
- name: Remove Elixir Matchers
|
||||
run: |
|
||||
echo "::remove-matcher owner=elixir-mixCompileWarning::"
|
||||
echo "::remove-matcher owner=elixir-credoOutputDefault::"
|
||||
echo "::remove-matcher owner=elixir-mixCompileError::"
|
||||
echo "::remove-matcher owner=elixir-mixTestFailure::"
|
||||
echo "::remove-matcher owner=elixir-dialyzerOutputDefault::"
|
||||
|
||||
- name: Enable Module.Example and an Elixir dependency
|
||||
run: |
|
||||
sed -i "s|^modules:|modules:\n 'Ejabberd.Module.Example': {}|g" ejabberd.yml.example
|
||||
cat ejabberd.yml.example
|
||||
sed -i 's|^{deps, \(.*\)|{deps, \1\n {decimal, ".*", {git, "https://github.com/ericmj/decimal", {branch, "main"}}}, |g' rebar.config
|
||||
cat rebar.config
|
||||
|
||||
- name: Cache Hex.pm
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.hex/
|
||||
key: ${{matrix.elixir}}-${{hashFiles('mix.exs')}}
|
||||
|
||||
- name: Install Hex and Rebar3 manually on older Elixir
|
||||
if: matrix.elixir <= '1.14'
|
||||
run: |
|
||||
mix local.hex --force
|
||||
mix local.rebar --force
|
||||
|
||||
- name: Compile
|
||||
run: |
|
||||
./autogen.sh
|
||||
./configure --with-rebar=mix \
|
||||
--prefix=/tmp/ejabberd \
|
||||
--enable-all
|
||||
make
|
||||
|
||||
- run: make xref
|
||||
|
||||
- run: make dialyzer
|
||||
|
||||
- run: make edoc
|
||||
|
||||
- name: Run rel
|
||||
run: |
|
||||
make rel
|
||||
_build/prod/rel/ejabberd/bin/ejabberdctl start \
|
||||
&& _build/prod/rel/ejabberd/bin/ejabberdctl started
|
||||
_build/prod/rel/ejabberd/bin/ejabberdctl register user1 localhost s0mePass
|
||||
_build/prod/rel/ejabberd/bin/ejabberdctl registered_users localhost > registered.log
|
||||
_build/prod/rel/ejabberd/bin/ejabberdctl stop \
|
||||
&& _build/prod/rel/ejabberd/bin/ejabberdctl stopped
|
||||
|
||||
- name: Run dev
|
||||
run: |
|
||||
make dev
|
||||
_build/dev/rel/ejabberd/bin/ejabberdctl start \
|
||||
&& _build/dev/rel/ejabberd/bin/ejabberdctl started
|
||||
_build/dev/rel/ejabberd/bin/ejabberdctl register user2 localhost s0mePass
|
||||
_build/dev/rel/ejabberd/bin/ejabberdctl registered_users localhost >> registered.log
|
||||
_build/dev/rel/ejabberd/bin/ejabberdctl stop \
|
||||
&& _build/dev/rel/ejabberd/bin/ejabberdctl stopped
|
||||
|
||||
- name: Run install
|
||||
run: |
|
||||
make install
|
||||
/tmp/ejabberd/sbin/ejabberdctl start \
|
||||
&& /tmp/ejabberd/sbin/ejabberdctl started
|
||||
/tmp/ejabberd/sbin/ejabberdctl register user3 localhost s0mePass
|
||||
/tmp/ejabberd/sbin/ejabberdctl registered_users localhost >> registered.log
|
||||
/tmp/ejabberd/sbin/ejabberdctl stop \
|
||||
&& /tmp/ejabberd/sbin/ejabberdctl stopped
|
||||
|
||||
- name: View logs
|
||||
if: always()
|
||||
run: |
|
||||
echo "===> Registered:"
|
||||
cat registered.log
|
||||
echo "===> Prod:"
|
||||
cat _build/prod/rel/ejabberd/logs/*
|
||||
echo "===> Dev:"
|
||||
cat _build/dev/rel/ejabberd/logs/*
|
||||
echo "===> Install:"
|
||||
cat /tmp/ejabberd/var/log/ejabberd/*
|
||||
|
||||
- name: Check logs
|
||||
if: always()
|
||||
run: |
|
||||
grep -q '^user1$' registered.log
|
||||
grep -q '^user2$' registered.log
|
||||
grep -q '^user3$' registered.log
|
||||
grep -q 'is started' _build/prod/rel/ejabberd/logs/ejabberd.log
|
||||
grep -q 'is stopped' _build/prod/rel/ejabberd/logs/ejabberd.log
|
||||
grep -q 'Stopping Ejabberd.Module.Example' _build/prod/rel/ejabberd/logs/ejabberd.log
|
||||
test $(find _build/prod/ -empty -name error.log)
|
||||
grep -q 'is started' _build/dev/rel/ejabberd/logs/ejabberd.log
|
||||
grep -q 'is stopped' _build/dev/rel/ejabberd/logs/ejabberd.log
|
||||
grep -q 'Stopping Ejabberd.Module.Example' _build/dev/rel/ejabberd/logs/ejabberd.log
|
||||
test $(find _build/dev/ -empty -name error.log)
|
||||
grep -q 'is started' /tmp/ejabberd/var/log/ejabberd/ejabberd.log
|
||||
grep -q 'is stopped' /tmp/ejabberd/var/log/ejabberd/ejabberd.log
|
||||
grep -q 'Stopping Ejabberd.Module.Example' /tmp/ejabberd/var/log/ejabberd/ejabberd.log
|
||||
test $(find /tmp/ejabberd/var/log/ejabberd/ -empty -name error.log)
|
||||
|
||||
- name: View logs failures
|
||||
if: failure()
|
||||
run: |
|
||||
cat _build/prod/rel/ejabberd/logs/ejabberd.log
|
||||
cat _build/prod/rel/ejabberd/logs/error.log
|
||||
cat _build/dev/rel/ejabberd/logs/ejabberd.log
|
||||
cat _build/dev/rel/ejabberd/logs/error.log
|
||||
cat /tmp/ejabberd/var/log/ejabberd/ejabberd.log
|
||||
cat /tmp/ejabberd/var/log/ejabberd/error.log
|
||||
|
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -34,12 +34,14 @@
|
|||
/priv/bin/captcha*sh
|
||||
/priv/sql
|
||||
/rel/ejabberd
|
||||
/recompile.log
|
||||
/_build
|
||||
/database/
|
||||
/.rebar
|
||||
/rebar.lock
|
||||
/log/
|
||||
Mnesia.nonode@nohost/
|
||||
/TAGS
|
||||
/tags
|
||||
# Binaries created with tools/make-{binaries,installers,packages}:
|
||||
/ejabberd_*.deb
|
||||
/ejabberd-*.rpm
|
||||
|
|
19
.vscode/launch.json
vendored
19
.vscode/launch.json
vendored
|
@ -2,7 +2,24 @@
|
|||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Relive",
|
||||
"name": "Relive (Vim)",
|
||||
"type": "erlang",
|
||||
"request": "launch",
|
||||
"runinterminal": [
|
||||
"./rebar3", "shell",
|
||||
"--apps", "ejabberd",
|
||||
"--config", "rel/relive.config",
|
||||
"--script", "rel/relive.escript",
|
||||
"--name", "ejabberd@localhost",
|
||||
"--setcookie", "COOKIE"
|
||||
],
|
||||
"projectnode": "ejabberd@localhost",
|
||||
"cookie": "COOKIE",
|
||||
"timeout": 900,
|
||||
"cwd": "."
|
||||
},
|
||||
{
|
||||
"name": "Relive (VSCode)",
|
||||
"type": "erlang",
|
||||
"request": "launch",
|
||||
"runinterminal": [
|
||||
|
|
4
.vscode/relive.sh
vendored
4
.vscode/relive.sh
vendored
|
@ -1,6 +1,6 @@
|
|||
[ ! -f Makefile ] \
|
||||
&& ./autogen.sh \
|
||||
&& ./configure --with-rebar=./rebar3 \
|
||||
&& make deps
|
||||
&& ./configure --with-rebar=rebar3 \
|
||||
&& make
|
||||
|
||||
make relive
|
||||
|
|
922
CHANGELOG.md
922
CHANGELOG.md
File diff suppressed because it is too large
Load diff
|
@ -22,6 +22,21 @@ Examples of unacceptable behavior by participants include:
|
|||
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
||||
|
||||
## Guidelines for Respectful and Efficient Communication on Issues, Discussions, and PRs
|
||||
|
||||
To ensure that our maintainers can efficiently manage issues and provide timely updates, we kindly ask that all comments on GitHub tickets remain relevant to the topic of the issue. Please avoid posting comments solely to ping maintainers or ask for updates. If you need information on the status of an issue, consider the following:
|
||||
|
||||
- **Check the Issue Timeline:** Review the existing comments and updates on the issue before posting.
|
||||
- **Use Reactions:** If you want to show that you are interested in an issue, use GitHub's reaction feature (e.g., thumbs up) instead of commenting.
|
||||
- **Be Patient:** Understand that maintainers may be working on multiple tasks and will provide updates as soon as possible.
|
||||
|
||||
Additionally, please be aware that:
|
||||
|
||||
- **User Responses:** Users who report issues may no longer be using the software, may have switched to other projects, or may simply be busy. It is their right not to respond to follow-up questions or comments.
|
||||
- **Maintainer Priorities:** Maintainers have the right to define their own priorities and schedule. They will address issues based on their availability and the project's needs.
|
||||
|
||||
By following these guidelines, you help us maintain a productive and respectful environment for everyone involved.
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
||||
|
@ -40,7 +55,7 @@ Project maintainers who do not follow or enforce the Code of Conduct in good fai
|
|||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://contributor-covenant.org/version/1/4][version]
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/4/
|
||||
[homepage]: https://www.contributor-covenant.org/
|
||||
[version]: https://www.contributor-covenant.org/version/1/4/
|
||||
|
|
22
COMPILE.md
22
COMPILE.md
|
@ -7,7 +7,7 @@ from source code.
|
|||
For a more detailed explanation, please check the
|
||||
ejabberd Docs: [Source Code Installation][docs-source].
|
||||
|
||||
[docs-source]: https://docs.ejabberd.im/admin/installation/#source-code
|
||||
[docs-source]: https://docs.ejabberd.im/admin/install/source/
|
||||
|
||||
|
||||
Requirements
|
||||
|
@ -19,7 +19,7 @@ To compile ejabberd you need:
|
|||
- GCC
|
||||
- Libexpat ≥ 1.95
|
||||
- Libyaml ≥ 0.1.4
|
||||
- Erlang/OTP ≥ 20.0
|
||||
- Erlang/OTP ≥ 25.0
|
||||
- OpenSSL ≥ 1.0.0
|
||||
|
||||
Other optional libraries are:
|
||||
|
@ -28,7 +28,7 @@ Other optional libraries are:
|
|||
- PAM library, for Pluggable Authentication Modules (PAM)
|
||||
- ImageMagick's Convert program and Ghostscript fonts, for CAPTCHA
|
||||
challenges
|
||||
- Elixir ≥ 1.10.3, to support Elixir, and alternative to rebar/rebar3
|
||||
- Elixir ≥ 1.10.3, for Elixir support. It is recommended Elixir 1.14.0 or higher
|
||||
|
||||
If your system splits packages in libraries and development headers,
|
||||
install the development packages too.
|
||||
|
@ -43,7 +43,7 @@ There are several ways to obtain the ejabberd source code:
|
|||
- Source code package from [ejabberd GitHub Releases][ghr]
|
||||
- Latest development code from [ejabberd Git repository][gitrepo]
|
||||
|
||||
[p1dl]: https://www.process-one.net/en/ejabberd/downloads/
|
||||
[p1dl]: https://www.process-one.net/download/ejabberd/
|
||||
[ghr]: https://github.com/processone/ejabberd/releases
|
||||
[gitrepo]: https://github.com/processone/ejabberd
|
||||
|
||||
|
@ -65,6 +65,11 @@ To configure the compilation, features, install paths...
|
|||
|
||||
./configure --help
|
||||
|
||||
The build tool automatically downloads and compiles the
|
||||
erlang libraries that [ejabberd depends on][docs-repo].
|
||||
|
||||
[docs-repo]: https://docs.ejabberd.im/developer/repositories/
|
||||
|
||||
|
||||
Install in the System
|
||||
---------------------
|
||||
|
@ -89,13 +94,8 @@ Build an OTP Release
|
|||
Instead of installing ejabberd in the system, you can build an OTP release
|
||||
that includes all necessary to run ejabberd in a subdirectory:
|
||||
|
||||
./configure --with-rebar=rebar3
|
||||
make rel
|
||||
|
||||
Or, if you have Elixir available and plan to develop Elixir code:
|
||||
|
||||
./configure --with-rebar=mix
|
||||
make dev
|
||||
./configure
|
||||
make prod
|
||||
|
||||
Check the full list of targets:
|
||||
|
||||
|
|
881
CONTAINER.md
881
CONTAINER.md
File diff suppressed because it is too large
Load diff
|
@ -3,21 +3,21 @@
|
|||
We'd love for you to contribute to our source code and to make ejabberd even better than it is
|
||||
today! Here are the guidelines we'd like you to follow:
|
||||
|
||||
* [Code of Conduct](#coc)
|
||||
* [Questions and Problems](#question)
|
||||
* [Issues and Bugs](#issue)
|
||||
* [Feature Requests](#feature)
|
||||
* [Issue Submission Guidelines](#submit)
|
||||
* [Pull Request Submission Guidelines](#submit-pr)
|
||||
* [Signing the CLA](#cla)
|
||||
* [Code of Conduct](#code-of-conduct)
|
||||
* [Questions and Problems](#questions-bugs-features)
|
||||
* [Issues and Bugs](#found-an-issue-or-bug)
|
||||
* [Feature Requests](#missing-a-feature)
|
||||
* [Issue Submission Guidelines](#issue-submission-guidelines)
|
||||
* [Pull Request Submission Guidelines](#pull-request-submission-guidelines)
|
||||
* [Signing the CLA](#signing-the-contributor-license-agreement-cla)
|
||||
|
||||
## <a name="coc"></a> Code of Conduct
|
||||
## Code of Conduct
|
||||
|
||||
Help us keep ejabberd community open-minded and inclusive. Please read and follow our [Code of Conduct][coc].
|
||||
|
||||
## <a name="requests"></a> Questions, Bugs, Features
|
||||
## Questions, Bugs, Features
|
||||
|
||||
### <a name="question"></a> Got a Question or Problem?
|
||||
### Got a Question or Problem?
|
||||
|
||||
Do not open issues for general support questions as we want to keep GitHub issues for bug reports
|
||||
and feature requests. You've got much better chances of getting your question answered on dedicated
|
||||
|
@ -25,25 +25,25 @@ support platforms, the best being [Stack Overflow][stackoverflow].
|
|||
|
||||
Stack Overflow is a much better place to ask questions since:
|
||||
|
||||
- there are thousands of people willing to help on Stack Overflow
|
||||
- questions and answers stay available for public viewing so your question / answer might help
|
||||
* there are thousands of people willing to help on Stack Overflow
|
||||
* questions and answers stay available for public viewing so your question / answer might help
|
||||
someone else
|
||||
- Stack Overflow's voting system assures that the best answers are prominently visible.
|
||||
* Stack Overflow's voting system assures that the best answers are prominently visible.
|
||||
|
||||
To save your and our time, we will systematically close all issues that are requests for general
|
||||
support and redirect people to the section you are reading right now.
|
||||
|
||||
Other channels for support are:
|
||||
- ejabberd XMPP room: [ejabberd@conference.process-one.net][muc]
|
||||
- [ejabberd XMPP room logs][logs]
|
||||
- [ejabberd Mailing List][list]
|
||||
|
||||
### <a name="issue"></a> Found an Issue or Bug?
|
||||
* ejabberd XMPP room: [ejabberd@conference.process-one.net][muc]
|
||||
* [ejabberd Mailing List][list]
|
||||
|
||||
### Found an Issue or Bug?
|
||||
|
||||
If you find a bug in the source code, you can help us by submitting an issue to our
|
||||
[GitHub Repository][github]. Even better, you can submit a Pull Request with a fix.
|
||||
|
||||
### <a name="feature"></a> Missing a Feature?
|
||||
### Missing a Feature?
|
||||
|
||||
You can request a new feature by submitting an issue to our [GitHub Repository][github-issues].
|
||||
|
||||
|
@ -52,9 +52,9 @@ If you would like to implement a new feature then consider what kind of change i
|
|||
* **Major Changes** that you wish to contribute to the project should be discussed first in an
|
||||
[GitHub issue][github-issues] that clearly outlines the changes and benefits of the feature.
|
||||
* **Small Changes** can directly be crafted and submitted to the [GitHub Repository][github]
|
||||
as a Pull Request. See the section about [Pull Request Submission Guidelines](#submit-pr).
|
||||
as a Pull Request. See the section about [Pull Request Submission Guidelines](#pull-request-submission-guidelines).
|
||||
|
||||
## <a name="submit"></a> Issue Submission Guidelines
|
||||
## Issue Submission Guidelines
|
||||
|
||||
Before you submit your issue search the archive, maybe your question was already answered.
|
||||
|
||||
|
@ -64,7 +64,7 @@ the effort we can spend fixing issues and adding new features, by not reporting
|
|||
The "[new issue][github-new-issue]" form contains a number of prompts that you should fill out to
|
||||
make it easier to understand and categorize the issue.
|
||||
|
||||
## <a name="submit-pr"></a> Pull Request Submission Guidelines
|
||||
## Pull Request Submission Guidelines
|
||||
|
||||
By submitting a pull request for a code or doc contribution, you need to have the right
|
||||
to grant your contribution's copyright license to ProcessOne. Please check [ProcessOne CLA][cla]
|
||||
|
@ -80,6 +80,7 @@ Before you submit your pull request consider the following guidelines:
|
|||
```shell
|
||||
git checkout -b my-fix-branch master
|
||||
```
|
||||
|
||||
* Test your changes and, if relevant, expand the automated test suite.
|
||||
* Create your patch commit, including appropriate test cases.
|
||||
* If the changes affect public APIs, change or add relevant [documentation][doc-repo].
|
||||
|
@ -88,6 +89,7 @@ Before you submit your pull request consider the following guidelines:
|
|||
```shell
|
||||
git commit -a
|
||||
```
|
||||
|
||||
Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files.
|
||||
|
||||
* Push your branch to GitHub:
|
||||
|
@ -123,27 +125,25 @@ restarted.
|
|||
|
||||
That's it! Thank you for your contribution!
|
||||
|
||||
## <a name="cla"></a> Signing the Contributor License Agreement (CLA)
|
||||
## Signing the Contributor License Agreement (CLA)
|
||||
|
||||
Upon submitting a Pull Request, we will ask you to sign our CLA if you haven't done
|
||||
so before. It's a quick process, we promise, and you will be able to do it all online
|
||||
|
||||
You can read [ProcessOne Contribution License Agreement][cla] in PDF.
|
||||
Here's a link to the [ProcessOne Contribution License Agreement][cla].
|
||||
|
||||
This is part of the legal framework of the open-source ecosystem that adds some red tape,
|
||||
but protects both the contributor and the company / foundation behind the project. It also
|
||||
gives us the option to relicense the code with a more permissive license in the future.
|
||||
|
||||
|
||||
[coc]: https://github.com/processone/ejabberd/blob/master/CODE_OF_CONDUCT.md
|
||||
[stackoverflow]: https://stackoverflow.com/questions/tagged/ejabberd?sort=newest
|
||||
[list]: https://lists.jabber.ru/mailman/listinfo/ejabberd
|
||||
[list]: https://web.archive.org/web/20230319174915/http://lists.jabber.ru/mailman/listinfo/ejabberd
|
||||
[muc]: xmpp:ejabberd@conference.process-one.net
|
||||
[logs]: https://process-one.net/logs/ejabberd@conference.process-one.net/
|
||||
[github]: https://github.com/processone/ejabberd
|
||||
[github-issues]: https://github.com/processone/ejabberd/issues
|
||||
[github-new-issue]: https://github.com/processone/ejabberd/issues/new
|
||||
[github-pr]: https://github.com/processone/ejabberd/pulls
|
||||
[doc-repo]: https://github.com/processone/docs.ejabberd.im
|
||||
[developer-setup]: https://docs.ejabberd.im/developer/
|
||||
[cla]: https://www.process-one.net/resources/ejabberd-cla.pdf
|
||||
[cla]: https://cla.process-one.net/
|
||||
|
|
301
Makefile.in
301
Makefile.in
|
@ -1,8 +1,23 @@
|
|||
REBAR = @ESCRIPT@ @rebar@
|
||||
#.
|
||||
#' definitions
|
||||
#
|
||||
|
||||
ESCRIPT = @ESCRIPT@
|
||||
REBAR = @rebar@ # rebar|rebar3|mix binary (or path to binary)
|
||||
REBAR3 = @REBAR3@ # path to rebar3 binary
|
||||
MIX = @rebar@
|
||||
AWK = @AWK@
|
||||
INSTALL = @INSTALL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
SED = @SED@
|
||||
ERL = @ERL@
|
||||
EPMD = @EPMD@
|
||||
IEX = @IEX@
|
||||
|
||||
INSTALLUSER=@INSTALLUSER@
|
||||
INSTALLGROUP=@INSTALLGROUP@
|
||||
|
||||
REBAR_ENABLE_ELIXIR = @elixir@
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
@ -71,7 +86,10 @@ SPOOLDIR = @localstatedir@/lib/ejabberd
|
|||
# /var/log/ejabberd/
|
||||
LOGDIR = @localstatedir@/log/ejabberd
|
||||
|
||||
INSTALLUSER=@INSTALLUSER@
|
||||
#.
|
||||
#' install user
|
||||
#
|
||||
|
||||
# if no user was enabled, don't set privileges or ownership
|
||||
ifeq ($(INSTALLUSER),)
|
||||
O_USER=
|
||||
|
@ -86,18 +104,22 @@ else
|
|||
CHOWN_OUTPUT=&1
|
||||
INIT_USER=$(INSTALLUSER)
|
||||
endif
|
||||
|
||||
# if no group was enabled, don't set privileges or ownership
|
||||
INSTALLGROUP=@INSTALLGROUP@
|
||||
ifneq ($(INSTALLGROUP),)
|
||||
G_USER=-g $(INSTALLGROUP)
|
||||
endif
|
||||
|
||||
ifeq "$(MIX)" "mix"
|
||||
#.
|
||||
#' rebar / rebar3 / mix
|
||||
#
|
||||
|
||||
ifeq "$(notdir $(MIX))" "mix"
|
||||
REBAR_VER:=6
|
||||
REBAR_VER_318:=0
|
||||
else
|
||||
REBAR_VER:=$(shell $(REBAR) --version | awk -F '[ .]' '/rebar / {print $$2}')
|
||||
REBAR_VER_318:=$(shell $(REBAR) --version | awk -F '[ .]' '/rebar / {print ($$2 == 3 && $$3 >= 18 ? 1 : 0)}')
|
||||
REBAR_VER:=$(shell $(REBAR) --version | $(AWK) -F '[ .]' '/rebar / {print $$2}')
|
||||
REBAR_VER_318:=$(shell $(REBAR) --version | $(AWK) -F '[ .]' '/rebar / {print ($$2 == 3 && $$3 >= 18 ? 1 : 0)}')
|
||||
endif
|
||||
|
||||
ifeq "$(REBAR_VER)" "6"
|
||||
|
@ -112,11 +134,26 @@ ifeq "$(REBAR_VER)" "6"
|
|||
CONFIGURE_DEPS=(cd deps/eimp; ./configure)
|
||||
EBINDIR=$(DEPSDIR)/ejabberd/ebin
|
||||
XREFOPTIONS=graph
|
||||
EDOCPRE=MIX_ENV=edoc
|
||||
EDOCTASK=docs --proglang erlang
|
||||
CLEANARG=--deps
|
||||
ELIXIR_LIBDIR_RAW=$(shell elixir -e "IO.puts(:filename.dirname(:code.lib_dir(:elixir)))" -e ":erlang.halt")
|
||||
ELIXIR_LIBDIR=":$(ELIXIR_LIBDIR_RAW)"
|
||||
REBARREL=MIX_ENV=prod $(REBAR) release --overwrite
|
||||
REBARDEV=MIX_ENV=dev $(REBAR) release --overwrite
|
||||
RELIVECMD=escript rel/relive.escript && MIX_ENV=dev RELIVE=true iex --name ejabberd@localhost -S mix run
|
||||
RELIVECMD=$(ESCRIPT) rel/relive.escript && MIX_ENV=dev RELIVE=true $(IEX) --name ejabberd@localhost -S mix run
|
||||
REL_LIB_DIR = _build/dev/rel/ejabberd/lib
|
||||
COPY_REL_TARGET = dev
|
||||
GET_DEPS_TRANSLATIONS=MIX_ENV=translations $(REBAR) $(GET_DEPS)
|
||||
DEPSDIR_TRANSLATIONS=deps
|
||||
else
|
||||
ifeq ($(REBAR_ENABLE_ELIXIR),true)
|
||||
ELIXIR_LIBDIR_RAW=$(shell elixir -e "IO.puts(:filename.dirname(:code.lib_dir(:elixir)))" -e ":erlang.halt")
|
||||
ELIXIR_LIBDIR=":$(ELIXIR_LIBDIR_RAW)"
|
||||
EXPLICIT_ELIXIR_COMPILE=MIX_ENV=default mix compile.elixir
|
||||
EXPLICIT_ELIXIR_COMPILE_DEV=MIX_ENV=dev mix compile.elixir
|
||||
PREPARE_ELIXIR_SCRIPTS=$(MKDIR_P) rel/overlays; cp $(ELIXIR_LIBDIR_RAW)/../bin/iex rel/overlays/; cp $(ELIXIR_LIBDIR_RAW)/../bin/elixir rel/overlays/; sed -i 's|ERTS_BIN=$$|ERTS_BIN=$$SCRIPT_PATH/../../erts-{{erts_vsn}}/bin/|' rel/overlays/elixir
|
||||
endif
|
||||
ifeq "$(REBAR_VER)" "3"
|
||||
SKIPDEPS=
|
||||
LISTDEPS=tree
|
||||
|
@ -134,8 +171,12 @@ endif
|
|||
XREFOPTIONS=
|
||||
CLEANARG=--all
|
||||
REBARREL=$(REBAR) as prod tar
|
||||
REBARDEV=REBAR_PROFILE=dev $(REBAR) release
|
||||
RELIVECMD=$(REBAR) relive
|
||||
REBARDEV=$(REBAR) as dev release
|
||||
RELIVECMD=$(REBAR) as dev relive
|
||||
REL_LIB_DIR = _build/dev/rel/ejabberd/lib
|
||||
COPY_REL_TARGET = dev
|
||||
GET_DEPS_TRANSLATIONS=$(REBAR) as translations $(GET_DEPS)
|
||||
DEPSDIR_TRANSLATIONS=_build/translations/lib
|
||||
else
|
||||
SKIPDEPS=skip_deps=true
|
||||
LISTDEPS=-q list-deps
|
||||
|
@ -151,10 +192,16 @@ else
|
|||
REBARREL=$(REBAR) generate
|
||||
REBARDEV=
|
||||
RELIVECMD=@echo "Rebar2 detected... relive not supported.\
|
||||
\nTry: ./configure --with-rebar=./rebar3 ; make relive"
|
||||
\nTry: ./configure --with-rebar=rebar3 ; make relive"
|
||||
REL_LIB_DIR = rel/ejabberd/lib
|
||||
COPY_REL_TARGET = rel
|
||||
endif
|
||||
endif
|
||||
|
||||
#.
|
||||
#' main targets
|
||||
#
|
||||
|
||||
all: scripts deps src
|
||||
|
||||
deps: $(DEPSDIR)/.got
|
||||
|
@ -162,7 +209,7 @@ deps: $(DEPSDIR)/.got
|
|||
$(DEPSDIR)/.got:
|
||||
rm -rf $(DEPSDIR)/.got
|
||||
rm -rf $(DEPSDIR)/.built
|
||||
mkdir -p $(DEPSDIR)
|
||||
$(MKDIR_P) $(DEPSDIR)
|
||||
$(REBAR) $(GET_DEPS) && :> $(DEPSDIR)/.got
|
||||
$(CONFIGURE_DEPS)
|
||||
|
||||
|
@ -171,6 +218,7 @@ $(DEPSDIR)/.built: $(DEPSDIR)/.got
|
|||
|
||||
src: $(DEPSDIR)/.built
|
||||
$(REBAR) $(SKIPDEPS) compile
|
||||
$(EXPLICIT_ELIXIR_COMPILE)
|
||||
|
||||
update:
|
||||
rm -rf $(DEPSDIR)/.got
|
||||
|
@ -188,14 +236,45 @@ options: all
|
|||
tools/opt_types.sh ejabberd_option $(EBINDIR)
|
||||
|
||||
translations:
|
||||
tools/prepare-tr.sh $(DEPSDIR)
|
||||
$(GET_DEPS_TRANSLATIONS)
|
||||
tools/prepare-tr.sh $(DEPSDIR_TRANSLATIONS)
|
||||
|
||||
doap:
|
||||
tools/generate-doap.sh
|
||||
|
||||
edoc:
|
||||
$(ERL) -noinput +B -eval \
|
||||
'case edoc:application(ejabberd, ".", []) of ok -> halt(0); error -> halt(1) end.'
|
||||
#.
|
||||
#' edoc
|
||||
#
|
||||
|
||||
edoc: edoc_files edoc_compile
|
||||
$(EDOCPRE) $(REBAR) $(EDOCTASK)
|
||||
|
||||
edoc_compile: deps
|
||||
$(EDOCPRE) $(REBAR) compile
|
||||
|
||||
edoc_files: _build/edoc/docs.md _build/edoc/logo.png
|
||||
|
||||
_build/edoc/docs.md: edoc_compile
|
||||
echo "For much more detailed and complete ejabberd documentation, " \
|
||||
"go to the [ejabberd Docs](https://docs.ejabberd.im/) site." \
|
||||
> _build/edoc/docs.md
|
||||
|
||||
_build/edoc/logo.png: edoc_compile
|
||||
wget https://docs.ejabberd.im/assets/img/footer_logo_e.png -O _build/edoc/logo.png
|
||||
|
||||
#.
|
||||
#' format / indent
|
||||
#
|
||||
|
||||
format:
|
||||
tools/rebar3-format.sh $(REBAR3)
|
||||
|
||||
indent:
|
||||
tools/emacs-indent.sh
|
||||
|
||||
#.
|
||||
#' copy-files
|
||||
#
|
||||
|
||||
JOIN_PATHS=$(if $(wordlist 2,1000,$(1)),$(firstword $(1))/$(call JOIN_PATHS,$(wordlist 2,1000,$(1))),$(1))
|
||||
|
||||
|
@ -282,26 +361,58 @@ copy-files:
|
|||
|
||||
copy-files-sub: copy-files-sub2
|
||||
|
||||
#.
|
||||
#' copy-files-rel
|
||||
#
|
||||
|
||||
copy-files-rel: $(COPY_REL_TARGET)
|
||||
#
|
||||
# Libraries
|
||||
(cd $(REL_LIB_DIR) && find . -follow -type f ! -executable -exec $(INSTALL) -vDm 640 $(G_USER) {} $(DESTDIR)$(LIBDIR)/{} \;)
|
||||
#
|
||||
# *.so:
|
||||
(cd $(REL_LIB_DIR) && find . -follow -type f -executable -name *.so -exec $(INSTALL) -vDm 640 $(G_USER) {} $(DESTDIR)$(LIBDIR)/{} \;)
|
||||
#
|
||||
# Executable files
|
||||
(cd $(REL_LIB_DIR) && find . -follow -type f -executable ! -name *.so -exec $(INSTALL) -vDm 550 $(G_USER) {} $(DESTDIR)$(LIBDIR)/{} \;)
|
||||
|
||||
#.
|
||||
#' uninstall-librel
|
||||
#
|
||||
|
||||
uninstall-librel:
|
||||
(cd $(REL_LIB_DIR) && find . -follow -type f -exec rm -fv -v $(DESTDIR)$(LIBDIR)/{} \;)
|
||||
(cd $(REL_LIB_DIR) && find . -follow -depth -type d -exec rm -dv -v $(DESTDIR)$(LIBDIR)/{} \;)
|
||||
|
||||
#.
|
||||
#' relive
|
||||
#
|
||||
|
||||
relive:
|
||||
$(EXPLICIT_ELIXIR_COMPILE_DEV)
|
||||
$(RELIVECMD)
|
||||
|
||||
relivelibdir=$(shell pwd)/$(DEPSDIR)
|
||||
relivedir=$(shell pwd)/_build/relive
|
||||
iexpath=$(shell which iex)
|
||||
CONFIG_DIR = ${relivedir}/conf
|
||||
SPOOL_DIR = ${relivedir}/database
|
||||
LOGS_DIR = ${relivedir}/logs
|
||||
|
||||
#.
|
||||
#' scripts
|
||||
#
|
||||
|
||||
ejabberdctl.relive:
|
||||
$(SED) -e "s*{{installuser}}*@INSTALLUSER@*g" \
|
||||
$(SED) -e "s*{{installuser}}*${INSTALLUSER}*g" \
|
||||
-e "s*{{config_dir}}*${CONFIG_DIR}*g" \
|
||||
-e "s*{{logs_dir}}*${LOGS_DIR}*g" \
|
||||
-e "s*{{spool_dir}}*${SPOOL_DIR}*g" \
|
||||
-e "s*{{bindir}}/iex*$(iexpath)*g" \
|
||||
-e "s*{{bindir}}*@bindir@*g" \
|
||||
-e "s*{{libdir}}*${relivelibdir}*g" \
|
||||
-e "s*{{erl}}*@ERL@*g" \
|
||||
-e "s*{{epmd}}*@EPMD@*g" ejabberdctl.template \
|
||||
-e "s*{{bindir}}*${BINDIR}*g" \
|
||||
-e "s*{{libdir}}*${relivelibdir}${ELIXIR_LIBDIR}*g" \
|
||||
-e "s*ERTS_VSN*# ERTS_VSN*g" \
|
||||
-e "s*{{iexpath}}*${IEX}*g" \
|
||||
-e "s*{{erl}}*${ERL}*g" \
|
||||
-e "s*{{epmd}}*${EPMD}*g" ejabberdctl.template \
|
||||
> ejabberdctl.relive
|
||||
|
||||
ejabberd.init:
|
||||
|
@ -317,19 +428,29 @@ ejabberd.service:
|
|||
chmod 644 ejabberd.service
|
||||
|
||||
ejabberdctl.example: vars.config
|
||||
$(SED) -e "s*{{installuser}}*@INSTALLUSER@*g" \
|
||||
$(SED) -e "s*{{installuser}}*${INSTALLUSER}*g" \
|
||||
-e "s*{{config_dir}}*${ETCDIR}*g" \
|
||||
-e "s*{{logs_dir}}*${LOGDIR}*g" \
|
||||
-e "s*{{spool_dir}}*${SPOOLDIR}*g" \
|
||||
-e "s*{{bindir}}*@bindir@*g" \
|
||||
-e "s*{{libdir}}*@libdir@*g" \
|
||||
-e "s*{{erl}}*@ERL@*g" \
|
||||
-e "s*{{epmd}}*@EPMD@*g" ejabberdctl.template \
|
||||
-e "s*{{bindir}}*${BINDIR}*g" \
|
||||
-e "s*{{libdir}}*${LIBDIR}${ELIXIR_LIBDIR}*g" \
|
||||
-e "s*ERTS_VSN*# ERTS_VSN*g" \
|
||||
-e "s*{{iexpath}}*${IEX}*g" \
|
||||
-e "s*{{erl}}*${ERL}*g" \
|
||||
-e "s*{{epmd}}*${EPMD}*g" ejabberdctl.template \
|
||||
> ejabberdctl.example
|
||||
|
||||
scripts: ejabberd.init ejabberd.service ejabberdctl.example
|
||||
|
||||
install: copy-files
|
||||
#.
|
||||
#' install
|
||||
#
|
||||
|
||||
install: copy-files install-main
|
||||
|
||||
install-rel: copy-files-rel install-main
|
||||
|
||||
install-main:
|
||||
#
|
||||
# Configuration files
|
||||
$(INSTALL) -d -m 750 $(G_USER) $(DESTDIR)$(ETCDIR)
|
||||
|
@ -352,12 +473,12 @@ install: copy-files
|
|||
#
|
||||
# Spool directory
|
||||
$(INSTALL) -d -m 750 $(O_USER) $(DESTDIR)$(SPOOLDIR)
|
||||
$(CHOWN_COMMAND) -R @INSTALLUSER@ $(DESTDIR)$(SPOOLDIR) >$(CHOWN_OUTPUT)
|
||||
$(CHOWN_COMMAND) -R $(INSTALLUSER) $(DESTDIR)$(SPOOLDIR) >$(CHOWN_OUTPUT)
|
||||
chmod -R 750 $(DESTDIR)$(SPOOLDIR)
|
||||
#
|
||||
# Log directory
|
||||
$(INSTALL) -d -m 750 $(O_USER) $(DESTDIR)$(LOGDIR)
|
||||
$(CHOWN_COMMAND) -R @INSTALLUSER@ $(DESTDIR)$(LOGDIR) >$(CHOWN_OUTPUT)
|
||||
$(CHOWN_COMMAND) -R $(INSTALLUSER) $(DESTDIR)$(LOGDIR) >$(CHOWN_OUTPUT)
|
||||
chmod -R 750 $(DESTDIR)$(LOGDIR)
|
||||
#
|
||||
# Documentation
|
||||
|
@ -368,8 +489,14 @@ install: copy-files
|
|||
|| echo "Man page not included in sources"
|
||||
$(INSTALL) -m 644 COPYING $(DESTDIR)$(DOCDIR)
|
||||
|
||||
#.
|
||||
#' uninstall
|
||||
#
|
||||
|
||||
uninstall: uninstall-binary
|
||||
|
||||
uninstall-rel: uninstall-binary uninstall-librel
|
||||
|
||||
uninstall-binary:
|
||||
rm -f $(DESTDIR)$(SBINDIR)/ejabberdctl
|
||||
rm -f $(DESTDIR)$(BINDIR)/iex
|
||||
|
@ -398,6 +525,7 @@ uninstall-binary:
|
|||
rm -fr $(DESTDIR)$(LUADIR)
|
||||
rm -fr $(DESTDIR)$(PRIVDIR)
|
||||
rm -fr $(DESTDIR)$(EJABBERDDIR)
|
||||
rm -f $(DESTDIR)$(MANDIR)/ejabberd.yml.5
|
||||
|
||||
uninstall-all: uninstall-binary
|
||||
rm -rf $(DESTDIR)$(ETCDIR)
|
||||
|
@ -405,6 +533,10 @@ uninstall-all: uninstall-binary
|
|||
rm -rf $(DESTDIR)$(SPOOLDIR)
|
||||
rm -rf $(DESTDIR)$(LOGDIR)
|
||||
|
||||
#.
|
||||
#' clean
|
||||
#
|
||||
|
||||
clean:
|
||||
rm -rf $(DEPSDIR)/.got
|
||||
rm -rf $(DEPSDIR)/.built
|
||||
|
@ -427,29 +559,53 @@ distclean: clean clean-rel
|
|||
rm -f Makefile
|
||||
rm -f vars.config
|
||||
|
||||
rel:
|
||||
#.
|
||||
#' releases
|
||||
#
|
||||
|
||||
rel: prod
|
||||
|
||||
prod:
|
||||
$(PREPARE_ELIXIR_SCRIPTS)
|
||||
$(REBARREL)
|
||||
|
||||
DEV_CONFIG = _build/dev/rel/ejabberd/conf/ejabberd.yml
|
||||
|
||||
dev $(DEV_CONFIG):
|
||||
$(PREPARE_ELIXIR_SCRIPTS)
|
||||
$(REBARDEV)
|
||||
|
||||
#.
|
||||
#' tags
|
||||
#
|
||||
|
||||
TAGS:
|
||||
etags *.erl
|
||||
etags src/*.erl
|
||||
|
||||
#.
|
||||
#' makefile
|
||||
#
|
||||
|
||||
Makefile: Makefile.in
|
||||
|
||||
ifeq "$(REBAR_VER)" "3"
|
||||
#.
|
||||
#' dialyzer
|
||||
#
|
||||
|
||||
ifeq "$(REBAR_VER)" "6" # Mix
|
||||
dialyzer:
|
||||
find src/*_opt.erl -type f \! -regex ".*git.*" -exec sed -i 's/re:mp/ tuple/g' {} \;
|
||||
$(REBAR) dialyzer
|
||||
find src/*_opt.erl -type f \! -regex ".*git.*" -exec sed -i 's/ tuple/re:mp/g' {} \;
|
||||
MIX_ENV=test $(REBAR) dialyzer
|
||||
|
||||
else
|
||||
ifeq "$(REBAR_VER)" "3" # Rebar3
|
||||
dialyzer:
|
||||
$(REBAR) dialyzer
|
||||
|
||||
else # Rebar2
|
||||
deps := $(wildcard $(DEPSDIR)/*/ebin)
|
||||
|
||||
dialyzer/erlang.plt:
|
||||
@mkdir -p dialyzer
|
||||
@$(MKDIR_P) dialyzer
|
||||
@dialyzer --build_plt --output_plt dialyzer/erlang.plt \
|
||||
-o dialyzer/erlang.log --apps kernel stdlib sasl crypto \
|
||||
public_key ssl mnesia inets odbc compiler erts \
|
||||
|
@ -457,13 +613,13 @@ dialyzer/erlang.plt:
|
|||
status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi
|
||||
|
||||
dialyzer/deps.plt:
|
||||
@mkdir -p dialyzer
|
||||
@$(MKDIR_P) dialyzer
|
||||
@dialyzer --build_plt --output_plt dialyzer/deps.plt \
|
||||
-o dialyzer/deps.log $(deps); \
|
||||
status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi
|
||||
|
||||
dialyzer/ejabberd.plt:
|
||||
@mkdir -p dialyzer
|
||||
@$(MKDIR_P) dialyzer
|
||||
@dialyzer --build_plt --output_plt dialyzer/ejabberd.plt \
|
||||
-o dialyzer/ejabberd.log ebin; \
|
||||
status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi
|
||||
|
@ -485,6 +641,18 @@ dialyzer: erlang_plt deps_plt ejabberd_plt
|
|||
--get_warnings -o dialyzer/error.log ebin; \
|
||||
status=$$? ; if [ $$status -ne 2 ]; then exit $$status; else exit 0; fi
|
||||
endif
|
||||
endif
|
||||
|
||||
#.
|
||||
#' elvis
|
||||
#
|
||||
|
||||
elvis:
|
||||
$(REBAR) lint
|
||||
|
||||
#.
|
||||
#' test
|
||||
#
|
||||
|
||||
test:
|
||||
@echo "************************** NOTICE ***************************************"
|
||||
|
@ -493,9 +661,32 @@ test:
|
|||
@cd priv && ln -sf ../sql
|
||||
$(REBAR) $(SKIPDEPS) ct
|
||||
|
||||
.PHONY: src edoc dialyzer Makefile TAGS clean clean-rel distclean rel \
|
||||
install uninstall uninstall-binary uninstall-all translations deps test \
|
||||
quicktest erlang_plt deps_plt ejabberd_plt xref hooks options
|
||||
.PHONY: test-%
|
||||
define test-group-target
|
||||
test-$1:
|
||||
$(REBAR) $(SKIPDEPS) ct --suite=test/ejabberd_SUITE --group=$1
|
||||
endef
|
||||
|
||||
ifneq ($(filter test-%,$(MAKECMDGOALS)),)
|
||||
group_to_test := $(patsubst test-%,%,$(filter test-%,$(MAKECMDGOALS)))
|
||||
$(eval $(call test-group-target,$(group_to_test)))
|
||||
endif
|
||||
|
||||
test-eunit:
|
||||
$(REBAR) $(SKIPDEPS) eunit --verbose
|
||||
|
||||
#.
|
||||
#' phony
|
||||
#
|
||||
|
||||
.PHONY: src edoc dialyzer Makefile TAGS clean clean-rel distclean prod rel \
|
||||
install uninstall uninstall-binary uninstall-all translations deps test test-eunit \
|
||||
all dev doap help install-rel relive scripts uninstall-rel update \
|
||||
erlang_plt deps_plt ejabberd_plt xref hooks options format indent
|
||||
|
||||
#.
|
||||
#' help
|
||||
#
|
||||
|
||||
help:
|
||||
@echo ""
|
||||
|
@ -503,25 +694,37 @@ help:
|
|||
@echo " scripts Prepare ejabberd start scripts"
|
||||
@echo " deps Get and configure dependencies"
|
||||
@echo " src Compile dependencies and ejabberd"
|
||||
@echo " update Update dependencies' source code"
|
||||
@echo " update Update dependencies source code"
|
||||
@echo " clean Clean binary files"
|
||||
@echo " distclean Clean completely the development files"
|
||||
@echo ""
|
||||
@echo " install Install ejabberd to /usr/local"
|
||||
@echo " install-rel Install ejabberd to /usr/local (using release)"
|
||||
@echo " uninstall Uninstall ejabberd (buggy)"
|
||||
@echo " uninstall-rel Uninstall ejabberd (using release)"
|
||||
@echo " uninstall-all Uninstall also configuration, logs, mnesia... (buggy)"
|
||||
@echo ""
|
||||
@echo " rel Build a production release"
|
||||
@echo " prod Build a production release"
|
||||
@echo " dev Build a development release"
|
||||
@echo " relive Start a live ejabberd in _build/relive/"
|
||||
@echo ""
|
||||
@echo " doap Generate DOAP file"
|
||||
@echo " edoc Generate edoc documentation (unused)"
|
||||
@echo " edoc Generate EDoc documentation [mix]"
|
||||
@echo " options Generate ejabberd_option.erl"
|
||||
@echo " translations Extract translation files (requires --enable-tools)"
|
||||
@echo " tags Generate tags file for text editors"
|
||||
@echo " translations Extract translation files"
|
||||
@echo " TAGS Generate tags file for text editors"
|
||||
@echo ""
|
||||
@echo " format Format source code using rebar3_format"
|
||||
@echo " indent Indent source code using erlang-mode [emacs]"
|
||||
@echo ""
|
||||
@echo " dialyzer Run Dialyzer static analyzer"
|
||||
@echo " elvis Run Elvis source code style reviewer [rebar3]"
|
||||
@echo " hooks Run hooks validator"
|
||||
@echo " test Run Common Tests suite"
|
||||
@echo " xref Run cross reference analysis"
|
||||
@echo " test Run Common Tests suite [rebar3]"
|
||||
@echo " test-eunit Run EUnit suite [rebar3]"
|
||||
@echo " test-<group> Run Common Test suite for specific group only [rebar3]"
|
||||
@echo " xref Run cross reference analysis [rebar3]"
|
||||
|
||||
#.
|
||||
#'
|
||||
# vim: foldmarker=#',#. foldmethod=marker:
|
||||
|
|
47
README.md
47
README.md
|
@ -17,12 +17,13 @@
|
|||
<a href="https://github.com/processone/ejabberd/actions/workflows/ci.yml" alt="CI">
|
||||
<img src="https://github.com/processone/ejabberd/actions/workflows/ci.yml/badge.svg" /></a>
|
||||
<a href="https://coveralls.io/github/processone/ejabberd?branch=master" alt="Coverage Status">
|
||||
<img src="https://coveralls.io/repos/github/processone/ejabberd/badge.svg?branch=master "Coverage in coveralls.io"" /></a>
|
||||
<img src="https://coveralls.io/repos/github/processone/ejabberd/badge.svg?branch=master" /></a>
|
||||
<a href="https://hosted.weblate.org/projects/ejabberd/ejabberd-po/" alt="Translation status">
|
||||
<img src="https://hosted.weblate.org/widgets/ejabberd/-/ejabberd-po/svg-badge.svg"" /></a>
|
||||
<img src="https://hosted.weblate.org/widgets/ejabberd/-/ejabberd-po/svg-badge.svg" /></a>
|
||||
<a href="https://docs.ejabberd.im/" alt="ejabberd Docs">
|
||||
<img src="https://img.shields.io/github/v/tag/processone/docs.ejabberd.im?sort=semver&logo=&label=docs&logoWidth=0" /></a>
|
||||
</p>
|
||||
|
||||
|
||||
[ejabberd][im] is an open-source,
|
||||
robust, scalable and extensible realtime platform built using [Erlang/OTP][erlang],
|
||||
that includes [XMPP][xmpp] Server, [MQTT][mqtt] Broker and [SIP][sip] Service.
|
||||
|
@ -37,12 +38,16 @@ Installation
|
|||
There are several ways to install ejabberd:
|
||||
|
||||
- Source code: compile yourself, see [COMPILE](COMPILE.md)
|
||||
- Installers from [ProcessOne Download][p1download] or [ejabberd GitHub Releases][releases] (run/deb/rpm for x64 and arm64)
|
||||
- `ecs` container image available in [Docker Hub][hubecs] and [Github Packages][packagesecs], see [ecs README][docker-ecs-readme] (for x64)
|
||||
- `ejabberd` container image available in [Github Packages][packages], see [CONTAINER](CONTAINER.md) (for x64 and arm64)
|
||||
- Installers:
|
||||
- [ProcessOne Download Page][p1download] or [GitHub Releases][releases] for releases.
|
||||
- [GitHub Actions](https://github.com/processone/ejabberd/actions/workflows/installers.yml) for master branch (`run`/`deb`/`rpm` for `x64` and `arm64`)
|
||||
- Docker Containers:
|
||||
- `ecs` container image: [Docker Hub][hubecs] and [Github Packages][packagesecs], see [ecs README][docker-ecs-readme] (for `x64`)
|
||||
- `ejabberd` container image: [Github Packages][packages] for releases and master branch, see [CONTAINER](CONTAINER.md) (for `x64` and `arm64`)
|
||||
- Using your [Operating System package][osp]
|
||||
- Using the [Homebrew][homebrew] package manager
|
||||
|
||||
More info can be found in the `Installation` part of [ejabberd Docs](https://docs.ejabberd.im/admin/install/).
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
@ -59,7 +64,6 @@ Once ejabberd is installed, try:
|
|||
ejabberdctl help
|
||||
man ejabberd.yml
|
||||
|
||||
|
||||
Development
|
||||
-----------
|
||||
|
||||
|
@ -71,6 +75,11 @@ or in your local machine as explained in [Localization][localization].
|
|||
|
||||
Documentation for developers is available in [ejabberd docs: Developers][docs-dev].
|
||||
|
||||
There are nightly builds of ejabberd, both for `master` branch and for Pull Requests:
|
||||
|
||||
- Installers: go to [GitHub Actions: Installers](https://github.com/processone/ejabberd/actions/workflows/installers.yml), open the most recent commit, on the bottom of that commit page, download the `ejabberd-packages.zip` artifact.
|
||||
- `ejabberd` container image: go to [ejabberd Github Packages][packages]
|
||||
|
||||
Security reports or concerns should preferably be reported privately,
|
||||
please send an email to the address: contact at process-one dot net
|
||||
or some other method from [ProcessOne Contact][p1contact].
|
||||
|
@ -78,6 +87,10 @@ or some other method from [ProcessOne Contact][p1contact].
|
|||
For commercial offering and support, including [ejabberd Business Edition][p1home]
|
||||
and [Fluux (ejabberd in the Cloud)][fluux], please check [ProcessOne ejabberd page][p1home].
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
For information on how to report security vulnerabilities, please refer to the [SECURITY.md](SECURITY.md) file. It contains guidelines on how to report vulnerabilities privately and securely, ensuring that any issues are addressed in a timely and confidential manner.
|
||||
|
||||
Community
|
||||
---------
|
||||
|
@ -88,13 +101,11 @@ There are several places to get in touch with other ejabberd developers and admi
|
|||
- [GitHub Discussions][discussions]
|
||||
- [Stack Overflow][stackoverflow]
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
ejabberd is released under the GNU General Public License v2 (see [COPYING](COPYING.md)),
|
||||
and [ejabberd translations](https://github.com/processone/ejabberd-po/) under MIT License.
|
||||
|
||||
- ejabberd is released under the __GNU General Public License v2__ (see [COPYING](COPYING))
|
||||
- [ejabberd translations](https://github.com/processone/ejabberd-po/) under __MIT License__.
|
||||
|
||||
[discussions]: https://github.com/processone/ejabberd/discussions
|
||||
[docker-ecs-readme]: https://github.com/processone/docker-ejabberd/tree/master/ecs#readme
|
||||
|
@ -103,23 +114,23 @@ and [ejabberd translations](https://github.com/processone/ejabberd-po/) under MI
|
|||
[erlang]: https://www.erlang.org/
|
||||
[features]: https://docs.ejabberd.im/admin/introduction/
|
||||
[fluux]: https://fluux.io/
|
||||
[homebrew]: https://docs.ejabberd.im/admin/installation/#homebrew
|
||||
[homebrew]: https://docs.ejabberd.im/admin/install/homebrew/
|
||||
[hubecs]: https://hub.docker.com/r/ejabberd/ecs/
|
||||
[im]: https://ejabberd.im/
|
||||
[im]: https://www.ejabberd.im/
|
||||
[issues]: https://github.com/processone/ejabberd/issues
|
||||
[localization]: https://docs.ejabberd.im/developer/extending-ejabberd/localization/
|
||||
[mqtt]: https://mqtt.org/
|
||||
[muc]: xmpp:ejabberd@conference.process-one.net
|
||||
[osp]: https://docs.ejabberd.im/admin/installation/#operating-system-packages
|
||||
[p1contact]: https://www.process-one.net/en/company/contact/
|
||||
[p1download]: https://www.process-one.net/en/ejabberd/downloads/
|
||||
[p1home]: https://www.process-one.net/en/ejabberd/
|
||||
[osp]: https://docs.ejabberd.im/admin/install/os-package/
|
||||
[p1contact]: https://www.process-one.net/contact/
|
||||
[p1download]: https://www.process-one.net/download/ejabberd/
|
||||
[p1home]: https://www.process-one.net/ejabberd/
|
||||
[packages]: https://github.com/processone/ejabberd/pkgs/container/ejabberd
|
||||
[packagesecs]: https://github.com/processone/docker-ejabberd/pkgs/container/ecs
|
||||
[releases]: https://github.com/processone/ejabberd/releases
|
||||
[sip]: https://en.wikipedia.org/wiki/Session_Initiation_Protocol
|
||||
[stackoverflow]: https://stackoverflow.com/questions/tagged/ejabberd?sort=newest
|
||||
[weblate]: https://hosted.weblate.org/projects/ejabberd/ejabberd-po/
|
||||
[xeps]: https://www.process-one.net/en/ejabberd/protocols/
|
||||
[xeps]: https://www.process-one.net/ejabberd-features/
|
||||
[xmpp]: https://xmpp.org/
|
||||
[xmppej]: https://xmpp.org/software/servers/ejabberd/
|
||||
|
|
45
SECURITY.md
Normal file
45
SECURITY.md
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
We recommend that all users always use the latest version of ejabberd.
|
||||
|
||||
To ensure the best experience and security, upgrade to the latest version available on [this repo](https://github.com/processone/ejabberd).
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
### Private Reporting
|
||||
|
||||
**Preferred Method**: Use GitHub's private vulnerability reporting system by clicking the "Report a Vulnerability" button in the [Security tab of this repository](https://github.com/processone/ejabberd/security). This ensures your report is securely transmitted and tracked.
|
||||
|
||||
**Alternative**: If you cannot use the GitHub system, send an email to **`contact@process-one.net`** with the following details:
|
||||
|
||||
- A clear description of the vulnerability.
|
||||
- Steps to reproduce the issue.
|
||||
- Any potential impact or exploitation scenarios.
|
||||
|
||||
### Response Time
|
||||
|
||||
We aim to acknowledge receipt of your report within 72 hours. You can expect regular updates on the status of your report.
|
||||
|
||||
### Resolution
|
||||
|
||||
If the vulnerability is confirmed, we will work on a patch or mitigation strategy.
|
||||
We will notify you once the issue is resolved and coordinate a public disclosure if needed.
|
||||
|
||||
### Acknowledgements
|
||||
|
||||
We value and appreciate the contributions of security researchers and community members.
|
||||
If you wish, we are happy to acknowledge your efforts publicly by listing your name (or alias) below in this document.
|
||||
Please let us know if you would like to be recognized when reporting the vulnerability.
|
||||
|
||||
## Public Discussion
|
||||
|
||||
For general inquiries or discussions about the project’s security, feel free to chat with us here:
|
||||
|
||||
- XMPP room: `ejabberd@conference.process-one.net`
|
||||
- [GitHub Discussions](https://github.com/processone/ejabberd/discussions)
|
||||
|
||||
However, please note that if the issue is **critical** or potentially exploitable, **do not share it publicly**. Instead, we strongly recommend you contact the maintainers directly via the private reporting methods outlined above to ensure a secure and timely response.
|
||||
|
||||
Thank you for helping us improve the security of ejabberd!
|
|
@ -8,6 +8,8 @@ end
|
|||
rootpath = System.get_env("RELEASE_ROOT", rootdefault)
|
||||
config :ejabberd,
|
||||
file: Path.join(rootpath, "conf/ejabberd.yml"),
|
||||
log_path: Path.join(rootpath, 'logs/ejabberd.log')
|
||||
log_path: Path.join(rootpath, "logs/ejabberd.log")
|
||||
config :mnesia,
|
||||
dir: Path.join(rootpath, 'database/')
|
||||
dir: Path.join(rootpath, "database/")
|
||||
config :exsync,
|
||||
reload_callback: {:ejabberd_admin, :update, []}
|
||||
|
|
80
configure.ac
80
configure.ac
|
@ -2,15 +2,26 @@
|
|||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT(ejabberd, m4_esyscmd([echo `git describe --tags 2>/dev/null || echo 23.10` | sed 's/-g.*//;s/-/./' | tr -d '\012']), [ejabberd@process-one.net], [ejabberd])
|
||||
REQUIRE_ERLANG_MIN="9.0.5 (Erlang/OTP 20.0)"
|
||||
AC_INIT(ejabberd, m4_esyscmd([echo `git describe --tags 2>/dev/null || echo 25.08` | sed 's/-g.*//;s/-/./' | tr -d '\012']), [ejabberd@process-one.net], [ejabberd])
|
||||
|
||||
AC_ARG_WITH(min-erlang,
|
||||
AS_HELP_STRING([--with-min-erlang=version],[set minimal required erlang version, default to OTP25]),
|
||||
[if test "X$withval" = "X"; then
|
||||
REQUIRE_ERLANG_MIN="13.0 (Erlang/OTP 25.0)"
|
||||
else
|
||||
REQUIRE_ERLANG_MIN="$withval"
|
||||
fi
|
||||
], [REQUIRE_ERLANG_MIN="13.0 (Erlang/OTP 25.0)"])
|
||||
|
||||
REQUIRE_ERLANG_MAX="100.0.0 (No Max)"
|
||||
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_MAKE_SET
|
||||
AC_PROG_AWK
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_MKDIR_P
|
||||
AC_PROG_SED
|
||||
|
||||
if test "x$GCC" = "xyes"; then
|
||||
|
@ -28,18 +39,42 @@ fi
|
|||
])
|
||||
|
||||
AC_ARG_WITH(rebar,
|
||||
AS_HELP_STRING([--with-rebar=bin],[use the rebar/rebar3/mix binary specified]),
|
||||
AS_HELP_STRING([--with-rebar=bin],[use as build tool the rebar/rebar3/mix binary specified]),
|
||||
[if test "$withval" = "yes" -o "$withval" = "no" -o "X$with_rebar" = "X"; then
|
||||
rebar="rebar"
|
||||
rebar="rebar3"
|
||||
else
|
||||
rebar="$with_rebar"
|
||||
fi
|
||||
], [rebar="rebar"])
|
||||
], [rebar="unconfigured"])
|
||||
|
||||
AC_PATH_TOOL(ERL, erl, , [${extra_erl_path}$PATH])
|
||||
AC_PATH_TOOL(ERLC, erlc, , [${extra_erl_path}$PATH])
|
||||
AC_PATH_TOOL(EPMD, epmd, , [${extra_erl_path}$PATH])
|
||||
|
||||
AC_PATH_TOOL(REBAR, rebar, , [${extra_erl_path}$PATH])
|
||||
AC_PATH_TOOL(REBAR3, rebar3, , [${extra_erl_path}$PATH])
|
||||
AC_PATH_TOOL(ELIXIR, elixir, , [${extra_erl_path}$PATH])
|
||||
AC_PATH_TOOL(IEX, iex, , [${extra_erl_path}$PATH])
|
||||
AC_PATH_TOOL(MIX, mix, , [${extra_erl_path}$PATH])
|
||||
|
||||
if test "$rebar" = unconfigured; then
|
||||
if test "x$ELIXIR" = "x" -o "x$IEX" = "x" -o "x$MIX" = "x"; then
|
||||
if test "x$REBAR3" = "x"; then
|
||||
rebar="rebar3"
|
||||
else
|
||||
rebar=$REBAR3
|
||||
fi
|
||||
else
|
||||
rebar=$MIX
|
||||
fi
|
||||
fi
|
||||
if test "x$rebar" = "xrebar" -a "x$REBAR" = "x" ; then
|
||||
rebar="./rebar"
|
||||
fi
|
||||
if test "x$rebar" = "xrebar3" -a "x$REBAR3" = "x" ; then
|
||||
rebar="./rebar3"
|
||||
fi
|
||||
|
||||
AC_ERLANG_NEED_ERL
|
||||
AC_ERLANG_NEED_ERLC
|
||||
|
||||
|
@ -84,7 +119,7 @@ AC_ARG_ENABLE(debug,
|
|||
esac],[if test "x$debug" = "x"; then debug=true; fi])
|
||||
|
||||
AC_ARG_ENABLE(elixir,
|
||||
[AS_HELP_STRING([--enable-elixir],[enable Elixir support (default: no)])],
|
||||
[AS_HELP_STRING([--enable-elixir],[enable Elixir support in Rebar3 (default: no)])],
|
||||
[case "${enableval}" in
|
||||
yes) elixir=true ;;
|
||||
no) elixir=false ;;
|
||||
|
@ -112,7 +147,7 @@ esac],[full_xml=false])
|
|||
|
||||
ENABLEGROUP=""
|
||||
AC_ARG_ENABLE(group,
|
||||
[AS_HELP_STRING([--enable-group[[[[=GROUP]]]]], [allow this system group to start ejabberd (default: no)])],
|
||||
[AS_HELP_STRING([--enable-group[[=GROUP]]], [specify the group of the account defined in --enable-user (default: no)])],
|
||||
[case "${enableval}" in
|
||||
yes) ENABLEGROUP=`groups |head -n 1` ;;
|
||||
no) ENABLEGROUP="" ;;
|
||||
|
@ -237,7 +272,7 @@ AC_ARG_ENABLE(system_deps,
|
|||
esac],[if test "x$system_deps" = "x"; then system_deps=false; fi])
|
||||
|
||||
AC_ARG_ENABLE(tools,
|
||||
[AS_HELP_STRING([--enable-tools],[build development tools (default: no)])],
|
||||
[AS_HELP_STRING([--enable-tools],[include debugging/development tools (default: no)])],
|
||||
[case "${enableval}" in
|
||||
yes) tools=true ;;
|
||||
no) tools=false ;;
|
||||
|
@ -246,7 +281,7 @@ esac],[if test "x$tools" = "x"; then tools=false; fi])
|
|||
|
||||
ENABLEUSER=""
|
||||
AC_ARG_ENABLE(user,
|
||||
[AS_HELP_STRING([--enable-user[[[[=USER]]]]], [allow this system user to start ejabberd (default: no)])],
|
||||
[AS_HELP_STRING([--enable-user[[=USER]]], [allow this system user to start ejabberd (default: no)])],
|
||||
[case "${enableval}" in
|
||||
yes) ENABLEUSER=`whoami` ;;
|
||||
no) ENABLEUSER="" ;;
|
||||
|
@ -280,6 +315,8 @@ case "`uname`" in
|
|||
;;
|
||||
esac
|
||||
|
||||
AC_MSG_RESULT([build tool to use (change using --with-rebar): $rebar])
|
||||
|
||||
AC_SUBST(roster_gateway_workaround)
|
||||
AC_SUBST(new_sql_schema)
|
||||
AC_SUBST(full_xml)
|
||||
|
@ -305,3 +342,28 @@ AC_SUBST(CPPFLAGS)
|
|||
AC_SUBST(LDFLAGS)
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
AS_CASE([$rebar],
|
||||
[*rebar3], [
|
||||
deps=""
|
||||
AS_IF([test "x$stun" = "xfalse"], [deps="stun,$deps"])
|
||||
AS_IF([test "x$sqlite" = "xfalse"], [deps="sqlite3,$deps"])
|
||||
AS_IF([test "x$pgsql" = "xfalse"], [deps="p1_pgsql,$deps"])
|
||||
AS_IF([test "x$mysql" = "xfalse"], [deps="p1_mysql,$deps"])
|
||||
AS_IF([test "x$zlib" = "xfalse"], [deps="ezlib,$deps"])
|
||||
AS_IF([test "x$sip" = "xfalse"], [deps="esip,$deps"])
|
||||
AS_IF([test "x$redis" = "xfalse"], [deps="eredis,$deps"])
|
||||
AS_IF([test "x$pam" = "xfalse"], [deps="epam,$deps"])
|
||||
AS_IF([test "x$deps" = "x"], [],
|
||||
[AC_MSG_NOTICE([unlocking disabled rebar3 dependencies: $deps])
|
||||
$rebar unlock "$deps"])
|
||||
deps=""
|
||||
ERLANG_VERSION=m4_esyscmd([erl -noinput -noshell -eval 'erlang:display(list_to_integer(erlang:system_info(otp_release))), halt().'])
|
||||
AS_IF([test "$ERLANG_VERSION" -lt "21"], [deps="luerl,$deps"])
|
||||
AS_IF([test "$ERLANG_VERSION" -lt "22"], [deps="lager,$deps"])
|
||||
AS_IF([test "$ERLANG_VERSION" -le "23"], [deps="jose,$deps"])
|
||||
AS_IF([test "$ERLANG_VERSION" -ge "27"], [deps="jiffy,$deps"])
|
||||
AS_IF([test "x$deps" = "x"], [],
|
||||
[AC_MSG_NOTICE([unlocking rebar3 dependencies for old Erlang/OTP: $deps])
|
||||
$rebar unlock "$deps"])
|
||||
])
|
||||
|
|
484
ejabberd.doap
484
ejabberd.doap
|
@ -19,10 +19,10 @@
|
|||
<category rdf:resource="https://linkmauve.fr/ns/xmpp-doap#category-xmpp"/>
|
||||
|
||||
<homepage rdf:resource="https://www.ejabberd.im"/>
|
||||
<download-page rdf:resource="https://www.process-one.net/en/ejabberd/downloads/"/>
|
||||
<download-page rdf:resource="https://www.process-one.net/download/ejabberd/"/>
|
||||
<download-mirror rdf:resource="https://github.com/processone/ejabberd/tags"/>
|
||||
<license rdf:resource="https://raw.githubusercontent.com/processone/ejabberd/master/COPYING"/>
|
||||
<schema:logo rdf:resource="https://docs.ejabberd.im/static/shared/images/footer_logo_e@2x.png"/>
|
||||
<schema:logo rdf:resource="https://docs.ejabberd.im/assets/img/footer_logo_e@2x.png"/>
|
||||
<bug-database rdf:resource="https://github.com/processone/ejabberd/issues"/>
|
||||
<support-forum rdf:resource="xmpp:ejabberd@conference.process-one.net?join"/>
|
||||
<repository>
|
||||
|
@ -48,8 +48,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0004.html"/>
|
||||
<xmpp:version>2.9</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.5.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -57,8 +57,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0012.html"/>
|
||||
<xmpp:version>2.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.5.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_last</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -67,7 +67,7 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0013.html"/>
|
||||
<xmpp:version>1.2</xmpp:version>
|
||||
<xmpp:since>16.02</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_offline</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -75,8 +75,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0016.html"/>
|
||||
<xmpp:version>1.6</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.5.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_privacy</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -84,8 +84,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0022.html"/>
|
||||
<xmpp:version>1.4</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_offline</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -93,8 +93,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0023.html"/>
|
||||
<xmpp:version>1.3</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.7.5</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_offline</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -102,8 +102,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0030.html"/>
|
||||
<xmpp:version>2.4</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_disco</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -112,7 +112,7 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0033.html"/>
|
||||
<xmpp:version>1.1</xmpp:version>
|
||||
<xmpp:since>15.04</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_multicast</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -120,8 +120,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0039.html"/>
|
||||
<xmpp:version>0.6.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_stats</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -129,17 +129,26 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0045.html"/>
|
||||
<xmpp:version>1.25</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.5.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_muc</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0048.html"/>
|
||||
<xmpp:version>1.2</xmpp:version>
|
||||
<xmpp:since>0.5.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_pubsub</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0049.html"/>
|
||||
<xmpp:version>1.2</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_private</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -147,8 +156,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0050.html"/>
|
||||
<xmpp:version>1.2</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>1.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_adhoc</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -156,8 +165,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0054.html"/>
|
||||
<xmpp:version>1.2</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_vcard</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -165,17 +174,26 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0055.html"/>
|
||||
<xmpp:version>1.3</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_vcard</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0059.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since>2.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0060.html"/>
|
||||
<xmpp:version>1.14</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.5.0</xmpp:since>
|
||||
<xmpp:status>partial</xmpp:status>
|
||||
<xmpp:note>mod_pubsub</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -183,8 +201,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0065.html"/>
|
||||
<xmpp:version>1.8</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.0.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_proxy65</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -192,8 +210,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0077.html"/>
|
||||
<xmpp:version>2.4</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_register</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -201,17 +219,26 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0078.html"/>
|
||||
<xmpp:version>2.5</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>17.03</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_legacy_auth</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0082.html"/>
|
||||
<xmpp:version>1.1.1</xmpp:version>
|
||||
<xmpp:since>2.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0085.html"/>
|
||||
<xmpp:version>2.1</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_client_state</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -219,8 +246,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0086.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.5.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -228,8 +255,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0092.html"/>
|
||||
<xmpp:version>1.1</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_version</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -237,8 +264,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0106.html"/>
|
||||
<xmpp:version>1.1</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.5.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -246,8 +273,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0114.html"/>
|
||||
<xmpp:version>1.6</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>ejabberd_service</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -255,8 +282,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0115.html"/>
|
||||
<xmpp:version>1.5</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.1.4</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_caps</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -264,26 +291,35 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0124.html"/>
|
||||
<xmpp:version>1.11</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>16.12</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>ejabberd_bosh</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0133.html"/>
|
||||
<xmpp:version>1.1</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:version>1.3.0</xmpp:version>
|
||||
<xmpp:since>13.10</xmpp:since>
|
||||
<xmpp:status>partial</xmpp:status>
|
||||
<xmpp:note>mod_configure</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0138.html"/>
|
||||
<xmpp:version>2.1</xmpp:version>
|
||||
<xmpp:since>1.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>ejabberd_c2s</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0153.html"/>
|
||||
<xmpp:version>1.1</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>17.09</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_vcard</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -292,7 +328,7 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0156.html"/>
|
||||
<xmpp:version>1.4.0</xmpp:version>
|
||||
<xmpp:since>22.05</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_host_meta</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -300,8 +336,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0157.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_disco</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -309,8 +345,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0158.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>ejabberd_captcha</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -318,8 +354,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0160.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>16.01</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_offline</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -327,8 +363,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0163.html"/>
|
||||
<xmpp:version>1.2</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.0.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_pubsub</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -336,26 +372,35 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0170.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>17.12</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0176.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:note>ejabberd_stun</xmpp:note>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0175.html"/>
|
||||
<xmpp:version>1.2</xmpp:version>
|
||||
<xmpp:since>1.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>ejabberd_auth_anonymous</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0178.html"/>
|
||||
<xmpp:version>1.1</xmpp:version>
|
||||
<xmpp:since>17.03</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0185.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>17.03</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_s2s_dialback</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -363,8 +408,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0191.html"/>
|
||||
<xmpp:version>1.2</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.1.7</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_blocking</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -373,7 +418,7 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0198.html"/>
|
||||
<xmpp:version>1.5.2</xmpp:version>
|
||||
<xmpp:since>14.05</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_stream_mgmt</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -381,8 +426,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0199.html"/>
|
||||
<xmpp:version>2.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_ping</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -390,17 +435,26 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0202.html"/>
|
||||
<xmpp:version>2.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_time</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0203.html"/>
|
||||
<xmpp:version>2.0</xmpp:version>
|
||||
<xmpp:since>2.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_offline</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0205.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>1.1.2</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -408,80 +462,71 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0206.html"/>
|
||||
<xmpp:version>1.4</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>16.12</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>ejabberd_bosh</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0212.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0215.html"/>
|
||||
<xmpp:version>0.7</xmpp:version>
|
||||
<xmpp:since>20.04</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_stun_disco</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0216.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0220.html"/>
|
||||
<xmpp:version>1.1.1</xmpp:version>
|
||||
<xmpp:since>17.03</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_s2s_dialback</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0220.html"/>
|
||||
<xmpp:version>1.1</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:note>ejabberd_s2s, mod_s2s_dialback</xmpp:note>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0223.html"/>
|
||||
<xmpp:version>1.1.1</xmpp:version>
|
||||
<xmpp:since>2.0.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_pubsub</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0227.html"/>
|
||||
<xmpp:version>1.1</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.1.0</xmpp:since>
|
||||
<xmpp:status>partial</xmpp:status>
|
||||
<xmpp:note>ejabberd_piefxis</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0231.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since>2.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>ejabberd_captcha</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0237.html"/>
|
||||
<xmpp:version>1.3</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_roster</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0243.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0248.html"/>
|
||||
<xmpp:version>0.2</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.1.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_pubsub</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -489,54 +534,54 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0249.html"/>
|
||||
<xmpp:version>1.2</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>0.5.0</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_muc</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0270.html"/>
|
||||
<xmpp:version>1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0279.html"/>
|
||||
<xmpp:version>0.2</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>2.1.3</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_sic</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0280.html"/>
|
||||
<xmpp:version>0.13.2</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:version>1.0.1</xmpp:version>
|
||||
<xmpp:since>13.06</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_carboncopy</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0288.html"/>
|
||||
<xmpp:version>1.0.1</xmpp:version>
|
||||
<xmpp:since>24.10</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_s2s_bidi</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0313.html"/>
|
||||
<xmpp:version>0.6.1</xmpp:version>
|
||||
<xmpp:since>15.06</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_mam</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0317.html"/>
|
||||
<xmpp:version>0.1</xmpp:version>
|
||||
<xmpp:version>0.3.1</xmpp:version>
|
||||
<xmpp:since>21.12</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:note>mod_muc_room, conversejs/prosody compatible</xmpp:note>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_muc_room, 0.3.1 since 25.xx</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
|
@ -544,7 +589,7 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0328.html"/>
|
||||
<xmpp:version>0.1</xmpp:version>
|
||||
<xmpp:since>19.09</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_jidprep</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -552,8 +597,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0334.html"/>
|
||||
<xmpp:version>0.2</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>16.01</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_mam, mod_muc_log, mod_offline</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -562,7 +607,7 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0352.html"/>
|
||||
<xmpp:version>0.1</xmpp:version>
|
||||
<xmpp:since>14.12</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_client_state</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -571,16 +616,16 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0355.html"/>
|
||||
<xmpp:version>0.4.1</xmpp:version>
|
||||
<xmpp:since>16.09</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_delegation</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0356.html"/>
|
||||
<xmpp:version>0.2.1</xmpp:version>
|
||||
<xmpp:since>16.09</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:version>0.4.1</xmpp:version>
|
||||
<xmpp:since>24.10</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_privilege</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -589,7 +634,7 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0357.html"/>
|
||||
<xmpp:version>0.2</xmpp:version>
|
||||
<xmpp:since>17.08</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_push</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -597,17 +642,17 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0359.html"/>
|
||||
<xmpp:version>0.5.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>15.09</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_mam</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0363.html"/>
|
||||
<xmpp:version>0.2</xmpp:version>
|
||||
<xmpp:version>0.3.0</xmpp:version>
|
||||
<xmpp:since>15.10</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_http_upload</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -615,8 +660,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0368.html"/>
|
||||
<xmpp:version>1.1.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>17.09</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -625,17 +670,44 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0369.html"/>
|
||||
<xmpp:version>0.14.1</xmpp:version>
|
||||
<xmpp:since>16.03</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_mix</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0384.html"/>
|
||||
<xmpp:version>0.8.3</xmpp:version>
|
||||
<xmpp:since>21.12</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>node_pep</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0386.html"/>
|
||||
<xmpp:version>0.3.0</xmpp:version>
|
||||
<xmpp:since>24.02</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0388.html"/>
|
||||
<xmpp:version>0.4.0</xmpp:version>
|
||||
<xmpp:since>24.02</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0398.html"/>
|
||||
<xmpp:version>0.2.00.2.0</xmpp:version>
|
||||
<xmpp:since>17.09</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:note>mod_avatar, mod_vcard_xupdate</xmpp:note>
|
||||
<xmpp:version>0.2.0</xmpp:version>
|
||||
<xmpp:since>18.03</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_avatar</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
|
@ -643,7 +715,7 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0402.html"/>
|
||||
<xmpp:version>1.1.3</xmpp:version>
|
||||
<xmpp:since>23.10</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_private</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -651,8 +723,8 @@
|
|||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0405.html"/>
|
||||
<xmpp:version>0.3.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>19.02</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_mix_pam</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -661,7 +733,7 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0410.html"/>
|
||||
<xmpp:version>1.1.0</xmpp:version>
|
||||
<xmpp:since>18.12</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_muc_room</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -670,7 +742,7 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0411.html"/>
|
||||
<xmpp:version>0.2.0</xmpp:version>
|
||||
<xmpp:since>18.12</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_private</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
|
@ -679,27 +751,99 @@
|
|||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0421.html"/>
|
||||
<xmpp:version>0.1.0</xmpp:version>
|
||||
<xmpp:since>23.10</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_muc_occupantid</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0424.html"/>
|
||||
<xmpp:version>0.4.2</xmpp:version>
|
||||
<xmpp:since>24.02</xmpp:since>
|
||||
<xmpp:status>partial</xmpp:status>
|
||||
<xmpp:note>mod_mam, Tombstones not implemented</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0425.html"/>
|
||||
<xmpp:version>0.2.1</xmpp:version>
|
||||
<xmpp:since>23.04</xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:version>0.3.0</xmpp:version>
|
||||
<xmpp:since>24.06</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_mam</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0431.html"/>
|
||||
<xmpp:version>0.2.0</xmpp:version>
|
||||
<xmpp:since>24.12</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_mam</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0440.html"/>
|
||||
<xmpp:version>0.4.0</xmpp:version>
|
||||
<xmpp:since>24.02</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note></xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0441.html"/>
|
||||
<xmpp:version>0.2.0</xmpp:version>
|
||||
<xmpp:since></xmpp:since>
|
||||
<xmpp:status></xmpp:status>
|
||||
<xmpp:since>15.06</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_mam</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0474.html"/>
|
||||
<xmpp:version>0.4.0</xmpp:version>
|
||||
<xmpp:since>24.02</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>, 0.4.0 since 25.03</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0480.html"/>
|
||||
<xmpp:version>0.2.0</xmpp:version>
|
||||
<xmpp:since>24.10</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_scram_upgrade</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0484.html"/>
|
||||
<xmpp:version>0.2.0</xmpp:version>
|
||||
<xmpp:since>24.12</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_auth_fast</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0485.html"/>
|
||||
<xmpp:version>0.1.1</xmpp:version>
|
||||
<xmpp:since>25.07</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_pubsub_serverinfo</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
<implements>
|
||||
<xmpp:SupportedXep>
|
||||
<xmpp:xep rdf:resource="https://xmpp.org/extensions/xep-0486.html"/>
|
||||
<xmpp:version>0.1.0</xmpp:version>
|
||||
<xmpp:since>24.07</xmpp:since>
|
||||
<xmpp:status>complete</xmpp:status>
|
||||
<xmpp:note>mod_muc</xmpp:note>
|
||||
</xmpp:SupportedXep>
|
||||
</implements>
|
||||
</Project>
|
||||
</rdf:RDF>
|
||||
|
|
|
@ -9,7 +9,6 @@ Group=@installuser@
|
|||
LimitNOFILE=65536
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
WatchdogSec=30
|
||||
ExecStart=@ctlscriptpath@/ejabberdctl foreground
|
||||
ExecStop=/bin/sh -c '@ctlscriptpath@/ejabberdctl stop && @ctlscriptpath@/ejabberdctl stopped'
|
||||
ExecReload=@ctlscriptpath@/ejabberdctl reload_config
|
||||
|
|
|
@ -67,7 +67,7 @@ listen:
|
|||
/admin: ejabberd_web_admin
|
||||
/.well-known/acme-challenge: ejabberd_acme
|
||||
-
|
||||
port: 3478
|
||||
port: 5478
|
||||
ip: "::"
|
||||
transport: udp
|
||||
module: ejabberd_stun
|
||||
|
@ -111,11 +111,19 @@ access_rules:
|
|||
|
||||
api_permissions:
|
||||
"console commands":
|
||||
from:
|
||||
- ejabberd_ctl
|
||||
from: ejabberd_ctl
|
||||
who: all
|
||||
what: "*"
|
||||
"admin access":
|
||||
"webadmin commands":
|
||||
from: ejabberd_web_admin
|
||||
who: admin
|
||||
what: "*"
|
||||
"adhoc commands":
|
||||
from: mod_adhoc_api
|
||||
who: admin
|
||||
what: "*"
|
||||
"http access":
|
||||
from: mod_http_api
|
||||
who:
|
||||
access:
|
||||
allow:
|
||||
|
@ -156,6 +164,7 @@ shaper_rules:
|
|||
|
||||
modules:
|
||||
mod_adhoc: {}
|
||||
mod_adhoc_api: {}
|
||||
mod_admin_extra: {}
|
||||
mod_announce:
|
||||
access: announce
|
||||
|
@ -170,7 +179,7 @@ modules:
|
|||
mod_fail2ban: {}
|
||||
mod_http_api: {}
|
||||
mod_http_upload:
|
||||
put_url: https://@HOST@:5443/upload
|
||||
put_url: https://@HOST_URL_ENCODE@:5443/upload
|
||||
custom_headers:
|
||||
"Access-Control-Allow-Origin": "https://@HOST@"
|
||||
"Access-Control-Allow-Methods": "GET,HEAD,PUT,OPTIONS"
|
||||
|
@ -196,6 +205,7 @@ modules:
|
|||
default_room_options:
|
||||
mam: true
|
||||
mod_muc_admin: {}
|
||||
mod_muc_occupantid: {}
|
||||
mod_offline:
|
||||
access_max_user_messages: max_user_offline_messages
|
||||
mod_ping: {}
|
||||
|
@ -224,6 +234,7 @@ modules:
|
|||
ip_access: trusted_network
|
||||
mod_roster:
|
||||
versioning: true
|
||||
mod_s2s_bidi: {}
|
||||
mod_s2s_dialback: {}
|
||||
mod_shared_roster: {}
|
||||
mod_stream_mgmt:
|
||||
|
|
|
@ -109,7 +109,10 @@
|
|||
#' ERL_OPTIONS: Additional Erlang options
|
||||
#
|
||||
# The next variable allows to specify additional options passed to
|
||||
# erlang. See erl(1) for more info.
|
||||
# all commands using erlang interpreter. This applies to starting
|
||||
# ejabberd server itself but also auxiliary commands like for example
|
||||
# starting debug shell. See erl(1) for list of commands that can be
|
||||
# used here.
|
||||
#
|
||||
# It might be useful to add "-pa /usr/local/lib/ejabberd/ebin" if you
|
||||
# want to add local modules in this path.
|
||||
|
@ -126,10 +129,11 @@
|
|||
# ejabberd is started from an init.d script options -noshell and -detached are
|
||||
# added implicitly. See erl(1) for more info.
|
||||
#
|
||||
# For example you can use value "-heart -env HEART_BEAT_TIMEOUT 120 -env ERL_CRASH_DUMP_SECONDS 60"
|
||||
#
|
||||
# Default: ""
|
||||
#
|
||||
#EJABBERD_OPTS=""
|
||||
EJABBERD_OPTS="-heart -env HEART_BEAT_TIMEOUT 120 -env ERL_CRASH_DUMP_SECONDS 60"
|
||||
|
||||
#.
|
||||
#' ERLANG_NODE: Erlang node name
|
||||
|
@ -194,6 +198,17 @@ EJABBERD_OPTS="-heart -env HEART_BEAT_TIMEOUT 120 -env ERL_CRASH_DUMP_SECONDS 60
|
|||
#
|
||||
#CONTRIB_MODULES_CONF_DIR=/etc/ejabberd/modules
|
||||
|
||||
#.
|
||||
#' CTL_OVER_HTTP: Path to ejabberdctl HTTP listener socket
|
||||
#
|
||||
# To speedup ejabberdctl execution time for ejabberd commands,
|
||||
# you can setup an ejabberd_http listener with ejabberd_ctl handling requests,
|
||||
# listening in a unix domain socket.
|
||||
#
|
||||
# Default: disabled
|
||||
#
|
||||
#CTL_OVER_HTTP=sockets/ctl_over_http.sock
|
||||
|
||||
#.
|
||||
#'
|
||||
# vim: foldmarker=#',#. foldmethod=marker:
|
||||
|
|
|
@ -15,8 +15,8 @@ SCRIPT_DIR="$(cd "$(dirname "$SCRIPT")" && pwd -P)"
|
|||
# shellcheck disable=SC2034
|
||||
ERTS_VSN="{{erts_vsn}}"
|
||||
ERL="{{erl}}"
|
||||
IEX="{{bindir}}/iex"
|
||||
EPMD="{{epmd}}"
|
||||
IEX="{{iexpath}}"
|
||||
INSTALLUSER="{{installuser}}"
|
||||
|
||||
# check the proper system user is used
|
||||
|
@ -66,10 +66,15 @@ done
|
|||
# shellcheck source=ejabberdctl.cfg.example
|
||||
[ -f "$EJABBERDCTL_CONFIG_PATH" ] && . "$EJABBERDCTL_CONFIG_PATH"
|
||||
[ -n "$ERLANG_NODE_ARG" ] && ERLANG_NODE="$ERLANG_NODE_ARG"
|
||||
[ "$ERLANG_NODE" = "${ERLANG_NODE%@*}" ] && ERLANG_NODE="$ERLANG_NODE@$(hostname -s)"
|
||||
[ "$ERLANG_NODE" = "${ERLANG_NODE%.*}" ] && S="-s"
|
||||
: "${SPOOL_DIR:="{{spool_dir}}"}"
|
||||
: "${EJABBERD_LOG_PATH:="$LOGS_DIR/ejabberd.log"}"
|
||||
|
||||
# backward support for old mnesia spool dir path
|
||||
: "${SPOOL_DIR_OLD:="$SPOOL_DIR/$ERLANG_NODE"}"
|
||||
[ -r "$SPOOL_DIR_OLD/schema.DAT" ] && [ ! -r "$SPOOL_DIR/schema.DAT" ] && SPOOL_DIR="$SPOOL_DIR_OLD"
|
||||
|
||||
# define erl parameters
|
||||
ERLANG_OPTS="+K $POLL +P $ERL_PROCESSES $ERL_OPTIONS"
|
||||
if [ -n "$FIREWALL_WINDOW" ] ; then
|
||||
|
@ -78,6 +83,9 @@ fi
|
|||
if [ -n "$INET_DIST_INTERFACE" ] ; then
|
||||
INET_DIST_INTERFACE2=$("$ERL" $ERLANG_OPTS -noshell -eval 'case inet:parse_address("'$INET_DIST_INTERFACE'") of {ok,IP} -> io:format("~p",[IP]); _ -> ok end.' -s erlang halt)
|
||||
if [ -n "$INET_DIST_INTERFACE2" ] ; then
|
||||
if [ "$(echo "$INET_DIST_INTERFACE2" | grep -o "," | wc -l)" -eq 7 ] ; then
|
||||
INET_DIST_INTERFACE2="$INET_DIST_INTERFACE2 -proto_dist inet6_tcp"
|
||||
fi
|
||||
ERLANG_OPTS="$ERLANG_OPTS -kernel inet_dist_use_interface $INET_DIST_INTERFACE2"
|
||||
fi
|
||||
fi
|
||||
|
@ -89,11 +97,12 @@ ERL_CRASH_DUMP="$LOGS_DIR"/erl_crash_$(date "+%Y%m%d-%H%M%S").dump
|
|||
ERL_INETRC="$CONFIG_DIR"/inetrc
|
||||
|
||||
# define ejabberd parameters
|
||||
EJABBERD_OPTS="$EJABBERD_OPTS\
|
||||
EJABBERD_OPTS="\
|
||||
$(sed '/^log_rotate_size/!d;s/:[ \t]*\([0-9]\{1,\}\).*/ \1/;s/:[ \t]*\(infinity\).*/ \1 /;s/^/ /' "$EJABBERD_CONFIG_PATH")\
|
||||
$(sed '/^log_rotate_count/!d;s/:[ \t]*\([0-9]*\).*/ \1 /;s/^/ /' "$EJABBERD_CONFIG_PATH")\
|
||||
$(sed '/^log_burst_limit_count/!d;s/:[ \t]*\([0-9]*\).*/ \1 /;s/^/ /' "$EJABBERD_CONFIG_PATH")\
|
||||
$(sed '/^log_burst_limit_window_time/!d;s/:[ \t]*\([0-9]*[a-z]*\).*/ \1/;s/^/ /' "$EJABBERD_CONFIG_PATH")"
|
||||
$(sed '/^log_burst_limit_window_time/!d;s/:[ \t]*\([0-9]*[a-z]*\).*/ \1 /;s/^/ /' "$EJABBERD_CONFIG_PATH")\
|
||||
$EJABBERD_OPTS"
|
||||
[ -n "$EJABBERD_OPTS" ] && EJABBERD_OPTS="-ejabberd $EJABBERD_OPTS"
|
||||
EJABBERD_OPTS="-mnesia dir \"$SPOOL_DIR\" $MNESIA_OPTIONS $EJABBERD_OPTS -s ejabberd"
|
||||
|
||||
|
@ -174,8 +183,10 @@ livewarning()
|
|||
echo "Please be extremely cautious with your actions,"
|
||||
echo "and exit immediately if you are not completely sure."
|
||||
echo ""
|
||||
echo "To exit this LIVE mode and stop ejabberd, press:"
|
||||
echo " q(). and press the Enter key"
|
||||
echo "To stop ejabberd gracefully:"
|
||||
echo " ejabberd:stop()."
|
||||
echo "To quit erlang immediately, press:"
|
||||
echo " control+g and then q"
|
||||
echo ""
|
||||
echo "--------------------------------------------------------------------"
|
||||
echo "To bypass permanently this warning, add to ejabberdctl.cfg the line:"
|
||||
|
@ -186,6 +197,39 @@ livewarning()
|
|||
fi
|
||||
}
|
||||
|
||||
check_etop_result()
|
||||
{
|
||||
result=$?
|
||||
if [ $result -eq 1 ] ; then
|
||||
echo ""
|
||||
echo "It seems there was some problem running 'ejabberdctl etop'."
|
||||
echo "Is the error message something like this?"
|
||||
echo " Failed to load module 'etop' because it cannot be found..."
|
||||
echo "Then probably ejabberd was compiled with development tools disabled."
|
||||
echo "To use 'etop', recompile ejabberd with: ./configure --enable-tools"
|
||||
echo ""
|
||||
exit $result
|
||||
fi
|
||||
}
|
||||
|
||||
check_iex_result()
|
||||
{
|
||||
result=$?
|
||||
if [ $result -eq 127 ] ; then
|
||||
echo ""
|
||||
echo "It seems there was some problem finding 'iex' binary from Elixir."
|
||||
echo "Probably ejabberd was compiled with Rebar3 and Elixir disabled, like:"
|
||||
echo " ./configure"
|
||||
echo "which is equivalent to:"
|
||||
echo " ./configure --with-rebar=rebar3 --disable-elixir"
|
||||
echo "To use 'iex', recompile ejabberd enabling Elixir or using Mix:"
|
||||
echo " ./configure --enable-elixir"
|
||||
echo " ./configure --with-rebar=mix"
|
||||
echo ""
|
||||
exit $result
|
||||
fi
|
||||
}
|
||||
|
||||
help()
|
||||
{
|
||||
echo ""
|
||||
|
@ -214,16 +258,34 @@ help()
|
|||
}
|
||||
|
||||
# dynamic node name helper
|
||||
uid()
|
||||
{
|
||||
uuid=$(uuidgen 2>/dev/null)
|
||||
random=$(awk 'BEGIN { srand(); print int(rand()*32768) }' /dev/null)
|
||||
[ -z "$uuid" ] && [ -f /proc/sys/kernel/random/uuid ] && uuid=$(cat /proc/sys/kernel/random/uuid)
|
||||
[ -z "$uuid" ] && uuid=$(printf "%X" "${random:-$$}$(date +%M%S)")
|
||||
uuid=$(printf '%s' $uuid | sed 's/^\(...\).*$/\1/')
|
||||
[ $# -eq 0 ] && echo "${uuid}-${ERLANG_NODE}"
|
||||
[ $# -eq 1 ] && echo "${uuid}-${1}-${ERLANG_NODE}"
|
||||
[ $# -eq 2 ] && echo "${uuid}-${1}@${2}"
|
||||
uid() {
|
||||
ERTSVERSION="$("$ERL" -version 2>&1 | sed 's|.* \([0-9]*[0-9]\).*|\1|g')"
|
||||
if [ $ERTSVERSION -lt 11 ] ; then # otp 23.0 includes erts 11.0
|
||||
# Erlang/OTP lower than 23, which doesn's support dynamic node code
|
||||
N=1
|
||||
PF=$(( $$ % 97 ))
|
||||
while
|
||||
case $# in
|
||||
0) NN="${PF}-${N}-${ERLANG_NODE}"
|
||||
;;
|
||||
1) NN="${PF}-${N}-${1}-${ERLANG_NODE}"
|
||||
;;
|
||||
2) NN="${PF}-${N}-${1}@${2}"
|
||||
;;
|
||||
esac
|
||||
N=$(( N + 1 + ( $$ % 5 ) ))
|
||||
"$EPMD" -names 2>/dev/null | grep -q " ${NN%@*} "
|
||||
do :; done
|
||||
echo $NN
|
||||
else
|
||||
# Erlang/OTP 23 or higher: use native dynamic node code
|
||||
# https://www.erlang.org/patches/otp-23.0#OTP-13812
|
||||
if [ "$ERLANG_NODE" != "${ERLANG_NODE%.*}" ]; then
|
||||
echo "undefined@${ERLANG_NODE#*@}"
|
||||
else
|
||||
echo "undefined"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# stop epmd if there is no other running node
|
||||
|
@ -256,6 +318,13 @@ check_start()
|
|||
# allow sync calls
|
||||
wait_status()
|
||||
{
|
||||
wait_status_node "$ERLANG_NODE" $1 $2 $3
|
||||
}
|
||||
|
||||
wait_status_node()
|
||||
{
|
||||
CONNECT_NODE=$1
|
||||
shift
|
||||
# args: status try delay
|
||||
# return: 0 OK, 1 KO
|
||||
timeout="$2"
|
||||
|
@ -266,14 +335,71 @@ wait_status()
|
|||
if [ $timeout -eq 0 ] ; then
|
||||
status="$1"
|
||||
else
|
||||
exec_erl "$(uid ctl)" -hidden -noinput -s ejabberd_ctl \
|
||||
-extra "$ERLANG_NODE" $NO_TIMEOUT status > /dev/null
|
||||
exec_erl "$(uid ctl)" -hidden -noinput \
|
||||
-eval 'net_kernel:connect_node('"'$CONNECT_NODE'"')' \
|
||||
-s ejabberd_ctl \
|
||||
-extra "$CONNECT_NODE" $NO_TIMEOUT status > /dev/null
|
||||
status="$?"
|
||||
fi
|
||||
done
|
||||
[ $timeout -gt 0 ]
|
||||
}
|
||||
|
||||
exec_other_command()
|
||||
{
|
||||
exec_other_command_node $ERLANG_NODE "$@"
|
||||
}
|
||||
|
||||
exec_other_command_node()
|
||||
{
|
||||
CONNECT_NODE=$1
|
||||
shift
|
||||
if [ -z "$CTL_OVER_HTTP" ] || [ ! -S "$CTL_OVER_HTTP" ] \
|
||||
|| [ ! -x "$(command -v curl)" ] || [ -z "$1" ] || [ "$1" = "help" ] \
|
||||
|| [ "$1" = "mnesia_info_ctl" ]|| [ "$1" = "print_sql_schema" ] ; then
|
||||
exec_erl "$(uid ctl)" -hidden -noinput \
|
||||
-eval 'net_kernel:connect_node('"'$CONNECT_NODE'"')' \
|
||||
-s ejabberd_ctl \
|
||||
-extra "$CONNECT_NODE" $NO_TIMEOUT "$@"
|
||||
result=$?
|
||||
case $result in
|
||||
3) help;;
|
||||
*) :;;
|
||||
esac
|
||||
return $result
|
||||
else
|
||||
exec_ctl_over_http_socket "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
exec_ctl_over_http_socket()
|
||||
{
|
||||
COMMAND=${1}
|
||||
CARGS=""
|
||||
while [ $# -gt 0 ]; do
|
||||
[ -z "$CARGS" ] && CARGS="[" || CARGS="${CARGS}, "
|
||||
CARGS="${CARGS}\"$1\""
|
||||
shift
|
||||
done
|
||||
CARGS="${CARGS}]"
|
||||
TEMPHEADERS=temp-headers.log
|
||||
curl \
|
||||
--unix-socket ${CTL_OVER_HTTP} \
|
||||
--header "Content-Type: application/json" \
|
||||
--header "Accept: application/json" \
|
||||
--data "${CARGS}" \
|
||||
--dump-header ${TEMPHEADERS} \
|
||||
--no-progress-meter \
|
||||
"http://localhost/ctl/${COMMAND}"
|
||||
result=$(sed -n 's/.*status-code: \([0-9]*\).*/\1/p' < $TEMPHEADERS)
|
||||
rm ${TEMPHEADERS}
|
||||
case $result in
|
||||
2|3) exec_other_command help ${COMMAND};;
|
||||
*) :;;
|
||||
esac
|
||||
exit $result
|
||||
}
|
||||
|
||||
# ensure we can change current directory to SPOOL_DIR
|
||||
[ -d "$SPOOL_DIR" ] || exec_cmd mkdir -p "$SPOOL_DIR"
|
||||
cd "$SPOOL_DIR" || {
|
||||
|
@ -281,6 +407,103 @@ cd "$SPOOL_DIR" || {
|
|||
exit 6
|
||||
}
|
||||
|
||||
printe()
|
||||
{
|
||||
printf "\n"
|
||||
printf "\e[1;40;32m==> %s\e[0m\n" "$1"
|
||||
}
|
||||
|
||||
## Function copied from tools/make-installers
|
||||
user_agrees()
|
||||
{
|
||||
question="$*"
|
||||
|
||||
if [ -t 0 ]
|
||||
then
|
||||
printe "$question (y/n) [n]"
|
||||
read -r response
|
||||
case "$response" in
|
||||
[Yy]|[Yy][Ee][Ss])
|
||||
return 0
|
||||
;;
|
||||
[Nn]|[Nn][Oo]|'')
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
echo 'Please respond with "yes" or "no".'
|
||||
user_agrees "$question"
|
||||
;;
|
||||
esac
|
||||
else # Assume 'yes' if not running interactively.
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
mnesia_change()
|
||||
{
|
||||
ERLANG_NODE_OLD="$1"
|
||||
[ "$ERLANG_NODE_OLD" = "" ] \
|
||||
&& echo "Error: Please provide the old erlang node name, for example:" \
|
||||
&& echo " ejabberdctl mnesia_change ejabberd@oldmachine" \
|
||||
&& exit 1
|
||||
|
||||
SPOOL_DIR_BACKUP=$SPOOL_DIR/$ERLANG_NODE_OLD-backup/
|
||||
OLDFILE=$SPOOL_DIR_BACKUP/$ERLANG_NODE_OLD.backup
|
||||
NEWFILE=$SPOOL_DIR_BACKUP/$ERLANG_NODE.backup
|
||||
|
||||
printe "This changes your mnesia database from node name '$ERLANG_NODE_OLD' to '$ERLANG_NODE'"
|
||||
|
||||
[ -d "$SPOOL_DIR_BACKUP" ] && printe "WARNING! A backup of old node already exists in $SPOOL_DIR_BACKUP"
|
||||
|
||||
if ! user_agrees "Do you want to proceed?"
|
||||
then
|
||||
echo 'Operation aborted.'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printe "Starting ejabberd with old node name $ERLANG_NODE_OLD ..."
|
||||
exec_erl "$ERLANG_NODE_OLD" $EJABBERD_OPTS -detached
|
||||
wait_status_node $ERLANG_NODE_OLD 0 30 2
|
||||
result=$?
|
||||
case $result in
|
||||
1) echo "There was a problem starting ejabberd with the old erlang node name. " \
|
||||
&& echo "Check for log errors in $EJABBERD_LOG_PATH" \
|
||||
&& exit $result;;
|
||||
*) :;;
|
||||
esac
|
||||
exec_other_command_node $ERLANG_NODE_OLD "status"
|
||||
|
||||
printe "Making backup of old database to file $OLDFILE ..."
|
||||
mkdir $SPOOL_DIR_BACKUP
|
||||
exec_other_command_node $ERLANG_NODE_OLD backup "$OLDFILE"
|
||||
|
||||
printe "Changing node name in new backup file $NEWFILE ..."
|
||||
exec_other_command_node $ERLANG_NODE_OLD mnesia_change_nodename "$ERLANG_NODE_OLD" "$ERLANG_NODE" "$OLDFILE" "$NEWFILE"
|
||||
|
||||
printe "Stopping old ejabberd..."
|
||||
exec_other_command_node $ERLANG_NODE_OLD "stop"
|
||||
wait_status_node $ERLANG_NODE_OLD 3 30 2 && stop_epmd
|
||||
|
||||
printe "Moving old mnesia spool files to backup subdirectory $SPOOL_DIR_BACKUP ..."
|
||||
mv $SPOOL_DIR/*.DAT $SPOOL_DIR_BACKUP
|
||||
mv $SPOOL_DIR/*.DCD $SPOOL_DIR_BACKUP
|
||||
mv $SPOOL_DIR/*.LOG $SPOOL_DIR_BACKUP
|
||||
|
||||
printe "Starting ejabberd with new node name $ERLANG_NODE ..."
|
||||
exec_erl "$ERLANG_NODE" $EJABBERD_OPTS -detached
|
||||
wait_status 0 30 2
|
||||
exec_other_command "status"
|
||||
|
||||
printe "Installing fallback of new mnesia..."
|
||||
exec_other_command install_fallback "$NEWFILE"
|
||||
|
||||
printe "Stopping new ejabberd..."
|
||||
exec_other_command "stop"
|
||||
wait_status 3 30 2 && stop_epmd
|
||||
|
||||
printe "Finished, now you can start ejabberd normally"
|
||||
}
|
||||
|
||||
# main
|
||||
case $1 in
|
||||
start)
|
||||
|
@ -309,23 +532,29 @@ case $1 in
|
|||
set_dist_client
|
||||
exec_erl "$(uid top)" -hidden -remsh "$ERLANG_NODE" -s etop \
|
||||
-output text
|
||||
check_etop_result
|
||||
;;
|
||||
iexdebug)
|
||||
debugwarning
|
||||
set_dist_client
|
||||
exec_iex "$(uid debug)" --remsh "$ERLANG_NODE"
|
||||
check_iex_result
|
||||
;;
|
||||
iexlive)
|
||||
livewarning
|
||||
exec_iex "$ERLANG_NODE" --erl "$EJABBERD_OPTS"
|
||||
check_iex_result
|
||||
;;
|
||||
ping)
|
||||
PEER=${2:-$ERLANG_NODE}
|
||||
[ "$PEER" = "${PEER%.*}" ] && PS="-s"
|
||||
set_dist_client
|
||||
exec_cmd "$ERL" ${PS:--}name "$(uid ping "$(hostname $PS)")" $ERLANG_OPTS \
|
||||
-noinput -hidden -eval 'io:format("~p~n",[net_adm:ping('"'$PEER'"')])' \
|
||||
-s erlang halt -output text
|
||||
-noinput -hidden \
|
||||
-eval 'net_kernel:connect_node('"'$PEER'"')' \
|
||||
-eval 'io:format("~p~n",[net_adm:ping('"'$PEER'"')])' \
|
||||
-eval 'halt(case net_adm:ping('"'$PEER'"') of pong -> 0; pang -> 1 end).' \
|
||||
-output text
|
||||
;;
|
||||
started)
|
||||
set_dist_client
|
||||
|
@ -335,15 +564,11 @@ case $1 in
|
|||
set_dist_client
|
||||
wait_status 3 30 2 && stop_epmd # wait 30x2s before timeout
|
||||
;;
|
||||
mnesia_change)
|
||||
mnesia_change $2
|
||||
;;
|
||||
*)
|
||||
set_dist_client
|
||||
exec_erl "$(uid ctl)" -hidden -noinput -s ejabberd_ctl \
|
||||
-extra "$ERLANG_NODE" $NO_TIMEOUT "$@"
|
||||
result=$?
|
||||
case $result in
|
||||
2|3) help;;
|
||||
*) :;;
|
||||
esac
|
||||
exit $result
|
||||
exec_other_command "$@"
|
||||
;;
|
||||
esac
|
||||
|
|
53
elvis.config
53
elvis.config
|
@ -5,38 +5,55 @@
|
|||
{config,
|
||||
[#{dirs => ["src"],
|
||||
filter => "*.erl",
|
||||
ignore => ['ELDAPv3', eldap_filter_yecc],
|
||||
ruleset => erl_files,
|
||||
rules => [{elvis_style, line_length, #{limit => 100,
|
||||
skip_comments => false}},
|
||||
rules => [{elvis_text_style, line_length, #{limit => 1000, skip_comments => false}},
|
||||
{elvis_text_style, no_tabs, disable},
|
||||
{elvis_style, no_debug_call, disable},
|
||||
{elvis_style, operator_spaces, disable},
|
||||
{elvis_style, atom_naming_convention, disable},
|
||||
{elvis_style, consistent_variable_casing, disable},
|
||||
{elvis_style, dont_repeat_yourself, #{min_complexity => 70}},
|
||||
{elvis_style, export_used_types, disable},
|
||||
{elvis_style, function_naming_convention, disable},
|
||||
{elvis_style, god_modules, #{limit => 300}},
|
||||
{elvis_style, invalid_dynamic_call, disable},
|
||||
{elvis_style, variable_naming_convention, #{ regex => ".*" }},
|
||||
{elvis_style, dont_repeat_yourself, #{min_complexity => 20}}
|
||||
{elvis_style, macro_names, disable},
|
||||
{elvis_style, max_function_arity, disable}, % #{max_arity => 15}},
|
||||
{elvis_style, nesting_level, disable},
|
||||
{elvis_style, no_author, disable},
|
||||
{elvis_style, no_boolean_in_comparison, disable},
|
||||
{elvis_style, no_catch_expressions, disable},
|
||||
{elvis_style, no_debug_call, disable},
|
||||
{elvis_style, no_if_expression, disable},
|
||||
{elvis_style, no_import, disable},
|
||||
{elvis_style, no_nested_try_catch, disable},
|
||||
{elvis_style, no_operation_on_same_value, disable},
|
||||
{elvis_style, no_receive_without_timeout, disable},
|
||||
{elvis_style, no_single_clause_case, disable},
|
||||
{elvis_style, no_spec_with_records, disable},
|
||||
{elvis_style, no_throw, disable},
|
||||
{elvis_style, operator_spaces, disable},
|
||||
{elvis_style, param_pattern_matching, disable},
|
||||
{elvis_style, private_data_types, disable},
|
||||
{elvis_style, variable_naming_convention, disable}
|
||||
]
|
||||
},
|
||||
|
||||
%#{dirs => ["include"],
|
||||
% filter => "*.hrl",
|
||||
% ruleset => hrl_files},
|
||||
|
||||
#{dirs => ["."],
|
||||
filter => "Makefile.in",
|
||||
ruleset => makefiles,
|
||||
rules => [{elvis_style, line_length, #{limit => 100,
|
||||
rules => [{elvis_text_style, line_length, #{limit => 400,
|
||||
skip_comments => false}},
|
||||
{elvis_style, no_tabs, disable},
|
||||
{elvis_style, dont_repeat_yourself, #{min_complexity => 20}}
|
||||
]
|
||||
},
|
||||
#{dirs => ["."],
|
||||
filter => "rebar.config",
|
||||
ruleset => rebar_config,
|
||||
rules => [{elvis_style, line_length, #{limit => 100,
|
||||
skip_comments => false}},
|
||||
{elvis_style, no_tabs, disable},
|
||||
{elvis_style, dont_repeat_yourself, #{min_complexity => 20}}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
].
|
||||
|
||||
%% vim: set filetype=erlang tabstop=8:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
otp_path: "/usr/lib/erlang"
|
||||
plt_path: "_build/default/rebar3_24.3.3_plt"
|
||||
#otp_path: "/usr/lib/erlang"
|
||||
#plt_path: "_build/default/rebar3_24.3.3_plt"
|
||||
#code_reload:
|
||||
# node: ejabberd@localhost
|
||||
apps_dirs:
|
||||
|
@ -14,12 +14,12 @@ macros:
|
|||
- name: DEPRECATED_GET_STACKTRACE
|
||||
- name: HAVE_ERL_ERROR
|
||||
- name: HAVE_URI_STRING
|
||||
- name: OTP_BELOW_25
|
||||
- name: OTP_BELOW_27
|
||||
- name: SIP
|
||||
- name: STUN
|
||||
diagnostics:
|
||||
# enabled:
|
||||
# - crossref
|
||||
enabled:
|
||||
- crossref
|
||||
disabled:
|
||||
# - dialyzer
|
||||
- unused_includes # Otherwise it complains about unused logger.hrl
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
@ -18,5 +18,5 @@
|
|||
%%%
|
||||
%%%----------------------------------------------------------------------
|
||||
|
||||
-record(passwd, {us = {<<"">>, <<"">>} :: {binary(), binary()} | '$1',
|
||||
-record(passwd, {us = {<<"">>, <<"">>} :: {binary(), binary()} | {binary(), binary(), atom()} | '$1',
|
||||
password = <<"">> :: binary() | scram() | '_'}).
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
@ -19,13 +19,30 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
|
||||
-type aterm() :: {atom(), atype()}.
|
||||
-type atype() :: integer | string | binary |
|
||||
-type atype() :: integer | string | binary | any | atom |
|
||||
{tuple, [aterm()]} | {list, aterm()}.
|
||||
-type rterm() :: {atom(), rtype()}.
|
||||
-type rtype() :: integer | string | atom |
|
||||
-type rtype() :: integer | string | atom | any |
|
||||
{tuple, [rterm()]} | {list, rterm()} |
|
||||
rescode | restuple.
|
||||
|
||||
%% The 'any' and 'atom' argument types and 'any' result type
|
||||
%% should only be used %% by commands with tag 'internal',
|
||||
%% which are meant to be used only internally in ejabberd,
|
||||
%% and not called using external frontends.
|
||||
|
||||
%% The purpose of a command can either be:
|
||||
%% - informative: its purpose is to obtain information
|
||||
%% - modifier: its purpose is to produce some change in the server
|
||||
%%
|
||||
%% A modifier command should be designed just to produce its desired side-effect,
|
||||
%% and its result term should just be success or failure: rescode or restuple.
|
||||
%%
|
||||
%% ejabberd_web_admin:make_command/2 considers that commands
|
||||
%% with result type different than rescode or restuple
|
||||
%% are commands that can be safely executed automatically
|
||||
%% to get information and build the web page.
|
||||
|
||||
-type oauth_scope() :: atom().
|
||||
|
||||
%% ejabberd_commands OAuth ReST ACL definition:
|
||||
|
@ -67,42 +84,24 @@
|
|||
args_example = none :: none | [any()] | '_',
|
||||
result_example = none :: any()}).
|
||||
|
||||
%% TODO Fix me: Type is not up to date
|
||||
-type ejabberd_commands() :: #ejabberd_commands{name :: atom(),
|
||||
tags :: [atom()],
|
||||
desc :: string(),
|
||||
longdesc :: string(),
|
||||
version :: integer(),
|
||||
note :: string(),
|
||||
weight :: integer(),
|
||||
module :: atom(),
|
||||
function :: atom(),
|
||||
args :: [aterm()],
|
||||
policy :: open | restricted | admin | user,
|
||||
access :: [{atom(),atom(),atom()}|atom()],
|
||||
result :: rterm()}.
|
||||
definer :: atom(),
|
||||
result :: rterm(),
|
||||
args_rename :: [{atom(),atom()}],
|
||||
args_desc :: none | [string()] | '_',
|
||||
result_desc :: none | string() | '_',
|
||||
args_example :: none | [any()] | '_',
|
||||
result_example :: any()
|
||||
}.
|
||||
|
||||
%% @type ejabberd_commands() = #ejabberd_commands{
|
||||
%% name = atom(),
|
||||
%% tags = [atom()],
|
||||
%% desc = string(),
|
||||
%% longdesc = string(),
|
||||
%% module = atom(),
|
||||
%% function = atom(),
|
||||
%% args = [aterm()],
|
||||
%% result = rterm()
|
||||
%% }.
|
||||
%% desc: Description of the command
|
||||
%% args: Describe the accepted arguments.
|
||||
%% This way the function that calls the command can format the
|
||||
%% arguments before calling.
|
||||
|
||||
%% @type atype() = integer | string | {tuple, [aterm()]} | {list, aterm()}.
|
||||
%% Allowed types for arguments are integer, string, tuple and list.
|
||||
|
||||
%% @type rtype() = integer | string | atom | {tuple, [rterm()]} | {list, rterm()} | rescode | restuple.
|
||||
%% A rtype is either an atom or a tuple with two elements.
|
||||
|
||||
%% @type aterm() = {Name::atom(), Type::atype()}.
|
||||
%% An argument term is a tuple with the term name and the term type.
|
||||
|
||||
%% @type rterm() = {Name::atom(), Type::rtype()}.
|
||||
%% A result term is a tuple with the term name and the term type.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
@ -53,7 +53,8 @@
|
|||
|
||||
|
||||
-record(sql_index, {columns,
|
||||
unique = false :: boolean()}).
|
||||
unique = false :: boolean(),
|
||||
meta = #{}}).
|
||||
-record(sql_column, {name :: binary(),
|
||||
type,
|
||||
default = false,
|
||||
|
@ -67,3 +68,8 @@
|
|||
update = []}).
|
||||
-record(sql_references, {table :: binary(),
|
||||
column :: binary()}).
|
||||
|
||||
-record(sql_schema_info,
|
||||
{db_type :: pgsql | mysql | sqlite,
|
||||
db_version :: any(),
|
||||
new_schema = true :: boolean()}).
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
@ -62,6 +62,11 @@
|
|||
[{<<"type">>, Type}, {<<"name">>, Name},
|
||||
{<<"value">>, Value}])).
|
||||
|
||||
-define(INPUTPH(Type, Name, Value, PlaceHolder),
|
||||
?XA(<<"input">>,
|
||||
[{<<"type">>, Type}, {<<"name">>, Name},
|
||||
{<<"value">>, Value}, {<<"placeholder">>, PlaceHolder}])).
|
||||
|
||||
-define(INPUTT(Type, Name, Value),
|
||||
?INPUT(Type, Name, (translate:translate(Lang, Value)))).
|
||||
|
||||
|
@ -95,16 +100,27 @@
|
|||
-define(XRES(Text),
|
||||
?XAC(<<"p">>, [{<<"class">>, <<"result">>}], Text)).
|
||||
|
||||
-define(DIVRES(Elements),
|
||||
?XAE(<<"div">>, [{<<"class">>, <<"result">>}], Elements)).
|
||||
|
||||
%% Guide Link
|
||||
-define(XREST(Text), ?XRES((translate:translate(Lang, Text)))).
|
||||
|
||||
-define(GL(Ref, Title),
|
||||
?XAE(<<"div">>, [{<<"class">>, <<"guidelink">>}],
|
||||
[?XAE(<<"a">>,
|
||||
[{<<"href">>, <<"https://docs.ejabberd.im/admin/configuration/", Ref/binary>>},
|
||||
[{<<"href">>, <<"https://docs.ejabberd.im/", Ref/binary>>},
|
||||
{<<"target">>, <<"_blank">>}],
|
||||
[?C(<<"docs: ", Title/binary>>)])])).
|
||||
|
||||
%% h1 with a Guide Link
|
||||
-define(H1GL(Name, Ref, Title),
|
||||
[?XC(<<"h1">>, Name), ?GL(Ref, Title)]).
|
||||
-define(H1GLraw(Name, Ref, Title),
|
||||
[?XC(<<"h1">>, Name), ?GL(Ref, Title), ?BR, ?BR]).
|
||||
-define(H1GL(Name, RefConf, Title),
|
||||
?H1GLraw(Name, <<"admin/configuration/", RefConf/binary>>, Title)).
|
||||
|
||||
-define(ANCHORL(Ref),
|
||||
?XAE(<<"div">>, [{<<"class">>, <<"anchorlink">>}],
|
||||
[?XAE(<<"a">>,
|
||||
[{<<"href">>, <<"#", Ref/binary>>}],
|
||||
[?C(unicode:characters_to_binary("¶"))])])).
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
@ -39,20 +39,46 @@
|
|||
-else.
|
||||
-include_lib("kernel/include/logger.hrl").
|
||||
|
||||
-define(CLEAD, "\e[1"). % bold
|
||||
-define(CMID, "\e[0"). % normal
|
||||
-define(CCLEAN, "\e[0m"). % clean
|
||||
|
||||
-define(CDEFAULT, ";49;95m"). % light magenta
|
||||
-define(CDEBUG, ";49;90m"). % dark gray
|
||||
-define(CINFO, ";49;92m"). % green
|
||||
-define(CWARNING, ";49;93m"). % light yellow
|
||||
-define(CERROR, ";49;91m"). % light magenta
|
||||
-define(CCRITICAL,";49;31m"). % light red
|
||||
|
||||
-define(DEBUG(Format, Args),
|
||||
begin ?LOG_DEBUG(Format, Args), ok end).
|
||||
begin ?LOG_DEBUG(Format, Args,
|
||||
#{clevel => ?CLEAD ++ ?CDEBUG,
|
||||
ctext => ?CMID ++ ?CDEBUG}),
|
||||
ok end).
|
||||
|
||||
-define(INFO_MSG(Format, Args),
|
||||
begin ?LOG_INFO(Format, Args), ok end).
|
||||
begin ?LOG_INFO(Format, Args,
|
||||
#{clevel => ?CLEAD ++ ?CINFO,
|
||||
ctext => ?CCLEAN}),
|
||||
ok end).
|
||||
|
||||
-define(WARNING_MSG(Format, Args),
|
||||
begin ?LOG_WARNING(Format, Args), ok end).
|
||||
begin ?LOG_WARNING(Format, Args,
|
||||
#{clevel => ?CLEAD ++ ?CWARNING,
|
||||
ctext => ?CMID ++ ?CWARNING}),
|
||||
ok end).
|
||||
|
||||
-define(ERROR_MSG(Format, Args),
|
||||
begin ?LOG_ERROR(Format, Args), ok end).
|
||||
begin ?LOG_ERROR(Format, Args,
|
||||
#{clevel => ?CLEAD ++ ?CERROR,
|
||||
ctext => ?CMID ++ ?CERROR}),
|
||||
ok end).
|
||||
|
||||
-define(CRITICAL_MSG(Format, Args),
|
||||
begin ?LOG_CRITICAL(Format, Args), ok end).
|
||||
begin ?LOG_CRITICAL(Format, Args,
|
||||
#{clevel => ?CLEAD++ ?CCRITICAL,
|
||||
ctext => ?CMID ++ ?CCRITICAL}),
|
||||
ok end).
|
||||
-endif.
|
||||
|
||||
%% Use only when trying to troubleshoot test problem with ExUnit
|
||||
|
@ -62,7 +88,5 @@
|
|||
_ -> 'Elixir.Logger':bare_log(error, io_lib:format(Format, Args), [?MODULE])
|
||||
end).
|
||||
|
||||
-type re_mp() :: {re_pattern, _, _, _, _}. % Copied from re.erl
|
||||
|
||||
%% Uncomment if you want to debug p1_fsm/gen_fsm
|
||||
%%-define(DBGFSM, true).
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
@ -18,10 +18,19 @@
|
|||
%%%
|
||||
%%%----------------------------------------------------------------------
|
||||
|
||||
-ifdef(DEPRECATED_GET_STACKTRACE).
|
||||
-define(EX_RULE(Class, Reason, Stack), Class:Reason:Stack).
|
||||
-define(EX_STACK(Stack), Stack).
|
||||
-else.
|
||||
-define(EX_RULE(Class, Reason, _), Class:Reason).
|
||||
-define(EX_STACK(_), erlang:get_stacktrace()).
|
||||
-endif.
|
||||
-define(MODULE_ANTISPAM, mod_antispam).
|
||||
|
||||
-type url() :: binary().
|
||||
-type filename() :: binary() | none | false.
|
||||
-type jid_set() :: sets:set(ljid()).
|
||||
-type url_set() :: sets:set(url()).
|
||||
|
||||
-define(DEFAULT_RTBL_DOMAINS_NODE, <<"spam_source_domains">>).
|
||||
|
||||
-record(rtbl_service,
|
||||
{host = none :: binary() | none,
|
||||
node = ?DEFAULT_RTBL_DOMAINS_NODE :: binary(),
|
||||
subscribed = false :: boolean(),
|
||||
retry_timer = undefined :: reference() | undefined}).
|
||||
|
||||
-type rtbl_service() :: #rtbl_service{}.
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
@ -26,7 +26,8 @@
|
|||
bare_peer = {<<"">>, <<"">>, <<"">>} :: ljid(),
|
||||
packet = #xmlel{} :: xmlel() | message(),
|
||||
nick = <<"">> :: binary(),
|
||||
type = chat :: chat | groupchat}).
|
||||
type = chat :: chat | groupchat,
|
||||
origin_id = <<"">> :: binary()}).
|
||||
|
||||
-record(archive_prefs,
|
||||
{us = {<<"">>, <<"">>} :: {binary(), binary()},
|
||||
|
|
36
include/mod_matrix_gw.hrl
Normal file
36
include/mod_matrix_gw.hrl
Normal file
|
@ -0,0 +1,36 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
%%% published by the Free Software Foundation; either version 2 of the
|
||||
%%% License, or (at your option) any later version.
|
||||
%%%
|
||||
%%% This program is distributed in the hope that it will be useful,
|
||||
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
%%% General Public License for more details.
|
||||
%%%
|
||||
%%% You should have received a copy of the GNU General Public License along
|
||||
%%% with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
%%%
|
||||
%%%----------------------------------------------------------------------
|
||||
|
||||
-record(room_version,
|
||||
{id :: binary(),
|
||||
%% use the same field names as in Synapse
|
||||
enforce_key_validity :: boolean(),
|
||||
special_case_aliases_auth :: boolean(),
|
||||
strict_canonicaljson :: boolean(),
|
||||
limit_notifications_power_levels :: boolean(),
|
||||
knock_join_rule :: boolean(),
|
||||
restricted_join_rule :: boolean(),
|
||||
restricted_join_rule_fix :: boolean(),
|
||||
knock_restricted_join_rule :: boolean(),
|
||||
enforce_int_power_levels :: boolean(),
|
||||
implicit_room_creator :: boolean(),
|
||||
updated_redaction_rules :: boolean(),
|
||||
hydra :: boolean()
|
||||
}).
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
@ -44,7 +44,7 @@
|
|||
allow_visitor_nickchange = true :: boolean(),
|
||||
public = true :: boolean(),
|
||||
public_list = true :: boolean(),
|
||||
persistent = false :: boolean(),
|
||||
persistent = false :: boolean() | {destroying, boolean()},
|
||||
moderated = true :: boolean(),
|
||||
captcha_protected = false :: boolean(),
|
||||
members_by_default = true :: boolean(),
|
||||
|
@ -126,7 +126,8 @@
|
|||
history = #lqueue{} :: lqueue(),
|
||||
subject = [] :: [text()],
|
||||
subject_author = {<<"">>, #jid{}} :: {binary(), jid()},
|
||||
hats_users = #{} :: map(), % FIXME on OTP 21+: #{ljid() => #{binary() => binary()}},
|
||||
hats_defs = #{} :: #{binary() => {binary(), binary()}},
|
||||
hats_users = #{} :: #{ljid() => [binary()]},
|
||||
just_created = erlang:system_time(microsecond) :: true | integer(),
|
||||
activity = treap:empty() :: treap:treap(),
|
||||
room_shaper = none :: ejabberd_shaper:shaper(),
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
%%% RFC 1928 constants.
|
||||
%%%
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%% ejabberd, Copyright (C) 2017-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2017-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%-------------------------------------------------------------------
|
||||
%%% @author Evgeny Khramtsov <ekhramtsov@process-one.net>
|
||||
%%% @copyright (C) 2002-2023 ProcessOne, SARL. All Rights Reserved.
|
||||
%%% @copyright (C) 2002-2025 ProcessOne, SARL. All Rights Reserved.
|
||||
%%%
|
||||
%%% Licensed under the Apache License, Version 2.0 (the "License");
|
||||
%%% you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%%%----------------------------------------------------------------------
|
||||
%%%
|
||||
%%% ejabberd, Copyright (C) 2002-2023 ProcessOne
|
||||
%%% ejabberd, Copyright (C) 2002-2025 ProcessOne
|
||||
%%%
|
||||
%%% This program is free software; you can redistribute it and/or
|
||||
%%% modify it under the terms of the GNU General Public License as
|
||||
|
|
0
install-sh
Normal file → Executable file
0
install-sh
Normal file → Executable file
|
@ -41,7 +41,7 @@ defmodule Ejabberd.Config.Attr do
|
|||
"""
|
||||
@spec validate([attr]) :: [{:ok, attr}] | [{:error, attr, atom()}]
|
||||
def validate(attrs) when is_list(attrs), do: Enum.map(attrs, &valid_attr?/1)
|
||||
def validate(attr), do: validate([attr]) |> List.first
|
||||
def validate(attr), do: validate([attr])
|
||||
|
||||
@doc """
|
||||
Returns the type of an attribute, given its name.
|
||||
|
|
|
@ -105,11 +105,8 @@ defmodule Ejabberd.Config do
|
|||
Code.eval_file(file_path) |> extract_and_store_module_name()
|
||||
|
||||
# Getting start/0 config
|
||||
Ejabberd.Config.Store.get(:module_name)
|
||||
|> case do
|
||||
nil -> IO.puts "[ ERR ] Configuration module not found."
|
||||
[module] -> call_start_func_and_store_data(module)
|
||||
end
|
||||
[module] = Ejabberd.Config.Store.get(:module_name)
|
||||
call_start_func_and_store_data(module)
|
||||
|
||||
# Fetching git modules and install them
|
||||
get_modules_parsed_in_order()
|
||||
|
|
|
@ -13,7 +13,6 @@ defmodule Ejabberd.Config.EjabberdHook do
|
|||
@doc """
|
||||
Register a hook to ejabberd.
|
||||
"""
|
||||
@spec start(EjabberdHook.t) :: none
|
||||
def start(%EjabberdHook{hook: hook, opts: opts, fun: fun}) do
|
||||
host = Keyword.get(opts, :host, :global)
|
||||
priority = Keyword.get(opts, :priority, 50)
|
||||
|
|
|
@ -7,12 +7,13 @@ defmodule Ejabberd.Config.EjabberdModule do
|
|||
the already existing Elixir.Module.
|
||||
"""
|
||||
|
||||
@type t :: %{module: atom, attrs: [Attr.t]}
|
||||
|
||||
defstruct [:module, :attrs]
|
||||
|
||||
alias Ejabberd.Config.EjabberdModule
|
||||
alias Ejabberd.Config.Validation
|
||||
alias Ejabberd.Config.Attr
|
||||
|
||||
@type t :: %{module: atom, attrs: [Attr.attr]}
|
||||
|
||||
defstruct [:module, :attrs]
|
||||
|
||||
@doc """
|
||||
Given a list of modules / single module
|
||||
|
@ -29,7 +30,6 @@ defmodule Ejabberd.Config.EjabberdModule do
|
|||
a git attribute and tries to fetch the repo,
|
||||
then, it install them through :ext_mod.install/1
|
||||
"""
|
||||
@spec fetch_git_repos([EjabberdModule.t]) :: none()
|
||||
def fetch_git_repos(modules) do
|
||||
modules
|
||||
|> Enum.filter(&is_git_module?/1)
|
||||
|
@ -60,7 +60,7 @@ defmodule Ejabberd.Config.EjabberdModule do
|
|||
defp fetch_and_store_repo_source_if_not_exists(path, repo) do
|
||||
unless File.exists?(path) do
|
||||
IO.puts "[info] Fetching: #{repo}"
|
||||
:os.cmd('git clone #{repo} #{path}')
|
||||
:os.cmd(~c"git clone #{repo} #{path}")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -14,15 +14,12 @@ defmodule Ejabberd.Config.OptsFormatter do
|
|||
Look at how Config.get_ejabberd_opts/0 is constructed for
|
||||
more informations.
|
||||
"""
|
||||
@spec format_opts_for_ejabberd([{atom(), any()}]) :: list()
|
||||
@spec format_opts_for_ejabberd(map) :: list()
|
||||
def format_opts_for_ejabberd(opts) do
|
||||
opts
|
||||
|> format_attrs_for_ejabberd
|
||||
end
|
||||
|
||||
defp format_attrs_for_ejabberd(opts) when is_list(opts),
|
||||
do: (Enum.map opts, &format_attrs_for_ejabberd/1)
|
||||
|
||||
defp format_attrs_for_ejabberd({:listeners, mods}),
|
||||
do: {:listen, format_listeners_for_ejabberd(mods)}
|
||||
|
||||
|
@ -32,6 +29,9 @@ defmodule Ejabberd.Config.OptsFormatter do
|
|||
defp format_attrs_for_ejabberd({key, opts}) when is_atom(key),
|
||||
do: {key, opts}
|
||||
|
||||
defp format_attrs_for_ejabberd(opts),
|
||||
do: (Enum.map opts, &format_attrs_for_ejabberd/1)
|
||||
|
||||
defp format_mods_for_ejabberd(mods) do
|
||||
Enum.map mods, fn %EjabberdModule{module: mod, attrs: attrs} ->
|
||||
{mod, attrs[:opts]}
|
||||
|
|
|
@ -3,12 +3,12 @@ defmodule Ejabberd.Config.Validation do
|
|||
Module used to validate a list of modules.
|
||||
"""
|
||||
|
||||
@type mod_validation :: {[EjabberdModule.t], EjabberdModule.t, map}
|
||||
@type mod_validation_result :: {:ok, EjabberdModule.t} | {:error, EjabberdModule.t, map}
|
||||
|
||||
alias Ejabberd.Config.EjabberdModule
|
||||
alias Ejabberd.Config.Validator
|
||||
|
||||
@type mod_validation :: {[EjabberdModule.t], EjabberdModule.t, map}
|
||||
@type mod_validation_result :: {:ok, EjabberdModule.t} | {:error, EjabberdModule.t, map}
|
||||
|
||||
@doc """
|
||||
Given a module or a list of modules it runs validators on them
|
||||
and returns {:ok, mod} or {:error, mod, errors}, for each
|
||||
|
|
|
@ -3,11 +3,12 @@ defmodule Ejabberd.Config.Validator.Attrs do
|
|||
Validator module used to validate attributes.
|
||||
"""
|
||||
|
||||
# TODO: Duplicated from validator.ex !!!
|
||||
@type mod_validation :: {[EjabberdModule.t], EjabberdModule.t, map}
|
||||
|
||||
import Ejabberd.Config.ValidatorUtility
|
||||
alias Ejabberd.Config.Attr
|
||||
alias Ejabberd.Config.EjabberdModule
|
||||
|
||||
# TODO: Duplicated from validator.ex !!!
|
||||
@type mod_validation :: {[EjabberdModule.t], EjabberdModule.t, map}
|
||||
|
||||
@doc """
|
||||
Given a module (with the form used for validation)
|
||||
|
@ -17,9 +18,9 @@ defmodule Ejabberd.Config.Validator.Attrs do
|
|||
@spec validate(mod_validation) :: mod_validation
|
||||
def validate({modules, mod, errors}) do
|
||||
errors = Enum.reduce mod.attrs, errors, fn(attr, err) ->
|
||||
case Attr.validate(attr) do
|
||||
{:ok, _attr} -> err
|
||||
{:error, attr, cause} -> put_error(err, :attribute, {attr, cause})
|
||||
case Attr.validate([attr]) do
|
||||
[{:ok, _attr}] -> err
|
||||
[{:error, attr, cause}] -> put_error(err, :attribute, {attr, cause})
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -4,6 +4,8 @@ defmodule Ejabberd.Config.Validator.Dependencies do
|
|||
with the @dependency annotation.
|
||||
"""
|
||||
|
||||
alias Ejabberd.Config.EjabberdModule
|
||||
|
||||
# TODO: Duplicated from validator.ex !!!
|
||||
@type mod_validation :: {[EjabberdModule.t], EjabberdModule.t, map}
|
||||
import Ejabberd.Config.ValidatorUtility
|
||||
|
|
|
@ -4,8 +4,6 @@ defmodule Ejabberd.Config.ValidatorUtility do
|
|||
Imports utility functions for working with validation structures.
|
||||
"""
|
||||
|
||||
alias Ejabberd.Config.EjabberdModule
|
||||
|
||||
@doc """
|
||||
Inserts an error inside the errors collection, for the given key.
|
||||
If the key doesn't exists then it creates an empty collection
|
||||
|
@ -22,7 +20,6 @@ defmodule Ejabberd.Config.ValidatorUtility do
|
|||
Given a list of modules it extracts and returns a list
|
||||
of the module names (which are Elixir.Module).
|
||||
"""
|
||||
@spec extract_module_names(EjabberdModule.t) :: [atom]
|
||||
def extract_module_names(modules) when is_list(modules) do
|
||||
modules
|
||||
|> Enum.map(&Map.get(&1, :module))
|
||||
|
|
|
@ -7,7 +7,7 @@ defmodule Ejabberd.ConfigUtil do
|
|||
@doc """
|
||||
Returns true when the config file is based on elixir.
|
||||
"""
|
||||
@spec is_elixir_config(list) :: boolean
|
||||
@spec is_elixir_config(binary) :: boolean
|
||||
def is_elixir_config(filename) when is_list(filename) do
|
||||
is_elixir_config(to_string(filename))
|
||||
end
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
defmodule Ejabberd.Module do
|
||||
|
||||
defmacro __using__(opts) do
|
||||
logger_enabled = Keyword.get(opts, :logger, true)
|
||||
|
||||
quote do
|
||||
@behaviour :gen_mod
|
||||
import Ejabberd.Module
|
||||
|
||||
unquote(if logger_enabled do
|
||||
quote do: import Ejabberd.Logger
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
# gen_mod callbacks
|
||||
def depends(_host, _opts), do: []
|
||||
def mod_opt_type(_), do: []
|
||||
end
|
44
lib/ejabberd_auth_example.ex
Normal file
44
lib/ejabberd_auth_example.ex
Normal file
|
@ -0,0 +1,44 @@
|
|||
defmodule Ejabberd.Auth.Example do
|
||||
|
||||
@moduledoc """
|
||||
Example ejabberd auth method written in Elixir.
|
||||
|
||||
This is an example to demonstrate the usage of Elixir to
|
||||
create ejabberd auth methods.
|
||||
|
||||
Example configuration:
|
||||
auth_method: 'Ejabberd.Auth.Example'
|
||||
"""
|
||||
|
||||
@behaviour :ejabberd_auth
|
||||
import Ejabberd.Logger
|
||||
|
||||
@impl true
|
||||
def start(host) do
|
||||
info("Starting Ejabberd.Auth.Example to authenticate '#{host}' users")
|
||||
nil
|
||||
end
|
||||
|
||||
@impl true
|
||||
def stop(host) do
|
||||
info("Stopping Ejabberd.Auth.Example to authenticate '#{host}' users")
|
||||
nil
|
||||
end
|
||||
|
||||
@impl true
|
||||
def check_password("alice", _authz_id, _host, "secret"), do: {:nocache, true}
|
||||
def check_password(_username, _authz_id, _host, _secret), do: {:nocache, false}
|
||||
|
||||
@impl true
|
||||
def user_exists("alice", _host), do: {:nocache, true}
|
||||
def user_exists(_username, _host), do: {:nocache, false}
|
||||
|
||||
@impl true
|
||||
def plain_password_required(_binary), do: true
|
||||
|
||||
@impl true
|
||||
def store_type(_host), do: :external
|
||||
|
||||
@impl true
|
||||
def use_cache(_host), do: false
|
||||
end
|
46
lib/mod_example.ex
Normal file
46
lib/mod_example.ex
Normal file
|
@ -0,0 +1,46 @@
|
|||
defmodule Ejabberd.Module.Example do
|
||||
|
||||
@moduledoc """
|
||||
Example ejabberd module written in Elixir.
|
||||
|
||||
This is an example to demonstrate the usage of Elixir to
|
||||
create ejabberd modules.
|
||||
|
||||
Example configuration:
|
||||
modules:
|
||||
'Ejabberd.Module.Example': {}
|
||||
"""
|
||||
|
||||
@behaviour :gen_mod
|
||||
import Ejabberd.Logger
|
||||
|
||||
def start(host, _opts) do
|
||||
info("Starting Ejabberd.Module.Example for host '#{host}'")
|
||||
Ejabberd.Hooks.add(:set_presence_hook, host, __MODULE__, :on_presence, 50)
|
||||
:ok
|
||||
end
|
||||
|
||||
def stop(host) do
|
||||
info("Stopping Ejabberd.Module.Example for host '#{host}'")
|
||||
Ejabberd.Hooks.delete(:set_presence_hook, host, __MODULE__, :on_presence, 50)
|
||||
:ok
|
||||
end
|
||||
|
||||
def on_presence(user, _server, _resource, _packet) do
|
||||
info("Receive presence for #{user}")
|
||||
:none
|
||||
end
|
||||
|
||||
def depends(_host, _opts) do
|
||||
[]
|
||||
end
|
||||
|
||||
def mod_options(_host) do
|
||||
[]
|
||||
end
|
||||
|
||||
def mod_doc() do
|
||||
%{:desc => "This is just a demonstration."}
|
||||
end
|
||||
|
||||
end
|
|
@ -1,33 +0,0 @@
|
|||
defmodule ModPresenceDemo do
|
||||
use Ejabberd.Module
|
||||
|
||||
def start(host, _opts) do
|
||||
info('Starting ejabberd module Presence Demo')
|
||||
Ejabberd.Hooks.add(:set_presence_hook, host, __MODULE__, :on_presence, 50)
|
||||
:ok
|
||||
end
|
||||
|
||||
def stop(host) do
|
||||
info('Stopping ejabberd module Presence Demo')
|
||||
Ejabberd.Hooks.delete(:set_presence_hook, host, __MODULE__, :on_presence, 50)
|
||||
:ok
|
||||
end
|
||||
|
||||
def on_presence(user, _server, _resource, _packet) do
|
||||
info('Receive presence for #{user}')
|
||||
:none
|
||||
end
|
||||
|
||||
def depends(_host, _opts) do
|
||||
[]
|
||||
end
|
||||
|
||||
def mod_options(_host) do
|
||||
[]
|
||||
end
|
||||
|
||||
def mod_doc() do
|
||||
%{:desc => 'This is just a demonstration.'}
|
||||
end
|
||||
|
||||
end
|
2111
man/ejabberd.yml.5
2111
man/ejabberd.yml.5
File diff suppressed because it is too large
Load diff
169
mix.exs
169
mix.exs
|
@ -3,31 +3,34 @@ defmodule Ejabberd.MixProject do
|
|||
|
||||
def project do
|
||||
[app: :ejabberd,
|
||||
source_url: "https://github.com/processone/ejabberd",
|
||||
version: version(),
|
||||
description: description(),
|
||||
elixir: elixir_required_version(),
|
||||
elixirc_paths: ["lib"],
|
||||
compile_path: ".",
|
||||
compilers: [:asn1] ++ Mix.compilers(),
|
||||
compilers: [:asn1, :yecc] ++ Mix.compilers(),
|
||||
erlc_options: erlc_options(),
|
||||
erlc_paths: ["asn1", "src"],
|
||||
# Elixir tests are starting the part of ejabberd they need
|
||||
aliases: [test: "test --no-start"],
|
||||
start_permanent: Mix.env() == :prod,
|
||||
language: :erlang,
|
||||
dialyzer: dialyzer(),
|
||||
releases: releases(),
|
||||
package: package(),
|
||||
docs: docs(),
|
||||
deps: deps()]
|
||||
end
|
||||
|
||||
def version do
|
||||
case config(:vsn) do
|
||||
:false -> "0.0.0" # ./configure wasn't run: vars.config not created
|
||||
'0.0' -> "0.0.0" # the full git repository wasn't downloaded
|
||||
'latest.0' -> "0.0.0" # running 'docker-ejabberd/ecs/build.sh latest'
|
||||
~c"0.0" -> "0.0.0" # the full git repository wasn't downloaded
|
||||
~c"latest.0" -> "0.0.0" # running 'docker-ejabberd/ecs/build.sh latest'
|
||||
[_, _, ?., _, _] = x ->
|
||||
head = String.replace(:erlang.list_to_binary(x), ~r/\.0+([0-9])/, ".\\1")
|
||||
<<head::binary, ".0">>
|
||||
"#{head}.0"
|
||||
vsn -> String.replace(:erlang.list_to_binary(vsn), ~r/\.0+([0-9])/, ".\\1")
|
||||
end
|
||||
end
|
||||
|
@ -40,14 +43,24 @@ defmodule Ejabberd.MixProject do
|
|||
|
||||
def application do
|
||||
[mod: {:ejabberd_app, []},
|
||||
extra_applications: [:mix],
|
||||
applications: [:idna, :inets, :kernel, :sasl, :ssl, :stdlib,
|
||||
:base64url, :fast_tls, :fast_xml, :fast_yaml, :jiffy, :jose,
|
||||
:p1_utils, :stringprep, :syntax_tools, :yconf],
|
||||
extra_applications: [:inets, :kernel, :sasl, :ssl, :stdlib, :syntax_tools,
|
||||
:logger, :mix]
|
||||
++ cond_apps(),
|
||||
included_applications: [:mnesia, :os_mon,
|
||||
:cache_tab, :eimp, :mqtree, :p1_acme,
|
||||
:p1_oauth2, :pkix, :xmpp]
|
||||
++ cond_apps()]
|
||||
:p1_oauth2, :pkix]
|
||||
++ cond_included_apps()]
|
||||
end
|
||||
|
||||
defp dialyzer do
|
||||
[
|
||||
plt_add_apps: [
|
||||
:mnesia, :odbc, :os_mon, :stdlib,
|
||||
:eredis, :luerl,
|
||||
:cache_tab, :eimp, :epam, :esip, :ezlib, :mqtree,
|
||||
:p1_acme, :p1_mysql, :p1_oauth2, :p1_pgsql, :pkix,
|
||||
:sqlite3, :stun, :xmpp],
|
||||
]
|
||||
end
|
||||
|
||||
defp if_version_above(ver, okResult) do
|
||||
|
@ -68,20 +81,24 @@ defmodule Ejabberd.MixProject do
|
|||
|
||||
defp erlc_options do
|
||||
# Use our own includes + includes from all dependencies
|
||||
includes = ["include"] ++ deps_include(["fast_xml", "xmpp", "p1_utils"])
|
||||
includes = ["include", deps_include()]
|
||||
result = [{:d, :ELIXIR_ENABLED}] ++
|
||||
cond_options() ++
|
||||
Enum.map(includes, fn (path) -> {:i, path} end) ++
|
||||
if_version_above('20', [{:d, :DEPRECATED_GET_STACKTRACE}]) ++
|
||||
if_version_above('20', [{:d, :HAVE_URI_STRING}]) ++
|
||||
if_version_above('20', [{:d, :HAVE_ERL_ERROR}]) ++
|
||||
if_version_below('21', [{:d, :USE_OLD_HTTP_URI}]) ++
|
||||
if_version_below('22', [{:d, :LAGER}]) ++
|
||||
if_version_below('21', [{:d, :NO_CUSTOMIZE_HOSTNAME_CHECK}]) ++
|
||||
if_version_below('23', [{:d, :USE_OLD_CRYPTO_HMAC}]) ++
|
||||
if_version_below('23', [{:d, :USE_OLD_PG2}]) ++
|
||||
if_version_below('24', [{:d, :COMPILER_REPORTS_ONLY_LINES}]) ++
|
||||
if_version_below('24', [{:d, :SYSTOOLS_APP_DEF_WITHOUT_OPTIONAL}])
|
||||
if_version_above(~c"20", [{:d, :HAVE_URI_STRING}]) ++
|
||||
if_version_above(~c"20", [{:d, :HAVE_ERL_ERROR}]) ++
|
||||
if_version_below(~c"21", [{:d, :USE_OLD_HTTP_URI}]) ++
|
||||
if_version_below(~c"22", [{:d, :LAGER}]) ++
|
||||
if_version_below(~c"21", [{:d, :NO_CUSTOMIZE_HOSTNAME_CHECK}]) ++
|
||||
if_version_below(~c"23", [{:d, :USE_OLD_CRYPTO_HMAC}]) ++
|
||||
if_version_below(~c"23", [{:d, :USE_OLD_PG2}]) ++
|
||||
if_version_below(~c"24", [{:d, :COMPILER_REPORTS_ONLY_LINES}]) ++
|
||||
if_version_below(~c"24", [{:d, :SYSTOOLS_APP_DEF_WITHOUT_OPTIONAL}]) ++
|
||||
if_version_below(~c"24", [{:d, :OTP_BELOW_24}]) ++
|
||||
if_version_below(~c"25", [{:d, :OTP_BELOW_25}]) ++
|
||||
if_version_below(~c"26", [{:d, :OTP_BELOW_26}]) ++
|
||||
if_version_below(~c"27", [{:d, :OTP_BELOW_27}]) ++
|
||||
if_version_below(~c"28", [{:d, :OTP_BELOW_28}])
|
||||
defines = for {:d, value} <- result, do: {:d, value}
|
||||
result ++ [{:d, :ALL_DEFS, defines}]
|
||||
end
|
||||
|
@ -98,29 +115,27 @@ defmodule Ejabberd.MixProject do
|
|||
end
|
||||
|
||||
defp deps do
|
||||
[{:base64url, "~> 1.0"},
|
||||
{:cache_tab, "~> 1.0"},
|
||||
[{:cache_tab, "~> 1.0"},
|
||||
{:dialyxir, "~> 1.2", only: [:test], runtime: false},
|
||||
{:eimp, "~> 1.0"},
|
||||
{:ex_doc, ">= 0.0.0", only: :dev},
|
||||
{:fast_tls, "~> 1.1"},
|
||||
{:fast_xml, "~> 1.1"},
|
||||
{:ex_doc, "~> 0.31", only: [:edoc], runtime: false},
|
||||
{:fast_tls, "~> 1.1.24"},
|
||||
{:fast_xml, "~> 1.1.56"},
|
||||
{:fast_yaml, "~> 1.0"},
|
||||
{:idna, "~> 6.0"},
|
||||
{:jiffy, "~> 1.1.1"},
|
||||
{:jose, "~> 1.11.5"},
|
||||
{:mqtree, "~> 1.0"},
|
||||
{:p1_acme, "~> 1.0"},
|
||||
{:p1_acme, ">= 1.0.28"},
|
||||
{:p1_oauth2, "~> 0.6"},
|
||||
{:p1_utils, "~> 1.0"},
|
||||
{:pkix, "~> 1.0"},
|
||||
{:stringprep, ">= 1.0.26"},
|
||||
{:xmpp, git: "https://github.com/processone/xmpp.git", ref: "68cb07d5d0f36d5c51bfea496c638f3ee9b36027", override: true},
|
||||
{:yconf, "~> 1.0"}]
|
||||
{:xmpp, git: "https://github.com/processone/xmpp", ref: "e9d901ea84fd3910ad32b715853397eb1155b41c", override: true},
|
||||
{:yconf, git: "https://github.com/processone/yconf", ref: "95692795a8a8d950ba560e5b07e6b80660557259", override: true}]
|
||||
++ cond_deps()
|
||||
end
|
||||
|
||||
defp deps_include(deps) do
|
||||
base = if Mix.Project.umbrella?() do
|
||||
defp deps_include() do
|
||||
if Mix.Project.umbrella?() do
|
||||
"../../deps"
|
||||
else
|
||||
case Mix.Project.deps_paths()[:ejabberd] do
|
||||
|
@ -128,28 +143,45 @@ defmodule Ejabberd.MixProject do
|
|||
_ -> ".."
|
||||
end
|
||||
end
|
||||
Enum.map(deps, fn dep -> base<>"/#{dep}/include" end)
|
||||
end
|
||||
|
||||
defp cond_deps do
|
||||
for {:true, dep} <- [{config(:pam), {:epam, "~> 1.0"}},
|
||||
{config(:redis), {:eredis, "~> 1.2.0"}},
|
||||
{Mix.env() == :translations,
|
||||
{:ejabberd_po, git: "https://github.com/processone/ejabberd-po.git"}},
|
||||
{Mix.env() == :dev,
|
||||
{:exsync, "~> 0.2", optional: true, runtime: false}},
|
||||
{config(:redis), {:eredis, "~> 1.7.1"}},
|
||||
{config(:sip), {:esip, "~> 1.0"}},
|
||||
{config(:zlib), {:ezlib, "~> 1.0"}},
|
||||
{if_version_below('22', true), {:lager, "~> 3.9.1"}},
|
||||
{config(:lua), {:luerl, "~> 1.0"}},
|
||||
{config(:mysql), {:p1_mysql, " >= 1.0.22"}},
|
||||
{config(:pgsql), {:p1_pgsql, "~> 1.1"}},
|
||||
{if_version_above(~c"23", true), {:jose, "~> 1.11.10"}},
|
||||
{if_version_below(~c"24", true), {:jose, "1.11.1", override: true}},
|
||||
{if_version_below(~c"27", true), {:jiffy, "~> 1.1.1"}},
|
||||
{if_version_below(~c"22", true), {:lager, "~> 3.9.1"}},
|
||||
{config(:lua), {:luerl, "~> 1.2.0"}},
|
||||
{config(:mysql), {:p1_mysql, ">= 1.0.24"}},
|
||||
{config(:pgsql), {:p1_pgsql, ">= 1.1.32"}},
|
||||
{config(:sqlite), {:sqlite3, "~> 1.1"}},
|
||||
{config(:stun), {:stun, "~> 1.0"}}], do:
|
||||
dep
|
||||
end
|
||||
|
||||
defp cond_apps do
|
||||
for {:true, app} <- [{config(:stun), :stun},
|
||||
{if_version_below(~c"27", true), :jiffy},
|
||||
{config(:tools), :debugger},
|
||||
{config(:tools), :observer},
|
||||
{config(:tools), :wx}], do:
|
||||
app
|
||||
end
|
||||
|
||||
defp cond_included_apps do
|
||||
for {:true, app} <- [{config(:pam), :epam},
|
||||
{config(:lua), :luerl},
|
||||
{config(:redis), :eredis},
|
||||
{if_version_below('22', true), :lager},
|
||||
{Mix.env() == :edoc, :ex_doc},
|
||||
{Mix.env() == :test, :dialyxir},
|
||||
{if_version_below(~c"22", true), :lager},
|
||||
{config(:mysql), :p1_mysql},
|
||||
{config(:sip), :esip},
|
||||
{config(:odbc), :odbc},
|
||||
|
@ -162,19 +194,30 @@ defmodule Ejabberd.MixProject do
|
|||
[# These are the default files included in the package
|
||||
files: ["include", "lib", "priv", "sql", "src",
|
||||
"COPYING", "README.md",
|
||||
"ejabberd.yml.example", "config/runtime.exs",
|
||||
"mix.exs", "rebar.config", "rebar.config.script", "vars.config"],
|
||||
maintainers: ["ProcessOne"],
|
||||
licenses: ["GPL-2.0-or-later"],
|
||||
links: %{"Site" => "https://www.ejabberd.im",
|
||||
"Documentation" => "http://docs.ejabberd.im",
|
||||
"Source" => "https://github.com/processone/ejabberd",
|
||||
"ProcessOne" => "http://www.process-one.net/"}]
|
||||
links: %{"ejabberd.im" => "https://www.ejabberd.im",
|
||||
"ejabberd Docs" => "https://docs.ejabberd.im",
|
||||
"GitHub" => "https://github.com/processone/ejabberd",
|
||||
"ProcessOne" => "https://www.process-one.net/"}]
|
||||
end
|
||||
|
||||
defp vars do
|
||||
case :file.consult("vars.config") do
|
||||
filepath = case Application.fetch_env(:ejabberd, :vars_config_path) do
|
||||
:error ->
|
||||
"vars.config"
|
||||
{:ok, path} ->
|
||||
path
|
||||
end
|
||||
config2 = case :file.consult(filepath) do
|
||||
{:ok,config} -> config
|
||||
_ -> [zlib: true]
|
||||
_ -> [stun: true, zlib: true]
|
||||
end
|
||||
case Mix.env() do
|
||||
:dev -> List.keystore(config2, :tools, 0, {:tools, true})
|
||||
_ -> config2
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -203,7 +246,7 @@ defmodule Ejabberd.MixProject do
|
|||
_ -> :ok
|
||||
end
|
||||
case Version.match?(System.version(), "< 1.11.4")
|
||||
and :erlang.system_info(:otp_release) > '23' do
|
||||
and :erlang.system_info(:otp_release) > ~c"23" do
|
||||
true ->
|
||||
IO.puts("ERROR: To build releases with Elixir lower than 1.11.4, Erlang/OTP lower than 24 is required.")
|
||||
_ -> :ok
|
||||
|
@ -223,6 +266,7 @@ defmodule Ejabberd.MixProject do
|
|||
ejabberd: [
|
||||
include_executables_for: [:unix],
|
||||
# applications: [runtime_tools: :permanent]
|
||||
strip_beams: Mix.env() != :dev,
|
||||
steps: [©_extra_files/1, :assemble | maybe_tar]
|
||||
]
|
||||
]
|
||||
|
@ -239,6 +283,8 @@ defmodule Ejabberd.MixProject do
|
|||
config_dir: config(:config_dir),
|
||||
logs_dir: config(:logs_dir),
|
||||
spool_dir: config(:spool_dir),
|
||||
vsn: version(),
|
||||
iexpath: config(:iexpath),
|
||||
erl: config(:erl),
|
||||
epmd: config(:epmd),
|
||||
bindir: Path.join([config(:release_dir), "releases", version()]),
|
||||
|
@ -253,7 +299,7 @@ defmodule Ejabberd.MixProject do
|
|||
execute = fn(command) ->
|
||||
case function_exported?(System, :shell, 1) do
|
||||
true ->
|
||||
System.shell(command)
|
||||
System.shell(command, into: IO.stream())
|
||||
false ->
|
||||
:os.cmd(to_charlist(command))
|
||||
end
|
||||
|
@ -319,13 +365,38 @@ defmodule Ejabberd.MixProject do
|
|||
end
|
||||
|
||||
case Mix.env() do
|
||||
:dev -> execute.("REL_DIR_TEMP=$PWD/rel/overlays/ rel/setup-dev.sh")
|
||||
:dev -> execute.("REL_DIR_TEMP=$PWD/rel/overlays/ rel/setup-dev.sh mix")
|
||||
_ -> :ok
|
||||
end
|
||||
|
||||
release
|
||||
end
|
||||
|
||||
defp docs do
|
||||
[
|
||||
main: "readme",
|
||||
logo: "_build/edoc/logo.png",
|
||||
source_ref: "master",
|
||||
extra_section: "", # No need for Pages section name, it's the only one
|
||||
api_reference: false, # API section has just Elixir, hide it
|
||||
filter_modules: "aaaaa", # Module section has just Elixir modules, hide them
|
||||
extras: [
|
||||
"README.md": [title: "Readme"],
|
||||
"COMPILE.md": [title: "Compile and Install"],
|
||||
"CONTAINER.md": [title: "Container Image"],
|
||||
"CONTRIBUTING.md": [title: "Contributing"],
|
||||
"CONTRIBUTORS.md": [title: "Contributors"],
|
||||
"CODE_OF_CONDUCT.md": [title: "Code of Conduct"],
|
||||
"CHANGELOG.md": [title: "ChangeLog"],
|
||||
"COPYING": [title: "Copying License"],
|
||||
"_build/edoc/docs.md": [title: "⟹ ejabberd Docs"]
|
||||
],
|
||||
groups_for_extras: [
|
||||
"": Path.wildcard("*.md") ++ ["COPYING"],
|
||||
"For more documentation": "_build/edoc/docs.md"
|
||||
]
|
||||
]
|
||||
end
|
||||
end
|
||||
|
||||
defmodule Mix.Tasks.Compile.Asn1 do
|
||||
|
|
68
mix.lock
68
mix.lock
|
@ -1,35 +1,39 @@
|
|||
%{
|
||||
"base64url": {:hex, :base64url, "1.0.1", "f8c7f2da04ca9a5d0f5f50258f055e1d699f0e8bf4cfdb30b750865368403cf6", [:rebar3], [], "hexpm", "f9b3add4731a02a9b0410398b475b33e7566a695365237a6bdee1bb447719f5c"},
|
||||
"cache_tab": {:hex, :cache_tab, "1.0.30", "6d35eecfb65fbe5fc85988503a27338d32de01243f3fc8ea3ee7161af08725a4", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "6d8a5e00d8f84c42627706a6dbedb02e34d58495f3ed61935c8475ca0531cda0"},
|
||||
"earmark_parser": {:hex, :earmark_parser, "1.4.33", "3c3fd9673bb5dcc9edc28dd90f50c87ce506d1f71b70e3de69aa8154bc695d44", [:mix], [], "hexpm", "2d526833729b59b9fdb85785078697c72ac5e5066350663e5be6a1182da61b8f"},
|
||||
"eimp": {:hex, :eimp, "1.0.22", "fa9b376ef0b50e8455db15c7c11dea4522c6902e04412288aab436d26335f6eb", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "b3b9ffb1d9a5f4a2ba88ac418a819164932d9a9d3a2fc3d32ca338ce855c4392"},
|
||||
"epam": {:hex, :epam, "1.0.12", "2a5625d4133bca4b3943791a3f723ba764455a461ae9b6ba5debb262efcf4b40", [:rebar3], [], "hexpm", "54c166c4459cef72f2990a3d89a8f0be27180fe0ab0f24b28ddcc3b815f49f7f"},
|
||||
"eredis": {:hex, :eredis, "1.2.0", "0b8e9cfc2c00fa1374cd107ea63b49be08d933df2cf175e6a89b73dd9c380de4", [:rebar3], [], "hexpm", "d9b5abef2c2c8aba8f32aa018203e0b3dc8b1157773b254ab1d4c2002317f1e1"},
|
||||
"esip": {:hex, :esip, "1.0.50", "e657d3af332c711311f4eb540e73eb540ea485a25977aef8736fb8cd3845ed9f", [:rebar3], [{:fast_tls, "1.1.16", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}, {:stun, "1.2.10", [hex: :stun, repo: "hexpm", optional: false]}], "hexpm", "7dfb9f16c65c5e49eeba77025d0f894b5fb240be745d11b978ea1438cd47533d"},
|
||||
"ex_doc": {:hex, :ex_doc, "0.30.6", "5f8b54854b240a2b55c9734c4b1d0dd7bdd41f71a095d42a70445c03cf05a281", [:mix], [{:earmark_parser, "~> 1.4.31", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "bd48f2ddacf4e482c727f9293d9498e0881597eae6ddc3d9562bd7923375109f"},
|
||||
"ezlib": {:hex, :ezlib, "1.0.12", "ffe906ba10d03aaee7977e1e0e81d9ffc3bb8b47fb9cd8e2e453507a2e56221f", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "30e94355fb42260aab6e12582cb0c56bf233515e655c8aeaf48760e7561e4ebb"},
|
||||
"fast_tls": {:hex, :fast_tls, "1.1.16", "85fa7f3112ea4ff5ccb4f3abadc130a8c855ad74eb00869487399cb0c322d208", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "aa08cca89b4044e74f1f12e399817d8beaeae3ee006c98a893c0bfb1d81fba51"},
|
||||
"fast_xml": {:hex, :fast_xml, "1.1.49", "67d9bfcadd04efd930e0ee1412b5ea09d3e791f1fdbd4d3e9a8c8f29f8bfed8c", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "01da064d2f740818956961036637fee2475c17bf8aab9442217f90dc77883593"},
|
||||
"fast_yaml": {:hex, :fast_yaml, "1.0.36", "65413a34a570fd4e205a460ba602e4ee7a682f35c22d2e1c839025dbf515105c", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "1abe8f758fc2a86b08edff80bbc687cfd41ebc1412cfec0ef4a0acfcd032052f"},
|
||||
"idna": {:hex, :idna, "6.0.0", "689c46cbcdf3524c44d5f3dde8001f364cd7608a99556d8fbd8239a5798d4c10", [:rebar3], [{:unicode_util_compat, "0.4.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "4bdd305eb64e18b0273864920695cb18d7a2021f31a11b9c5fbcd9a253f936e2"},
|
||||
"jiffy": {:hex, :jiffy, "1.1.1", "aca10f47aa91697bf24ab9582c74e00e8e95474c7ef9f76d4f1a338d0f5de21b", [:rebar3], [], "hexpm", "62e1f0581c3c19c33a725c781dfa88410d8bff1bbafc3885a2552286b4785c4c"},
|
||||
"jose": {:hex, :jose, "1.11.5", "3bc2d75ffa5e2c941ca93e5696b54978323191988eb8d225c2e663ddfefd515e", [:mix, :rebar3], [], "hexpm", "dcd3b215bafe02ea7c5b23dafd3eb8062a5cd8f2d904fd9caa323d37034ab384"},
|
||||
"luerl": {:hex, :luerl, "1.0.0", "1b68c30649323590d5339b967b419260500ffe520cd3abc1987482a82d3b5a6c", [:rebar3], [], "hexpm", "c17bc45cb4b0845ec975387f9a5d8c81ab60456698527a29c96f78992af86bd1"},
|
||||
"makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"},
|
||||
"makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"},
|
||||
"makeup_erlang": {:hex, :makeup_erlang, "0.1.2", "ad87296a092a46e03b7e9b0be7631ddcf64c790fa68a9ef5323b6cbb36affc72", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f3f5a1ca93ce6e092d92b6d9c049bcda58a3b617a8d888f8e7231c85630e8108"},
|
||||
"mqtree": {:hex, :mqtree, "1.0.15", "bc54d8b88698fdaebc1e27a9ac43688b927e3dbc05bd5cee4057e69a89a8cf17", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "294ac43c9b3d372e24eeea56c259e19c655522dcff64a55c401a639663b9d829"},
|
||||
"nimble_parsec": {:hex, :nimble_parsec, "1.3.1", "2c54013ecf170e249e9291ed0a62e5832f70a476c61da16f6aac6dca0189f2af", [:mix], [], "hexpm", "2682e3c0b2eb58d90c6375fc0cc30bc7be06f365bf72608804fb9cffa5e1b167"},
|
||||
"p1_acme": {:hex, :p1_acme, "1.0.22", "b40a8031ef0f4592e97e6a8e08e53dbd31a2198cb8377b249f0caea4f8025a1d", [:rebar3], [{:base64url, "1.0.1", [hex: :base64url, repo: "hexpm", optional: false]}, {:idna, "6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:jiffy, "1.1.1", [hex: :jiffy, repo: "hexpm", optional: false]}, {:jose, "1.11.5", [hex: :jose, repo: "hexpm", optional: false]}, {:yconf, "1.0.15", [hex: :yconf, repo: "hexpm", optional: false]}], "hexpm", "c2b25a7b295a435dac4f278a73d8417ff2b0020c45e1683504e8692ef03e2057"},
|
||||
"p1_mysql": {:hex, :p1_mysql, "1.0.22", "593107adbce3df1bb460fd442320ff540dfba0232f45278441ef8d2de8d08163", [:rebar3], [], "hexpm", "188f04b3ba265a6e7657c67a6780a2f5f973fe86670159ef593aaf44dbd3d5a2"},
|
||||
"p1_oauth2": {:hex, :p1_oauth2, "0.6.11", "96b4e85c08355720523c2f892011a81a07994d15c179ce4dd82d704fecad15b2", [:rebar3], [], "hexpm", "9c3c6ae59382b9525473bb02a32949889808f33f95f6db10594fd92acd1f63db"},
|
||||
"p1_pgsql": {:hex, :p1_pgsql, "1.1.23", "4a8c17b642dcf5265a910d1a0b86ffb2a9dd057c7b51c3def5eacbcc4f27ced9", [:rebar3], [{:xmpp, "1.7.0", [hex: :xmpp, repo: "hexpm", optional: false]}], "hexpm", "819222bcb5a74581263282ff9cdc679adeefc663dcf49ddc778aeaae90be05a6"},
|
||||
"p1_utils": {:hex, :p1_utils, "1.0.25", "2d39b5015a567bbd2cc7033eeb93a7c60d8c84efe1ef69a3473faa07fa268187", [:rebar3], [], "hexpm", "9219214428f2c6e5d3187ff8eb9a8783695c2427420be9a259840e07ada32847"},
|
||||
"pkix": {:hex, :pkix, "1.0.9", "eb20b2715d71a23b4fe7e754dae9281a964b51113d0bba8adf9da72bf9d65ac2", [:rebar3], [], "hexpm", "daab2c09cdd4eda05c9b45a5c00e994a1a5f27634929e1377e2e59b707103e3a"},
|
||||
"sqlite3": {:hex, :sqlite3, "1.1.14", "f9ea0cff8540865fdfdb7e24eef34dc46677364b1c070896e99b5bf08c8a7fd7", [:rebar3], [], "hexpm", "85054b6ca297343c159ed6794a473ff2c8eeabd854b6fe02f711c0bfd373ce86"},
|
||||
"stringprep": {:hex, :stringprep, "1.0.29", "02f23e8c3a219a3dfe40a22e908bece3a2f68af0ff599ea8a7b714ecb21e62ee", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "928eba304c3006eb1512110ebd7b87db163b00859a09375a1e4466152c6c462a"},
|
||||
"stun": {:hex, :stun, "1.2.10", "53f8be69e14f9476dcaf1dfb626b9dad2380f3fba8faf2c30bdf74311cfdc008", [:rebar3], [{:fast_tls, "1.1.16", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "19d3eecbfcc6935f0880f8ef7e77ff373900c604092937a1acda166ae3fb40e9"},
|
||||
"unicode_util_compat": {:hex, :unicode_util_compat, "0.4.1", "d869e4c68901dd9531385bb0c8c40444ebf624e60b6962d95952775cac5e90cd", [:rebar3], [], "hexpm", "1d1848c40487cdb0b30e8ed975e34e025860c02e419cb615d255849f3427439d"},
|
||||
"xmpp": {:git, "https://github.com/processone/xmpp.git", "68cb07d5d0f36d5c51bfea496c638f3ee9b36027", [ref: "68cb07d5d0f36d5c51bfea496c638f3ee9b36027"]},
|
||||
"yconf": {:hex, :yconf, "1.0.15", "e22998b3d7728270bdd06162a9515bd142b14fae8927cbdbd3ef639c32aa6f7a", [:rebar3], [{:fast_yaml, "1.0.36", [hex: :fast_yaml, repo: "hexpm", optional: false]}], "hexpm", "7ff2ab24d3c9833842716b9aaaa01a8f96641a7695cbb701b03445c4def01117"},
|
||||
"cache_tab": {:hex, :cache_tab, "1.0.33", "e2542afb34f17ee3ca19d2b0f546a074922c2b99fb6b2acfb38160d7d0336ec3", [:rebar3], [{:p1_utils, "1.0.28", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "4258009eb050b22aabe0c848e230bba58401a6895c58c2ff74dfb635e3c35900"},
|
||||
"dialyxir": {:hex, :dialyxir, "1.4.6", "7cca478334bf8307e968664343cbdb432ee95b4b68a9cba95bdabb0ad5bdfd9a", [:mix], [{:erlex, ">= 0.2.7", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "8cf5615c5cd4c2da6c501faae642839c8405b49f8aa057ad4ae401cb808ef64d"},
|
||||
"earmark_parser": {:hex, :earmark_parser, "1.4.44", "f20830dd6b5c77afe2b063777ddbbff09f9759396500cdbe7523efd58d7a339c", [:mix], [], "hexpm", "4778ac752b4701a5599215f7030989c989ffdc4f6df457c5f36938cc2d2a2750"},
|
||||
"eimp": {:hex, :eimp, "1.0.26", "c0b05f32e35629c4d9bcfb832ff879a92b0f92b19844bc7835e0a45635f2899a", [:rebar3], [{:p1_utils, "~> 1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "d96d4e8572b9dfc40f271e47f0cb1d8849373bc98a21223268781765ed52044c"},
|
||||
"epam": {:hex, :epam, "1.0.14", "aa0b85d27f4ef3a756ae995179df952a0721237e83c6b79d644347b75016681a", [:rebar3], [], "hexpm", "2f3449e72885a72a6c2a843f561add0fc2f70d7a21f61456930a547473d4d989"},
|
||||
"eredis": {:hex, :eredis, "1.7.1", "39e31aa02adcd651c657f39aafd4d31a9b2f63c6c700dc9cece98d4bc3c897ab", [:mix, :rebar3], [], "hexpm", "7c2b54c566fed55feef3341ca79b0100a6348fd3f162184b7ed5118d258c3cc1"},
|
||||
"erlex": {:hex, :erlex, "0.2.7", "810e8725f96ab74d17aac676e748627a07bc87eb950d2b83acd29dc047a30595", [:mix], [], "hexpm", "3ed95f79d1a844c3f6bf0cea61e0d5612a42ce56da9c03f01df538685365efb0"},
|
||||
"esip": {:hex, :esip, "1.0.59", "eb202f8c62928193588091dfedbc545fe3274c34ecd209961f86dcb6c9ebce88", [:rebar3], [{:fast_tls, "1.1.25", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.28", [hex: :p1_utils, repo: "hexpm", optional: false]}, {:stun, "1.2.21", [hex: :stun, repo: "hexpm", optional: false]}], "hexpm", "0bdf2e3c349dc0b144f173150329e675c6a51ac473d7a0b2e362245faad3fbe6"},
|
||||
"ex_doc": {:hex, :ex_doc, "0.38.3", "ddafe36b8e9fe101c093620879f6604f6254861a95133022101c08e75e6c759a", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "ecaa785456a67f63b4e7d7f200e8832fa108279e7eb73fd9928e7e66215a01f9"},
|
||||
"exsync": {:hex, :exsync, "0.4.1", "0a14fe4bfcb80a509d8a0856be3dd070fffe619b9ba90fec13c58b316c176594", [:mix], [{:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}], "hexpm", "cefb22aa805ec97ffc5b75a4e1dc54bcaf781e8b32564bf74abbe5803d1b5178"},
|
||||
"ezlib": {:hex, :ezlib, "1.0.15", "d74f5df191784744726a5b1ae9062522c606334f11086363385eb3b772d91357", [:rebar3], [{:p1_utils, "1.0.28", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "dd14ba6c12521af5cfe6923e73e3d545f4a0897dc66bfab5287fbb7ae3962eab"},
|
||||
"fast_tls": {:hex, :fast_tls, "1.1.25", "da8ed6f05a2452121b087158b17234749f36704c1f2b74dc51db99a1e27ed5e8", [:rebar3], [{:p1_utils, "~> 1.0.26", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "59e183b5740e670e02b8aa6be673b5e7779e5fe5bfcc679fe2d4993d1949a821"},
|
||||
"fast_xml": {:hex, :fast_xml, "1.1.57", "31efc0f9bceda92069704f7a25830407da5dc3dad1272b810d6f2e13e73cc11a", [:rebar3], [{:p1_utils, "1.0.28", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "eec34e90adacafe467d5ddab635a014ded73b98b4061554b2d1972173d929c39"},
|
||||
"fast_yaml": {:hex, :fast_yaml, "1.0.39", "2e71168091949bab0e5f583b340a99072b4d22d93eb86624e7850a12b1517be4", [:rebar3], [{:p1_utils, "1.0.28", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "24c7b9ab9e2b9269d64e45f4a2a1280966adb17d31e63365cfd3ee277fb0a78d"},
|
||||
"file_system": {:hex, :file_system, "1.1.0", "08d232062284546c6c34426997dd7ef6ec9f8bbd090eb91780283c9016840e8f", [:mix], [], "hexpm", "bfcf81244f416871f2a2e15c1b515287faa5db9c6bcf290222206d120b3d43f6"},
|
||||
"idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"},
|
||||
"jiffy": {:hex, :jiffy, "1.1.2", "a9b6c9a7ec268e7cf493d028f0a4c9144f59ccb878b1afe42841597800840a1b", [:rebar3], [], "hexpm", "bb61bc42a720bbd33cb09a410e48bb79a61012c74cb8b3e75f26d988485cf381"},
|
||||
"jose": {:hex, :jose, "1.11.10", "a903f5227417bd2a08c8a00a0cbcc458118be84480955e8d251297a425723f83", [:mix, :rebar3], [], "hexpm", "0d6cd36ff8ba174db29148fc112b5842186b68a90ce9fc2b3ec3afe76593e614"},
|
||||
"luerl": {:hex, :luerl, "1.2.3", "df25f41944e57a7c4d9ef09d238bc3e850276c46039cfc12b8bb42eccf36fcb1", [:rebar3], [], "hexpm", "1b4b9d0ca5d7d280d1d2787a6a5ee9f5a212641b62bff91556baa53805df3aed"},
|
||||
"makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"},
|
||||
"makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"},
|
||||
"makeup_erlang": {:hex, :makeup_erlang, "1.0.2", "03e1804074b3aa64d5fad7aa64601ed0fb395337b982d9bcf04029d68d51b6a7", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "af33ff7ef368d5893e4a267933e7744e46ce3cf1f61e2dccf53a111ed3aa3727"},
|
||||
"mqtree": {:hex, :mqtree, "1.0.19", "d769c25f898810725fc7db0dbffe5f72098647048b1be2e6d772f1c2f31d8476", [:rebar3], [{:p1_utils, "1.0.28", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "c81065715c49a1882812f80a5ae2d842e80dd3f2d130530df35990248bf8ce3c"},
|
||||
"nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"},
|
||||
"p1_acme": {:hex, :p1_acme, "1.0.28", "64d9c17f5412aa92d75b29206b2b984d734a4fe1b7eacb66c3d7a7c697ac612c", [:rebar3], [{:base64url, "~> 1.0", [hex: :base64url, repo: "hexpm", optional: false]}, {:idna, "~> 6.0", [hex: :idna, repo: "hexpm", optional: false]}, {:jiffy, "~> 1.1.1", [hex: :jiffy, repo: "hexpm", optional: false]}, {:jose, "~> 1.11.10", [hex: :jose, repo: "hexpm", optional: false]}, {:yconf, "~> 1.0.17", [hex: :yconf, repo: "hexpm", optional: false]}], "hexpm", "ce686986de3f9d5fd285afe87523cb45329a349c6c6be7acc1ed916725d46423"},
|
||||
"p1_mysql": {:hex, :p1_mysql, "1.0.26", "574d07c9936c53b1ec3556db3cf064cc14a6c39039835b3d940471bfa5ac8e2b", [:rebar3], [], "hexpm", "ea138083f2c54719b9cf549dbf5802a288b0019ea3e5449b354c74cc03fafdec"},
|
||||
"p1_oauth2": {:hex, :p1_oauth2, "0.6.14", "1c5f82535574de87e2059695ac4b91f8f9aebacbc1c80287dae6f02552d47aea", [:rebar3], [], "hexpm", "1fd3ac474e43722d9d5a87c6df8d36f698ed87af7bb81cbbb66361451d99ae8f"},
|
||||
"p1_pgsql": {:hex, :p1_pgsql, "1.1.35", "e13d89f14d717553e85c88a152ce77461916b013d88fcb851e354a0b332d4218", [:rebar3], [{:xmpp, "~> 1.11.0", [hex: :xmpp, repo: "hexpm", optional: false]}], "hexpm", "e99594446c411c660696795b062336f5c4bd800451d8f620bb4d4ce304e255c2"},
|
||||
"p1_utils": {:hex, :p1_utils, "1.0.28", "9a7088a98d788b4c4880fd3c82d0c135650db13f2e4ef7e10db179791bc94d59", [:rebar3], [], "hexpm", "c49bd44bc4a40ad996691af826dd7e0aa56d4d0cd730817190a1f84d1a7f0033"},
|
||||
"pkix": {:hex, :pkix, "1.0.10", "d3bfadf7b7cfe2a3636f1b256c9cce5f646a07ce31e57ee527668502850765a0", [:rebar3], [], "hexpm", "e02164f83094cb124c41b1ab28988a615d54b9adc38575f00f19a597a3ac5d0e"},
|
||||
"sqlite3": {:hex, :sqlite3, "1.1.15", "e819defd280145c328457d7af897d2e45e8e5270e18812ee30b607c99cdd21af", [:rebar3], [], "hexpm", "3c0ba4e13322c2ad49de4e2ddd28311366adde54beae8dba9d9e3888f69d2857"},
|
||||
"stringprep": {:hex, :stringprep, "1.0.33", "22f42866b4f6f3c238ea2b9cb6241791184ddedbab55e94a025511f46325f3ca", [:rebar3], [{:p1_utils, "1.0.28", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "96f8b30bc50887f605b33b46bca1d248c19a879319b8c482790e3b4da5da98c0"},
|
||||
"stun": {:hex, :stun, "1.2.21", "735855314ad22cb7816b88597d2f5ca22e24aa5e4d6010a0ef3affb33ceed6a5", [:rebar3], [{:fast_tls, "1.1.25", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.28", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "3d7fe8efb9d05b240a6aa9a6bf8b8b7bff2d802895d170443c588987dc1e12d9"},
|
||||
"unicode_util_compat": {:hex, :unicode_util_compat, "0.7.1", "a48703a25c170eedadca83b11e88985af08d35f37c6f664d6dcfb106a97782fc", [:rebar3], [], "hexpm", "b3a917854ce3ae233619744ad1e0102e05673136776fb2fa76234f3e03b23642"},
|
||||
"xmpp": {:git, "https://github.com/processone/xmpp", "e9d901ea84fd3910ad32b715853397eb1155b41c", [ref: "e9d901ea84fd3910ad32b715853397eb1155b41c"]},
|
||||
"yconf": {:git, "https://github.com/processone/yconf", "95692795a8a8d950ba560e5b07e6b80660557259", [ref: "95692795a8a8d950ba560e5b07e6b80660557259"]},
|
||||
}
|
||||
|
|
|
@ -131,16 +131,27 @@ ul li #navhead a, ul li #navheadsub a, ul li #navheadsubsub a {
|
|||
background: #424a55;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#navitemlogin-start {
|
||||
border-top: 0.2em solid #cae7e4;
|
||||
}
|
||||
#navitemlogin {
|
||||
padding: 0.5em;
|
||||
border-bottom: 0.2em solid #cae7e4;
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
#welcome {
|
||||
padding: 2em;
|
||||
border-top: 0.2em solid #cae7e4;
|
||||
border-bottom: 0.2em solid #cae7e4;
|
||||
background-color: #f4f9f9;
|
||||
}
|
||||
#lastactivity li {
|
||||
padding: 2px;
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
thead tr td {
|
||||
background: #3eaffa;
|
||||
color: #fff;
|
||||
}
|
||||
thead tr td a {
|
||||
color: #fff;
|
||||
background: #cae7e4;
|
||||
}
|
||||
td.copy {
|
||||
text-align: center;
|
||||
|
@ -227,24 +238,32 @@ h3 {
|
|||
padding-top: 25px;
|
||||
width: 70%;
|
||||
}
|
||||
div.anchorlink {
|
||||
display: inline-block;
|
||||
float: right;
|
||||
margin-top: 1em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
div.anchorlink a {
|
||||
padding: 3px;
|
||||
background: #cae7e4;
|
||||
font-size: 0.75em;
|
||||
color: black;
|
||||
}
|
||||
div.guidelink,
|
||||
p[dir=ltr] {
|
||||
display: inline-block;
|
||||
float: right;
|
||||
|
||||
margin: 0;
|
||||
margin-top: 1em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
div.guidelink a,
|
||||
p[dir=ltr] a {
|
||||
display: inline-block;
|
||||
border-radius: 3px;
|
||||
padding: 3px;
|
||||
|
||||
background: #3eaffa;
|
||||
|
||||
font-size: 0.75em;
|
||||
color: #fff;
|
||||
border-radius: 2px;
|
||||
}
|
||||
table {
|
||||
margin-top: 1em;
|
||||
|
@ -265,7 +284,7 @@ input,
|
|||
select {
|
||||
font-size: 1em;
|
||||
}
|
||||
p.result {
|
||||
.result {
|
||||
border: 1px;
|
||||
border-style: dashed;
|
||||
border-color: #FE8A02;
|
||||
|
@ -284,3 +303,20 @@ p.result {
|
|||
color: #cb2431;
|
||||
transition: none;
|
||||
}
|
||||
h3.api {
|
||||
border-bottom: 1px solid #b6b6b6;
|
||||
}
|
||||
details > summary {
|
||||
background-color: #dbeceb;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
list-style: none;
|
||||
padding: 8px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
details > pre, details > p {
|
||||
background-color: #f2f8f7;
|
||||
border-bottom: 0.2em solid #dbeceb;
|
||||
margin: 0;
|
||||
padding: 10px;
|
||||
}
|
||||
|
|
|
@ -16,12 +16,14 @@ a.roomjid {color: #336699; font-size: 24px; font-weight: bold; font-family: sans
|
|||
div.logdate {color: #663399; font-size: 20px; font-weight: bold; font-family: sans-serif; letter-spacing: 2px; border-bottom: #224466 solid 1pt; margin-left:80pt; margin-top:20px;}
|
||||
div.roomsubject {color: #336699; font-size: 18px; font-family: sans-serif; margin-left: 80pt; margin-bottom: 10px;}
|
||||
div.rc {color: #336699; font-size: 12px; font-family: sans-serif; margin-left: 50%; text-align: right; background: #f3f6f9; border-bottom: 1px solid #336699; border-right: 4px solid #336699;}
|
||||
div.rct {font-weight: bold; background: #e3e6e9; padding-right: 10px;}
|
||||
div.rct {font-weight: bold; background: #e3e6e9; padding-right: 10px; cursor: pointer;}
|
||||
div.rct:hover {text-decoration: underline;}
|
||||
div.rcos {padding-right: 10px;}
|
||||
div.rcoe {color: green;}
|
||||
div.rcod {color: red;}
|
||||
div.rcoe:after {content: ": v";}
|
||||
div.rcod:after {content: ": x";}
|
||||
div.rcot:after {}
|
||||
div.jl {display: none;}
|
||||
.legend {width: 100%; margin-top: 30px; border-top: #224466 solid 1pt; padding: 10px 0px 10px 0px; text-align: left; font-family: monospace; letter-spacing: 2px;}
|
||||
.w3c {position: absolute; right: 10px; width: 60%; text-align: right; font-family: monospace; letter-spacing: 1px;}
|
||||
|
|
1
priv/css/sortable.min.css
vendored
Normal file
1
priv/css/sortable.min.css
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
.sortable thead th:not(.no-sort){cursor:pointer}.sortable thead th:not(.no-sort)::after,.sortable thead th:not(.no-sort)::before{transition:color .1s ease-in-out;font-size:1.2em;color:rgba(0,0,0,0)}.sortable thead th:not(.no-sort)::after{margin-left:3px;content:"▸"}.sortable thead th:not(.no-sort):hover::after{color:inherit}.sortable thead th:not(.no-sort)[aria-sort=descending]::after{color:inherit;content:"▾"}.sortable thead th:not(.no-sort)[aria-sort=ascending]::after{color:inherit;content:"▴"}.sortable thead th:not(.no-sort).indicator-left::after{content:""}.sortable thead th:not(.no-sort).indicator-left::before{margin-right:3px;content:"▸"}.sortable thead th:not(.no-sort).indicator-left:hover::before{color:inherit}.sortable thead th:not(.no-sort).indicator-left[aria-sort=descending]::before{color:inherit;content:"▾"}.sortable thead th:not(.no-sort).indicator-left[aria-sort=ascending]::before{color:inherit;content:"▴"}/*# sourceMappingURL=sortable-base.min.css.map */
|
Binary file not shown.
Before Width: | Height: | Size: 177 B |
Binary file not shown.
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 9.7 KiB |
|
@ -6,3 +6,14 @@ function sh(e) {
|
|||
document.getElementById(e).style.display='none';
|
||||
}
|
||||
}
|
||||
// Show/Hide join/leave elements
|
||||
function jlf() {
|
||||
var es = document.getElementsByClassName('jl');
|
||||
for (var i = 0; i < es.length; i++) {
|
||||
if (es[i].style.display === 'block') {
|
||||
es[i].style.display = 'none';
|
||||
} else {
|
||||
es[i].style.display = 'block';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
3
priv/js/sortable.min.js
vendored
Normal file
3
priv/js/sortable.min.js
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
document.addEventListener("click",function(c){try{function h(b,a){return b.nodeName===a?b:h(b.parentNode,a)}var v=c.shiftKey||c.altKey,d=h(c.target,"TH"),m=d.parentNode,n=m.parentNode,g=n.parentNode;function p(b){var a;return v?b.dataset.sortAlt:null!==(a=b.dataset.sort)&&void 0!==a?a:b.textContent}if("THEAD"===n.nodeName&&g.classList.contains("sortable")&&!d.classList.contains("no-sort")){var q,f=m.cells,r=+d.dataset.sortTbr;for(c=0;c<f.length;c++)f[c]===d?q=+d.dataset.sortCol||c:f[c].setAttribute("aria-sort",
|
||||
"none");f="descending";if("descending"===d.getAttribute("aria-sort")||g.classList.contains("asc")&&"ascending"!==d.getAttribute("aria-sort"))f="ascending";d.setAttribute("aria-sort",f);var w="ascending"===f,x=g.classList.contains("n-last"),t=function(b,a,e){a=p(a.cells[e]);b=p(b.cells[e]);if(x){if(""===a&&""!==b)return-1;if(""===b&&""!==a)return 1}e=+a-+b;a=isNaN(e)?a.localeCompare(b):e;return w?-a:a};for(c=0;c<g.tBodies.length;c++){var k=g.tBodies[c],u=[].slice.call(k.rows,0);u.sort(function(b,a){var e=
|
||||
t(b,a,q);return 0!==e||isNaN(r)?e:t(b,a,r)});var l=k.cloneNode();l.append.apply(l,u);g.replaceChild(l,k)}}}catch(h){}});
|
|
@ -8,4 +8,3 @@
|
|||
{"# participants","# المشاركين"}.
|
||||
{"A description of the node","وصف العقدة"}.
|
||||
{"A Web Page","موقع الكتروني"}.
|
||||
{"'Displayed groups' not added (they do not exist!): ","لم تتم إضافة \"المجموعات المعروضة\" (فهي غير موجودة!): "}.
|
||||
|
|
220
priv/msgs/bg.msg
220
priv/msgs/bg.msg
|
@ -16,8 +16,6 @@
|
|||
{"Account doesn't exist","Профилът не съществува"}.
|
||||
{"Action on user","Действие върху потребител"}.
|
||||
{"Add a hat to a user","Добави шапка към потребител"}.
|
||||
{"Add Jabber ID","Добави Jabber ID"}.
|
||||
{"Add New","Добави нов"}.
|
||||
{"Add User","Добави потребител"}.
|
||||
{"Administration of ","Администриране на "}.
|
||||
{"Administration","Администриране"}.
|
||||
|
@ -92,30 +90,20 @@
|
|||
{"Conference room does not exist","Конферентната стая не съществува"}.
|
||||
{"Configuration of room ~s","Конфигурация на стая ~s"}.
|
||||
{"Configuration","Конфигурация"}.
|
||||
{"Connected Resources:","Свързани ресурси:"}.
|
||||
{"Contact Addresses (normally, room owner or owners)","Адреси за контакт (обикновено собственик или собственици на стая)"}.
|
||||
{"Contrib Modules","Сътруднически модули"}.
|
||||
{"Country","Държава"}.
|
||||
{"CPU Time:","Процесорно време:"}.
|
||||
{"Current Discussion Topic","Текуща тема на дискусита"}.
|
||||
{"Database failure","Грешка в базата данни"}.
|
||||
{"Database Tables at ~p","Таблици на базата данни при ~p"}.
|
||||
{"Database Tables Configuration at ","Конфигурация на таблиците в базата данни при "}.
|
||||
{"Database","База данни"}.
|
||||
{"December","Декември"}.
|
||||
{"Default users as participants","Потребители по подразбиране като участници"}.
|
||||
{"Delete content","Изтрий съдържанието"}.
|
||||
{"Delete message of the day on all hosts","Изтрий съобщението на деня от всички нодове"}.
|
||||
{"Delete message of the day","Изтрий съобщението на деня"}.
|
||||
{"Delete Selected","Изтрий избраните"}.
|
||||
{"Delete table","Изтрий таблицата"}.
|
||||
{"Delete User","Изтрий потребителя"}.
|
||||
{"Deliver event notifications","Достави известията за събития"}.
|
||||
{"Deliver payloads with event notifications","Достави прикачените обекти с известията за събития"}.
|
||||
{"Description:","Описание:"}.
|
||||
{"Disc only copy","Копие само на диска"}.
|
||||
{"'Displayed groups' not added (they do not exist!): ","'Показаните групи' не са добавени (не съществуват!): "}.
|
||||
{"Displayed:","Показва се:"}.
|
||||
{"Don't tell your password to anybody, not even the administrators of the XMPP server.","Не казвайте паролата си на никого, дори на администраторите на XMPP сървъра."}.
|
||||
{"Dump Backup to Text File at ","Архивиране в текстов файл при "}.
|
||||
{"Dump to Text File","Архивиране в текстов файл"}.
|
||||
|
@ -123,7 +111,14 @@
|
|||
{"Dynamically specify a replyto of the item publisher","Динамично задаване на отговор към публикувалия елемента"}.
|
||||
{"Edit Properties","Редактиране на свойства"}.
|
||||
{"Either approve or decline the voice request.","Одобрете или отхвърлете заявката за гласова връзка."}.
|
||||
{"Elements","Елементи"}.
|
||||
{"ejabberd HTTP Upload service","ejabberd HTTP Upload услуга"}.
|
||||
{"ejabberd MUC module","ejabberd MUC модул"}.
|
||||
{"ejabberd Multicast service","ejabberd Multicast услуга"}.
|
||||
{"ejabberd Publish-Subscribe module","ejabberd Publish-Subscribe модул"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","ejabberd SOCKS5 Bytestreams модул"}.
|
||||
{"ejabberd vCard module","ejabberd vCard модул"}.
|
||||
{"ejabberd Web Admin","Уеб администрация на ejabberd"}.
|
||||
{"ejabberd","ejabberd"}.
|
||||
{"Email Address","Имейл адрес"}.
|
||||
{"Email","Илейл"}.
|
||||
{"Enable hats","Активиране на шапки"}.
|
||||
|
@ -138,7 +133,6 @@
|
|||
{"Enter path to text file","Въведете пътя към текстовия файл"}.
|
||||
{"Enter the text you see","Въведете текста, който виждате"}.
|
||||
{"Erlang XMPP Server","Erlang XMPP сървър"}.
|
||||
{"Error","Грешка"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Изключи CAPTCHA предизвикателство за следните Jabber ID-та"}.
|
||||
{"Export all tables as SQL queries to a file:","Експортирай всички таблици като SQL заявки във файл:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Експортирай данните за всички потребители на сървъра в PIEFXIS файлове (XEP-0227):"}.
|
||||
|
@ -157,7 +151,6 @@
|
|||
{"Fill in the form to search for any matching XMPP User","Попълнете формата, за да търсите съвпадащ XMPP потребител"}.
|
||||
{"Friday","Петък"}.
|
||||
{"From ~ts","От ~ts"}.
|
||||
{"From","От"}.
|
||||
{"Full List of Room Admins","Пълен списък на администраторите на стаята"}.
|
||||
{"Full List of Room Owners","Пълен списък на собствениците на стаята"}.
|
||||
{"Full Name","Пълно име"}.
|
||||
|
@ -167,18 +160,19 @@
|
|||
{"Get Number of Registered Users","Брой на регистрираните потребители"}.
|
||||
{"Get Pending","Виж чакащи"}.
|
||||
{"Get User Last Login Time","Покажи времето, когато потребителят е влязъл за последно"}.
|
||||
{"Get User Password","Покажи паролата на потребителя"}.
|
||||
{"Get User Statistics","Покажи статистика за потребителя"}.
|
||||
{"Given Name","Име"}.
|
||||
{"Given Name","Наименование"}.
|
||||
{"Grant voice to this person?","Предоставяне на глас за потребителя?"}.
|
||||
{"Groups that will be displayed to the members","Групи, които ще се показват на членовете"}.
|
||||
{"Groups","Групи"}.
|
||||
{"Group","Група"}.
|
||||
{"has been banned","е със забранен достъп"}.
|
||||
{"has been kicked because of a system shutdown","е отстранен поради изключване на системата"}.
|
||||
{"has been kicked because of an affiliation change","е отстранен поради промяна на принадлежността"}.
|
||||
{"has been kicked because the room has been changed to members-only","е изгонен, защото стаята е променена и е само за членове"}.
|
||||
{"has been kicked","е отстранен"}.
|
||||
{"Hash of the vCard-temp avatar of this room","Хеш на временния vCard аватар на тази стая"}.
|
||||
{"Hat title","Заглавие на шапката"}.
|
||||
{"Hat URI","URI адрес за шапка"}.
|
||||
{"Hats limit exceeded","Превишен е лимитът за шапка"}.
|
||||
{"Host unknown","Неизвестен хост"}.
|
||||
{"Host","Хост"}.
|
||||
{"HTTP File Upload","Качване на файл по HTTP"}.
|
||||
{"Idle connection","Неактивна връзка"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Ако не виждате CAPTCHA изображението, посетете уеб страницата."}.
|
||||
|
@ -192,7 +186,6 @@
|
|||
{"Import Users From jabberd14 Spool Files","Импорт на потребители от jabberd14 Spool файлове"}.
|
||||
{"Improper domain part of 'from' attribute","Неправилна част за домейн в атрибута 'from'"}.
|
||||
{"Improper message type","Неправилен тип съобщение"}.
|
||||
{"Incoming s2s Connections:","Входящи s2s връзки:"}.
|
||||
{"Incorrect CAPTCHA submit","Неправилно CAPTCHA въвеждане"}.
|
||||
{"Incorrect data form","Неправилна форма на данните"}.
|
||||
{"Incorrect password","Грешна парола"}.
|
||||
|
@ -208,6 +201,7 @@
|
|||
{"Invalid 'previd' value","Невалидна стойност на 'previd'"}.
|
||||
{"Invitations are not allowed in this conference","Поканите не са разрешени в тази конференция"}.
|
||||
{"IP addresses","IP адреси"}.
|
||||
{"is now known as","е известен като"}.
|
||||
{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","Не е позволено да изпращате съобщения за грешки в стаята. Участникът (~s) е изпратил съобщение за грешка (~s) и е бил отстранен от стаята"}.
|
||||
{"It is not allowed to send private messages of type \"groupchat\"","Изпращането на лични съобщения от тип \"групов чат\" не е разрешено"}.
|
||||
{"It is not allowed to send private messages to the conference","Изпращането на лични съобщения до конференцията не е разрешено"}.
|
||||
|
@ -217,21 +211,21 @@
|
|||
{"JID normalization failed","Нормализирането на JID е неуспешно"}.
|
||||
{"Joined MIX channels of ~ts","Свързани MIX канали на ~ts"}.
|
||||
{"Joined MIX channels:","Свързани MIX канали:"}.
|
||||
{"joins the room","се присъединява към стаята"}.
|
||||
{"July","Юли"}.
|
||||
{"June","Юни"}.
|
||||
{"Just created","Току що създаден"}.
|
||||
{"Label:","Етикет:"}.
|
||||
{"Last Activity","Последна активност"}.
|
||||
{"Last login","Последно влизане"}.
|
||||
{"Last message","Последно съобщение"}.
|
||||
{"Last month","Миналия месец"}.
|
||||
{"Last year","Миналата година"}.
|
||||
{"Least significant bits of SHA-256 hash of text should equal hexadecimal label","Най-малко значимите битове SHA-256 хеш на текст трябва да са равни на шестнайсетичния етикет"}.
|
||||
{"List of rooms","Списък на стаите"}.
|
||||
{"leaves the room","напуска стаята"}.
|
||||
{"List of users with hats","Списък на потребителите с шапки"}.
|
||||
{"List users with hats","Избройте потребителите с шапки"}.
|
||||
{"Logged Out","Излязъл"}.
|
||||
{"Logging","Регистриране на събития"}.
|
||||
{"Low level update script","Скрипт за актуализация на ниско ниво"}.
|
||||
{"Make participants list public","Направи списъка с участниците публичен"}.
|
||||
{"Make room CAPTCHA protected","Защити стаята с CAPTCHA"}.
|
||||
{"Make room members-only","Направи стаята само за членове"}.
|
||||
|
@ -247,13 +241,10 @@
|
|||
{"Maximum file size","Максимален размер на файла"}.
|
||||
{"Maximum Number of History Messages Returned by Room","Максимален брой съобщения от хронологията, върнати от стая"}.
|
||||
{"Maximum number of items to persist","Максимален брой елементи за запазване"}.
|
||||
{"Maximum Number of Occupants","Максимален брой потребители"}.
|
||||
{"Maximum Number of Occupants","Максимален брой участници"}.
|
||||
{"May","Май"}.
|
||||
{"Members not added (inexistent vhost!): ","Членовете не са добавени (несъществуващ vhost!): "}.
|
||||
{"Membership is required to enter this room","Изисква се членство, за вход в тази стая"}.
|
||||
{"Members:","Членове:"}.
|
||||
{"Memorize your password, or write it in a paper placed in a safe place. In XMPP there isn't an automated way to recover your password if you forget it.","Запомнете паролата си или я запишете на лист хартия, поставен на сигурно място. В XMPP няма автоматичен начин за възстановяване на паролата в случай, че я забравите."}.
|
||||
{"Memory","Памет"}.
|
||||
{"Mere Availability in XMPP (No Show Value)","Наличност в XMPP (Не показвай стойност)"}.
|
||||
{"Message body","Текст на съобщението"}.
|
||||
{"Message not found in forwarded payload","Съобщението не е намерено в препратения прикачен елемент"}.
|
||||
|
@ -265,15 +256,12 @@
|
|||
{"Moderator privileges required","Изискват се права на модератор"}.
|
||||
{"Moderators Only","Само модератори"}.
|
||||
{"Moderator","Модератор"}.
|
||||
{"Modified modules","Модифицирани модули"}.
|
||||
{"Module failed to handle the query","Модулът не успя да обработи заявката"}.
|
||||
{"Monday","Понеделник"}.
|
||||
{"Multicast","Мултикаст"}.
|
||||
{"Multiple <item/> elements are not allowed by RFC6121","Повече от един <item/> елемента не се разрешават от RFC6121"}.
|
||||
{"Multi-User Chat","Групов чат (MUC)"}.
|
||||
{"Name in the rosters where this group will be displayed","Име в списъците с контакти, където ще се показва тази група"}.
|
||||
{"Name","Име"}.
|
||||
{"Name:","Име:"}.
|
||||
{"Natural Language for Room Discussions","Език за дискусии в стаята"}.
|
||||
{"Natural-Language Room Name","Име на стаята на предпочитания език"}.
|
||||
{"Neither 'jid' nor 'nick' attribute found","Атрибутите 'jid' и 'nick' не са намерени"}.
|
||||
|
@ -329,7 +317,7 @@
|
|||
{"Notify subscribers when the node is deleted","Уведоми абонатите, когато нодът бъде изтрит"}.
|
||||
{"November","Ноември"}.
|
||||
{"Number of answers required","Брой на необходимите отговори"}.
|
||||
{"Number of occupants","Брой потребители"}.
|
||||
{"Number of occupants","Брой участници"}.
|
||||
{"Number of Offline Messages","Брой офлайн съобщения"}.
|
||||
{"Number of online users","Брой онлайн потребители"}.
|
||||
{"Number of registered users","Брой регистрирани потребители"}.
|
||||
|
@ -338,14 +326,11 @@
|
|||
{"Occupants are allowed to query others","Участниците могат да отправят заявки към други лица"}.
|
||||
{"Occupants May Change the Subject","Участниците могат да променят темата"}.
|
||||
{"October","Октомври"}.
|
||||
{"Offline Messages","Офлайн съобщения"}.
|
||||
{"Offline Messages:","Офлайн съобщения:"}.
|
||||
{"OK","ДОБРЕ"}.
|
||||
{"Old Password:","Стара парола:"}.
|
||||
{"Online Users","Онлайн потребители"}.
|
||||
{"Online Users:","Онлайн потребители:"}.
|
||||
{"Online","Онлайн"}.
|
||||
{"Only admins can see this","Само администратори могат да видят това"}.
|
||||
{"Only collection node owners may associate leaf nodes with the collection","Само собственици на колекционни нодове имат право да свързват листови нодове към колекцията"}.
|
||||
{"Only deliver notifications to available users","Доставяне на известия само до наличните потребители"}.
|
||||
{"Only <enable/> or <disable/> tags are allowed","Само тагове <enable/> и <disable/> са разрешени"}.
|
||||
{"Only <list/> element is allowed in this query","Само елементът <list/> е разрешен за тази заявка"}.
|
||||
|
@ -354,19 +339,18 @@
|
|||
{"Only moderators are allowed to change the subject in this room","Само модераторите имат право да сменят темата в тази стая"}.
|
||||
{"Only moderators are allowed to retract messages","Само модераторите имат право да оттеглят съобщения"}.
|
||||
{"Only moderators can approve voice requests","Само модераторите могат да одобряват гласови заявки"}.
|
||||
{"Only occupants are allowed to send messages to the conference","Само обитателите имат право да изпращат съобщения до конференцията"}.
|
||||
{"Only occupants are allowed to send queries to the conference","Само обитателите имат право да изпращат запитвания до конференцията"}.
|
||||
{"Only occupants are allowed to send messages to the conference","Само участници имат право да изпращат съобщения до конференцията"}.
|
||||
{"Only occupants are allowed to send queries to the conference","Само участници имат право да изпращат запитвания до конференцията"}.
|
||||
{"Only publishers may publish","Само издателите могат да публикуват"}.
|
||||
{"Only service administrators are allowed to send service messages","Само администраторите на услуги имат право да изпращат системни съобщения"}.
|
||||
{"Only those on a whitelist may subscribe and retrieve items","Само тези в белия списък могат да се абонират и да извличат елементи"}.
|
||||
{"Only those on a whitelist may associate leaf nodes with the collection","Само тези от списъка с позволени могат да свързват листови нодове с колекцията"}.
|
||||
{"Only those on a whitelist may subscribe and retrieve items","Само тези от списъка с позволени могат да се абонират и да извличат елементи"}.
|
||||
{"Organization Name","Име на организацията"}.
|
||||
{"Organization Unit","Отдел"}.
|
||||
{"Other Modules Available:","Други налични модули:"}.
|
||||
{"Outgoing s2s Connections","Изходящи s2s връзки"}.
|
||||
{"Outgoing s2s Connections:","Изходящи s2s връзки:"}.
|
||||
{"Owner privileges required","Изискват се привилегии на собственик"}.
|
||||
{"Packet relay is denied by service policy","Предаването на пакети е отказано от политиката на услугата"}.
|
||||
{"Packet","Пакет"}.
|
||||
{"Participant ID","ID на участник"}.
|
||||
{"Participant","Участник"}.
|
||||
{"Password Verification","Проверка на паролата"}.
|
||||
|
@ -375,7 +359,7 @@
|
|||
{"Password:","Парола:"}.
|
||||
{"Path to Dir","Път към директория"}.
|
||||
{"Path to File","Път до файл"}.
|
||||
{"Pending","В очакване"}.
|
||||
{"Payload semantic type information","Информация за семантичен тип полезен товар"}.
|
||||
{"Period: ","Период: "}.
|
||||
{"Persist items to storage","Запазване на елементите в хранилището"}.
|
||||
{"Persistent","Постоянен"}.
|
||||
|
@ -391,13 +375,14 @@
|
|||
{"Previous session PID has exited","Предишният PID на сесията е излязъл"}.
|
||||
{"Previous session PID is dead","PID от предишната сесия не съществува"}.
|
||||
{"Previous session timed out","Времето на предишната сесия изтече"}.
|
||||
{"private, ","частна, "}.
|
||||
{"Public","Публичен"}.
|
||||
{"Publish model","Модел за публикуване"}.
|
||||
{"Publish-Subscribe","Публикуване-Абониране"}.
|
||||
{"PubSub subscriber request","Заявка от абонат за PubSub"}.
|
||||
{"Purge all items when the relevant publisher goes offline","Изчисти всички елементи, когато съответният издател премине в режим офлайн"}.
|
||||
{"Purge all items when the relevant publisher goes offline","Изчисти всички елементи, когато съответният публикуващ премине в режим офлайн"}.
|
||||
{"Push record not found","Push записът не е намерен"}.
|
||||
{"Queries to the conference members are not allowed in this room","В тази зала не се допускат запитвания към членовете на конференцията"}.
|
||||
{"Queries to the conference members are not allowed in this room","В тази стая не се допускат запитвания към членовете на конференцията"}.
|
||||
{"Query to another users is forbidden","Заявка към други потребители е забранена"}.
|
||||
{"RAM and disc copy","Копие в RAM и на диск"}.
|
||||
{"RAM copy","Копие в RAM"}.
|
||||
|
@ -406,23 +391,18 @@
|
|||
{"Receive notification from direct child nodes only","Получаване на известия само от директни подчинени нодове"}.
|
||||
{"Receive notification of new items only","Получаване на известия само за нови елементи"}.
|
||||
{"Receive notification of new nodes only","Получаване на известия само за нови нодове"}.
|
||||
{"Recipient is not in the conference room","Получателят не е в конферентната зала"}.
|
||||
{"Recipient is not in the conference room","Получателят не е в конферентната стая"}.
|
||||
{"Register an XMPP account","Регистрирай XMPP акаунт"}.
|
||||
{"Registered Users","Регистрирани потребители"}.
|
||||
{"Registered Users:","Регистрирани потребители:"}.
|
||||
{"Register","Регистрирай"}.
|
||||
{"Remote copy","Отдалечено копие"}.
|
||||
{"Remove a hat from a user","Премахни шапка от потребител"}.
|
||||
{"Remove All Offline Messages","Премахни всички офлайн съобщения"}.
|
||||
{"Remove User","Премахни потребител"}.
|
||||
{"Remove","Премахни"}.
|
||||
{"Replaced by new connection","Заменен от нова връзка"}.
|
||||
{"Request has timed out","Времето за заявка изтече"}.
|
||||
{"Request is ignored","Заявката е игнорирано"}.
|
||||
{"Requested role","Заявена роля"}.
|
||||
{"Resources","Ресурси"}.
|
||||
{"Restart Service","Рестартирай услугата"}.
|
||||
{"Restart","Рестартирай"}.
|
||||
{"Restore Backup from File at ","Възстанови резервно копие от файл в "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Възстановяване на бинарно копие след следващото рестартиране на ejabberd (изисква по-малко памет):"}.
|
||||
{"Restore binary backup immediately:","Възстанови незабавно двоично копие:"}.
|
||||
|
@ -434,23 +414,19 @@
|
|||
{"Room Configuration","Конфигурация на стаята"}.
|
||||
{"Room creation is denied by service policy","Създаването на стая е отказано поради политика на услугата"}.
|
||||
{"Room description","Описание на стаята"}.
|
||||
{"Room Occupants","Обитатели на стаята"}.
|
||||
{"Room Occupants","Участници в стаята"}.
|
||||
{"Room terminates","Стаята се прекратява"}.
|
||||
{"Room title","Заглавие на стаята"}.
|
||||
{"Roster groups allowed to subscribe","Групи от списъци с контакти, на които е разрешено да се абонират"}.
|
||||
{"Roster of ~ts","Списък с контакти на ~ts"}.
|
||||
{"Roster size","Размер на списъка с контакти"}.
|
||||
{"Roster:","Списък с контакти:"}.
|
||||
{"RPC Call Error","Грешка при RPC повикване"}.
|
||||
{"Running Nodes","Работещи нодове"}.
|
||||
{"~s invites you to the room ~s","~s ви кани в стая ~s"}.
|
||||
{"Saturday","Събота"}.
|
||||
{"Script check","Проверка на скрипт"}.
|
||||
{"Search from the date","Търси от дата"}.
|
||||
{"Search Results for ","Резултати от търсенето за "}.
|
||||
{"Search the text","Търси текста"}.
|
||||
{"Search until the date","Търси до дата"}.
|
||||
{"Search users in ","Търси потребители в "}.
|
||||
{"Select All","Избери всички"}.
|
||||
{"Send announcement to all online users on all hosts","Изпрати съобщение до всички онлайн потребители на всички хостове"}.
|
||||
{"Send announcement to all online users","Изпрати съобщение до всички онлайн потребители"}.
|
||||
{"Send announcement to all users on all hosts","Изпрати съобщение до всички потребители на всички хостове"}.
|
||||
|
@ -463,6 +439,7 @@
|
|||
{"Set message of the day on all hosts and send to online users","Задавай съобщение на деня на всички хостове и изпрати на онлайн потребителите"}.
|
||||
{"Shared Roster Groups","Споделени групи от списъци с контакти"}.
|
||||
{"Show Integral Table","Покажи интегрална таблица"}.
|
||||
{"Show Occupants Join/Leave","Покажи участници Влязъл/Напускнал"}.
|
||||
{"Show Ordinary Table","Покажи обикновена таблица"}.
|
||||
{"Shut Down Service","Изключи услугата"}.
|
||||
{"SOCKS5 Bytestreams","SOCKS5 байтови потоци"}.
|
||||
|
@ -470,33 +447,27 @@
|
|||
{"Sources Specs:","Спецификации на източниците:"}.
|
||||
{"Specify the access model","Задай модела за достъп"}.
|
||||
{"Specify the event message type","Задай типа на съобщението за събитие"}.
|
||||
{"Specify the publisher model","Задай модела на издателя"}.
|
||||
{"Specify the publisher model","Задайте модела на публикуващия"}.
|
||||
{"Stanza id is not valid","Невалидно ID на строфата"}.
|
||||
{"Stanza ID","ID на строфа"}.
|
||||
{"Statically specify a replyto of the node owner(s)","Статично задаване на replyto на собственика(ците) на нода"}.
|
||||
{"Statistics of ~p","Статистики на ~p"}.
|
||||
{"Statistics","Статистики"}.
|
||||
{"Stopped Nodes","Спрени нодове"}.
|
||||
{"Stop","Спри"}.
|
||||
{"Storage Type","Тип хранилище"}.
|
||||
{"Store binary backup:","Запази бинарен архив:"}.
|
||||
{"Store plain text backup:","Запази архив като обикновен текст:"}.
|
||||
{"Stream management is already enabled","Управлението на потока вече е активирано"}.
|
||||
{"Stream management is not enabled","Управлението на потока не е активирано"}.
|
||||
{"Subject","Тема"}.
|
||||
{"Submitted","Изпратено"}.
|
||||
{"Submit","Изпрати"}.
|
||||
{"Subscriber Address","Адрес на абоната"}.
|
||||
{"Subscribers may publish","Абонатите могат да публикуват"}.
|
||||
{"Subscription requests must be approved and only subscribers may retrieve items","Заявките за абонамент трябва да бъдат одобрени и само абонатите могат да извличат елементи"}.
|
||||
{"Subscriptions are not allowed","Абонаментите не са разрешени"}.
|
||||
{"Subscription","Абонамент"}.
|
||||
{"Sunday","Неделя"}.
|
||||
{"Text associated with a picture","Текст, свързан със снимка"}.
|
||||
{"Text associated with a sound","Текст, свързан със звук"}.
|
||||
{"Text associated with a video","Текст, свързан с видео"}.
|
||||
{"Text associated with speech","Текст, свързан с реч"}.
|
||||
{"That nickname is already in use by another occupant","Този псевдоним вече се използва от друг потребител"}.
|
||||
{"That nickname is already in use by another occupant","Този псевдоним вече се използва от друг участник"}.
|
||||
{"That nickname is registered by another person","Този псевдоним е регистриран от друго лице"}.
|
||||
{"The account already exists","Профилът вече съществува"}.
|
||||
{"The account was not unregistered","Профилът не е дерегистриран"}.
|
||||
|
@ -504,6 +475,8 @@
|
|||
{"The CAPTCHA is valid.","CAPTCHA предизвикателството е валидно."}.
|
||||
{"The CAPTCHA verification has failed","Проверката на CAPTCHA предизвикателството е неуспешна"}.
|
||||
{"The captcha you entered is wrong","Въведеният captcha код е грешен"}.
|
||||
{"The child nodes (leaf or collection) associated with a collection","Дъщерните нодове (листови или колекция), свързани с колекция"}.
|
||||
{"The collections with which a node is affiliated","Колекциите, с които даден нод е свързан"}.
|
||||
{"The DateTime at which a leased subscription will end or has ended","Датата и часът, на който абонамент ще приключи или е приключил"}.
|
||||
{"The datetime when the node was created","Датата, когато нодът е бил създаден"}.
|
||||
{"The default language of the node","Езикът по подразбиране на нода"}.
|
||||
|
@ -514,16 +487,19 @@
|
|||
{"The JIDs of those with an affiliation of publisher","JID-та на лица с принадлежност към публикуващи"}.
|
||||
{"The list of all online users","Списък на всички онлайн потребители"}.
|
||||
{"The list of all users","Списък на всички потребители"}.
|
||||
{"The list of JIDs that may associate leaf nodes with a collection","Списъкът с JID, които могат да асоциират листови нодове с колекция"}.
|
||||
{"The maximum number of child nodes that can be associated with a collection, or `max` for no specific limit other than a server imposed maximum","Максимален брой подчинени нодове, които могат да бъдат свързани с колекция, или `max` за липса на конкретен лимит, различен от наложения от сървъра максимум"}.
|
||||
{"The minimum number of milliseconds between sending any two notification digests","Минималният брой милисекунди между изпращането на две извадки на известия"}.
|
||||
{"The name of the node","Името на нода"}.
|
||||
{"The node is a collection node","Нодът е от тип колекция"}.
|
||||
{"The node is a leaf node (default)","Нодът е листов (по подразбиране)"}.
|
||||
{"The NodeID of the relevant node","NodeID на съответния нод"}.
|
||||
{"The number of pending incoming presence subscription requests","Броят на чакащите входящи заявки за абонамент за присъствие"}.
|
||||
{"The number of subscribers to the node","Бротят абонати на нода"}.
|
||||
{"The number of unread or undelivered messages","Броят непрочетени или недоставени съобщения"}.
|
||||
{"The password contains unacceptable characters","Паролата съдържа недопустими символи"}.
|
||||
{"The password is too weak","Паролата е твърде слаба"}.
|
||||
{"the password is","паролата е"}.
|
||||
{"The password of your XMPP account was successfully changed.","Паролата на вашия XMPP профил беше успешно променена."}.
|
||||
{"The password was not changed","Паролата не е променена"}.
|
||||
{"The passwords are different","Паролите са различни"}.
|
||||
|
@ -534,6 +510,116 @@
|
|||
{"The semantic type information of data in the node, usually specified by the namespace of the payload (if any)","Информацията за семантичния тип данни на нода, обикновено зададена от пространството на имената на прикачените данни (ако има такива)"}.
|
||||
{"The sender of the last received message","Подателят на последното получено съобщение"}.
|
||||
{"The stanza MUST contain only one <active/> element, one <default/> element, or one <list/> element","Строфата ТРЯБВА да съдържа само един <active/> елемент, един <default/> елемент или един <list/> елемент"}.
|
||||
{"The subscription identifier associated with the subscription request","Идентификаторът на абонамента, свързан със заявката за абонамент"}.
|
||||
{"The URL of an XSL transformation which can be applied to payloads in order to generate an appropriate message body element.","URL адрес на XSL трансформацията, която може да се приложи към прикачените данни, за да се генерира подходящ елемент от тялото на съобщението."}.
|
||||
{"The URL of an XSL transformation which can be applied to the payload format in order to generate a valid Data Forms result that the client could display using a generic Data Forms rendering engine","URL адрес на XSL трансформацията, която може да се приложи към формата на прикачените данни, за да се генерира валиден резултат от Data Forms, който клиентът може да покаже с помощта на общ механизъм за визуализация на Data Forms."}.
|
||||
{"View Roster","Преглед на списъка с контакти"}.
|
||||
{"The URL of an XSL transformation which can be applied to the payload format in order to generate a valid Data Forms result that the client could display using a generic Data Forms rendering engine","URL адрес на XSL трансформацията, която може да се приложи към формата на прикачените данни, за да се генерира валиден резултат от Data Forms, който клиентът може да покаже с помощта на общ механизъм за визуализация на Data Forms"}.
|
||||
{"There was an error changing the password: ","Възникна грешка при промяна на паролата: "}.
|
||||
{"There was an error creating the account: ","Възникна грешка при създаването на профила: "}.
|
||||
{"There was an error deleting the account: ","Възникна грешка при изтриването на профила: "}.
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Не е чувствително към регистъра (главни и малки букви): \"macbeth\"е същото като \"MacBeth\"и \"Macbeth\"."}.
|
||||
{"This page allows to register an XMPP account in this XMPP server. Your JID (Jabber ID) will be of the form: username@server. Please read carefully the instructions to fill correctly the fields.","Тази страница позволява регистриране на XMPP профил на този сървър. Вашият JID (Jabber ID) ще бъде във формата: username@server. Моля, прочетете внимателно инструкциите, за да попълните правилно полетата."}.
|
||||
{"This page allows to unregister an XMPP account in this XMPP server.","Тази страница позволява премахване на XMPP профил от този сървър."}.
|
||||
{"This room is not anonymous","Тази стая не е анонимна"}.
|
||||
{"This service can not process the address: ~s","Тази услуга не може да обработи адреса: ~s"}.
|
||||
{"Thursday","Четвъртък"}.
|
||||
{"Time delay","Закъснение"}.
|
||||
{"Timed out waiting for stream resumption","Времето за изчакване за възобновяване на потока изтече"}.
|
||||
{"To register, visit ~s","За да се регистрирате, посетете ~s"}.
|
||||
{"To ~ts","До ~ts"}.
|
||||
{"Token TTL","Токен TTL"}.
|
||||
{"Too many active bytestreams","Твърде много активни \"bytestreams\" потоци"}.
|
||||
{"Too many CAPTCHA requests","Твърде много CAPTCHA заявки"}.
|
||||
{"Too many child elements","Твърде много дъщерни елементи"}.
|
||||
{"Too many <item/> elements","Твърде много <item/> елементи"}.
|
||||
{"Too many <list/> elements","Твърде много <list/> елементи"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Твърде много (~p) неуспешни опити за удостоверявания от този IP адрес (~s). Адресът ще бъде деблокиран в ~s UTC"}.
|
||||
{"Too many receiver fields were specified","Посочени са твърде много полета за получател"}.
|
||||
{"Too many unacked stanzas","Твърде много непотвърдени строфи"}.
|
||||
{"Too many users in this conference","Твърде много потребители в тази конференция"}.
|
||||
{"Traffic rate limit is exceeded","Лимитът за трафик е надвишен"}.
|
||||
{"~ts's MAM Archive","~ts's MAM архив"}.
|
||||
{"~ts's Offline Messages Queue","Офлайн съобщения на ~ts"}.
|
||||
{"Tuesday","Вторник"}.
|
||||
{"Unable to generate a CAPTCHA","Не може да се генерира CAPTCHA"}.
|
||||
{"Unable to register route on existing local domain","Не може да се регистрира маршрут в съществуващ локален домейн"}.
|
||||
{"Unauthorized","Неоторизиран"}.
|
||||
{"Unexpected action","Неочаквано действие"}.
|
||||
{"Unexpected error condition: ~p","Неочаквано състояние на грешка: ~p"}.
|
||||
{"Uninstall","Деинсталирай"}.
|
||||
{"Unregister an XMPP account","Дерегистрирай XMPP профил"}.
|
||||
{"Unregister","Дерегистрирай"}.
|
||||
{"Unsupported <index/> element","Неподдържан елемент <index/>"}.
|
||||
{"Unsupported version","Неподдържана версия"}.
|
||||
{"Update message of the day (don't send)","Актуализирай съобщението на деня (не изпращай)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Актуализирай съобщението на деня на всички хостове (не изпращай)"}.
|
||||
{"Update specs to get modules source, then install desired ones.","Актуализирайте спецификациите, за да получите източник на модули, след което инсталирайте желаните."}.
|
||||
{"Update Specs","Актуализирай спецификациите"}.
|
||||
{"Updating the vCard is not supported by the vCard storage backend","Актуализирането на vCard не се поддържа от настройката за съхранение на vCard"}.
|
||||
{"Upgrade","Обнови"}.
|
||||
{"URL for Archived Discussion Logs","URL адрес за дневници на архивирани дискусии"}.
|
||||
{"User already exists","Потребителят вече съществува"}.
|
||||
{"User (jid)","Потребител (jid)"}.
|
||||
{"User JID","Потребител JID"}.
|
||||
{"User Management","Управление на потребители"}.
|
||||
{"User not allowed to perform an IQ set on another user's vCard.","Потребителят не може да извършва IQ настрийка на vCard на друг потребител."}.
|
||||
{"User removed","Потребителят е премахнат"}.
|
||||
{"User session not found","Потребителската сесия не е намерена"}.
|
||||
{"User session terminated","Потребителската сесия е прекратена"}.
|
||||
{"User ~ts","Потребител ~ts"}.
|
||||
{"Username:","Потребителско име:"}.
|
||||
{"Users are not allowed to register accounts so quickly","Не е разрешено потребителите да регистрират профили толкова бързо"}.
|
||||
{"Users Last Activity","Последна активност на потребителите"}.
|
||||
{"Users","Потребители"}.
|
||||
{"User","Потребител"}.
|
||||
{"Value 'get' of 'type' attribute is not allowed","Стойността 'get' на атрибут 'type' не е разрешена"}.
|
||||
{"Value of '~s' should be boolean","Стойността на '~s' трябва да е булева"}.
|
||||
{"Value of '~s' should be datetime string","Стойността на '~s' трябва да бъде низ за дата и час"}.
|
||||
{"Value of '~s' should be integer","Стойността на '~s' трябва да бъде цяло число"}.
|
||||
{"Value 'set' of 'type' attribute is not allowed","Стойността 'set' на атрибут 'type' не е разрешена"}.
|
||||
{"vCard User Search","vCard търсене на потребител"}.
|
||||
{"View joined MIX channels","Вижте присъединените MIX канали"}.
|
||||
{"Virtual Hosts","Виртуални хостове"}.
|
||||
{"Visitors are not allowed to change their nicknames in this room","Посетителите нямат право да променят псевдонимите си в тази стая"}.
|
||||
{"Visitors are not allowed to send messages to all occupants","На посетителите не е разрешено да изпращат съобщения до всички участници"}.
|
||||
{"Visitor","Посетител"}.
|
||||
{"Voice requests are disabled in this conference","Гласовите обаждания са деактивирани в тази конференция"}.
|
||||
{"Voice request","Заявка за гласово обаждане"}.
|
||||
{"Wednesday","Сряда"}.
|
||||
{"When a new subscription is processed and whenever a subscriber comes online","Когато се обработва нов абонамент и всеки път, когато абонат се появи онлайн"}.
|
||||
{"When a new subscription is processed","Когато се обработва нов абонамент"}.
|
||||
{"When to send the last published item","Кога да изпратите последния публикуван елемент"}.
|
||||
{"Whether an entity wants to receive an XMPP message body in addition to the payload format","Дали даден обект иска да получи тяло на XMPP съобщение в допълнение към формата на полезен товар"}.
|
||||
{"Whether an entity wants to receive digests (aggregations) of notifications or all notifications individually","Дали даден обект желае да получава обобщения за известия или всички известия поотделно"}.
|
||||
{"Whether an entity wants to receive or disable notifications","Дали даден обект желае да получава или деактивира известия"}.
|
||||
{"Whether owners or publisher should receive replies to items","Дали собствениците или публикуващите трябва да получават отговори на елементи"}.
|
||||
{"Whether the node is a leaf (default) or a collection","Дали нодът е листов (по подразбиране) или колекция"}.
|
||||
{"Whether to allow subscriptions","Дали да се разрешат абонаменти"}.
|
||||
{"Whether to make all subscriptions temporary, based on subscriber presence","Дали всички абонаменти да бъдат временни въз основа на присъствието на абонат"}.
|
||||
{"Whether to notify owners about new subscribers and unsubscribes","Дали да се уведомяват собствениците за нови абонати и откази от абонамент"}.
|
||||
{"Who can send private messages","Кой може да изпраща лични съобщения"}.
|
||||
{"Who may associate leaf nodes with a collection","Кой може да асоциира листови нодове с колекция"}.
|
||||
{"Wrong parameters in the web formulary","Грешни параметри в уеб формуляра"}.
|
||||
{"Wrong xmlns","Грешен xmlns"}.
|
||||
{"XMPP Account Registration","Регистриране на XMPP профил"}.
|
||||
{"XMPP Domains","XMPP домейни"}.
|
||||
{"XMPP Show Value of Away","XMPP покажи стойност на Отсъства"}.
|
||||
{"XMPP Show Value of Chat","XMPP покажи стойност на Чат"}.
|
||||
{"XMPP Show Value of DND (Do Not Disturb)","XMPP покажи стойност на DND (Не ме безпокой)"}.
|
||||
{"XMPP Show Value of XA (Extended Away)","XMPP покажи стойност на Продължително отсъствие"}.
|
||||
{"XMPP URI of Associated Publish-Subscribe Node","XMPP URI на асоцииран Publish-Subscribe нод"}.
|
||||
{"You are being removed from the room because of a system shutdown","Премахнати сте от стаята поради изключване на системата"}.
|
||||
{"You are not allowed to send private messages","Нямате право да изпращате лични съобщения"}.
|
||||
{"You are not joined to the channel","Не сте присъединени към канала"}.
|
||||
{"You can later change your password using an XMPP client.","По-късно можете да промените паролата си с помощта на XMPP клиент."}.
|
||||
{"You have been banned from this room","Достъпът ви до тази стая е забранен"}.
|
||||
{"You have joined too many conferences","Присъединили сте се към твърде много конференции"}.
|
||||
{"You must fill in field \"Nickname\" in the form","Трябва да попълните полето \"Псевдоним\" във формата"}.
|
||||
{"You need a client that supports x:data and CAPTCHA to register","За да се регистрирате Ви е нужен клиент, който поддържа x:data и CAPTCHA"}.
|
||||
{"You need a client that supports x:data to register the nickname","За да регистрирате псевдонима, Ви е необходим клиент, който поддържа x:data"}.
|
||||
{"You need an x:data capable client to search","За да търсите, Ви е нужен клиент, който поддържа x:data"}.
|
||||
{"Your active privacy list has denied the routing of this stanza.","Вашият активен списък за поверителност отказа маршрутизирането на тази строфа."}.
|
||||
{"Your contact offline message queue is full. The message has been discarded.","Достигнат е максималният брой офлайн съобщения за вашия контакт. Съобщението е отхвърлено."}.
|
||||
{"Your subscription request and/or messages to ~s have been blocked. To unblock your subscription request, visit ~s","Вашата заявка за абонамент и/или съобщения до ~s са блокирани. За да отблокирате заявката си за абонамент, посетете ~s"}.
|
||||
{"Your XMPP account was successfully registered.","Вашият XMPP акаунт, беше регистриран успешно."}.
|
||||
{"Your XMPP account was successfully unregistered.","Вашият XMPP акаунт, беше успешно дерегистриран."}.
|
||||
{"You're not allowed to create nodes","Нямате право да създавате нодове"}.
|
||||
|
|
|
@ -16,15 +16,13 @@
|
|||
{"Account doesn't exist","El compte no existeix"}.
|
||||
{"Action on user","Acció en l'usuari"}.
|
||||
{"Add a hat to a user","Afegir un barret a un usuari"}.
|
||||
{"Add Jabber ID","Afegir Jabber ID"}.
|
||||
{"Add New","Afegir nou"}.
|
||||
{"Add User","Afegir usuari"}.
|
||||
{"Administration of ","Administració de "}.
|
||||
{"Administration","Administració"}.
|
||||
{"Administrator privileges required","Es necessita tenir privilegis d'administrador"}.
|
||||
{"All activity","Tota l'activitat"}.
|
||||
{"All Users","Tots els usuaris"}.
|
||||
{"Allow subscription","Permetre subscripcions"}.
|
||||
{"Allow subscription","Permetre subscripció"}.
|
||||
{"Allow this Jabber ID to subscribe to this pubsub node?","Permetre que aquesta Jabber ID es puga subscriure a aquest node pubsub?"}.
|
||||
{"Allow this person to register with the room?","Permetre a esta persona registrar-se a la sala?"}.
|
||||
{"Allow users to change the subject","Permetre que els usuaris canviïn el tema"}.
|
||||
|
@ -48,8 +46,9 @@
|
|||
{"Anyone with a presence subscription of both or from may subscribe and retrieve items","Qualsevol amb una subscripció de presencia de 'both' o 'from' pot subscriure's i publicar elements"}.
|
||||
{"Anyone with Voice","Qualsevol amb Veu"}.
|
||||
{"Anyone","Qualsevol"}.
|
||||
{"Apparently your account has no administration rights in this server. Please check how to grant admin rights in: https://docs.ejabberd.im/admin/installation/#administration-account","Aparentment el teu compte no te privilegis d'administrador en este servidor. Per favor consulta com obtindre privilegis d'administrador en: https://docs.ejabberd.im/admin/installation/#administration-account"}.
|
||||
{"API Commands","Comandaments API"}.
|
||||
{"April","Abril"}.
|
||||
{"Arguments","Arguments"}.
|
||||
{"Attribute 'channel' is required for this request","L'atribut 'channel' és necessari per a aquesta petició"}.
|
||||
{"Attribute 'id' is mandatory for MIX messages","L'atribut 'id' es necessari per a missatges MIX"}.
|
||||
{"Attribute 'jid' is not allowed here","L'atribut 'jid' no està permès ací"}.
|
||||
|
@ -89,34 +88,25 @@
|
|||
{"Choose whether to approve this entity's subscription.","Tria si aproves aquesta entitat de subscripció."}.
|
||||
{"City","Ciutat"}.
|
||||
{"Client acknowledged more stanzas than sent by server","El client ha reconegut més paquets dels que ha enviat el servidor"}.
|
||||
{"Clustering","Clustering"}.
|
||||
{"Commands","Comandaments"}.
|
||||
{"Conference room does not exist","La sala de conferències no existeix"}.
|
||||
{"Configuration of room ~s","Configuració de la sala ~s"}.
|
||||
{"Configuration","Configuració"}.
|
||||
{"Connected Resources:","Recursos connectats:"}.
|
||||
{"Contact Addresses (normally, room owner or owners)","Adreces de contacte (normalment, propietaris de la sala)"}.
|
||||
{"Contrib Modules","Mòduls Contrib"}.
|
||||
{"Country","Pais"}.
|
||||
{"CPU Time:","Temps de CPU:"}.
|
||||
{"Current Discussion Topic","Assumpte de discussió actual"}.
|
||||
{"Database failure","Error a la base de dades"}.
|
||||
{"Database Tables at ~p","Taules de la base de dades en ~p"}.
|
||||
{"Database Tables Configuration at ","Configuració de la base de dades en "}.
|
||||
{"Database","Base de dades"}.
|
||||
{"December","Decembre"}.
|
||||
{"Default users as participants","Els usuaris són participants per defecte"}.
|
||||
{"Delete content","Eliminar contingut"}.
|
||||
{"Delete message of the day on all hosts","Elimina el missatge del dis de tots els hosts"}.
|
||||
{"Delete message of the day","Eliminar el missatge del dia"}.
|
||||
{"Delete Selected","Eliminar els seleccionats"}.
|
||||
{"Delete table","Eliminar taula"}.
|
||||
{"Delete User","Eliminar Usuari"}.
|
||||
{"Deliver event notifications","Entrega de notificacions d'events"}.
|
||||
{"Deliver payloads with event notifications","Enviar payloads junt a les notificacions d'events"}.
|
||||
{"Description:","Descripció:"}.
|
||||
{"Disc only copy","Còpia sols en disc"}.
|
||||
{"'Displayed groups' not added (they do not exist!): ","'Mostrats' no afegits (no existeixen!): "}.
|
||||
{"Displayed:","Mostrats:"}.
|
||||
{"Don't tell your password to anybody, not even the administrators of the XMPP server.","No li donis la teva contrasenya a ningú, ni tan sols als administradors del servidor XMPP."}.
|
||||
{"Dump Backup to Text File at ","Exporta còpia de seguretat a fitxer de text en "}.
|
||||
{"Dump to Text File","Exportar a fitxer de text"}.
|
||||
|
@ -132,7 +122,6 @@
|
|||
{"ejabberd vCard module","ejabberd mòdul vCard"}.
|
||||
{"ejabberd Web Admin","ejabberd Web d'administració"}.
|
||||
{"ejabberd","ejabberd"}.
|
||||
{"Elements","Elements"}.
|
||||
{"Email Address","Adreça de correu"}.
|
||||
{"Email","Correu"}.
|
||||
{"Enable hats","Activar barrets"}.
|
||||
|
@ -147,7 +136,6 @@
|
|||
{"Enter path to text file","Introdueix ruta al fitxer de text"}.
|
||||
{"Enter the text you see","Introdueix el text que veus"}.
|
||||
{"Erlang XMPP Server","Servidor Erlang XMPP"}.
|
||||
{"Error","Error"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Excloure Jabber IDs de la comprovació CAPTCHA"}.
|
||||
{"Export all tables as SQL queries to a file:","Exporta totes les taules a un fitxer SQL:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Exportar dades de tots els usuaris del servidor a arxius PIEFXIS (XEP-0227):"}.
|
||||
|
@ -166,7 +154,6 @@
|
|||
{"Fill in the form to search for any matching XMPP User","Emplena camps per a buscar usuaris XMPP que concorden"}.
|
||||
{"Friday","Divendres"}.
|
||||
{"From ~ts","De ~ts"}.
|
||||
{"From","De"}.
|
||||
{"Full List of Room Admins","Llista completa de administradors de la sala"}.
|
||||
{"Full List of Room Owners","Llista completa de propietaris de la sala"}.
|
||||
{"Full Name","Nom complet"}.
|
||||
|
@ -176,23 +163,19 @@
|
|||
{"Get Number of Registered Users","Obtenir Número d'Usuaris Registrats"}.
|
||||
{"Get Pending","Obtenir Pendents"}.
|
||||
{"Get User Last Login Time","Obtenir la última connexió d'Usuari"}.
|
||||
{"Get User Password","Obtenir Contrasenya d'usuari"}.
|
||||
{"Get User Statistics","Obtenir Estadístiques d'Usuari"}.
|
||||
{"Given Name","Nom propi"}.
|
||||
{"Grant voice to this person?","Concedir veu a aquesta persona?"}.
|
||||
{"Group","Grup"}.
|
||||
{"Groups that will be displayed to the members","Grups que seran mostrats als membres"}.
|
||||
{"Groups","Grups"}.
|
||||
{"has been banned","ha sigut bloquejat"}.
|
||||
{"has been kicked because of a system shutdown","ha sigut expulsat perquè el sistema va a apagar-se"}.
|
||||
{"has been kicked because of an affiliation change","ha sigut expulsat a causa d'un canvi d'afiliació"}.
|
||||
{"has been kicked because the room has been changed to members-only","ha sigut expulsat perquè la sala ara és només per a membres"}.
|
||||
{"has been kicked","ha sigut expulsat"}.
|
||||
{"Hash of the vCard-temp avatar of this room","Hash del avatar a vCard-temp d'esta sala"}.
|
||||
{"Hat title","Títol del barret"}.
|
||||
{"Hat URI","URI del barret"}.
|
||||
{"Hats limit exceeded","El límit de tràfic ha sigut sobrepassat"}.
|
||||
{"Host unknown","Host desconegut"}.
|
||||
{"Host","Host"}.
|
||||
{"HTTP File Upload","HTTP File Upload"}.
|
||||
{"Idle connection","Connexió sense us"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Si no veus la imatge CAPTCHA açí, visita la pàgina web."}.
|
||||
|
@ -206,7 +189,6 @@
|
|||
{"Import Users From jabberd14 Spool Files","Importar usuaris de jabberd14"}.
|
||||
{"Improper domain part of 'from' attribute","La part de domini de l'atribut 'from' es impròpia"}.
|
||||
{"Improper message type","Tipus de missatge incorrecte"}.
|
||||
{"Incoming s2s Connections:","Connexions s2s d'entrada:"}.
|
||||
{"Incorrect CAPTCHA submit","El CAPTCHA proporcionat és incorrecte"}.
|
||||
{"Incorrect data form","El formulari de dades és incorrecte"}.
|
||||
{"Incorrect password","Contrasenya incorrecta"}.
|
||||
|
@ -236,7 +218,6 @@
|
|||
{"July","Juliol"}.
|
||||
{"June","Juny"}.
|
||||
{"Just created","Creació recent"}.
|
||||
{"Label:","Etiqueta:"}.
|
||||
{"Last Activity","Última activitat"}.
|
||||
{"Last login","Últim login"}.
|
||||
{"Last message","Últim missatge"}.
|
||||
|
@ -244,11 +225,10 @@
|
|||
{"Last year","Últim any"}.
|
||||
{"Least significant bits of SHA-256 hash of text should equal hexadecimal label","Els bits menys significants del hash SHA-256 del text deurien ser iguals a l'etiqueta hexadecimal"}.
|
||||
{"leaves the room","surt de la sala"}.
|
||||
{"List of rooms","Llista de sales"}.
|
||||
{"List of users with hats","Llista d'usuaris amb barrets"}.
|
||||
{"List users with hats","Llista d'usuaris amb barrets"}.
|
||||
{"Logged Out","Desconectat"}.
|
||||
{"Logging","Registre"}.
|
||||
{"Low level update script","Script d'actualització de baix nivell"}.
|
||||
{"Make participants list public","Crear una llista de participants pública"}.
|
||||
{"Make room CAPTCHA protected","Crear una sala protegida per CAPTCHA"}.
|
||||
{"Make room members-only","Crear una sala només per a membres"}.
|
||||
|
@ -266,11 +246,8 @@
|
|||
{"Maximum number of items to persist","Número màxim d'elements que persistixen"}.
|
||||
{"Maximum Number of Occupants","Número màxim d'ocupants"}.
|
||||
{"May","Maig"}.
|
||||
{"Members not added (inexistent vhost!): ","Membres no afegits (perquè el vhost no existeix): "}.
|
||||
{"Membership is required to enter this room","Necessites ser membre d'aquesta sala per a poder entrar"}.
|
||||
{"Members:","Membre:"}.
|
||||
{"Memorize your password, or write it in a paper placed in a safe place. In XMPP there isn't an automated way to recover your password if you forget it.","Memoritza la teva contrasenya, o escriu-la en un paper guardat a un lloc segur. A XMPP no hi ha una forma automatitzada de recuperar la teva contrasenya si la oblides."}.
|
||||
{"Memory","Memòria"}.
|
||||
{"Mere Availability in XMPP (No Show Value)","Simplement disponibilitat a XMPP (sense valor de 'show')"}.
|
||||
{"Message body","Missatge"}.
|
||||
{"Message not found in forwarded payload","Missatge no trobat al contingut reenviat"}.
|
||||
|
@ -282,15 +259,12 @@
|
|||
{"Moderator privileges required","Es necessita tenir privilegis de moderador"}.
|
||||
{"Moderator","Moderador"}.
|
||||
{"Moderators Only","Només moderadors"}.
|
||||
{"Modified modules","Mòduls modificats"}.
|
||||
{"Module failed to handle the query","El modul ha fallat al gestionar la petició"}.
|
||||
{"Monday","Dilluns"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multiple <item/> elements are not allowed by RFC6121","No estan permesos múltiples elements <item/> per RFC6121"}.
|
||||
{"Multi-User Chat","Multi-Usuari Converses"}.
|
||||
{"Name in the rosters where this group will be displayed","Nom a les llistes de contactes on es mostrarà aquest grup"}.
|
||||
{"Name","Nom"}.
|
||||
{"Name:","Nom:"}.
|
||||
{"Natural Language for Room Discussions","Llengua natural per a les discussions a les sales"}.
|
||||
{"Natural-Language Room Name","Nom de la sala a la seua llengua natural"}.
|
||||
{"Neither 'jid' nor 'nick' attribute found","No s'han trobat els atributs 'jid' ni 'nick'"}.
|
||||
|
@ -355,14 +329,10 @@
|
|||
{"Occupants are allowed to query others","Els ocupants poden enviar peticions a altres"}.
|
||||
{"Occupants May Change the Subject","Els ocupants poden canviar el Tema"}.
|
||||
{"October","Octubre"}.
|
||||
{"Offline Messages:","Missatges fora de línia:"}.
|
||||
{"Offline Messages","Missatges offline"}.
|
||||
{"OK","Acceptar"}.
|
||||
{"Old Password:","Antiga contrasenya:"}.
|
||||
{"Online Users","Usuaris conectats"}.
|
||||
{"Online Users:","Usuaris en línia:"}.
|
||||
{"Online","Connectat"}.
|
||||
{"Only admins can see this","Només els administradors poden veure esto"}.
|
||||
{"Only collection node owners may associate leaf nodes with the collection","Només els propietaris de la col·lecció de nodes poden associar nodes fulla amb la col·lecció"}.
|
||||
{"Only deliver notifications to available users","Sols enviar notificacions als usuaris disponibles"}.
|
||||
{"Only <enable/> or <disable/> tags are allowed","Només es permeten etiquetes <enable/> o <disable/>"}.
|
||||
|
@ -381,11 +351,9 @@
|
|||
{"Organization Name","Nom de la organizació"}.
|
||||
{"Organization Unit","Unitat de la organizació"}.
|
||||
{"Other Modules Available:","Altres mòduls disponibles:"}.
|
||||
{"Outgoing s2s Connections:","Connexions d'eixida s2s:"}.
|
||||
{"Outgoing s2s Connections","Connexions s2s d'eixida"}.
|
||||
{"Owner privileges required","Es requerixen privilegis de propietari de la sala"}.
|
||||
{"Packet relay is denied by service policy","S'ha denegat el reenviament del paquet per política del servei"}.
|
||||
{"Packet","Paquet"}.
|
||||
{"Participant ID","ID del Participant"}.
|
||||
{"Participant","Participant"}.
|
||||
{"Password Verification","Verificació de la Contrasenya"}.
|
||||
|
@ -395,7 +363,6 @@
|
|||
{"Path to Dir","Ruta al directori"}.
|
||||
{"Path to File","Ruta al fitxer"}.
|
||||
{"Payload semantic type information","Informació sobre el tipus semàntic de la carrega útil"}.
|
||||
{"Pending","Pendent"}.
|
||||
{"Period: ","Període: "}.
|
||||
{"Persist items to storage","Persistir elements al guardar"}.
|
||||
{"Persistent","Persistent"}.
|
||||
|
@ -429,26 +396,22 @@
|
|||
{"Receive notification of new nodes only","Rebre notificació només de nous nodes"}.
|
||||
{"Recipient is not in the conference room","El receptor no està en la sala de conferència"}.
|
||||
{"Register an XMPP account","Registrar un compte XMPP"}.
|
||||
{"Registered Users","Usuaris registrats"}.
|
||||
{"Registered Users:","Usuaris registrats:"}.
|
||||
{"Register","Registrar"}.
|
||||
{"Remote copy","Còpia remota"}.
|
||||
{"Remove a hat from a user","Eliminar un barret d'un usuari"}.
|
||||
{"Remove All Offline Messages","Eliminar tots els missatges offline"}.
|
||||
{"Remove User","Eliminar usuari"}.
|
||||
{"Remove","Borrar"}.
|
||||
{"Replaced by new connection","Reemplaçat per una nova connexió"}.
|
||||
{"Request has timed out","La petició ha caducat"}.
|
||||
{"Request is ignored","La petició ha sigut ignorada"}.
|
||||
{"Requested role","Rol sol·licitat"}.
|
||||
{"Resources","Recursos"}.
|
||||
{"Restart Service","Reiniciar el Servei"}.
|
||||
{"Restart","Reiniciar"}.
|
||||
{"Restore Backup from File at ","Restaura còpia de seguretat des del fitxer en "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Restaurar una còpia de seguretat binària després de reiniciar el ejabberd (requereix menys memòria:"}.
|
||||
{"Restore binary backup immediately:","Restaurar una còpia de seguretat binària ara mateix:"}.
|
||||
{"Restore plain text backup immediately:","Restaurar una còpia de seguretat en format de text pla ara mateix:"}.
|
||||
{"Restore","Restaurar"}.
|
||||
{"Result","Resultat"}.
|
||||
{"Roles and Affiliations that May Retrieve Member List","Rols i Afiliacions que poden recuperar la llista de membres"}.
|
||||
{"Roles for which Presence is Broadcasted","Rols per als que sí se difon la seua presencia"}.
|
||||
{"Roles that May Send Private Messages","Rols que poden enviar missatges privats"}.
|
||||
|
@ -459,20 +422,15 @@
|
|||
{"Room terminates","La sala està terminant"}.
|
||||
{"Room title","Títol de la sala"}.
|
||||
{"Roster groups allowed to subscribe","Llista de grups que tenen permés subscriures"}.
|
||||
{"Roster of ~ts","Llista de contactes de ~ts"}.
|
||||
{"Roster size","Mida de la llista"}.
|
||||
{"Roster:","Llista de contactes:"}.
|
||||
{"RPC Call Error","Error de cridada RPC"}.
|
||||
{"Running Nodes","Nodes funcionant"}.
|
||||
{"~s invites you to the room ~s","~s et convida a la sala ~s"}.
|
||||
{"Saturday","Dissabte"}.
|
||||
{"Script check","Comprovar script"}.
|
||||
{"Search from the date","Buscar des de la data"}.
|
||||
{"Search Results for ","Resultats de la búsqueda "}.
|
||||
{"Search the text","Buscar el text"}.
|
||||
{"Search until the date","Buscar fins la data"}.
|
||||
{"Search users in ","Cerca usuaris en "}.
|
||||
{"Select All","Seleccionar Tots"}.
|
||||
{"Send announcement to all online users on all hosts","Enviar anunci a tots els usuaris connectats a tots els hosts"}.
|
||||
{"Send announcement to all online users","Enviar anunci a tots els usuaris connectats"}.
|
||||
{"Send announcement to all users on all hosts","Enviar anunci a tots els usuaris de tots els hosts"}.
|
||||
|
@ -485,6 +443,7 @@
|
|||
{"Set message of the day on all hosts and send to online users","Escriure missatge del dia en tots els hosts i enviar-ho als usuaris connectats"}.
|
||||
{"Shared Roster Groups","Grups de contactes compartits"}.
|
||||
{"Show Integral Table","Mostrar Taula Integral"}.
|
||||
{"Show Occupants Join/Leave","Mostrar Entrades/Eixides dels Ocupants"}.
|
||||
{"Show Ordinary Table","Mostrar Taula Ordinaria"}.
|
||||
{"Shut Down Service","Apager el Servei"}.
|
||||
{"SOCKS5 Bytestreams","SOCKS5 Bytestreams"}.
|
||||
|
@ -496,23 +455,17 @@
|
|||
{"Stanza id is not valid","L'identificador del paquet no es vàlid"}.
|
||||
{"Stanza ID","ID del paquet"}.
|
||||
{"Statically specify a replyto of the node owner(s)","Especifica estaticament una adreça on respondre al propietari del node"}.
|
||||
{"Statistics of ~p","Estadístiques de ~p"}.
|
||||
{"Statistics","Estadístiques"}.
|
||||
{"Stop","Detindre"}.
|
||||
{"Stopped Nodes","Nodes parats"}.
|
||||
{"Storage Type","Tipus d'emmagatzematge"}.
|
||||
{"Store binary backup:","Guardar una còpia de seguretat binària:"}.
|
||||
{"Store plain text backup:","Guardar una còpia de seguretat en format de text pla:"}.
|
||||
{"Stream management is already enabled","L'administració de la connexió (stream management) ja està activada"}.
|
||||
{"Stream management is not enabled","L'administració de la conexió (stream management) no està activada"}.
|
||||
{"Subject","Tema"}.
|
||||
{"Submit","Enviar"}.
|
||||
{"Submitted","Enviat"}.
|
||||
{"Subscriber Address","Adreça del Subscriptor"}.
|
||||
{"Subscribers may publish","Els subscriptors poden publicar"}.
|
||||
{"Subscription requests must be approved and only subscribers may retrieve items","Les peticiones de subscripció han de ser aprovades i només els subscriptors poden recuperar elements"}.
|
||||
{"Subscriptions are not allowed","Les subscripcions no estan permeses"}.
|
||||
{"Subscription","Subscripció"}.
|
||||
{"Sunday","Diumenge"}.
|
||||
{"Text associated with a picture","Text associat amb una imatge"}.
|
||||
{"Text associated with a sound","Text associat amb un so"}.
|
||||
|
@ -575,7 +528,6 @@
|
|||
{"Thursday","Dijous"}.
|
||||
{"Time delay","Temps de retard"}.
|
||||
{"Timed out waiting for stream resumption","Massa temps esperant que es resumisca la connexió"}.
|
||||
{"Time","Data"}.
|
||||
{"To register, visit ~s","Per a registrar-te, visita ~s"}.
|
||||
{"To ~ts","A ~ts"}.
|
||||
{"Token TTL","Token TTL"}.
|
||||
|
@ -588,13 +540,8 @@
|
|||
{"Too many receiver fields were specified","S'han especificat massa camps de receptors"}.
|
||||
{"Too many unacked stanzas","Massa missatges sense haver reconegut la seva recepció"}.
|
||||
{"Too many users in this conference","N'hi ha massa usuaris en esta sala de conferència"}.
|
||||
{"To","Per a"}.
|
||||
{"Total rooms","Sales totals"}.
|
||||
{"Traffic rate limit is exceeded","El límit de tràfic ha sigut sobrepassat"}.
|
||||
{"Transactions Aborted:","Transaccions Avortades:"}.
|
||||
{"Transactions Committed:","Transaccions Realitzades:"}.
|
||||
{"Transactions Logged:","Transaccions registrades:"}.
|
||||
{"Transactions Restarted:","Transaccions reiniciades:"}.
|
||||
{"~ts's MAM Archive","Arxiu MAM de ~ts"}.
|
||||
{"~ts's Offline Messages Queue","~ts's cua de missatges offline"}.
|
||||
{"Tuesday","Dimarts"}.
|
||||
{"Unable to generate a CAPTCHA","No s'ha pogut generar un CAPTCHA"}.
|
||||
|
@ -605,24 +552,20 @@
|
|||
{"Uninstall","Desinstal·lar"}.
|
||||
{"Unregister an XMPP account","Anul·lar el registre d'un compte XMPP"}.
|
||||
{"Unregister","Anul·lar el registre"}.
|
||||
{"Unselect All","Deseleccionar tots"}.
|
||||
{"Unsupported <index/> element","Element <index/> no soportat"}.
|
||||
{"Unsupported version","Versió no suportada"}.
|
||||
{"Update message of the day (don't send)","Actualitzar el missatge del dia (no enviar)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Actualitza el missatge del dia en tots els hosts (no enviar)"}.
|
||||
{"Update ~p","Actualitzar ~p"}.
|
||||
{"Update plan","Pla d'actualització"}.
|
||||
{"Update script","Script d'actualització"}.
|
||||
{"Update specs to get modules source, then install desired ones.","Actualitza les especificacions per obtindre el codi font dels mòduls, després instal·la els que vulgues."}.
|
||||
{"Update Specs","Actualitzar Especificacions"}.
|
||||
{"Update","Actualitzar"}.
|
||||
{"Updating the vCard is not supported by the vCard storage backend","El sistema d'almacenament de vCard no te capacitat per a actualitzar la vCard"}.
|
||||
{"Upgrade","Actualitza"}.
|
||||
{"Uptime:","Temps en marxa:"}.
|
||||
{"URL for Archived Discussion Logs","URL dels Arxius de Discussions"}.
|
||||
{"User already exists","El usuari ja existeix"}.
|
||||
{"User JID","JID del usuari"}.
|
||||
{"User (jid)","Usuari (jid)"}.
|
||||
{"User Management","Gestió d'Usuaris"}.
|
||||
{"User not allowed to perform an IQ set on another user's vCard.","L'usuari no te permis per a modificar la vCard d'altre usuari."}.
|
||||
{"User removed","Usuari borrat"}.
|
||||
{"User session not found","Sessió d'usuari no trobada"}.
|
||||
{"User session terminated","Sessió d'usuari terminada"}.
|
||||
|
@ -632,7 +575,6 @@
|
|||
{"Users Last Activity","Última activitat d'usuari"}.
|
||||
{"Users","Usuaris"}.
|
||||
{"User","Usuari"}.
|
||||
{"Validate","Validar"}.
|
||||
{"Value 'get' of 'type' attribute is not allowed","El valor 'get' a l'atribut 'type' no és permès"}.
|
||||
{"Value of '~s' should be boolean","El valor de '~s' deuria ser booleà"}.
|
||||
{"Value of '~s' should be datetime string","El valor de '~s' deuria ser una data"}.
|
||||
|
@ -640,14 +582,13 @@
|
|||
{"Value 'set' of 'type' attribute is not allowed","El valor 'set' a l'atribut 'type' no és permès"}.
|
||||
{"vCard User Search","vCard recerca d'usuari"}.
|
||||
{"View joined MIX channels","Vore els canals MIX units"}.
|
||||
{"View Queue","Vore Cua"}.
|
||||
{"View Roster","Vore Llista de contactes"}.
|
||||
{"Virtual Hosts","Hosts virtuals"}.
|
||||
{"Visitors are not allowed to change their nicknames in this room","Els visitants no tenen permés canviar el seus Nicknames en esta sala"}.
|
||||
{"Visitors are not allowed to send messages to all occupants","Els visitants no poden enviar missatges a tots els ocupants"}.
|
||||
{"Visitor","Visitant"}.
|
||||
{"Voice request","Petició de veu"}.
|
||||
{"Voice requests are disabled in this conference","Les peticions de veu es troben desactivades en aquesta conferència"}.
|
||||
{"Web client which allows to join the room anonymously","Client web que permet entrar a la sala anonimament"}.
|
||||
{"Wednesday","Dimecres"}.
|
||||
{"When a new subscription is processed and whenever a subscriber comes online","Quan es processa una nova subscripció i un subscriptor es connecta"}.
|
||||
{"When a new subscription is processed","Quan es processa una nova subscripció"}.
|
||||
|
@ -657,7 +598,7 @@
|
|||
{"Whether an entity wants to receive or disable notifications","Si una entitat vol rebre notificacions o no"}.
|
||||
{"Whether owners or publisher should receive replies to items","Si el propietaris o publicadors deurien de rebre respostes als elements"}.
|
||||
{"Whether the node is a leaf (default) or a collection","Si el node es fulla (per defecte) o es una col·lecció"}.
|
||||
{"Whether to allow subscriptions","Permetre subscripcions"}.
|
||||
{"Whether to allow subscriptions","Si s'hauria de permetre subscripcions"}.
|
||||
{"Whether to make all subscriptions temporary, based on subscriber presence","Si fer totes les subscripcions temporals, basat en la presencia del subscriptor"}.
|
||||
{"Whether to notify owners about new subscribers and unsubscribes","Si notificar als propietaris sobre noves subscripcions i desubscripcions"}.
|
||||
{"Who can send private messages","Qui pot enviar missatges privats"}.
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
{"Accept","Přijmout"}.
|
||||
{"Access denied by service policy","Přístup byl zamítnut nastavením služby"}.
|
||||
{"Action on user","Akce aplikovaná na uživatele"}.
|
||||
{"Add Jabber ID","Přidat Jabber ID"}.
|
||||
{"Add New","Přidat nový"}.
|
||||
{"Add User","Přidat uživatele"}.
|
||||
{"Administration of ","Administrace "}.
|
||||
{"Administration","Administrace"}.
|
||||
|
@ -60,22 +58,17 @@
|
|||
{"Conference room does not exist","Místnost neexistuje"}.
|
||||
{"Configuration of room ~s","Konfigurace místnosti ~s"}.
|
||||
{"Configuration","Konfigurace"}.
|
||||
{"Connected Resources:","Připojené zdroje:"}.
|
||||
{"Country","Země"}.
|
||||
{"CPU Time:","Čas procesoru:"}.
|
||||
{"Database failure","Chyba databáze"}.
|
||||
{"Database Tables at ~p","Databázové tabulky na ~p"}.
|
||||
{"Database Tables Configuration at ","Konfigurace databázových tabulek "}.
|
||||
{"Database","Databáze"}.
|
||||
{"December",". prosince"}.
|
||||
{"Default users as participants","Uživatelé jsou implicitně členy"}.
|
||||
{"Delete message of the day on all hosts","Smazat zprávu dne na všech hostitelích"}.
|
||||
{"Delete message of the day","Smazat zprávu dne"}.
|
||||
{"Delete Selected","Smazat vybrané"}.
|
||||
{"Delete User","Smazat uživatele"}.
|
||||
{"Deliver event notifications","Doručovat upozornění na události"}.
|
||||
{"Deliver payloads with event notifications","Doručovat náklad s upozorněním na událost"}.
|
||||
{"Description:","Popis:"}.
|
||||
{"Disc only copy","Jen kopie disku"}.
|
||||
{"Dump Backup to Text File at ","Uložit zálohu do textového souboru na "}.
|
||||
{"Dump to Text File","Uložit do textového souboru"}.
|
||||
|
@ -87,7 +80,6 @@
|
|||
{"ejabberd SOCKS5 Bytestreams module","ejabberd SOCKS5 Bytestreams modul"}.
|
||||
{"ejabberd vCard module","ejabberd vCard modul"}.
|
||||
{"ejabberd Web Admin","Webová administrace ejabberd"}.
|
||||
{"Elements","Položek"}.
|
||||
{"Email","E-mail"}.
|
||||
{"Enable logging","Zaznamenávat konverzace"}.
|
||||
{"Enable message archiving","Povolit ukládání historie zpráv"}.
|
||||
|
@ -99,7 +91,6 @@
|
|||
{"Enter path to jabberd14 spool file","Zadejte cestu k spool souboru jabberd14"}.
|
||||
{"Enter path to text file","Zadajte cestu k textovému souboru"}.
|
||||
{"Enter the text you see","Zadejte text, který vidíte"}.
|
||||
{"Error","Chyba"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Vyloučit Jabber ID z procesu CAPTCHA ověřování"}.
|
||||
{"Export all tables as SQL queries to a file:","Zálohovat všechny tabulky jako SQL dotazy do souboru:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Exportovat všechny uživatele do souboru ve formátu PIEFXIS (XEP-0227):"}.
|
||||
|
@ -115,24 +106,20 @@
|
|||
{"February",". února"}.
|
||||
{"File larger than ~w bytes","Soubor větší než ~w bytů"}.
|
||||
{"Friday","Pátek"}.
|
||||
{"From","Od"}.
|
||||
{"From ~ts","Od ~ts"}.
|
||||
{"Full Name","Celé jméno"}.
|
||||
{"Get Number of Online Users","Získat počet online uživatelů"}.
|
||||
{"Get Number of Registered Users","Získat počet registrovaných uživatelů"}.
|
||||
{"Get User Last Login Time","Získat čas podleního přihlášení uživatele"}.
|
||||
{"Get User Password","Získat heslo uživatele"}.
|
||||
{"Get User Statistics","Získat statistiky uživatele"}.
|
||||
{"Given Name","Křestní jméno"}.
|
||||
{"Grant voice to this person?","Udělit voice práva této osobě?"}.
|
||||
{"Group","Skupina"}.
|
||||
{"Groups","Skupiny"}.
|
||||
{"has been banned","byl(a) zablokován(a)"}.
|
||||
{"has been kicked because of a system shutdown","byl(a) vyhozen(a), protože dojde k vypnutí systému"}.
|
||||
{"has been kicked because of an affiliation change","byl(a) vyhozen(a) kvůli změně přiřazení"}.
|
||||
{"has been kicked because the room has been changed to members-only","byl(a) vyhozen(a), protože mísnost je nyní pouze pro členy"}.
|
||||
{"has been kicked","byl(a) vyhozen(a) z místnosti"}.
|
||||
{"Host unknown","Neznámý hostitel"}.
|
||||
{"Host","Hostitel"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Pokud zde nevidíte obrázek CAPTCHA, přejděte na webovou stránku."}.
|
||||
{"Import Directory","Import adresáře"}.
|
||||
{"Import File","Import souboru"}.
|
||||
|
@ -144,23 +131,24 @@
|
|||
{"Import Users From jabberd14 Spool Files","Importovat uživatele z jabberd14 spool souborů"}.
|
||||
{"Improper domain part of 'from' attribute","Nesprávná část s doménou atributu 'from'"}.
|
||||
{"Improper message type","Nesprávný typ zprávy"}.
|
||||
{"Incoming s2s Connections:","Příchozí s2s spojení:"}.
|
||||
{"Incorrect CAPTCHA submit","Nesprávné odeslání CAPTCHA"}.
|
||||
{"Incorrect data form","Nesprávný datový formulář"}.
|
||||
{"Incorrect password","Nesprávné heslo"}.
|
||||
{"Incorrect value of 'action' attribute","Nesprávná hodnota atributu 'action'"}.
|
||||
{"Incorrect value of 'action' in data form","Nesprávná hodnota atributu 'action' v datovém formuláři"}.
|
||||
{"Incorrect value of 'path' in data form","Nesprávná hodnota atributu 'path' v datovém formuláři"}.
|
||||
{"Installed Modules:","Instalované moduly:"}.
|
||||
{"Insufficient privilege","Nedostatečné oprávnění"}.
|
||||
{"Invalid 'from' attribute in forwarded message","Nesprávný atribut 'from' v přeposlané zprávě"}.
|
||||
{"Invitations are not allowed in this conference","Pozvánky nejsou povoleny v této místnosti"}.
|
||||
{"IP addresses","IP adresy"}.
|
||||
{"is now known as","se přejmenoval(a) na"}.
|
||||
{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","Není povoleno posílat chybové zprávy do místnosti. Účastník (~s) odeslal chybovou zprávu (~s) a byl vyhozen z místnosti"}.
|
||||
{"It is not allowed to send private messages of type \"groupchat\"","Není dovoleno odeslání soukromé zprávy typu \"skupinová zpráva\" "}.
|
||||
{"It is not allowed to send private messages of type \"groupchat\"","Není dovoleno odeslání soukromých zpráv typu \"skupinová zpráva\""}.
|
||||
{"It is not allowed to send private messages to the conference","Není povoleno odesílat soukromé zprávy v této místnosti"}.
|
||||
{"Jabber ID","Jabber ID"}.
|
||||
{"January",". ledna"}.
|
||||
{"Joined MIX channels:","Připojené MIX kanály:"}.
|
||||
{"joins the room","vstoupil(a) do místnosti"}.
|
||||
{"July",". července"}.
|
||||
{"June",". června"}.
|
||||
|
@ -169,8 +157,6 @@
|
|||
{"Last month","Poslední měsíc"}.
|
||||
{"Last year","Poslední rok"}.
|
||||
{"leaves the room","opustil(a) místnost"}.
|
||||
{"List of rooms","Seznam místností"}.
|
||||
{"Low level update script","Nízkoúrovňový aktualizační skript"}.
|
||||
{"Make participants list public","Nastavit seznam účastníků jako veřejný"}.
|
||||
{"Make room CAPTCHA protected","Chránit místnost pomocí CAPTCHA"}.
|
||||
{"Make room members-only","Zpřístupnit místnost jen členům"}.
|
||||
|
@ -181,24 +167,20 @@
|
|||
{"Malformed username","Chybně formátováné jméno uživatele"}.
|
||||
{"March",". března"}.
|
||||
{"Max payload size in bytes","Maximální náklad v bajtech"}.
|
||||
{"Maximum Number of Occupants","Počet účastníků"}.
|
||||
{"Maximum Number of Occupants","Maximální počet účastníků"}.
|
||||
{"May",". května"}.
|
||||
{"Members:","Členové:"}.
|
||||
{"Membership is required to enter this room","Pro vstup do místnosti musíte být členem"}.
|
||||
{"Memory","Paměť"}.
|
||||
{"Message body","Tělo zprávy"}.
|
||||
{"Message not found in forwarded payload","Zpráva nebyla nalezena v přeposlaném obsahu"}.
|
||||
{"Middle Name","Druhé jméno"}.
|
||||
{"Minimum interval between voice requests (in seconds)","Minimální interval mezi žádostmi o voice práva (v sekundách)"}.
|
||||
{"Moderator privileges required","Potřebujete práva moderátora"}.
|
||||
{"Moderator","Moderátor"}.
|
||||
{"Modified modules","Aktualizované moduly"}.
|
||||
{"Module failed to handle the query","Modul chyboval při zpracování dotazu"}.
|
||||
{"Monday","Pondělí"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multi-User Chat","Víceuživatelský chat"}.
|
||||
{"Name","Jméno"}.
|
||||
{"Name:","Jméno:"}.
|
||||
{"Neither 'jid' nor 'nick' attribute found","Nebyl nalezen atribut 'jid' ani 'nick'"}.
|
||||
{"Neither 'role' nor 'affiliation' attribute found","Nebyl nalezen atribut 'role' ani 'affiliation'"}.
|
||||
{"Never","Nikdy"}.
|
||||
|
@ -247,12 +229,9 @@
|
|||
{"Number of online users","Počet online uživatelů"}.
|
||||
{"Number of registered users","Počet registrovaných uživatelů"}.
|
||||
{"October",". října"}.
|
||||
{"Offline Messages","Offline zprávy"}.
|
||||
{"Offline Messages:","Offline zprávy:"}.
|
||||
{"OK","OK"}.
|
||||
{"Old Password:","Současné heslo:"}.
|
||||
{"Online Users","Připojení uživatelé"}.
|
||||
{"Online Users:","Připojení uživatelé:"}.
|
||||
{"Online","Online"}.
|
||||
{"Only deliver notifications to available users","Doručovat upozornění jen právě přihlášeným uživatelům"}.
|
||||
{"Only <enable/> or <disable/> tags are allowed","Pouze značky <enable/> nebo <disable/>jsou povoleny"}.
|
||||
|
@ -266,10 +245,9 @@
|
|||
{"Only service administrators are allowed to send service messages","Pouze správci služby smí odesílat servisní zprávy"}.
|
||||
{"Organization Name","Název firmy"}.
|
||||
{"Organization Unit","Oddělení"}.
|
||||
{"Other Modules Available:","Ostatní dostupné moduly:"}.
|
||||
{"Outgoing s2s Connections","Odchozí s2s spojení"}.
|
||||
{"Outgoing s2s Connections:","Odchozí s2s spojení:"}.
|
||||
{"Owner privileges required","Jsou vyžadována práva vlastníka"}.
|
||||
{"Packet","Paket"}.
|
||||
{"Participant","Účastník"}.
|
||||
{"Password Verification","Ověření hesla"}.
|
||||
{"Password Verification:","Ověření hesla:"}.
|
||||
|
@ -277,7 +255,6 @@
|
|||
{"Password:","Heslo:"}.
|
||||
{"Path to Dir","Cesta k adresáři"}.
|
||||
{"Path to File","Cesta k souboru"}.
|
||||
{"Pending","Čekající"}.
|
||||
{"Period: ","Čas: "}.
|
||||
{"Persist items to storage","Uložit položky natrvalo do úložiště"}.
|
||||
{"Ping query is incorrect","Ping dotaz je nesprávný"}.
|
||||
|
@ -296,17 +273,12 @@
|
|||
{"RAM copy","Kopie RAM"}.
|
||||
{"Really delete message of the day?","Skutečně smazat zprávu dne?"}.
|
||||
{"Recipient is not in the conference room","Příjemce se nenachází v místnosti"}.
|
||||
{"Registered Users","Registrovaní uživatelé"}.
|
||||
{"Registered Users:","Registrovaní uživatelé:"}.
|
||||
{"Register","Zaregistrovat se"}.
|
||||
{"Remote copy","Vzdálená kopie"}.
|
||||
{"Remove All Offline Messages","Odstranit všechny offline zprávy"}.
|
||||
{"Remove User","Odstranit uživatele"}.
|
||||
{"Remove","Odstranit"}.
|
||||
{"Replaced by new connection","Nahrazeno novým spojením"}.
|
||||
{"Resources","Zdroje"}.
|
||||
{"Restart Service","Restartovat službu"}.
|
||||
{"Restart","Restart"}.
|
||||
{"Restore Backup from File at ","Obnovit zálohu ze souboru na "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Obnovit binární zálohu při následujícím restartu ejabberd (vyžaduje méně paměti):"}.
|
||||
{"Restore binary backup immediately:","Okamžitě obnovit binární zálohu:"}.
|
||||
|
@ -320,10 +292,8 @@
|
|||
{"Room title","Název místnosti"}.
|
||||
{"Roster groups allowed to subscribe","Skupiny kontaktů, které mohou odebírat"}.
|
||||
{"Roster size","Velikost seznamu kontaktů"}.
|
||||
{"RPC Call Error","Chyba RPC volání"}.
|
||||
{"Running Nodes","Běžící uzly"}.
|
||||
{"Saturday","Sobota"}.
|
||||
{"Script check","Kontrola skriptu"}.
|
||||
{"Search Results for ","Výsledky hledání pro "}.
|
||||
{"Search users in ","Hledat uživatele v "}.
|
||||
{"Send announcement to all online users on all hosts","Odeslat oznámení všem online uživatelům na všech hostitelích"}.
|
||||
|
@ -333,7 +303,7 @@
|
|||
{"September",". září"}.
|
||||
{"Server:","Server:"}.
|
||||
{"Set message of the day and send to online users","Nastavit zprávu dne a odeslat ji online uživatelům"}.
|
||||
{"Set message of the day on all hosts and send to online users","Nastavit zprávu dne a odeslat ji online uživatelům"}.
|
||||
{"Set message of the day on all hosts and send to online users","Nastavit zprávu dne na všech hostitelích a odeslat ji online uživatelům"}.
|
||||
{"Shared Roster Groups","Skupiny pro sdílený seznam kontaktů"}.
|
||||
{"Show Integral Table","Zobrazit kompletní tabulku"}.
|
||||
{"Show Ordinary Table","Zobrazit běžnou tabulku"}.
|
||||
|
@ -341,38 +311,34 @@
|
|||
{"Specify the access model","Uveďte přístupový model"}.
|
||||
{"Specify the event message type","Zvolte typ zpráv pro události"}.
|
||||
{"Specify the publisher model","Specifikovat model pro publikování"}.
|
||||
{"Statistics of ~p","Statistiky ~p"}.
|
||||
{"Statistics","Statistiky"}.
|
||||
{"Stopped Nodes","Zastavené uzly"}.
|
||||
{"Stop","Stop"}.
|
||||
{"Storage Type","Typ úložiště"}.
|
||||
{"Store binary backup:","Uložit binární zálohu:"}.
|
||||
{"Store plain text backup:","Uložit zálohu do textového souboru:"}.
|
||||
{"Subject","Předmět"}.
|
||||
{"Submit","Odeslat"}.
|
||||
{"Submitted","Odeslané"}.
|
||||
{"Subscriber Address","Adresa odběratele"}.
|
||||
{"Subscription","Přihlášení"}.
|
||||
{"Subscriptions are not allowed","Předplatné není povoleno"}.
|
||||
{"Sunday","Neděle"}.
|
||||
{"That nickname is already in use by another occupant","Přezdívka je již používána jiným členem"}.
|
||||
{"That nickname is registered by another person","Přezdívka je zaregistrována jinou osobou"}.
|
||||
{"The account was not unregistered","Účet nebyl smazán"}.
|
||||
{"The CAPTCHA is valid.","CAPTCHA souhlasí."}.
|
||||
{"The CAPTCHA verification has failed","Ověření CAPTCHA se nezdařilo"}.
|
||||
{"The collections with which a node is affiliated","Kolekce, se kterými je uzel spřízněn"}.
|
||||
{"The feature requested is not supported by the conference","Požadovaná vlastnost není podporována touto místností"}.
|
||||
{"The number of subscribers to the node","Počet odběratelů uzlu"}.
|
||||
{"The password contains unacceptable characters","Heslo obsahuje nepovolené znaky"}.
|
||||
{"The password is too weak","Heslo je příliš slabé"}.
|
||||
{"the password is","heslo je"}.
|
||||
{"The query is only allowed from local users","Dotaz je povolen pouze pro místní uživatele"}.
|
||||
{"The query must not contain <item/> elements","Dotaz nesmí obsahovat elementy <item/>"}.
|
||||
{"The stanza MUST contain only one <active/> element, one <default/> element, or one <list/> element","Stanza MUSÍ obsahovat pouze jeden element <active/>, jeden element <default/> nebo jeden element <list/>"}.
|
||||
{"There was an error changing the password: ","Při změně hesla došlo k chybě: "}.
|
||||
{"There was an error creating the account: ","Při vytváření účtu došlo k chybě: "}.
|
||||
{"There was an error deleting the account: ","Při mazání účtu došlo k chybě: "}.
|
||||
{"This room is not anonymous","Tato místnost není anonymní"}.
|
||||
{"Thursday","Čtvrtek"}.
|
||||
{"Time delay","Časový posun"}.
|
||||
{"Time","Čas"}.
|
||||
{"To register, visit ~s","Pokud se chcete zaregistrovat, navštivte ~s"}.
|
||||
{"Token TTL","Token TTL"}.
|
||||
{"Too many active bytestreams","Příliš mnoho aktivních bytestreamů"}.
|
||||
|
@ -382,13 +348,7 @@
|
|||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Příliš mnoho (~p) chybných pokusů o přihlášení z této IP adresy (~s). Adresa bude zablokována do ~s UTC"}.
|
||||
{"Too many unacked stanzas","Příliš mnoho nepotvrzených stanz"}.
|
||||
{"Too many users in this conference","Přiliš mnoho uživatelů v této místnosti"}.
|
||||
{"To","Pro"}.
|
||||
{"Total rooms","Celkem místností"}.
|
||||
{"Traffic rate limit is exceeded","Byl překročen limit"}.
|
||||
{"Transactions Aborted:","Transakcí zrušených:"}.
|
||||
{"Transactions Committed:","Transakcí potvrzených:"}.
|
||||
{"Transactions Logged:","Transakcí zaznamenaných:"}.
|
||||
{"Transactions Restarted:","Transakcí restartovaných:"}.
|
||||
{"Tuesday","Úterý"}.
|
||||
{"Unable to generate a CAPTCHA","Nebylo možné vygenerovat CAPTCHA"}.
|
||||
{"Unable to register route on existing local domain","Není možné zaregistrovat routu na existující místní doménu"}.
|
||||
|
@ -398,11 +358,6 @@
|
|||
{"Unsupported <index/> element","Nepodporovaný <index/> element"}.
|
||||
{"Update message of the day (don't send)","Aktualizovat zprávu dne (neodesílat)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Aktualizovat zprávu dne pro všechny hostitele (neodesílat)"}.
|
||||
{"Update ~p","Aktualizovat ~p"}.
|
||||
{"Update plan","Aktualizovat plán"}.
|
||||
{"Update script","Aktualizované skripty"}.
|
||||
{"Update","Aktualizovat"}.
|
||||
{"Uptime:","Čas běhu:"}.
|
||||
{"User already exists","Uživatel již existuje"}.
|
||||
{"User JID","Jabber ID uživatele"}.
|
||||
{"User (jid)","Uživatel (JID)"}.
|
||||
|
@ -414,7 +369,6 @@
|
|||
{"Users Last Activity","Poslední aktivita uživatele"}.
|
||||
{"Users","Uživatelé"}.
|
||||
{"User","Uživatel"}.
|
||||
{"Validate","Ověřit"}.
|
||||
{"Value 'get' of 'type' attribute is not allowed","Hodnota 'get' atrubutu 'type' není povolena"}.
|
||||
{"Value of '~s' should be boolean","Hodnota '~s' by měla být boolean"}.
|
||||
{"Value of '~s' should be datetime string","Hodnota '~s' by měla být datetime řetězec"}.
|
||||
|
|
|
@ -16,8 +16,6 @@
|
|||
{"Account doesn't exist","Konto existiert nicht"}.
|
||||
{"Action on user","Aktion auf Benutzer"}.
|
||||
{"Add a hat to a user","Funktion zu einem Benutzer hinzufügen"}.
|
||||
{"Add Jabber ID","Jabber-ID hinzufügen"}.
|
||||
{"Add New","Neue(n) hinzufügen"}.
|
||||
{"Add User","Benutzer hinzufügen"}.
|
||||
{"Administration of ","Administration von "}.
|
||||
{"Administration","Verwaltung"}.
|
||||
|
@ -48,7 +46,9 @@
|
|||
{"Anyone with a presence subscription of both or from may subscribe and retrieve items","Jeder mit einem Präsenzabonnement von beiden oder davon darf Items abonnieren oder abrufen"}.
|
||||
{"Anyone with Voice","Jeder mit Stimme"}.
|
||||
{"Anyone","Jeder"}.
|
||||
{"API Commands","API Befehle"}.
|
||||
{"April","April"}.
|
||||
{"Arguments","Argumente"}.
|
||||
{"Attribute 'channel' is required for this request","Attribut 'channel' ist für diese Anforderung erforderlich"}.
|
||||
{"Attribute 'id' is mandatory for MIX messages","Attribut 'id' ist verpflichtend für MIX-Nachrichten"}.
|
||||
{"Attribute 'jid' is not allowed here","Attribut 'jid' ist hier nicht erlaubt"}.
|
||||
|
@ -92,29 +92,20 @@
|
|||
{"Conference room does not exist","Konferenzraum existiert nicht"}.
|
||||
{"Configuration of room ~s","Konfiguration des Raumes ~s"}.
|
||||
{"Configuration","Konfiguration"}.
|
||||
{"Connected Resources:","Verbundene Ressourcen:"}.
|
||||
{"Contact Addresses (normally, room owner or owners)","Kontaktadresse (normalerweise Raumbesitzer)"}.
|
||||
{"Country","Land"}.
|
||||
{"CPU Time:","CPU-Zeit:"}.
|
||||
{"Current Discussion Topic","Aktuelles Diskussionsthema"}.
|
||||
{"Database failure","Datenbankfehler"}.
|
||||
{"Database Tables at ~p","Datenbanktabellen bei ~p"}.
|
||||
{"Database Tables Configuration at ","Datenbanktabellen-Konfiguration bei "}.
|
||||
{"Database","Datenbank"}.
|
||||
{"December","Dezember"}.
|
||||
{"Default users as participants","Benutzer werden standardmäßig Teilnehmer"}.
|
||||
{"Delete content","Inhalt löschen"}.
|
||||
{"Delete message of the day on all hosts","Lösche Nachricht des Tages auf allen Hosts"}.
|
||||
{"Delete message of the day","Lösche Nachricht des Tages"}.
|
||||
{"Delete Selected","Markierte löschen"}.
|
||||
{"Delete table","Tabelle löschen"}.
|
||||
{"Delete User","Benutzer löschen"}.
|
||||
{"Deliver event notifications","Ereignisbenachrichtigungen zustellen"}.
|
||||
{"Deliver payloads with event notifications","Nutzdaten mit Ereignisbenachrichtigungen zustellen"}.
|
||||
{"Description:","Beschreibung:"}.
|
||||
{"Disc only copy","Nur auf Festplatte"}.
|
||||
{"'Displayed groups' not added (they do not exist!): ","'Angezeigte Gruppen' nicht hinzugefügt (sie existieren nicht!): "}.
|
||||
{"Displayed:","Angezeigt:"}.
|
||||
{"Don't tell your password to anybody, not even the administrators of the XMPP server.","Geben Sie niemandem Ihr Passwort, auch nicht den Administratoren des XMPP-Servers."}.
|
||||
{"Dump Backup to Text File at ","Gib Backup in Textdatei aus bei "}.
|
||||
{"Dump to Text File","Ausgabe in Textdatei"}.
|
||||
|
@ -130,7 +121,6 @@
|
|||
{"ejabberd vCard module","ejabberd vCard-Modul"}.
|
||||
{"ejabberd Web Admin","ejabberd Web-Admin"}.
|
||||
{"ejabberd","ejabberd"}.
|
||||
{"Elements","Elemente"}.
|
||||
{"Email Address","E-Mail-Adresse"}.
|
||||
{"Email","E-Mail"}.
|
||||
{"Enable hats","Funktion einschalten"}.
|
||||
|
@ -145,7 +135,6 @@
|
|||
{"Enter path to text file","Geben Sie den Pfad zur Textdatei ein"}.
|
||||
{"Enter the text you see","Geben Sie den Text ein den Sie sehen"}.
|
||||
{"Erlang XMPP Server","Erlang XMPP-Server"}.
|
||||
{"Error","Fehler"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Jabber-IDs von CAPTCHA-Herausforderung ausschließen"}.
|
||||
{"Export all tables as SQL queries to a file:","Alle Tabellen als SQL-Abfragen in eine Datei exportieren:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Alle Benutzerdaten des Servers in PIEFXIS-Dateien (XEP-0227) exportieren:"}.
|
||||
|
@ -164,7 +153,6 @@
|
|||
{"Fill in the form to search for any matching XMPP User","Füllen Sie das Formular aus, um nach jeglichen passenden XMPP-Benutzern zu suchen"}.
|
||||
{"Friday","Freitag"}.
|
||||
{"From ~ts","Von ~ts"}.
|
||||
{"From","Von"}.
|
||||
{"Full List of Room Admins","Vollständige Liste der Raumadmins"}.
|
||||
{"Full List of Room Owners","Vollständige Liste der Raumbesitzer"}.
|
||||
{"Full Name","Vollständiger Name"}.
|
||||
|
@ -174,23 +162,19 @@
|
|||
{"Get Number of Registered Users","Anzahl der registrierten Benutzer abrufen"}.
|
||||
{"Get Pending","Ausstehende abrufen"}.
|
||||
{"Get User Last Login Time","letzte Anmeldezeit des Benutzers abrufen"}.
|
||||
{"Get User Password","Benutzerpasswort abrufen"}.
|
||||
{"Get User Statistics","Benutzerstatistiken abrufen"}.
|
||||
{"Given Name","Vorname"}.
|
||||
{"Grant voice to this person?","Dieser Person Sprachrechte erteilen?"}.
|
||||
{"Group","Gruppe"}.
|
||||
{"Groups that will be displayed to the members","Gruppen, die den Mitgliedern angezeigt werden"}.
|
||||
{"Groups","Gruppen"}.
|
||||
{"has been banned","wurde gebannt"}.
|
||||
{"has been kicked because of a system shutdown","wurde wegen einer Systemabschaltung hinausgeworfen"}.
|
||||
{"has been kicked because of an affiliation change","wurde wegen einer Änderung der Zugehörigkeit hinausgeworfen"}.
|
||||
{"has been kicked because the room has been changed to members-only","wurde hinausgeworfen weil der Raum zu Nur-Mitglieder geändert wurde"}.
|
||||
{"has been kicked","wurde hinausgeworfen"}.
|
||||
{"Hash of the vCard-temp avatar of this room","Hash des vCard-temp Avatars dieses Raums"}.
|
||||
{"Hat title","Funktionstitel"}.
|
||||
{"Hat URI","Funktions-URI"}.
|
||||
{"Hats limit exceeded","Funktionslimit wurde überschritten"}.
|
||||
{"Host unknown","Host unbekannt"}.
|
||||
{"Host","Host"}.
|
||||
{"HTTP File Upload","HTTP-Dateiupload"}.
|
||||
{"Idle connection","Inaktive Verbindung"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Wenn Sie das CAPTCHA-Bild nicht sehen, besuchen Sie die Webseite."}.
|
||||
|
@ -204,7 +188,6 @@
|
|||
{"Import Users From jabberd14 Spool Files","Importiere Benutzer aus jabberd14-Spooldateien"}.
|
||||
{"Improper domain part of 'from' attribute","Falscher Domänenteil des 'from'-Attributs"}.
|
||||
{"Improper message type","Unzulässiger Nachrichtentyp"}.
|
||||
{"Incoming s2s Connections:","Eingehende s2s-Verbindungen:"}.
|
||||
{"Incorrect CAPTCHA submit","Falsche CAPTCHA-Eingabe"}.
|
||||
{"Incorrect data form","Falsches Datenformular"}.
|
||||
{"Incorrect password","Falsches Passwort"}.
|
||||
|
@ -234,7 +217,6 @@
|
|||
{"July","Juli"}.
|
||||
{"June","Juni"}.
|
||||
{"Just created","Gerade erstellt"}.
|
||||
{"Label:","Label:"}.
|
||||
{"Last Activity","Letzte Aktivität"}.
|
||||
{"Last login","Letzte Anmeldung"}.
|
||||
{"Last message","Letzte Nachricht"}.
|
||||
|
@ -242,11 +224,10 @@
|
|||
{"Last year","Letztes Jahr"}.
|
||||
{"Least significant bits of SHA-256 hash of text should equal hexadecimal label","Niederwertigstes Bit des SHA-256-Hashes des Textes sollte hexadezimalem Label gleichen"}.
|
||||
{"leaves the room","verlässt den Raum"}.
|
||||
{"List of rooms","Liste von Räumen"}.
|
||||
{"List of users with hats","Liste der Benutzer mit Funktionen"}.
|
||||
{"List users with hats","Benutzer mit Funktionen auflisten"}.
|
||||
{"Logged Out","Abgemeldet"}.
|
||||
{"Logging","Protokollierung"}.
|
||||
{"Low level update script","Low-Level-Aktualisierungsscript"}.
|
||||
{"Make participants list public","Teilnehmerliste öffentlich machen"}.
|
||||
{"Make room CAPTCHA protected","Raum mittels CAPTCHA schützen"}.
|
||||
{"Make room members-only","Raum nur für Mitglieder zugänglich machen"}.
|
||||
|
@ -264,11 +245,8 @@
|
|||
{"Maximum number of items to persist","Maximale Anzahl persistenter Items"}.
|
||||
{"Maximum Number of Occupants","Maximale Anzahl der Teilnehmer"}.
|
||||
{"May","Mai"}.
|
||||
{"Members not added (inexistent vhost!): ","Mitglieder nicht hinzugefügt (nicht existierender vhost!): "}.
|
||||
{"Membership is required to enter this room","Mitgliedschaft ist erforderlich um diesen Raum zu betreten"}.
|
||||
{"Members:","Mitglieder:"}.
|
||||
{"Memorize your password, or write it in a paper placed in a safe place. In XMPP there isn't an automated way to recover your password if you forget it.","Merken Sie sich Ihr Passwort, oder schreiben Sie es auf einen Zettel den Sie sicher verwahren. Bei XMPP gibt es keine automatische Möglichkeit, das Passwort wiederherzustellen falls Sie es vergessen."}.
|
||||
{"Memory","Speicher"}.
|
||||
{"Mere Availability in XMPP (No Show Value)","Bloße Verfügbarkeit in XMPP (kein Anzeigewert)"}.
|
||||
{"Message body","Nachrichtentext"}.
|
||||
{"Message not found in forwarded payload","Nachricht nicht in weitergeleiteten Nutzdaten gefunden"}.
|
||||
|
@ -280,14 +258,11 @@
|
|||
{"Moderator privileges required","Moderatorrechte erforderlich"}.
|
||||
{"Moderator","Moderator"}.
|
||||
{"Moderators Only","nur Moderatoren"}.
|
||||
{"Modified modules","Geänderte Module"}.
|
||||
{"Module failed to handle the query","Modul konnte die Anfrage nicht verarbeiten"}.
|
||||
{"Monday","Montag"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multiple <item/> elements are not allowed by RFC6121","Mehrere <item/>-Elemente sind laut RFC6121 nicht erlaubt"}.
|
||||
{"Multi-User Chat","Mehrbenutzer-Chat (MUC)"}.
|
||||
{"Name in the rosters where this group will be displayed","Name in den Kontaktlisten wo diese Gruppe angezeigt werden wird"}.
|
||||
{"Name:","Name:"}.
|
||||
{"Name","Vorname"}.
|
||||
{"Natural Language for Room Discussions","Natürliche Sprache für Raumdiskussionen"}.
|
||||
{"Natural-Language Room Name","Raumname in natürlicher Sprache"}.
|
||||
|
@ -353,14 +328,10 @@
|
|||
{"Occupants are allowed to query others","Teilnehmer dürfen andere abfragen"}.
|
||||
{"Occupants May Change the Subject","Teilnehmer dürfen das Thema ändern"}.
|
||||
{"October","Oktober"}.
|
||||
{"Offline Messages","Offline-Nachrichten"}.
|
||||
{"Offline Messages:","Offline-Nachrichten:"}.
|
||||
{"OK","OK"}.
|
||||
{"Old Password:","Altes Passwort:"}.
|
||||
{"Online Users","Angemeldete Benutzer"}.
|
||||
{"Online Users:","Angemeldete Benutzer:"}.
|
||||
{"Online","Angemeldet"}.
|
||||
{"Only admins can see this","Nur Admins können dies sehen"}.
|
||||
{"Only collection node owners may associate leaf nodes with the collection","Nur Sammlungsknoten-Besitzer dürfen Blattknoten mit der Sammlung verknüpfen"}.
|
||||
{"Only deliver notifications to available users","Benachrichtigungen nur an verfügbare Benutzer schicken"}.
|
||||
{"Only <enable/> or <disable/> tags are allowed","Nur <enable/>- oder <disable/>-Tags sind erlaubt"}.
|
||||
|
@ -380,10 +351,8 @@
|
|||
{"Organization Unit","Abteilung"}.
|
||||
{"Other Modules Available:","Andere Module verfügbar:"}.
|
||||
{"Outgoing s2s Connections","Ausgehende s2s-Verbindungen"}.
|
||||
{"Outgoing s2s Connections:","Ausgehende s2s-Verbindungen:"}.
|
||||
{"Owner privileges required","Besitzerrechte erforderlich"}.
|
||||
{"Packet relay is denied by service policy","Paket-Relay aufgrund der Dienstrichtlinien verweigert"}.
|
||||
{"Packet","Paket"}.
|
||||
{"Participant ID","Teilnehmer-ID"}.
|
||||
{"Participant","Teilnehmer"}.
|
||||
{"Password Verification","Passwort bestätigen"}.
|
||||
|
@ -392,7 +361,6 @@
|
|||
{"Password:","Passwort:"}.
|
||||
{"Path to Dir","Pfad zum Verzeichnis"}.
|
||||
{"Path to File","Pfad zur Datei"}.
|
||||
{"Pending","Ausstehend"}.
|
||||
{"Period: ","Zeitraum: "}.
|
||||
{"Persist items to storage","Items dauerhaft speichern"}.
|
||||
{"Persistent","Persistent"}.
|
||||
|
@ -427,25 +395,21 @@
|
|||
{"Recipient is not in the conference room","Empfänger ist nicht im Konferenzraum"}.
|
||||
{"Register an XMPP account","Ein XMPP-Konto registrieren"}.
|
||||
{"Register","Anmelden"}.
|
||||
{"Registered Users","Registrierte Benutzer"}.
|
||||
{"Registered Users:","Registrierte Benutzer:"}.
|
||||
{"Remote copy","Fernkopie"}.
|
||||
{"Remove a hat from a user","Eine Funktion bei einem Benutzer entfernen"}.
|
||||
{"Remove All Offline Messages","Alle Offline-Nachrichten löschen"}.
|
||||
{"Remove User","Benutzer löschen"}.
|
||||
{"Remove","Entfernen"}.
|
||||
{"Replaced by new connection","Durch neue Verbindung ersetzt"}.
|
||||
{"Request has timed out","Zeitüberschreitung bei Anforderung"}.
|
||||
{"Request is ignored","Anforderung wird ignoriert"}.
|
||||
{"Requested role","Angeforderte Rolle"}.
|
||||
{"Resources","Ressourcen"}.
|
||||
{"Restart Service","Dienst neustarten"}.
|
||||
{"Restart","Neustart"}.
|
||||
{"Restore Backup from File at ","Backup wiederherstellen aus Datei bei "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Stelle binäres Backup beim nächsten ejabberd-Neustart wieder her (benötigt weniger Speicher):"}.
|
||||
{"Restore binary backup immediately:","Stelle binäres Backup sofort wieder her:"}.
|
||||
{"Restore plain text backup immediately:","Stelle Klartext-Backup sofort wieder her:"}.
|
||||
{"Restore","Wiederherstellung"}.
|
||||
{"Result","Ergebnis"}.
|
||||
{"Roles and Affiliations that May Retrieve Member List","Rollen und Zugehörigkeiten die Mitgliederliste abrufen dürfen"}.
|
||||
{"Roles for which Presence is Broadcasted","Rollen für welche die Präsenz übertragen wird"}.
|
||||
{"Roles that May Send Private Messages","Rollen die Privatnachrichten senden dürfen"}.
|
||||
|
@ -456,20 +420,15 @@
|
|||
{"Room terminates","Raum wird beendet"}.
|
||||
{"Room title","Raumname"}.
|
||||
{"Roster groups allowed to subscribe","Kontaktlistengruppen die abonnieren dürfen"}.
|
||||
{"Roster of ~ts","Kontaktliste von ~ts"}.
|
||||
{"Roster size","Kontaktlistengröße"}.
|
||||
{"Roster:","Kontaktliste:"}.
|
||||
{"RPC Call Error","Fehler bei RPC-Aufruf"}.
|
||||
{"Running Nodes","Laufende Knoten"}.
|
||||
{"~s invites you to the room ~s","~s lädt Sie in den Raum ~s ein"}.
|
||||
{"Saturday","Samstag"}.
|
||||
{"Script check","Script-Überprüfung"}.
|
||||
{"Search from the date","Suche ab Datum"}.
|
||||
{"Search Results for ","Suchergebnisse für "}.
|
||||
{"Search the text","Text durchsuchen"}.
|
||||
{"Search until the date","Suche bis Datum"}.
|
||||
{"Search users in ","Suche Benutzer in "}.
|
||||
{"Select All","Alles auswählen"}.
|
||||
{"Send announcement to all online users on all hosts","Ankündigung an alle angemeldeten Benutzer auf allen Hosts senden"}.
|
||||
{"Send announcement to all online users","Ankündigung an alle angemeldeten Benutzer senden"}.
|
||||
{"Send announcement to all users on all hosts","Ankündigung an alle Benutzer auf allen Hosts senden"}.
|
||||
|
@ -493,22 +452,16 @@
|
|||
{"Stanza id is not valid","Stanza-ID ist ungültig"}.
|
||||
{"Stanza ID","Stanza-ID"}.
|
||||
{"Statically specify a replyto of the node owner(s)","Ein 'replyto' des/der Nodebesitzer(s) statisch angeben"}.
|
||||
{"Statistics of ~p","Statistiken von ~p"}.
|
||||
{"Statistics","Statistiken"}.
|
||||
{"Stop","Anhalten"}.
|
||||
{"Stopped Nodes","Angehaltene Knoten"}.
|
||||
{"Storage Type","Speichertyp"}.
|
||||
{"Store binary backup:","Speichere binäres Backup:"}.
|
||||
{"Store plain text backup:","Speichere Klartext-Backup:"}.
|
||||
{"Stream management is already enabled","Stream-Verwaltung ist bereits aktiviert"}.
|
||||
{"Stream management is not enabled","Stream-Verwaltung ist nicht aktiviert"}.
|
||||
{"Subject","Betreff"}.
|
||||
{"Submit","Senden"}.
|
||||
{"Submitted","Gesendet"}.
|
||||
{"Subscriber Address","Abonnenten-Adresse"}.
|
||||
{"Subscribers may publish","Abonnenten dürfen veröffentlichen"}.
|
||||
{"Subscription requests must be approved and only subscribers may retrieve items","Abonnement-Anforderungen müssen genehmigt werden und nur Abonnenten dürfen Items abrufen"}.
|
||||
{"Subscription","Abonnement"}.
|
||||
{"Subscriptions are not allowed","Abonnements sind nicht erlaubt"}.
|
||||
{"Sunday","Sonntag"}.
|
||||
{"Text associated with a picture","Text verbunden mit einem Bild"}.
|
||||
|
@ -571,10 +524,8 @@
|
|||
{"Thursday","Donnerstag"}.
|
||||
{"Time delay","Zeitverzögerung"}.
|
||||
{"Timed out waiting for stream resumption","Zeitüberschreitung beim Warten auf Streamfortsetzung"}.
|
||||
{"Time","Zeit"}.
|
||||
{"To register, visit ~s","Um sich zu registrieren, besuchen Sie ~s"}.
|
||||
{"To ~ts","An ~ts"}.
|
||||
{"To","An"}.
|
||||
{"Token TTL","Token-TTL"}.
|
||||
{"Too many active bytestreams","Zu viele aktive Bytestreams"}.
|
||||
{"Too many CAPTCHA requests","Zu viele CAPTCHA-Anforderungen"}.
|
||||
|
@ -585,12 +536,8 @@
|
|||
{"Too many receiver fields were specified","Zu viele Empfängerfelder wurden angegeben"}.
|
||||
{"Too many unacked stanzas","Zu viele unbestätigte Stanzas"}.
|
||||
{"Too many users in this conference","Zu viele Benutzer in dieser Konferenz"}.
|
||||
{"Total rooms","Gesamte Räume"}.
|
||||
{"Traffic rate limit is exceeded","Datenratenlimit wurde überschritten"}.
|
||||
{"Transactions Aborted:","Abgebrochene Transaktionen:"}.
|
||||
{"Transactions Committed:","Übergebene Transaktionen:"}.
|
||||
{"Transactions Logged:","Protokollierte Transaktionen:"}.
|
||||
{"Transactions Restarted:","Neu gestartete Transaktionen:"}.
|
||||
{"~ts's MAM Archive","~ts's MAM Archiv"}.
|
||||
{"~ts's Offline Messages Queue","Offline-Nachrichten-Warteschlange von ~ts"}.
|
||||
{"Tuesday","Dienstag"}.
|
||||
{"Unable to generate a CAPTCHA","Konnte kein CAPTCHA erstellen"}.
|
||||
|
@ -601,19 +548,14 @@
|
|||
{"Uninstall","Deinstallieren"}.
|
||||
{"Unregister an XMPP account","Ein XMPP-Konto entfernen"}.
|
||||
{"Unregister","Deregistrieren"}.
|
||||
{"Unselect All","Alle abwählen"}.
|
||||
{"Unsupported <index/> element","Nicht unterstütztes <index/>-Element"}.
|
||||
{"Unsupported version","Nicht unterstützte Version"}.
|
||||
{"Update message of the day (don't send)","Aktualisiere Nachricht des Tages (nicht senden)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Aktualisiere Nachricht des Tages auf allen Hosts (nicht senden)"}.
|
||||
{"Update plan","Aktualisierungsplan"}.
|
||||
{"Update ~p","~p aktualisieren"}.
|
||||
{"Update script","Aktualisierungsscript"}.
|
||||
{"Update specs to get modules source, then install desired ones.","Aktualisieren Sie die Spezifikationen, um den Quellcode der Module zu erhalten und installieren Sie dann die gewünschten Module."}.
|
||||
{"Update Specs","Spezifikationen aktualisieren"}.
|
||||
{"Update","Aktualisieren"}.
|
||||
{"Updating the vCard is not supported by the vCard storage backend","Aktualisierung der vCard wird vom vCard-Speicher-Backend nicht unterstützt"}.
|
||||
{"Upgrade","Upgrade"}.
|
||||
{"Uptime:","Betriebszeit:"}.
|
||||
{"URL for Archived Discussion Logs","URL für archivierte Diskussionsprotokolle"}.
|
||||
{"User already exists","Benutzer existiert bereits"}.
|
||||
{"User (jid)","Benutzer (JID)"}.
|
||||
|
@ -628,7 +570,6 @@
|
|||
{"Users are not allowed to register accounts so quickly","Benutzer dürfen Konten nicht so schnell registrieren"}.
|
||||
{"Users Last Activity","Letzte Benutzeraktivität"}.
|
||||
{"Users","Benutzer"}.
|
||||
{"Validate","Validieren"}.
|
||||
{"Value 'get' of 'type' attribute is not allowed","Wert 'get' des 'type'-Attributs ist nicht erlaubt"}.
|
||||
{"Value of '~s' should be boolean","Wert von '~s' sollte boolesch sein"}.
|
||||
{"Value of '~s' should be datetime string","Wert von '~s' sollte DateTime-Zeichenkette sein"}.
|
||||
|
@ -636,14 +577,13 @@
|
|||
{"Value 'set' of 'type' attribute is not allowed","Wert 'set' des 'type'-Attributs ist nicht erlaubt"}.
|
||||
{"vCard User Search","vCard-Benutzer-Suche"}.
|
||||
{"View joined MIX channels","Beitretene MIX-Channel ansehen"}.
|
||||
{"View Queue","Warteschlange ansehen"}.
|
||||
{"View Roster","Kontaktliste ansehen"}.
|
||||
{"Virtual Hosts","Virtuelle Hosts"}.
|
||||
{"Visitor","Besucher"}.
|
||||
{"Visitors are not allowed to change their nicknames in this room","Besucher dürfen in diesem Raum ihren Spitznamen nicht ändern"}.
|
||||
{"Visitors are not allowed to send messages to all occupants","Besucher dürfen nicht an alle Teilnehmer Nachrichten versenden"}.
|
||||
{"Voice requests are disabled in this conference","Sprachrecht-Anforderungen sind in diesem Raum deaktiviert"}.
|
||||
{"Voice request","Sprachrecht-Anforderung"}.
|
||||
{"Web client which allows to join the room anonymously","Web-Client, der es ermöglicht, dem Raum anonym beizutreten"}.
|
||||
{"Wednesday","Mittwoch"}.
|
||||
{"When a new subscription is processed and whenever a subscriber comes online","Sobald ein neues Abonnement verarbeitet wird und wann immer ein Abonnent sich anmeldet"}.
|
||||
{"When a new subscription is processed","Sobald ein neues Abonnement verarbeitet wird"}.
|
||||
|
@ -656,6 +596,7 @@
|
|||
{"Whether to allow subscriptions","Ob Abonnements erlaubt sind"}.
|
||||
{"Whether to make all subscriptions temporary, based on subscriber presence","Ob alle Abonnements temporär gemacht werden sollen, basierend auf der Abonnentenpräsenz"}.
|
||||
{"Whether to notify owners about new subscribers and unsubscribes","Ob Besitzer über neue Abonnenten und Abbestellungen benachrichtigt werden sollen"}.
|
||||
{"Who can send private messages","Wer kann private Nachrichten senden"}.
|
||||
{"Who may associate leaf nodes with a collection","Wer Blattknoten mit einer Sammlung verknüpfen darf"}.
|
||||
{"Wrong parameters in the web formulary","Falsche Parameter im Webformular"}.
|
||||
{"Wrong xmlns","Falscher xmlns"}.
|
||||
|
@ -667,6 +608,7 @@
|
|||
{"XMPP Show Value of XA (Extended Away)","XMPP-Anzeigewert von XA (Extended Away/für längere Zeit abwesend)"}.
|
||||
{"XMPP URI of Associated Publish-Subscribe Node","XMPP-URI des verknüpften Publish-Subscribe-Knotens"}.
|
||||
{"You are being removed from the room because of a system shutdown","Sie werden wegen einer Systemabschaltung aus dem Raum entfernt"}.
|
||||
{"You are not allowed to send private messages","Sie dürfen keine privaten Nachrichten senden"}.
|
||||
{"You are not joined to the channel","Sie sind dem Raum nicht beigetreten"}.
|
||||
{"You can later change your password using an XMPP client.","Sie können Ihr Passwort später mit einem XMPP-Client ändern."}.
|
||||
{"You have been banned from this room","Sie wurden aus diesem Raum verbannt"}.
|
||||
|
|
117
priv/msgs/el.msg
117
priv/msgs/el.msg
|
@ -12,11 +12,10 @@
|
|||
{"A Web Page","Μία ιστοσελίδα"}.
|
||||
{"Accept","Αποδοχή"}.
|
||||
{"Access denied by service policy","Άρνηση πρόσβασης, λόγω τακτικής παροχής υπηρεσιών"}.
|
||||
{"Access model","Καθορίστε το μοντέλο πρόσβασης"}.
|
||||
{"Access model","Μοντέλο πρόσβασης"}.
|
||||
{"Account doesn't exist","Ο λογαριασμός δεν υπάρχει"}.
|
||||
{"Action on user","Eνέργεια για το χρήστη"}.
|
||||
{"Add Jabber ID","Προσθήκη Jabber Ταυτότητας"}.
|
||||
{"Add New","Προσθήκη νέου"}.
|
||||
{"Add a hat to a user","Προσθέστε ένα καπέλο σε έναν χρήστη"}.
|
||||
{"Add User","Προσθήκη Χρήστη"}.
|
||||
{"Administration of ","Διαχείριση του "}.
|
||||
{"Administration","Διαχείριση"}.
|
||||
|
@ -47,7 +46,9 @@
|
|||
{"Anyone with a presence subscription of both or from may subscribe and retrieve items","Όποιος έχει συνδρομή παρουσίας και των δύο ή από μπορεί να εγγραφεί και να ανακτήσει στοιχεία"}.
|
||||
{"Anyone with Voice","Οποιοσδήποτε με Φωνή"}.
|
||||
{"Anyone","Οποιοσδήποτε"}.
|
||||
{"API Commands","Εντολές του API"}.
|
||||
{"April","Απρίλιος"}.
|
||||
{"Arguments","Επιχειρήματα"}.
|
||||
{"Attribute 'channel' is required for this request","Το δηλωτικό 'channel' απαιτείται για αυτό το Ερώτημα"}.
|
||||
{"Attribute 'id' is mandatory for MIX messages","Το δηλωτικό 'id' επιτακτικό για μηνύματα MIX"}.
|
||||
{"Attribute 'jid' is not allowed here","Το δηλωτικό 'jid' δεν επιτρέπεται εδώ"}.
|
||||
|
@ -73,6 +74,7 @@
|
|||
{"Changing role/affiliation is not allowed","Η αλλαγή ρόλου/ομάδας δεν επιτρέπεται"}.
|
||||
{"Channel already exists","Το κανάλι υπάρχει ήδη"}.
|
||||
{"Channel does not exist","Το κανάλι δεν υπάρχει"}.
|
||||
{"Channel JID","JID καναλιού"}.
|
||||
{"Channels","Κανάλια"}.
|
||||
{"Characters not allowed:","Χαρακτήρες που δεν επιτρέπονται:"}.
|
||||
{"Chatroom configuration modified","Η ρύθμιση παραμέτρων της αίθουσας σύνεδριασης τροποποιηθηκε"}.
|
||||
|
@ -86,33 +88,25 @@
|
|||
{"Choose whether to approve this entity's subscription.","Επιλέξτε αν θα εγκρίθεί η εγγραφή αυτής της οντότητας."}.
|
||||
{"City","Πόλη"}.
|
||||
{"Client acknowledged more stanzas than sent by server","Ο πελάτης γνωρίζει περισσότερα δωμάτια από αυτά που στάλθηκαν από τον εξυπηρετητή"}.
|
||||
{"Clustering","Συσταδοποίηση"}.
|
||||
{"Commands","Εντολές"}.
|
||||
{"Conference room does not exist","Η αίθουσα σύνεδριασης δεν υπάρχει"}.
|
||||
{"Configuration of room ~s","Διαμόρφωση δωματίου ~ s"}.
|
||||
{"Configuration","Ρύθμιση παραμέτρων"}.
|
||||
{"Connected Resources:","Συνδεδεμένοι Πόροι:"}.
|
||||
{"Contact Addresses (normally, room owner or owners)","Διευθύνσεις της Επαφής (κανονικά, ιδιοκτήτης (-ες) αίθουσας)"}.
|
||||
{"Country","Χώρα"}.
|
||||
{"CPU Time:","Ώρα CPU:"}.
|
||||
{"Current Discussion Topic","Τρέχων θέμα συζήτησης"}.
|
||||
{"Database failure","Αποτυχία βάσης δεδομένων"}.
|
||||
{"Database Tables at ~p","Πίνακες βάσης δεδομένων στο ~p"}.
|
||||
{"Database Tables Configuration at ","Διαμόρφωση Πίνακων βάσης δεδομένων στο "}.
|
||||
{"Database","Βάση δεδομένων"}.
|
||||
{"December","Δεκέμβριος"}.
|
||||
{"Default users as participants","Προρυθμισμένοι χρήστες ως συμμετέχοντες"}.
|
||||
{"Delete content","Διαγραφή περιεχομένων"}.
|
||||
{"Delete message of the day on all hosts","Διαγράψτε το μήνυμα της ημέρας σε όλους τους κεντρικούς υπολογιστές"}.
|
||||
{"Delete message of the day","Διαγράψτε το μήνυμα της ημέρας"}.
|
||||
{"Delete Selected","Διαγραφή επιλεγμένων"}.
|
||||
{"Delete table","Διαγραφή Πίνακα"}.
|
||||
{"Delete User","Διαγραφή Χρήστη"}.
|
||||
{"Deliver event notifications","Παράδοση ειδοποιήσεων συμβάντων"}.
|
||||
{"Deliver payloads with event notifications","Κοινοποίηση φόρτου εργασιών με τις ειδοποιήσεις συμβάντων"}.
|
||||
{"Description:","Περιγραφή:"}.
|
||||
{"Disc only copy","Αντίγραφο μόνο σε δίσκο"}.
|
||||
{"'Displayed groups' not added (they do not exist!): ","'Οι εμφανιζόμενες ομάδες' δεν προστέθηκαν (δεν υπάρχουν!): "}.
|
||||
{"Displayed:","Απεικονίζεται:"}.
|
||||
{"Don't tell your password to anybody, not even the administrators of the XMPP server.","Μην πείτε τον κωδικό πρόσβασής σας σε κανέναν, ούτε στους διαχειριστές του διακομιστή XMPP."}.
|
||||
{"Dump Backup to Text File at ","Αποθήκευση Αντιγράφου Ασφαλείας σε αρχείο κειμένου στο "}.
|
||||
{"Dump to Text File","Αποθήκευση σε αρχείο κειμένου"}.
|
||||
|
@ -128,9 +122,9 @@
|
|||
{"ejabberd vCard module","ejabberd vCard module"}.
|
||||
{"ejabberd Web Admin","ejabberd Web Admin"}.
|
||||
{"ejabberd","ejabberd"}.
|
||||
{"Elements","Στοιχεία"}.
|
||||
{"Email Address","Ηλεκτρονική Διεύθυνση"}.
|
||||
{"Email","Ηλεκτρονικό ταχυδρομείο"}.
|
||||
{"Enable hats","Ενεργοποίηση καπέλων"}.
|
||||
{"Enable logging","Ενεργοποίηση καταγραφής"}.
|
||||
{"Enable message archiving","Ενεργοποιήστε την αρχειοθέτηση μηνυμάτων"}.
|
||||
{"Enabling push without 'node' attribute is not supported","Η ενεργοποίηση της ώθησης χωρίς το χαρακτηριστικό 'κόμβος' δεν υποστηρίζεται"}.
|
||||
|
@ -142,7 +136,6 @@
|
|||
{"Enter path to text file","Εισάγετε Τοποθεσία Αρχείου Κειμένου"}.
|
||||
{"Enter the text you see","Πληκτρολογήστε το κείμενο που βλέπετε"}.
|
||||
{"Erlang XMPP Server","Διακομιστής Erlang XMPP"}.
|
||||
{"Error","Σφάλμα"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Εξαίρεσε αυτές τις ταυτότητες Jabber από την CAPTCHA πρόκληση"}.
|
||||
{"Export all tables as SQL queries to a file:","Εξαγωγή όλων των πινάκων ως ερωτημάτων SQL σε ένα αρχείο:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Εξαγωγή δεδομένων όλων των χρηστών του διακομιστή σε PIEFXIS αρχεία (XEP-0227):"}.
|
||||
|
@ -161,28 +154,28 @@
|
|||
{"Fill in the form to search for any matching XMPP User","Συμπληρώστε την φόρμα για αναζήτηση χρηστών XMPP"}.
|
||||
{"Friday","Παρασκευή"}.
|
||||
{"From ~ts","Από ~ts"}.
|
||||
{"From","Από"}.
|
||||
{"Full List of Room Admins","Πλήρης Κατάλογος Διαχειριστών αιθουσών"}.
|
||||
{"Full List of Room Owners","Πλήρης Κατάλογος Ιδιοκτητών αιθουσών"}.
|
||||
{"Full Name","Ονοματεπώνυμο"}.
|
||||
{"Get List of Online Users","Λίστα online χρηστών"}.
|
||||
{"Get List of Registered Users","Λίστα εγγεγραμμένων χρηστών"}.
|
||||
{"Get Number of Online Users","Έκθεση αριθμού συνδεδεμένων χρηστών"}.
|
||||
{"Get Number of Registered Users","Έκθεση αριθμού εγγεγραμμένων χρηστών"}.
|
||||
{"Get Pending","Λήψη των εκκρεμοτήτων"}.
|
||||
{"Get User Last Login Time","Έκθεση Τελευταίας Ώρας Σύνδεσης Χρήστη"}.
|
||||
{"Get User Password","Έκθεση Κωδικού Πρόσβασης Χρήστη"}.
|
||||
{"Get User Statistics","Έκθεση Στατιστικών Χρήστη"}.
|
||||
{"Given Name","Όνομα"}.
|
||||
{"Grant voice to this person?","Παραχώρηση φωνής σε αυτό το άτομο;"}.
|
||||
{"Groups that will be displayed to the members","Ομάδες που θα εμφανίζονται στα μέλη"}.
|
||||
{"Groups","Ομάδες"}.
|
||||
{"Group","Ομάδα"}.
|
||||
{"has been banned","έχει αποβληθεί διαπαντώς"}.
|
||||
{"has been kicked because of a system shutdown","αποβλήθηκε λόγω τερματισμού συστήματος"}.
|
||||
{"has been kicked because of an affiliation change","έχει αποβληθεί λόγω αλλαγής υπαγωγής"}.
|
||||
{"has been kicked because the room has been changed to members-only","αποβλήθηκε επειδή η αίθουσα αλλάξε γιά μέλη μόνο"}.
|
||||
{"has been kicked","αποβλήθηκε"}.
|
||||
{"Hash of the vCard-temp avatar of this room","Hash του vCard-temp avatar αυτού του δωματίου"}.
|
||||
{"Hat title","Τίτλος καπέλου"}.
|
||||
{"Hat URI","Καπέλο URI"}.
|
||||
{"Hats limit exceeded","Υπέρβαση του ορίου καπέλων"}.
|
||||
{"Host unknown","Άγνωστος εξυπηρετητής"}.
|
||||
{"Host","Εξυπηρετητής"}.
|
||||
{"HTTP File Upload","Ανέβασμα αρχείου"}.
|
||||
{"Idle connection","Αδρανής σύνδεση"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Εάν δεν βλέπετε την εικόνα CAPTCHA εδώ, επισκεφθείτε την ιστοσελίδα."}.
|
||||
|
@ -196,13 +189,14 @@
|
|||
{"Import Users From jabberd14 Spool Files","Εισαγωγή Χρηστών από αρχεία σειράς jabberd14"}.
|
||||
{"Improper domain part of 'from' attribute","Ανάρμοστο τμήμα τομέα του χαρακτηριστικού 'from'"}.
|
||||
{"Improper message type","Ακατάλληλο είδος μηνύματος"}.
|
||||
{"Incoming s2s Connections:","Εισερχόμενες συνδέσεις s2s:"}.
|
||||
{"Incorrect CAPTCHA submit","Λάθος υποβολή CAPTCHA"}.
|
||||
{"Incorrect data form","Εσφαλμένη φόρμα δεδομένων"}.
|
||||
{"Incorrect password","Εσφαλμένος κωδικός πρόσβασης"}.
|
||||
{"Incorrect value of 'action' attribute","Λανθασμένη τιμή του χαρακτηριστικού 'action'"}.
|
||||
{"Incorrect value of 'action' in data form","Λανθασμένη τιμή 'action' στη φόρμα δεδομένων"}.
|
||||
{"Incorrect value of 'path' in data form","Λανθασμένη τιμή 'path' στη φόρμα δεδομένων"}.
|
||||
{"Installed Modules:","Εγκατεστημένες ενότητες:"}.
|
||||
{"Install","Εγκατάσταση"}.
|
||||
{"Insufficient privilege","Ανεπαρκή προνόμια"}.
|
||||
{"Internal server error","Εσωτερικό σφάλμα"}.
|
||||
{"Invalid 'from' attribute in forwarded message","Μη έγκυρο χαρακτηριστικό 'από' στο προωθούμενο μήνυμα"}.
|
||||
|
@ -218,11 +212,12 @@
|
|||
{"January","Ιανουάριος"}.
|
||||
{"JID normalization denied by service policy","Απετράπη η κανονικοποίηση του JID, λόγω της τακτικής Παροχής Υπηρεσιών"}.
|
||||
{"JID normalization failed","Απετράπη η κανονικοποίηση του JID"}.
|
||||
{"Joined MIX channels of ~ts","Ενσωματωμένα κανάλια MIX του ~ts"}.
|
||||
{"Joined MIX channels:","Ενσωματωμένα κανάλια MIX:"}.
|
||||
{"joins the room","συνδέεται στην αίθουσα"}.
|
||||
{"July","Ιούλιος"}.
|
||||
{"June","Ιούνιος"}.
|
||||
{"Just created","Μόλις δημιουργήθηκε"}.
|
||||
{"Label:","Ετικέτα:"}.
|
||||
{"Last Activity","Τελευταία Δραστηριότητα"}.
|
||||
{"Last login","Τελευταία σύνδεση"}.
|
||||
{"Last message","Τελευταίο μήνυμα"}.
|
||||
|
@ -230,9 +225,10 @@
|
|||
{"Last year","Πέρυσι"}.
|
||||
{"Least significant bits of SHA-256 hash of text should equal hexadecimal label","Τα ψηφία μικρότερης αξίας του αθροίσματος SHA-256 του κειμένου θα έπρεπε να ισούνται με την δεκαεξαδική ετικέτα"}.
|
||||
{"leaves the room","εγκαταλείπει την αίθουσα"}.
|
||||
{"List of rooms","Κατάλογος αιθουσών"}.
|
||||
{"List of users with hats","Λίστα των χρηστών με καπέλα"}.
|
||||
{"List users with hats","Λίστα χρηστών με καπέλα"}.
|
||||
{"Logged Out","Αποσυνδεδεμένος"}.
|
||||
{"Logging","Καταγραφή"}.
|
||||
{"Low level update script","Προγράμα ενημέρωσης χαμηλού επίπεδου"}.
|
||||
{"Make participants list public","Κάντε δημόσιο τον κατάλογο συμμετεχόντων"}.
|
||||
{"Make room CAPTCHA protected","Κάντε την αίθουσα προστατεύομενη με CAPTCHA"}.
|
||||
{"Make room members-only","Κάντε την αίθουσα μόνο για μέλη"}.
|
||||
|
@ -243,17 +239,15 @@
|
|||
{"Malformed username","Λανθασμένη μορφή ονόματος χρήστη"}.
|
||||
{"MAM preference modification denied by service policy","Άρνηση αλλαγής προτιμήσεων MAM, λόγω της τακτικής Παροχής Υπηρεσιών"}.
|
||||
{"March","Μάρτιος"}.
|
||||
{"Max # of items to persist, or `max` for no specific limit other than a server imposed maximum","Μέγιστος αριθμός στοιχείων που πρέπει να παραμείνουν, ή « Μέγιστο » για κανένα συγκεκριμένο όριο εκτός από το μέγιστο που επιβάλλει ο διακομιστής"}.
|
||||
{"Max payload size in bytes","Μέγιστο μέγεθος φορτίου σε bytes"}.
|
||||
{"Maximum file size","Μέγιστο μέγεθος αρχείου"}.
|
||||
{"Maximum Number of History Messages Returned by Room","Μέγιστος αριθμός μηνυμάτων Ιστορικού που επιστρέφονται από την Αίθουσα"}.
|
||||
{"Maximum number of items to persist","Μέγιστος αριθμός μόνιμων στοιχείων"}.
|
||||
{"Maximum Number of Occupants","Μέγιστος αριθμός συμμετεχόντων"}.
|
||||
{"May","Μάιος"}.
|
||||
{"Members not added (inexistent vhost!): ","Τα μέλη δεν προστέθηκαν (ανύπαρκτος vhost!): "}.
|
||||
{"Membership is required to enter this room","Απαιτείται αίτηση συμετοχής για είσοδο σε αυτή την αίθουσα"}.
|
||||
{"Members:","Μέλη:"}.
|
||||
{"Memorize your password, or write it in a paper placed in a safe place. In XMPP there isn't an automated way to recover your password if you forget it.","Απομνημονεύστε τον κωδικό πρόσβασής σας ή γράψτε τον σε χαρτί που βρίσκεται σε ασφαλές μέρος. Στο XMPP δεν υπάρχει αυτοματοποιημένος τρόπος ανάκτησης του κωδικού πρόσβασής σας εάν τον ξεχάσετε."}.
|
||||
{"Memory","Μνήμη"}.
|
||||
{"Mere Availability in XMPP (No Show Value)","Διαθεσιμότητα στο XMPP (Χωρίς ένδειξη)"}.
|
||||
{"Message body","Περιεχόμενο μηνύματος"}.
|
||||
{"Message not found in forwarded payload","Δεν βρέθηκε μήνυμα στον προωθημένο φόρτο εργασίας"}.
|
||||
|
@ -265,15 +259,12 @@
|
|||
{"Moderator privileges required","Aπαιτούνται προνόμια επόπτου"}.
|
||||
{"Moderators Only","Επόπτες μόμον"}.
|
||||
{"Moderator","Επόπτης"}.
|
||||
{"Modified modules","Τροποποιημένα modules"}.
|
||||
{"Module failed to handle the query","Το module απέτυχε να χειριστεί το ερώτημα"}.
|
||||
{"Monday","Δευτέρα"}.
|
||||
{"Multicast","Πολλαπλή διανομή (Multicast)"}.
|
||||
{"Multiple <item/> elements are not allowed by RFC6121","Πολλαπλά στοιχεία <item/> δεν επιτρέπονται από το RFC6121"}.
|
||||
{"Multi-User Chat","Συνομιλία με πολλούς χρήστες"}.
|
||||
{"Name in the rosters where this group will be displayed","Όνομα στις λίστες όπου αυτή η ομάδα θα εμφανίζεται"}.
|
||||
{"Name","Όνομα"}.
|
||||
{"Name:","Όνομα:"}.
|
||||
{"Natural Language for Room Discussions","Μητρική Γλώσσα για τις Συζητήσεις Αιθουσών"}.
|
||||
{"Natural-Language Room Name","Αίθουσα Μητρικής Γλώσσας"}.
|
||||
{"Neither 'jid' nor 'nick' attribute found","Δεν βρέθηκε κανένα χαρακτηριστικό 'jid' ούτε 'nick'"}.
|
||||
|
@ -319,6 +310,7 @@
|
|||
{"Node ~p","Κόμβος ~p"}.
|
||||
{"Nodeprep has failed","Το Nodeprep απέτυχε"}.
|
||||
{"Nodes","Κόμβοι"}.
|
||||
{"Node","Κόμβος"}.
|
||||
{"None","Κανένα"}.
|
||||
{"Not allowed","Δεν επιτρέπεται"}.
|
||||
{"Not Found","Δε βρέθηκε"}.
|
||||
|
@ -332,17 +324,15 @@
|
|||
{"Number of Offline Messages","Πλήθος μηνυμάτων Χωρίς Σύνδεση"}.
|
||||
{"Number of online users","Αριθμός συνδεδεμένων χρηστών"}.
|
||||
{"Number of registered users","Αριθμός εγγεγραμμένων χρηστών"}.
|
||||
{"Number of seconds after which to automatically purge items, or `max` for no specific limit other than a server imposed maximum","Αριθμός δευτερολέπτων μετά από τα οποία θα καθαρίζονται αυτόματα τα στοιχεία, ή `max` για κανένα συγκεκριμένο όριο εκτός από το μέγιστο που επιβάλλει ο διακομιστής"}.
|
||||
{"Occupants are allowed to invite others","Οι συμμετέχοντες μπορούν να προσκαλέσουν και άλλους"}.
|
||||
{"Occupants are allowed to query others","Οι κάτοικοι επιτρέπεται να ρωτούν άλλους"}.
|
||||
{"Occupants May Change the Subject","Επιτρέψτε στους χρήστες να αλλάζουν το Θέμα"}.
|
||||
{"October","Οκτώβριος"}.
|
||||
{"Offline Messages","Χωρίς Σύνδεση Μηνύματα"}.
|
||||
{"Offline Messages:","Χωρίς Σύνδεση Μηνύματα:"}.
|
||||
{"OK","Εντάξει"}.
|
||||
{"Old Password:","Παλαιός κωδικός πρόσβασης:"}.
|
||||
{"Online Users:","Online Χρήστες:"}.
|
||||
{"Online Users","Συνδεμένοι χρήστες"}.
|
||||
{"Online","Συνδεδεμένο"}.
|
||||
{"Only admins can see this","Μόνον οι διαχειριστές μπορούν να το δουν αυτό"}.
|
||||
{"Only collection node owners may associate leaf nodes with the collection","Μόνον οι ιδιοκτήτες των κόμβων μπορούν να συσχετίσουν leaf nodes με την Συλλογή"}.
|
||||
{"Only deliver notifications to available users","Παράδοση ειδοποιήσεων μόνο σε διαθέσιμους χρήστες"}.
|
||||
{"Only <enable/> or <disable/> tags are allowed","Επιτρέπονται μόνο tags <enable /> ή <disable />"}.
|
||||
|
@ -350,6 +340,7 @@
|
|||
{"Only members may query archives of this room","Μόνο μέλη μπορούν να δούνε τα αρχεία αυτής της αίθουσας"}.
|
||||
{"Only moderators and participants are allowed to change the subject in this room","Μόνο οι συντονιστές και οι συμμετέχοντες μπορούν να αλλάξουν το θέμα αυτής της αίθουσας"}.
|
||||
{"Only moderators are allowed to change the subject in this room","Μόνο οι συντονιστές μπορούν να αλλάξουν το θέμα αυτής της αίθουσας"}.
|
||||
{"Only moderators are allowed to retract messages","Μόνο οι συντονιστές επιτρέπεται να αποσύρουν μηνύματα"}.
|
||||
{"Only moderators can approve voice requests","Μόνο οι συντονιστές μπορούν να εγκρίνουν τις αιτήσεις φωνής"}.
|
||||
{"Only occupants are allowed to send messages to the conference","Μόνο οι συμμετέχοντες επιτρέπεται να στέλνουν μηνύματα στο συνέδριο"}.
|
||||
{"Only occupants are allowed to send queries to the conference","Μόνο οι συμμετέχοντες επιτρέπεται να στείλουν ερωτήματα στη διάσκεψη"}.
|
||||
|
@ -359,11 +350,11 @@
|
|||
{"Only those on a whitelist may subscribe and retrieve items","Μόνο όσοι βρίσκονται στη λίστα επιτρεπόμενων μπορούν να εγγραφούν και να ανακτήσουν αντικείμενα"}.
|
||||
{"Organization Name","Όνομα Οργανισμού"}.
|
||||
{"Organization Unit","Μονάδα Οργανισμού"}.
|
||||
{"Other Modules Available:","Διαθέσιμες άλλες ενότητες:"}.
|
||||
{"Outgoing s2s Connections","Εξερχόμενες S2S Συνδέσεις"}.
|
||||
{"Outgoing s2s Connections:","Εξερχόμενες S2S Συνδέσεις:"}.
|
||||
{"Owner privileges required","Aπαιτούνται προνόμια ιδιοκτήτη"}.
|
||||
{"Packet relay is denied by service policy","Απαγορεύεται η αναμετάδοση πακέτων, λόγω της τακτικής Παροχής Υπηρεσιών"}.
|
||||
{"Packet","Πακέτο"}.
|
||||
{"Participant ID","ID συμμετέχοντος"}.
|
||||
{"Participant","Συμμετέχων"}.
|
||||
{"Password Verification","Επαλήθευση κωδικού πρόσβασης"}.
|
||||
{"Password Verification:","Επαλήθευση κωδικού πρόσβασης:"}.
|
||||
|
@ -371,7 +362,7 @@
|
|||
{"Password:","Κωδικός πρόσβασης:"}.
|
||||
{"Path to Dir","Τοποθεσία κατάλογου αρχείων"}.
|
||||
{"Path to File","Τοποθεσία Αρχείου"}.
|
||||
{"Pending","Εκκρεμεί"}.
|
||||
{"Payload semantic type information","Πληροφορίες σημασιολογικού τύπου ωφέλιμου φορτίου"}.
|
||||
{"Period: ","Περίοδος: "}.
|
||||
{"Persist items to storage","Μόνιμη αποθήκευση στοιχείων"}.
|
||||
{"Persistent","Μόνιμη"}.
|
||||
|
@ -405,25 +396,22 @@
|
|||
{"Receive notification of new nodes only","Λάβετε ειδοποίηση μόνο από νέους κόμβους"}.
|
||||
{"Recipient is not in the conference room","Ο παραλήπτης δεν είναι στην αίθουσα συνεδριάσεων"}.
|
||||
{"Register an XMPP account","Καταχωρείστε έναν XMPP λογαριασμό χρήστη"}.
|
||||
{"Registered Users","Εγγεγραμμένοι Χρήστες"}.
|
||||
{"Registered Users:","Εγγεγραμμένοι Χρήστες:"}.
|
||||
{"Register","Καταχωρήστε"}.
|
||||
{"Remote copy","Εξ αποστάσεως αντίγραφο"}.
|
||||
{"Remove All Offline Messages","Αφαίρεση όλων των μηνυμάτων χωρίς σύνδεση"}.
|
||||
{"Remove a hat from a user","Αφαίρεση ενός καπέλου από έναν χρήστη"}.
|
||||
{"Remove User","Αφαίρεση χρήστη"}.
|
||||
{"Remove","Αφαίρεση"}.
|
||||
{"Replaced by new connection","Αντικαταστάθηκε από μια νέα σύνδεση"}.
|
||||
{"Request has timed out","Το αίτημα έληξε"}.
|
||||
{"Request is ignored","Το αίτημα θα αγνοηθεί"}.
|
||||
{"Requested role","Αιτούμενος ρόλος"}.
|
||||
{"Resources","Πόροι"}.
|
||||
{"Restart Service","Επανεκκίνηση Υπηρεσίας"}.
|
||||
{"Restart","Επανεκκίνηση"}.
|
||||
{"Restore Backup from File at ","Επαναφορά Αντιγράφου Ασφαλείας από αρχείο στο "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Επαναφορά δυαδικού αντιγράφου ασφαλείας μετά την επόμενη επανεκκίνηση του ejabberd (απαιτεί λιγότερη μνήμη):"}.
|
||||
{"Restore binary backup immediately:","Επαναφορά δυαδικού αντιγράφου ασφαλείας αμέσως:"}.
|
||||
{"Restore plain text backup immediately:","Επαναφορά αντιγράφου ασφαλείας από αρχείο κειμένου αμέσως:"}.
|
||||
{"Restore","Επαναφορά Αντιγράφου Ασφαλείας"}.
|
||||
{"Result","Αποτέλεσμα"}.
|
||||
{"Roles and Affiliations that May Retrieve Member List","Ρόλοι και δεσμοί που μπορούν να λάβουν την λίστα μελών"}.
|
||||
{"Roles for which Presence is Broadcasted","Ρόλοι των οποίων η παρουσία δηλώνεται δημόσια"}.
|
||||
{"Roles that May Send Private Messages","Ρόλοι που επιτρέπεται να αποστέλλουν ιδιωτικά μηνύματα"}.
|
||||
|
@ -434,20 +422,15 @@
|
|||
{"Room terminates","Τερματισμός Αίθουσας"}.
|
||||
{"Room title","Τίτλος Αίθουσας"}.
|
||||
{"Roster groups allowed to subscribe","Ομάδες Καταλόγου Επαφών μπορούν να εγγραφούν"}.
|
||||
{"Roster of ~ts","Καταλόγου Επαφών του ~ts"}.
|
||||
{"Roster size","Μέγεθος Καταλόγου Επαφών"}.
|
||||
{"Roster:","Καταλόγος Επαφών:"}.
|
||||
{"RPC Call Error","Σφάλμα RPC Κλήσης"}.
|
||||
{"Running Nodes","Ενεργοί Κόμβοι"}.
|
||||
{"~s invites you to the room ~s","~s Σας καλεί στο δωμάτιο ~s"}.
|
||||
{"Saturday","Σάββατο"}.
|
||||
{"Script check","Script ελέγχου"}.
|
||||
{"Search from the date","Αναζήτηση από της"}.
|
||||
{"Search Results for ","Αποτελέσματα αναζήτησης για "}.
|
||||
{"Search the text","Αναζήτηση του κειμένου"}.
|
||||
{"Search until the date","Αναζήτηση μέχρι της"}.
|
||||
{"Search users in ","Αναζήτηση χρηστών στο "}.
|
||||
{"Select All","Επιλογή όλων"}.
|
||||
{"Send announcement to all online users on all hosts","Αποστολή ανακοίνωσης σε όλους τους συνδεδεμένους χρήστες σε όλους τους κεντρικούς υπολογιστές"}.
|
||||
{"Send announcement to all online users","Αποστολή ανακοίνωσης σε όλους τους συνδεδεμένους χρήστες"}.
|
||||
{"Send announcement to all users on all hosts","Αποστολή ανακοίνωσης σε όλους τους χρήστες σε όλους τους κεντρικούς υπολογιστές"}.
|
||||
|
@ -460,32 +443,29 @@
|
|||
{"Set message of the day on all hosts and send to online users","Ορίστε μήνυμα ημέρας και άμεση αποστολή στους συνδεδεμένους χρήστες σε όλους τους κεντρικούς υπολογιστές"}.
|
||||
{"Shared Roster Groups","Κοινές Ομάδες Καταλόγων Επαφών"}.
|
||||
{"Show Integral Table","Δείτε Ολοκληρωτικό Πίνακα"}.
|
||||
{"Show Occupants Join/Leave","Εμφάνιση ενοίκων Join/Leave"}.
|
||||
{"Show Ordinary Table","Δείτε Κοινό Πίνακα"}.
|
||||
{"Shut Down Service","Τερματισμός Υπηρεσίας"}.
|
||||
{"SOCKS5 Bytestreams","Bytestreams του SOCKS5"}.
|
||||
{"Some XMPP clients can store your password in the computer, but you should do this only in your personal computer for safety reasons.","Ορισμένοι πελάτες XMPP μπορούν να αποθηκεύσουν τον κωδικό πρόσβασής σας στον υπολογιστή, αλλά θα πρέπει να το κάνετε μόνο στον προσωπικό σας υπολογιστή για λόγους ασφαλείας."}.
|
||||
{"Sources Specs:","Πηγές Προδιαγραφές:"}.
|
||||
{"Specify the access model","Καθορίστε το μοντέλο πρόσβασης"}.
|
||||
{"Specify the event message type","Καθορίστε τον τύπο μηνύματος συμβάντος"}.
|
||||
{"Specify the publisher model","Καθορίστε το μοντέλο εκδότη"}.
|
||||
{"Stanza id is not valid","Το Stanza id δεν είναι έγκυρο"}.
|
||||
{"Stanza ID","Ταυτότητα Δωματίου"}.
|
||||
{"Statically specify a replyto of the node owner(s)","Προσδιορίστε (στατικά) το Απάντηση Προς του ιδιοκτήτη-ων του κόμβου"}.
|
||||
{"Statistics of ~p","Στατιστικές του ~p"}.
|
||||
{"Statistics","Στατιστικές"}.
|
||||
{"Stopped Nodes","Σταματημένοι Κόμβοι"}.
|
||||
{"Stop","Σταμάτημα"}.
|
||||
{"Storage Type","Τύπος Αποθήκευσης"}.
|
||||
{"Store binary backup:","Αποθηκεύση δυαδικού αντιγράφου ασφαλείας:"}.
|
||||
{"Store plain text backup:","Αποθηκεύση αντιγράφου ασφαλείας σε αρχείο κειμένου:"}.
|
||||
{"Stream management is already enabled","Η διαχείριση Ροών επιτρέπεται ηδη"}.
|
||||
{"Stream management is not enabled","Η διαχείριση Ροών δεν είναι ενεργοποιημένη"}.
|
||||
{"Subject","Θέμα"}.
|
||||
{"Submitted","Υποβλήθηκε"}.
|
||||
{"Submit","Υποβολή"}.
|
||||
{"Subscriber Address","Διεύθυνση Συνδρομητή"}.
|
||||
{"Subscribers may publish","Οι συνδρομητές μπορούν να δημοσιεύσουν"}.
|
||||
{"Subscription requests must be approved and only subscribers may retrieve items","Τα αιτήματα για συνδρομή πρέπει να εγκριθούν και μόνο οι συνδρομητές μπορούν να λάβουν αντικείμενα"}.
|
||||
{"Subscriptions are not allowed","Οι συνδρομές δεν επιτρέπονται"}.
|
||||
{"Subscription","Συνδρομή"}.
|
||||
{"Sunday","Κυριακή"}.
|
||||
{"Text associated with a picture","Το κείμενο σχετίστηκε με μία εικόνα"}.
|
||||
{"Text associated with a sound","Το κείμενο σχετίστηκε με έναν ήχο"}.
|
||||
|
@ -509,7 +489,10 @@
|
|||
{"The JIDs of those to contact with questions","Το JID αυτών με τους οποίους θα επικοινωνήσετε με ερωτήσεις"}.
|
||||
{"The JIDs of those with an affiliation of owner","Το JID αυτών που σχετίζονται με τον ιδιοκτήτη"}.
|
||||
{"The JIDs of those with an affiliation of publisher","Το JID αυτών που σχετίζονται με τον εκδότη"}.
|
||||
{"The list of all online users","Ο κατάλογος όλων των online χρηστών"}.
|
||||
{"The list of all users","Ο κατάλογος όλων των χρηστών"}.
|
||||
{"The list of JIDs that may associate leaf nodes with a collection","Λίστα των JIDs που μπορούν να σχετίζουν leaf κόμβους με μια Συλλογή"}.
|
||||
{"The maximum number of child nodes that can be associated with a collection, or `max` for no specific limit other than a server imposed maximum","Ο μέγιστος αριθμός των παιδικών κόμβων που μπορούν να συσχετιστούν με μια συλλογή, ή `max` για κανένα συγκεκριμένο όριο εκτός από το μέγιστο που επιβάλλει ο διακομιστής"}.
|
||||
{"The minimum number of milliseconds between sending any two notification digests","Το ελάχιστο πλήθος χιλιοστών του δευτερολέπτου μεταξύ της αποστολής δύο συγχωνεύσεων ειδοποιήσεων"}.
|
||||
{"The name of the node","Το όνομα του κόμβου"}.
|
||||
{"The node is a collection node","Ο κόμβος είναι κόμβος Συλλογής"}.
|
||||
|
@ -528,6 +511,7 @@
|
|||
{"The query is only allowed from local users","Το ερώτημα επιτρέπεται μόνο από τοπικούς χρήστες"}.
|
||||
{"The query must not contain <item/> elements","Το ερώτημα δεν πρέπει να περιέχει στοιχείο <item/>"}.
|
||||
{"The room subject can be modified by participants","Το θέμα μπορεί να τροποποιηθεί από τους συμμετέχοντες"}.
|
||||
{"The semantic type information of data in the node, usually specified by the namespace of the payload (if any)","Οι πληροφορίες σημασιολογικού τύπου των δεδομένων στον κόμβο, που συνήθως καθορίζονται από το χώρο ονομάτων του ωφέλιμου φορτίου (εάν υπάρχει)"}.
|
||||
{"The sender of the last received message","Ο αποστολέας του τελευταίου εισερχομένου μηνύματος"}.
|
||||
{"The stanza MUST contain only one <active/> element, one <default/> element, or one <list/> element","Η stanza ΠΡΕΠΕΙ να περιέχει μόνο ένα στοιχείο <active />, ένα στοιχείο <default /> ή ένα στοιχείο <list />"}.
|
||||
{"The subscription identifier associated with the subscription request","Το αναγνωριστικό συνδρομής συσχετίστηκε με το αίτημα συνδρομής"}.
|
||||
|
@ -544,7 +528,6 @@
|
|||
{"Thursday","Πέμπτη"}.
|
||||
{"Time delay","Χρόνος καθυστέρησης"}.
|
||||
{"Timed out waiting for stream resumption","Υπερέβην το όριο αναμονής για επανασύνδεση της Ροής"}.
|
||||
{"Time","Χρόνος"}.
|
||||
{"To register, visit ~s","Για να εγγραφείτε, επισκεφθείτε το ~s"}.
|
||||
{"To ~ts","Προς ~ts"}.
|
||||
{"Token TTL","Διακριτικό TTL"}.
|
||||
|
@ -557,13 +540,8 @@
|
|||
{"Too many receiver fields were specified","Πάρα πολλά πεδία δεκτών προσδιορίστηκαν"}.
|
||||
{"Too many unacked stanzas","Πάρα πολλές μη αναγνωρισμένες stanzas"}.
|
||||
{"Too many users in this conference","Πάρα πολλοί χρήστες σε αυτή τη διάσκεψη"}.
|
||||
{"Total rooms","Συνολικές Αίθουσες σύνεδριασης"}.
|
||||
{"To","Προς"}.
|
||||
{"Traffic rate limit is exceeded","Υπέρφορτωση"}.
|
||||
{"Transactions Aborted:","Αποτυχημένες συναλλαγές:"}.
|
||||
{"Transactions Committed:","Παραδοθείσες συναλλαγές:"}.
|
||||
{"Transactions Logged:","Καταγεγραμμένες συναλλαγές:"}.
|
||||
{"Transactions Restarted:","Επανειλημμένες συναλλαγές:"}.
|
||||
{"~ts's MAM Archive","Αρχείο MAM του ~ts"}.
|
||||
{"~ts's Offline Messages Queue","~ts's Χωρίς Σύνδεση Μηνύματα"}.
|
||||
{"Tuesday","Τρίτη"}.
|
||||
{"Unable to generate a CAPTCHA","Αδύνατη η δημιουργία CAPTCHA"}.
|
||||
|
@ -571,23 +549,23 @@
|
|||
{"Unauthorized","Χωρίς Εξουσιοδότηση"}.
|
||||
{"Unexpected action","Απροσδόκητη ενέργεια"}.
|
||||
{"Unexpected error condition: ~p","Απροσδόκητες συνθήκες σφάλματος: ~p"}.
|
||||
{"Uninstall","Απεγκατάσταση"}.
|
||||
{"Unregister an XMPP account","Καταργήση λογαριασμού XMPP"}.
|
||||
{"Unregister","Καταργήση εγγραφής"}.
|
||||
{"Unselect All","Αποεπιλογή όλων"}.
|
||||
{"Unsupported <index/> element","Μη υποστηριζόμενο στοιχείο <index />"}.
|
||||
{"Unsupported version","Μη υποστηριζόμενη έκδοση"}.
|
||||
{"Update message of the day (don't send)","Ενημέρωση μηνύματος ημέρας (χωρίς άμεση αποστολή)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Ενημέρωση μηνύματος ημέρας σε όλους τους κεντρικούς υπολογιστές (χωρίς άμεση αποστολή)"}.
|
||||
{"Update plan","Σχέδιο ενημέρωσης"}.
|
||||
{"Update ~p","Ενημέρωση ~p"}.
|
||||
{"Update script","Προγράμα ενημέρωσης"}.
|
||||
{"Update","Ενημέρωση"}.
|
||||
{"Uptime:","Χρόνος σε λειτουργία:"}.
|
||||
{"Update specs to get modules source, then install desired ones.","Ενημερώστε τις προδιαγραφές για να λάβετε την πηγή των ενοτήτων και, στη συνέχεια, εγκαταστήστε τις επιθυμητές."}.
|
||||
{"Update Specs","Προδιαγραφές ενημέρωσης"}.
|
||||
{"Updating the vCard is not supported by the vCard storage backend","Η ενημέρωση της vCard δεν υποστηρίζεται από το backend αποθήκευσης vCard"}.
|
||||
{"Upgrade","Αναβάθμιση"}.
|
||||
{"URL for Archived Discussion Logs","URL αρχειοθετημένων καταγραφών συζητήσεων"}.
|
||||
{"User already exists","Ο χρήστης υπάρχει ήδη"}.
|
||||
{"User JID","JID Χρήστη"}.
|
||||
{"User (jid)","Χρήστης (jid)"}.
|
||||
{"User Management","Διαχείριση χρηστών"}.
|
||||
{"User not allowed to perform an IQ set on another user's vCard.","Ο χρήστης δεν επιτρέπεται να εκτελέσει ένα σετ IQ στην vCard ενός άλλου χρήστη."}.
|
||||
{"User removed","Ο Χρήστης αφαιρέθηκε"}.
|
||||
{"User session not found","Η περίοδος σύνδεσης χρήστη δεν βρέθηκε"}.
|
||||
{"User session terminated","Η περίοδος σύνδεσης χρήστη τερματίστηκε"}.
|
||||
|
@ -597,21 +575,20 @@
|
|||
{"Users Last Activity","Τελευταία Δραστηριότητα Χρήστη"}.
|
||||
{"Users","Χρήστες"}.
|
||||
{"User","Χρήστης"}.
|
||||
{"Validate","Επαληθεύστε"}.
|
||||
{"Value 'get' of 'type' attribute is not allowed","Η τιμή 'get' του 'type' δεν επιτρέπεται"}.
|
||||
{"Value of '~s' should be boolean","Η τιμή του '~s' πρέπει να είναι boolean"}.
|
||||
{"Value of '~s' should be datetime string","Η τιμή του '~s' θα πρέπει να είναι χρονοσειρά"}.
|
||||
{"Value of '~s' should be integer","Η τιμή του '~s' θα πρέπει να είναι ακέραιος"}.
|
||||
{"Value 'set' of 'type' attribute is not allowed","Δεν επιτρέπεται η παράμετρος 'set' του 'type'"}.
|
||||
{"vCard User Search","vCard Αναζήτηση χρηστών"}.
|
||||
{"View Queue","Εμφάνιση λίστας αναμονής"}.
|
||||
{"View Roster","Εμφάνιση λίστας Επαφών"}.
|
||||
{"View joined MIX channels","Προβολή ενταγμένων καναλιών MIX"}.
|
||||
{"Virtual Hosts","Eικονικοί κεντρικοί υπολογιστές"}.
|
||||
{"Visitors are not allowed to change their nicknames in this room","Οι επισκέπτες δεν επιτρέπεται να αλλάξουν τα ψευδώνυμα τους σε αυτή την αίθουσα"}.
|
||||
{"Visitors are not allowed to send messages to all occupants","Οι επισκέπτες δεν επιτρέπεται να στείλουν μηνύματα σε όλους τους συμμετέχοντες"}.
|
||||
{"Visitor","Επισκέπτης"}.
|
||||
{"Voice requests are disabled in this conference","Τα αιτήματα φωνής είναι απενεργοποιημένα, σε αυτό το συνέδριο"}.
|
||||
{"Voice request","Αίτημα φωνής"}.
|
||||
{"Web client which allows to join the room anonymously","Web client που επιτρέπει την ανώνυμη είσοδο στην αίθουσα"}.
|
||||
{"Wednesday","Τετάρτη"}.
|
||||
{"When a new subscription is processed and whenever a subscriber comes online","Όταν μία νέα συνδρομή βρίσκεται εν επεξεργασία και όποτε ένας συνδρομητής συνδεθεί"}.
|
||||
{"When a new subscription is processed","Όταν μία νέα συνδρομή βρίσκεται εν επεξεργασία"}.
|
||||
|
@ -624,6 +601,7 @@
|
|||
{"Whether to allow subscriptions","Εάν επιτρέπονται συνδρομές"}.
|
||||
{"Whether to make all subscriptions temporary, based on subscriber presence","Αν επιτρέπεται να γίνουν όλες οι συνδρομές προσωρινές, βασιζόμενοι στην παρουσία του συνδρομητή"}.
|
||||
{"Whether to notify owners about new subscribers and unsubscribes","Αν πρέπει να ειδοποιούνται οι ιδιοκτήτες για νέους συνδρομητές και αποχωρήσεις"}.
|
||||
{"Who can send private messages","Ποιος μπορεί να στείλει ιδιωτικά μηνύματα"}.
|
||||
{"Who may associate leaf nodes with a collection","Ποιός μπορεί να συσχετίζει leaf nodes με μία συλλογή"}.
|
||||
{"Wrong parameters in the web formulary","Εσφαλμένες παράμετροι στην διαμόρφωση τυπικότητας του δυκτίου"}.
|
||||
{"Wrong xmlns","Εσφαλμένο xmlns"}.
|
||||
|
@ -635,6 +613,7 @@
|
|||
{"XMPP Show Value of XA (Extended Away)","Δείξε τιμή XMPP Αξία του Λίαν Απομακρυσμένος"}.
|
||||
{"XMPP URI of Associated Publish-Subscribe Node","XMPP URI του συσχετισμένου κόμβου Δημοσίευσης-Εγγραφής"}.
|
||||
{"You are being removed from the room because of a system shutdown","Απαιτείται η απομάκρυνσή σας από την αίθουσα, λόγω τερματισμού συστήματος"}.
|
||||
{"You are not allowed to send private messages","Δεν επιτρέπεται η αποστολή ιδιωτικών μηνυμάτων"}.
|
||||
{"You are not joined to the channel","Δεν λαμβάνετε μέρος στο κανάλι"}.
|
||||
{"You can later change your password using an XMPP client.","Μπορείτε αργότερα να αλλάξετε τον κωδικό πρόσβασής σας χρησιμοποιώντας ένα πρόγραμμα-πελάτη XMPP."}.
|
||||
{"You have been banned from this room","Σας έχει απαγορευθεί η είσοδος σε αυτή την αίθουσα"}.
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
{"Access model","Atingomodelo"}.
|
||||
{"Account doesn't exist","Konto ne ekzistas"}.
|
||||
{"Action on user","Ago je uzanto"}.
|
||||
{"Add Jabber ID","Aldonu Jabber ID"}.
|
||||
{"Add New","Aldonu novan"}.
|
||||
{"Add User","Aldonu Uzanton"}.
|
||||
{"Administration of ","Mastrumado de "}.
|
||||
{"Administration","Administro"}.
|
||||
|
@ -76,22 +74,17 @@
|
|||
{"Conference room does not exist","Babilejo ne ekzistas"}.
|
||||
{"Configuration of room ~s","Agordo de babilejo ~s"}.
|
||||
{"Configuration","Agordo"}.
|
||||
{"Connected Resources:","Konektataj risurcoj:"}.
|
||||
{"Country","Lando"}.
|
||||
{"CPU Time:","CPU-tempo"}.
|
||||
{"Current Discussion Topic","Aktuala Diskuta Temo"}.
|
||||
{"Database Tables at ~p","Datumbaz-tabeloj je ~p"}.
|
||||
{"Database Tables Configuration at ","Agordo de datumbaz-tabeloj je "}.
|
||||
{"Database","Datumbazo"}.
|
||||
{"December","Decembro"}.
|
||||
{"Default users as participants","Kutime farigu uzantojn kiel partpoprenantoj"}.
|
||||
{"Delete message of the day on all hosts","Forigu mesaĝo de la tago je ĉiu gastigo"}.
|
||||
{"Delete message of the day","Forigu mesaĝo de la tago"}.
|
||||
{"Delete Selected","Forigu elektata(j)n"}.
|
||||
{"Delete User","Forigu Uzanton"}.
|
||||
{"Deliver event notifications","Liveru event-sciigojn"}.
|
||||
{"Deliver payloads with event notifications","Liveru aĵojn de event-sciigoj"}.
|
||||
{"Description:","Priskribo:"}.
|
||||
{"Disc only copy","Nur disk-kopio"}.
|
||||
{"Dump Backup to Text File at ","Skribu sekurkopion en plata teksto al "}.
|
||||
{"Dump to Text File","Skribu en plata tekst-dosiero"}.
|
||||
|
@ -105,7 +98,6 @@
|
|||
{"ejabberd vCard module","ejabberd vCard-modulo"}.
|
||||
{"ejabberd Web Admin","ejabberd Teksaĵa Administro"}.
|
||||
{"ejabberd","ejabberd"}.
|
||||
{"Elements","Eroj"}.
|
||||
{"Email Address","Retpoŝta Adreso"}.
|
||||
{"Email","Retpoŝto"}.
|
||||
{"Enable logging","Ŝaltu protokoladon"}.
|
||||
|
@ -117,7 +109,6 @@
|
|||
{"Enter path to jabberd14 spool file","Enmetu vojon al jabberd14-uzantdosiero"}.
|
||||
{"Enter path to text file","Enmetu vojon al plata teksto"}.
|
||||
{"Enter the text you see","Enmetu montrita teksto"}.
|
||||
{"Error","Eraro"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Esceptu Ĵabber-identigilojn je CAPTCHA-defio"}.
|
||||
{"Export all tables as SQL queries to a file:","Eksportu ĉiuj tabeloj kiel SQL-informmendo al dosierujo:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Eksportu datumojn de ĉiuj uzantoj en servilo al PIEFXIS dosieroj (XEP-0227):"}.
|
||||
|
@ -127,23 +118,18 @@
|
|||
{"February","Februaro"}.
|
||||
{"File larger than ~w bytes","Dosiero pli granda ol ~w bajtoj"}.
|
||||
{"Friday","Vendredo"}.
|
||||
{"From","De"}.
|
||||
{"Full Name","Plena Nomo"}.
|
||||
{"Get Number of Online Users","Montru nombron de konektataj uzantoj"}.
|
||||
{"Get Number of Registered Users","Montru nombron de registritaj uzantoj"}.
|
||||
{"Get User Last Login Time","Montru tempon de lasta ensaluto"}.
|
||||
{"Get User Password","Montru pasvorton de uzanto"}.
|
||||
{"Get User Statistics","Montru statistikojn de uzanto"}.
|
||||
{"Given Name","Persona Nomo"}.
|
||||
{"Grant voice to this person?","Koncedu voĉon al ĉi-persono?"}.
|
||||
{"Group","Grupo"}.
|
||||
{"Groups","Grupoj"}.
|
||||
{"has been banned","estas forbarita"}.
|
||||
{"has been kicked because of a system shutdown","estas forpelita pro sistem-haltigo"}.
|
||||
{"has been kicked because of an affiliation change","estas forpelita pro aparteneca ŝanĝo"}.
|
||||
{"has been kicked because the room has been changed to members-only","estas forpelita ĉar la babilejo fariĝis sole por membroj"}.
|
||||
{"has been kicked","estas forpelita"}.
|
||||
{"Host","Gastigo"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Se vi ne vidas la CAPTCHA-imagon jene, vizitu la teksaĵ-paĝon."}.
|
||||
{"Import Directory","Importu dosierujo"}.
|
||||
{"Import File","Importu dosieron"}.
|
||||
|
@ -166,14 +152,11 @@
|
|||
{"July","Julio"}.
|
||||
{"June","Junio"}.
|
||||
{"Just created","Ĵus kreita"}.
|
||||
{"Label:","Etikedo:"}.
|
||||
{"Last Activity","Lasta aktiveco"}.
|
||||
{"Last login","Lasta ensaluto"}.
|
||||
{"Last month","Lasta monato"}.
|
||||
{"Last year","Lasta jaro"}.
|
||||
{"leaves the room","eliras la babilejo"}.
|
||||
{"List of rooms","Listo de babilejoj"}.
|
||||
{"Low level update script","Bazanivela ĝisdatigo-skripto"}.
|
||||
{"Make participants list public","Farigu partoprento-liston publika"}.
|
||||
{"Make room CAPTCHA protected","Protektu babilejon per CAPTCHA"}.
|
||||
{"Make room members-only","Farigu babilejon sole por membroj"}.
|
||||
|
@ -187,20 +170,16 @@
|
|||
{"Maximum Number of Occupants","Limigo de nombro de partoprenantoj"}.
|
||||
{"May","Majo"}.
|
||||
{"Membership is required to enter this room","Membreco estas bezonata por eniri ĉi tiun babilejon"}.
|
||||
{"Members:","Membroj:"}.
|
||||
{"Memory","Memoro"}.
|
||||
{"Message body","Teksto de mesaĝo"}.
|
||||
{"Middle Name","Meza Nomo"}.
|
||||
{"Minimum interval between voice requests (in seconds)","Minimuma intervalo inter voĉ-petoj (je sekundoj)"}.
|
||||
{"Moderator privileges required","Moderantaj rajtoj bezonata"}.
|
||||
{"Modified modules","Ĝisdatigitaj moduloj"}.
|
||||
{"Module failed to handle the query","Modulo malsukcesis trakti la informpeton"}.
|
||||
{"Monday","Lundo"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multiple <item/> elements are not allowed by RFC6121","RFC 6121 ne permesas plurajn <item/>-elementojn"}.
|
||||
{"Multi-User Chat","Grupbabilado"}.
|
||||
{"Name","Nomo"}.
|
||||
{"Name:","Nomo:"}.
|
||||
{"Natural Language for Room Discussions","Homa Lingvo por Diskutoj en Babilejo"}.
|
||||
{"Never","Neniam"}.
|
||||
{"New Password:","Nova Pasvorto:"}.
|
||||
|
@ -232,11 +211,8 @@
|
|||
{"Number of online users","Nombro de konektataj uzantoj"}.
|
||||
{"Number of registered users","Nombro de registritaj uzantoj"}.
|
||||
{"October","Oktobro"}.
|
||||
{"Offline Messages","Liverontaj mesaĝoj"}.
|
||||
{"Offline Messages:","Liverontaj mesaĝoj"}.
|
||||
{"OK","Bone"}.
|
||||
{"Old Password:","Malnova Pasvorto:"}.
|
||||
{"Online Users:","Konektataj uzantoj:"}.
|
||||
{"Online Users","Konektataj Uzantoj"}.
|
||||
{"Online","Konektata"}.
|
||||
{"Only deliver notifications to available users","Nur liveru sciigojn al konektataj uzantoj"}.
|
||||
|
@ -253,16 +229,13 @@
|
|||
{"Organization Name","Organiz-nomo"}.
|
||||
{"Organization Unit","Organiz-parto"}.
|
||||
{"Outgoing s2s Connections","Elirantaj s-al-s-konektoj"}.
|
||||
{"Outgoing s2s Connections:","Elirantaj s-al-s-konektoj:"}.
|
||||
{"Owner privileges required","Mastraj rajtoj bezonata"}.
|
||||
{"Packet","Pakaĵo"}.
|
||||
{"Password Verification","Pasvortkontrolo"}.
|
||||
{"Password Verification:","Pasvortkontrolo:"}.
|
||||
{"Password","Pasvorto"}.
|
||||
{"Password:","Pasvorto:"}.
|
||||
{"Path to Dir","Vojo al dosierujo"}.
|
||||
{"Path to File","Voje de dosiero"}.
|
||||
{"Pending","Atendanta"}.
|
||||
{"Period: ","Periodo: "}.
|
||||
{"Persist items to storage","Savu erojn en konservado"}.
|
||||
{"Ping","Sondaĵo"}.
|
||||
|
@ -281,17 +254,12 @@
|
|||
{"RAM copy","RAM-kopio"}.
|
||||
{"Really delete message of the day?","Ĉu vere forigi mesaĝon de la tago?"}.
|
||||
{"Recipient is not in the conference room","Ricevanto ne ĉeestas en la babilejo"}.
|
||||
{"Registered Users","Registritaj uzantoj"}.
|
||||
{"Registered Users:","Registritaj uzantoj:"}.
|
||||
{"Register","Registru"}.
|
||||
{"Remote copy","Fora kopio"}.
|
||||
{"Remove All Offline Messages","Forigu ĉiujn liverontajn mesaĝojn"}.
|
||||
{"Remove User","Forigu uzanton"}.
|
||||
{"Remove","Forigu"}.
|
||||
{"Replaced by new connection","Anstataŭigita je nova konekto"}.
|
||||
{"Resources","Risurcoj"}.
|
||||
{"Restart Service","Restartu Servon"}.
|
||||
{"Restart","Restartu"}.
|
||||
{"Restore Backup from File at ","Restaŭrigu de dosiero el "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Restaŭrigu duuman sekurkopion post sekvonta ejabberd-restarto"}.
|
||||
{"Restore binary backup immediately:","Restaŭrigu duuman sekurkopion tuj:"}.
|
||||
|
@ -304,10 +272,8 @@
|
|||
{"Room title","Babilejo-nomo"}.
|
||||
{"Roster groups allowed to subscribe","Kontaktlist-grupoj kiuj rajtas aboni"}.
|
||||
{"Roster size","Kontaktlist-grando"}.
|
||||
{"RPC Call Error","Eraro de RPC-alvoko"}.
|
||||
{"Running Nodes","Funkciantaj Nodoj"}.
|
||||
{"Saturday","Sabato"}.
|
||||
{"Script check","Skript-kontrolo"}.
|
||||
{"Search Results for ","Serĉ-rezultoj de "}.
|
||||
{"Search users in ","Serĉu uzantojn en "}.
|
||||
{"Send announcement to all online users on all hosts","Sendu anoncon al ĉiu konektata uzanto de ĉiu gastigo"}.
|
||||
|
@ -325,19 +291,13 @@
|
|||
{"Specify the access model","Specifu atingo-modelon"}.
|
||||
{"Specify the event message type","Specifu tipo de event-mesaĝo"}.
|
||||
{"Specify the publisher model","Enmetu publikadan modelon"}.
|
||||
{"Statistics of ~p","Statistikoj de ~p"}.
|
||||
{"Statistics","Statistikoj"}.
|
||||
{"Stop","Haltigu"}.
|
||||
{"Stopped Nodes","Neaktivaj Nodoj"}.
|
||||
{"Storage Type","Konserv-tipo"}.
|
||||
{"Store binary backup:","Konservu duuman sekurkopion:"}.
|
||||
{"Store plain text backup:","Skribu sekurkopion en plata tekstdosiero"}.
|
||||
{"Subject","Temo"}.
|
||||
{"Submit","Sendu"}.
|
||||
{"Submitted","Sendita"}.
|
||||
{"Subscriber Address","Abonanta adreso"}.
|
||||
{"Subscribers may publish","Abonantoj rajtas publici"}.
|
||||
{"Subscription","Abono"}.
|
||||
{"Sunday","Dimanĉo"}.
|
||||
{"That nickname is already in use by another occupant","Tiu kaŝnomo jam estas uzata de alia partoprenanto"}.
|
||||
{"That nickname is registered by another person","Kaŝnomo estas registrita de alia persono"}.
|
||||
|
@ -354,28 +314,16 @@
|
|||
{"This room is not anonymous","Ĉi tiu babilejo ne estas anonima"}.
|
||||
{"Thursday","Ĵaŭdo"}.
|
||||
{"Time delay","Prokrasto"}.
|
||||
{"Time","Tempo"}.
|
||||
{"To","Ĝis"}.
|
||||
{"Too many CAPTCHA requests","Tro multaj CAPTCHA-petoj"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Tro da malsukcesaj aŭtentprovoj (~p) de ĉi tiu IP-adreso (~s). La adreso estos malbarata je ~s UTC."}.
|
||||
{"Too many unacked stanzas","Tro da neagnoskitaj stancoj"}.
|
||||
{"Total rooms","Babilejoj"}.
|
||||
{"Traffic rate limit is exceeded","Trafikrapida limigo superita"}.
|
||||
{"Transactions Aborted:","Transakcioj nuligitaj"}.
|
||||
{"Transactions Committed:","Transakcioj enmetitaj"}.
|
||||
{"Transactions Logged:","Transakcioj protokolitaj"}.
|
||||
{"Transactions Restarted:","Transakcioj restartitaj"}.
|
||||
{"Tuesday","Mardo"}.
|
||||
{"Unable to generate a CAPTCHA","Ne eblis krei CAPTCHA"}.
|
||||
{"Unauthorized","Nepermesita"}.
|
||||
{"Unregister","Malregistru"}.
|
||||
{"Update message of the day (don't send)","Ŝanĝu mesaĝon de la tago (ne sendu)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Ŝanĝu mesaĝon de la tago je ĉiu gastigo (ne sendu)"}.
|
||||
{"Update ~p","Ĝisdatigu ~p-n"}.
|
||||
{"Update plan","Ĝisdatigo-plano"}.
|
||||
{"Update script","Ĝisdatigo-skripto"}.
|
||||
{"Update","Ĝisdatigu"}.
|
||||
{"Uptime:","Daŭro de funkciado"}.
|
||||
{"URL for Archived Discussion Logs","Retpaĝa adreso de Enarkivigitaj Diskutprotokoloj"}.
|
||||
{"User JID","Uzant-JID"}.
|
||||
{"User Management","Uzanto-administrado"}.
|
||||
|
@ -384,7 +332,6 @@
|
|||
{"Users Last Activity","Lasta aktiveco de uzanto"}.
|
||||
{"Users","Uzantoj"}.
|
||||
{"User","Uzanto"}.
|
||||
{"Validate","Validigu"}.
|
||||
{"vCard User Search","Serĉado de vizitkartoj"}.
|
||||
{"Virtual Hosts","Virtual-gastigoj"}.
|
||||
{"Visitors are not allowed to change their nicknames in this room","Ne estas permesata al vizitantoj ŝanĝi siajn kaŝnomojn en ĉi tiu ĉambro"}.
|
||||
|
|
|
@ -16,8 +16,6 @@
|
|||
{"Account doesn't exist","La cuenta no existe"}.
|
||||
{"Action on user","Acción en el usuario"}.
|
||||
{"Add a hat to a user","Añade un sombrero a un usuario"}.
|
||||
{"Add Jabber ID","Añadir Jabber ID"}.
|
||||
{"Add New","Añadir nuevo"}.
|
||||
{"Add User","Añadir usuario"}.
|
||||
{"Administration of ","Administración de "}.
|
||||
{"Administration","Administración"}.
|
||||
|
@ -48,8 +46,9 @@
|
|||
{"Anyone with a presence subscription of both or from may subscribe and retrieve items","Cualquiera con una suscripción a la presencia de 'ambos' o 'de' puede suscribirse y recibir elementos"}.
|
||||
{"Anyone with Voice","Cualquiera con Voz"}.
|
||||
{"Anyone","Cualquiera"}.
|
||||
{"Apparently your account has no administration rights in this server. Please check how to grant admin rights in: https://docs.ejabberd.im/admin/installation/#administration-account","Aparentemente tu cuenta no tiene permisos de administración en este servidor. Por favor consulta cómo concederle privilegios de administrador en: https://docs.ejabberd.im/admin/installation/#administration-account"}.
|
||||
{"API Commands","Comandos API"}.
|
||||
{"April","Abril"}.
|
||||
{"Arguments","Argumentos"}.
|
||||
{"Attribute 'channel' is required for this request","El atributo 'channel' es necesario para esta petición"}.
|
||||
{"Attribute 'id' is mandatory for MIX messages","El atributo 'id' es necesario para mensajes MIX"}.
|
||||
{"Attribute 'jid' is not allowed here","El atributo 'jid' no está permitido aqui"}.
|
||||
|
@ -89,34 +88,25 @@
|
|||
{"Choose whether to approve this entity's subscription.","Decidir si aprobar la subscripción de esta entidad."}.
|
||||
{"City","Ciudad"}.
|
||||
{"Client acknowledged more stanzas than sent by server","El cliente ha reconocido más paquetes de los que el servidor ha enviado"}.
|
||||
{"Clustering","Clustering"}.
|
||||
{"Commands","Comandos"}.
|
||||
{"Conference room does not exist","La sala de conferencias no existe"}.
|
||||
{"Configuration of room ~s","Configuración para la sala ~s"}.
|
||||
{"Configuration","Configuración"}.
|
||||
{"Connected Resources:","Recursos conectados:"}.
|
||||
{"Contact Addresses (normally, room owner or owners)","Direcciones de contacto (normalmente la del dueño o dueños de la sala)"}.
|
||||
{"Contrib Modules","Módulos Contrib"}.
|
||||
{"Country","País"}.
|
||||
{"CPU Time:","Tiempo consumido de CPU:"}.
|
||||
{"Current Discussion Topic","Tema de discusión actual"}.
|
||||
{"Database failure","Error en la base de datos"}.
|
||||
{"Database Tables at ~p","Tablas de la base de datos en ~p"}.
|
||||
{"Database Tables Configuration at ","Configuración de tablas de la base de datos en "}.
|
||||
{"Database","Base de datos"}.
|
||||
{"December","Diciembre"}.
|
||||
{"Default users as participants","Los usuarios son participantes por defecto"}.
|
||||
{"Delete content","Borrar contenido"}.
|
||||
{"Delete message of the day on all hosts","Borrar el mensaje del día en todos los dominios"}.
|
||||
{"Delete message of the day","Borrar mensaje del dia"}.
|
||||
{"Delete Selected","Borrar los seleccionados"}.
|
||||
{"Delete table","Borrar tabla"}.
|
||||
{"Delete User","Borrar usuario"}.
|
||||
{"Deliver event notifications","Entregar notificaciones de eventos"}.
|
||||
{"Deliver payloads with event notifications","Enviar contenidos junto con las notificaciones de eventos"}.
|
||||
{"Description:","Descripción:"}.
|
||||
{"Disc only copy","Copia en disco solamente"}.
|
||||
{"'Displayed groups' not added (they do not exist!): ","'Mostrados' que no han sido añadidos (¡no existen!): "}.
|
||||
{"Displayed:","Mostrados:"}.
|
||||
{"Don't tell your password to anybody, not even the administrators of the XMPP server.","No le digas tu contraseña a nadie, ni siquiera a los administradores del servidor XMPP."}.
|
||||
{"Dump Backup to Text File at ","Exporta copia de seguridad a fichero de texto en "}.
|
||||
{"Dump to Text File","Exportar a fichero de texto"}.
|
||||
|
@ -132,7 +122,6 @@
|
|||
{"ejabberd vCard module","Módulo vCard para ejabberd"}.
|
||||
{"ejabberd Web Admin","ejabberd Web Admin"}.
|
||||
{"ejabberd","ejabberd"}.
|
||||
{"Elements","Elementos"}.
|
||||
{"Email Address","Dirección de correo electrónico"}.
|
||||
{"Email","Correo electrónico"}.
|
||||
{"Enable hats","Activar sombreros"}.
|
||||
|
@ -147,7 +136,6 @@
|
|||
{"Enter path to text file","Introduce ruta al fichero de texto"}.
|
||||
{"Enter the text you see","Teclea el texto que ves"}.
|
||||
{"Erlang XMPP Server","Servidor XMPP en Erlang"}.
|
||||
{"Error","Error"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Excluir Jabber IDs de las pruebas de CAPTCHA"}.
|
||||
{"Export all tables as SQL queries to a file:","Exportar todas las tablas a un fichero SQL:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Exportar datos de todos los usuarios del servidor a ficheros PIEFXIS (XEP-0227):"}.
|
||||
|
@ -166,7 +154,6 @@
|
|||
{"Fill in the form to search for any matching XMPP User","Rellena campos para buscar usuarios XMPP que concuerden"}.
|
||||
{"Friday","Viernes"}.
|
||||
{"From ~ts","De ~ts"}.
|
||||
{"From","De"}.
|
||||
{"Full List of Room Admins","Lista completa de administradores de la sala"}.
|
||||
{"Full List of Room Owners","Lista completa de dueños de la sala"}.
|
||||
{"Full Name","Nombre completo"}.
|
||||
|
@ -176,23 +163,19 @@
|
|||
{"Get Number of Registered Users","Ver número de usuarios registrados"}.
|
||||
{"Get Pending","Obtener pendientes"}.
|
||||
{"Get User Last Login Time","Ver fecha de la última conexión de usuario"}.
|
||||
{"Get User Password","Ver contraseña de usuario"}.
|
||||
{"Get User Statistics","Ver estadísticas de usuario"}.
|
||||
{"Given Name","Nombre"}.
|
||||
{"Given Name","Nombre de pila"}.
|
||||
{"Grant voice to this person?","¿Conceder voz a esta persona?"}.
|
||||
{"Group","Grupo"}.
|
||||
{"Groups that will be displayed to the members","Grupos que se mostrarán a los miembros"}.
|
||||
{"Groups","Grupos"}.
|
||||
{"has been banned","ha sido bloqueado"}.
|
||||
{"has been kicked because of a system shutdown","ha sido expulsado porque el sistema se va a detener"}.
|
||||
{"has been kicked because of an affiliation change","ha sido expulsado por un cambio de su afiliación"}.
|
||||
{"has been kicked because the room has been changed to members-only","ha sido expulsado porque la sala es ahora solo para miembros"}.
|
||||
{"has been kicked","ha sido expulsado"}.
|
||||
{"Hash of the vCard-temp avatar of this room","Hash del avatar vCard-temp de esta sala"}.
|
||||
{"Hat title","Título del sombrero"}.
|
||||
{"Hat URI","Dirección del sombrero"}.
|
||||
{"Hats limit exceeded","Se ha excedido el límite de sombreros"}.
|
||||
{"Host unknown","Dominio desconocido"}.
|
||||
{"Host","Dominio"}.
|
||||
{"HTTP File Upload","Subir fichero por HTTP"}.
|
||||
{"Idle connection","Conexión sin uso"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Si no ves la imagen CAPTCHA aquí, visita la página web."}.
|
||||
|
@ -206,7 +189,6 @@
|
|||
{"Import Users From jabberd14 Spool Files","Importar usuarios de ficheros spool de jabberd-1.4"}.
|
||||
{"Improper domain part of 'from' attribute","Parte de dominio impropia en el atributo 'from'"}.
|
||||
{"Improper message type","Tipo de mensaje incorrecto"}.
|
||||
{"Incoming s2s Connections:","Conexiones S2S entrantes:"}.
|
||||
{"Incorrect CAPTCHA submit","El CAPTCHA proporcionado es incorrecto"}.
|
||||
{"Incorrect data form","Formulario de datos incorrecto"}.
|
||||
{"Incorrect password","Contraseña incorrecta"}.
|
||||
|
@ -236,7 +218,6 @@
|
|||
{"July","Julio"}.
|
||||
{"June","Junio"}.
|
||||
{"Just created","Recién creada"}.
|
||||
{"Label:","Etiqueta:"}.
|
||||
{"Last Activity","Última actividad"}.
|
||||
{"Last login","Última conexión"}.
|
||||
{"Last message","Último mensaje"}.
|
||||
|
@ -244,11 +225,10 @@
|
|||
{"Last year","Último año"}.
|
||||
{"Least significant bits of SHA-256 hash of text should equal hexadecimal label","Los bits menos significativos del hash SHA-256 del texto deberían ser iguales a la etiqueta hexadecimal"}.
|
||||
{"leaves the room","sale de la sala"}.
|
||||
{"List of rooms","Lista de salas"}.
|
||||
{"List of users with hats","Lista de usuarios con sombreros"}.
|
||||
{"List users with hats","Listar usuarios con sombreros"}.
|
||||
{"Logged Out","Desconectad@"}.
|
||||
{"Logging","Histórico de mensajes"}.
|
||||
{"Low level update script","Script de actualización a bajo nivel"}.
|
||||
{"Make participants list public","La lista de participantes es pública"}.
|
||||
{"Make room CAPTCHA protected","Proteger la sala con CAPTCHA"}.
|
||||
{"Make room members-only","Sala sólo para miembros"}.
|
||||
|
@ -266,11 +246,8 @@
|
|||
{"Maximum number of items to persist","Máximo número de elementos que persisten"}.
|
||||
{"Maximum Number of Occupants","Número máximo de ocupantes"}.
|
||||
{"May","Mayo"}.
|
||||
{"Members not added (inexistent vhost!): ","Miembros no añadidos (el vhost no existe): "}.
|
||||
{"Membership is required to enter this room","Necesitas ser miembro de esta sala para poder entrar"}.
|
||||
{"Members:","Miembros:"}.
|
||||
{"Memorize your password, or write it in a paper placed in a safe place. In XMPP there isn't an automated way to recover your password if you forget it.","Memoriza tu contraseña, o apúntala en un papel en un lugar seguro. En XMPP no hay un método automatizado para recuperar la contraseña si la olvidas."}.
|
||||
{"Memory","Memoria"}.
|
||||
{"Mere Availability in XMPP (No Show Value)","Disponible en XMPP (sin valor de Mostrado)"}.
|
||||
{"Message body","Cuerpo del mensaje"}.
|
||||
{"Message not found in forwarded payload","Mensaje no encontrado en el contenido reenviado"}.
|
||||
|
@ -282,15 +259,12 @@
|
|||
{"Moderator privileges required","Se necesita privilegios de moderador"}.
|
||||
{"Moderator","Moderador"}.
|
||||
{"Moderators Only","Solo moderadores"}.
|
||||
{"Modified modules","Módulos modificados"}.
|
||||
{"Module failed to handle the query","El módulo falló al gestionar la petición"}.
|
||||
{"Monday","Lunes"}.
|
||||
{"Multicast","Multidifusión"}.
|
||||
{"Multiple <item/> elements are not allowed by RFC6121","No se permiten múltiples elementos <item/> en RFC6121"}.
|
||||
{"Multi-User Chat","Salas de Charla"}.
|
||||
{"Name in the rosters where this group will be displayed","Nombre del grupo con que aparecerá en las listas de contactos"}.
|
||||
{"Name","Nombre"}.
|
||||
{"Name:","Nombre:"}.
|
||||
{"Natural Language for Room Discussions","Idioma natural en las charlas de la sala"}.
|
||||
{"Natural-Language Room Name","Nombre de la sala en el idioma natural de la sala"}.
|
||||
{"Neither 'jid' nor 'nick' attribute found","No se encontraron los atributos 'jid' ni 'nick'"}.
|
||||
|
@ -355,14 +329,10 @@
|
|||
{"Occupants are allowed to query others","Los ocupantes pueden enviar peticiones a otros"}.
|
||||
{"Occupants May Change the Subject","Los ocupantes pueden cambiar el Asunto"}.
|
||||
{"October","Octubre"}.
|
||||
{"Offline Messages","Mensajes diferidos"}.
|
||||
{"Offline Messages:","Mensajes diferidos:"}.
|
||||
{"OK","Aceptar"}.
|
||||
{"Old Password:","Contraseña antigua:"}.
|
||||
{"Online Users","Usuarios conectados"}.
|
||||
{"Online Users:","Usuarios conectados:"}.
|
||||
{"Online","Conectado"}.
|
||||
{"Only admins can see this","Solo los administradores pueden ver esto"}.
|
||||
{"Only collection node owners may associate leaf nodes with the collection","Solo los dueños e la colección de nodos pueden asociar nodos hoja a la colección"}.
|
||||
{"Only deliver notifications to available users","Solo enviar notificaciones a los usuarios disponibles"}.
|
||||
{"Only <enable/> or <disable/> tags are allowed","Solo se permiten las etiquetas <enable/> o <disable/>"}.
|
||||
|
@ -382,10 +352,8 @@
|
|||
{"Organization Unit","Unidad de la organización"}.
|
||||
{"Other Modules Available:","Otros módulos disponibles:"}.
|
||||
{"Outgoing s2s Connections","Conexiones S2S salientes"}.
|
||||
{"Outgoing s2s Connections:","Conexiones S2S salientes:"}.
|
||||
{"Owner privileges required","Se requieren privilegios de propietario de la sala"}.
|
||||
{"Packet relay is denied by service policy","Se ha denegado el reenvío del paquete por política del servicio"}.
|
||||
{"Packet","Paquete"}.
|
||||
{"Participant ID","ID del Participante"}.
|
||||
{"Participant","Participante"}.
|
||||
{"Password Verification","Verificación de la contraseña"}.
|
||||
|
@ -395,7 +363,6 @@
|
|||
{"Path to Dir","Ruta al directorio"}.
|
||||
{"Path to File","Ruta al fichero"}.
|
||||
{"Payload semantic type information","Información sobre el tipo semántico de la carga útil"}.
|
||||
{"Pending","Pendiente"}.
|
||||
{"Period: ","Periodo: "}.
|
||||
{"Persist items to storage","Persistir elementos al almacenar"}.
|
||||
{"Persistent","Permanente"}.
|
||||
|
@ -429,26 +396,22 @@
|
|||
{"Receive notification of new nodes only","Recibir notificaciones solo de nuevos nodos"}.
|
||||
{"Recipient is not in the conference room","El receptor no está en la sala de conferencia"}.
|
||||
{"Register an XMPP account","Registrar una cuenta XMPP"}.
|
||||
{"Registered Users","Usuarios registrados"}.
|
||||
{"Registered Users:","Usuarios registrados:"}.
|
||||
{"Register","Registrar"}.
|
||||
{"Remote copy","Copia remota"}.
|
||||
{"Remove a hat from a user","Quitarle un sombrero a un usuario"}.
|
||||
{"Remove All Offline Messages","Borrar todos los mensajes diferidos"}.
|
||||
{"Remove User","Eliminar usuario"}.
|
||||
{"Remove","Borrar"}.
|
||||
{"Replaced by new connection","Reemplazado por una nueva conexión"}.
|
||||
{"Request has timed out","La petición ha caducado"}.
|
||||
{"Request is ignored","La petición ha sido ignorada"}.
|
||||
{"Requested role","Rol solicitado"}.
|
||||
{"Resources","Recursos"}.
|
||||
{"Restart Service","Reiniciar el servicio"}.
|
||||
{"Restart","Reiniciar"}.
|
||||
{"Restore Backup from File at ","Restaura copia de seguridad desde el fichero en "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Restaurar copia de seguridad binaria en el siguiente reinicio de ejabberd (requiere menos memoria que si instantánea):"}.
|
||||
{"Restore binary backup immediately:","Restaurar inmediatamente copia de seguridad binaria:"}.
|
||||
{"Restore plain text backup immediately:","Restaurar copias de seguridad de texto plano inmediatamente:"}.
|
||||
{"Restore","Restaurar"}.
|
||||
{"Result","Resultado"}.
|
||||
{"Roles and Affiliations that May Retrieve Member List","Roles y Afiliaciones que pueden obtener la lista de miembros"}.
|
||||
{"Roles for which Presence is Broadcasted","Roles para los que sí se difunde su Presencia"}.
|
||||
{"Roles that May Send Private Messages","Roles que pueden enviar mensajes privados"}.
|
||||
|
@ -459,20 +422,15 @@
|
|||
{"Room terminates","Cerrando la sala"}.
|
||||
{"Room title","Título de la sala"}.
|
||||
{"Roster groups allowed to subscribe","Grupos de contactos que pueden suscribirse"}.
|
||||
{"Roster of ~ts","Lista de contactos de ~ts"}.
|
||||
{"Roster size","Tamaño de la lista de contactos"}.
|
||||
{"Roster:","Lista de contactos:"}.
|
||||
{"RPC Call Error","Error en la llamada RPC"}.
|
||||
{"Running Nodes","Nodos funcionando"}.
|
||||
{"~s invites you to the room ~s","~s te invita a la sala ~s"}.
|
||||
{"Saturday","Sábado"}.
|
||||
{"Script check","Comprobación de script"}.
|
||||
{"Search from the date","Buscar desde la fecha"}.
|
||||
{"Search Results for ","Buscar resultados por "}.
|
||||
{"Search the text","Buscar el texto"}.
|
||||
{"Search until the date","Buscar hasta la fecha"}.
|
||||
{"Search users in ","Buscar usuarios en "}.
|
||||
{"Select All","Seleccionar todo"}.
|
||||
{"Send announcement to all online users on all hosts","Enviar anuncio a todos los usuarios conectados en todos los dominios"}.
|
||||
{"Send announcement to all online users","Enviar anuncio a todos los usuarios conectados"}.
|
||||
{"Send announcement to all users on all hosts","Enviar anuncio a todos los usuarios en todos los dominios"}.
|
||||
|
@ -485,6 +443,7 @@
|
|||
{"Set message of the day on all hosts and send to online users","Poner mensaje del día en todos los dominios y enviar a los usuarios conectados"}.
|
||||
{"Shared Roster Groups","Grupos Compartidos"}.
|
||||
{"Show Integral Table","Mostrar Tabla Integral"}.
|
||||
{"Show Occupants Join/Leave","Mostrar personas activas Entrar/Salir"}.
|
||||
{"Show Ordinary Table","Mostrar Tabla Ordinaria"}.
|
||||
{"Shut Down Service","Detener el servicio"}.
|
||||
{"SOCKS5 Bytestreams","SOCKS5 Bytestreams"}.
|
||||
|
@ -496,23 +455,17 @@
|
|||
{"Stanza id is not valid","El identificador de la estrofa no es válido"}.
|
||||
{"Stanza ID","ID del paquete"}.
|
||||
{"Statically specify a replyto of the node owner(s)","Especificar de forma estática un 'replyto' de dueño(s) del nodo"}.
|
||||
{"Statistics of ~p","Estadísticas de ~p"}.
|
||||
{"Statistics","Estadísticas"}.
|
||||
{"Stop","Detener"}.
|
||||
{"Stopped Nodes","Nodos detenidos"}.
|
||||
{"Storage Type","Tipo de almacenamiento"}.
|
||||
{"Store binary backup:","Guardar copia de seguridad binaria:"}.
|
||||
{"Store plain text backup:","Guardar copia de seguridad en texto plano:"}.
|
||||
{"Stream management is already enabled","Ya está activada la administración de la conexión"}.
|
||||
{"Stream management is not enabled","No está activada la administración de la conexión"}.
|
||||
{"Subject","Asunto"}.
|
||||
{"Submit","Enviar"}.
|
||||
{"Submitted","Enviado"}.
|
||||
{"Subscriber Address","Dirección del subscriptor"}.
|
||||
{"Subscribers may publish","Los suscriptores pueden publicar"}.
|
||||
{"Subscription requests must be approved and only subscribers may retrieve items","Las peticiones de suscripción deben ser aprobadas y solo los suscriptores pueden obtener elementos"}.
|
||||
{"Subscriptions are not allowed","Las subscripciones no están permitidas"}.
|
||||
{"Subscription","Subscripción"}.
|
||||
{"Sunday","Domingo"}.
|
||||
{"Text associated with a picture","Texto asociado con una imagen"}.
|
||||
{"Text associated with a sound","Texto asociado con un sonido"}.
|
||||
|
@ -575,7 +528,6 @@
|
|||
{"Thursday","Jueves"}.
|
||||
{"Time delay","Retraso temporal"}.
|
||||
{"Timed out waiting for stream resumption","Ha pasado demasiado tiempo esperando que la conexión se restablezca"}.
|
||||
{"Time","Fecha"}.
|
||||
{"To register, visit ~s","Para registrarte, visita ~s"}.
|
||||
{"To ~ts","A ~ts"}.
|
||||
{"Token TTL","Token TTL"}.
|
||||
|
@ -588,13 +540,8 @@
|
|||
{"Too many receiver fields were specified","Se han especificado demasiados campos de destinatario"}.
|
||||
{"Too many unacked stanzas","Demasiados mensajes sin haber reconocido recibirlos"}.
|
||||
{"Too many users in this conference","Demasiados usuarios en esta sala"}.
|
||||
{"To","Para"}.
|
||||
{"Total rooms","Salas totales"}.
|
||||
{"Traffic rate limit is exceeded","Se ha excedido el límite de tráfico"}.
|
||||
{"Transactions Aborted:","Transacciones abortadas:"}.
|
||||
{"Transactions Committed:","Transacciones finalizadas:"}.
|
||||
{"Transactions Logged:","Transacciones registradas:"}.
|
||||
{"Transactions Restarted:","Transacciones reiniciadas:"}.
|
||||
{"~ts's MAM Archive","Archivo MAM de ~ts"}.
|
||||
{"~ts's Offline Messages Queue","Cola de mensajes diferidos de ~ts"}.
|
||||
{"Tuesday","Martes"}.
|
||||
{"Unable to generate a CAPTCHA","No se pudo generar un CAPTCHA"}.
|
||||
|
@ -605,24 +552,20 @@
|
|||
{"Uninstall","Desinstalar"}.
|
||||
{"Unregister an XMPP account","Borrar una cuenta XMPP"}.
|
||||
{"Unregister","Borrar"}.
|
||||
{"Unselect All","Deseleccionar todo"}.
|
||||
{"Unsupported <index/> element","Elemento <index/> no soportado"}.
|
||||
{"Unsupported version","Versión no soportada"}.
|
||||
{"Update message of the day (don't send)","Actualizar mensaje del dia, pero no enviarlo"}.
|
||||
{"Update message of the day on all hosts (don't send)","Actualizar el mensaje del día en todos los dominos (pero no enviarlo)"}.
|
||||
{"Update ~p","Actualizar ~p"}.
|
||||
{"Update plan","Plan de actualización"}.
|
||||
{"Update script","Script de actualización"}.
|
||||
{"Update specs to get modules source, then install desired ones.","Actualizar Especificaciones para conseguir el código fuente de los módulos, luego instala los que quieras."}.
|
||||
{"Update Specs","Actualizar Especificaciones"}.
|
||||
{"Update","Actualizar"}.
|
||||
{"Updating the vCard is not supported by the vCard storage backend","La actualización de la vCard no es compatible con el vCard almacenamiento backend"}.
|
||||
{"Upgrade","Actualizar"}.
|
||||
{"Uptime:","Tiempo desde el inicio:"}.
|
||||
{"URL for Archived Discussion Logs","URL del registro de discusiones archivadas"}.
|
||||
{"User already exists","El usuario ya existe"}.
|
||||
{"User JID","Jabber ID del usuario"}.
|
||||
{"User (jid)","Usuario (jid)"}.
|
||||
{"User Management","Administración de usuarios"}.
|
||||
{"User not allowed to perform an IQ set on another user's vCard.","No se permite al usuario realizar un IQ establecido en la vCard de otro usuario."}.
|
||||
{"User removed","Usuario eliminado"}.
|
||||
{"User session not found","Sesión de usuario no encontrada"}.
|
||||
{"User session terminated","Sesión de usuario terminada"}.
|
||||
|
@ -632,7 +575,6 @@
|
|||
{"Users Last Activity","Última actividad de los usuarios"}.
|
||||
{"Users","Usuarios"}.
|
||||
{"User","Usuario"}.
|
||||
{"Validate","Validar"}.
|
||||
{"Value 'get' of 'type' attribute is not allowed","El valor 'get' del atributo 'type' no está permitido"}.
|
||||
{"Value of '~s' should be boolean","El valor de '~s' debería ser booleano"}.
|
||||
{"Value of '~s' should be datetime string","El valor de '~s' debería ser una fecha"}.
|
||||
|
@ -640,14 +582,13 @@
|
|||
{"Value 'set' of 'type' attribute is not allowed","El valor 'set' del atributo 'type' no está permitido"}.
|
||||
{"vCard User Search","Búsqueda de vCard de usuarios"}.
|
||||
{"View joined MIX channels","Ver los canales MIX unidos"}.
|
||||
{"View Queue","Ver Cola"}.
|
||||
{"View Roster","Ver Lista de contactos"}.
|
||||
{"Virtual Hosts","Dominios Virtuales"}.
|
||||
{"Visitors are not allowed to change their nicknames in this room","Los visitantes no tienen permitido cambiar sus apodos en esta sala"}.
|
||||
{"Visitors are not allowed to send messages to all occupants","Los visitantes no pueden enviar mensajes a todos los ocupantes"}.
|
||||
{"Visitor","Visitante"}.
|
||||
{"Voice request","Petición de voz"}.
|
||||
{"Voice requests are disabled in this conference","Las peticiones de voz están desactivadas en esta sala"}.
|
||||
{"Web client which allows to join the room anonymously","Cliente web que permite entrar en la sala anonimamente"}.
|
||||
{"Wednesday","Miércoles"}.
|
||||
{"When a new subscription is processed and whenever a subscriber comes online","Cuando se procesa una nueva suscripción y cuando un suscriptor se conecta"}.
|
||||
{"When a new subscription is processed","Cuando se procesa una nueva suscripción"}.
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
{"Access model","Modèle d’accès"}.
|
||||
{"Account doesn't exist","Le compte n’existe pas"}.
|
||||
{"Action on user","Action sur l'utilisateur"}.
|
||||
{"Add Jabber ID","Ajouter un Jabber ID"}.
|
||||
{"Add New","Ajouter"}.
|
||||
{"Add User","Ajouter un utilisateur"}.
|
||||
{"Administration of ","Administration de "}.
|
||||
{"Administration","Administration"}.
|
||||
|
@ -90,29 +88,20 @@
|
|||
{"Conference room does not exist","Le salon de discussion n'existe pas"}.
|
||||
{"Configuration of room ~s","Configuration pour le salon ~s"}.
|
||||
{"Configuration","Configuration"}.
|
||||
{"Connected Resources:","Ressources connectées :"}.
|
||||
{"Contact Addresses (normally, room owner or owners)","Adresses de contact (normalement les administrateurs du salon)"}.
|
||||
{"Country","Pays"}.
|
||||
{"CPU Time:","Temps CPU :"}.
|
||||
{"Current Discussion Topic","Sujet de discussion courant"}.
|
||||
{"Database failure","Échec sur la base de données"}.
|
||||
{"Database Tables at ~p","Tables de base de données sur ~p"}.
|
||||
{"Database Tables Configuration at ","Configuration des tables de base de données sur "}.
|
||||
{"Database","Base de données"}.
|
||||
{"December","Décembre"}.
|
||||
{"Default users as participants","Les utilisateurs sont participant par défaut"}.
|
||||
{"Delete content","Supprimer le contenu"}.
|
||||
{"Delete message of the day on all hosts","Supprimer le message du jour sur tous les domaines"}.
|
||||
{"Delete message of the day","Supprimer le message du jour"}.
|
||||
{"Delete Selected","Suppression des éléments sélectionnés"}.
|
||||
{"Delete table","Supprimer la table"}.
|
||||
{"Delete User","Supprimer l'utilisateur"}.
|
||||
{"Deliver event notifications","Envoyer les notifications d'événement"}.
|
||||
{"Deliver payloads with event notifications","Inclure le contenu du message avec la notification"}.
|
||||
{"Description:","Description :"}.
|
||||
{"Disc only copy","Copie sur disque uniquement"}.
|
||||
{"'Displayed groups' not added (they do not exist!): ","« Groupes affichés » non ajoutés (ils n’existent pas !) : "}.
|
||||
{"Displayed:","Affichés :"}.
|
||||
{"Don't tell your password to anybody, not even the administrators of the XMPP server.","Ne révélez votre mot de passe à personne, pas même aux administrateurs du serveur XMPP."}.
|
||||
{"Dump Backup to Text File at ","Enregistrer la sauvegarde dans un fichier texte sur "}.
|
||||
{"Dump to Text File","Sauvegarder dans un fichier texte"}.
|
||||
|
@ -127,7 +116,6 @@
|
|||
{"ejabberd vCard module","Module vCard ejabberd"}.
|
||||
{"ejabberd Web Admin","Console Web d'administration de ejabberd"}.
|
||||
{"ejabberd","ejabberd"}.
|
||||
{"Elements","Éléments"}.
|
||||
{"Email Address","Adresse courriel"}.
|
||||
{"Email","Courriel"}.
|
||||
{"Enable logging","Activer l'archivage"}.
|
||||
|
@ -141,7 +129,6 @@
|
|||
{"Enter path to text file","Entrez le chemin vers le fichier texte"}.
|
||||
{"Enter the text you see","Tapez le texte que vous voyez"}.
|
||||
{"Erlang XMPP Server","Serveur XMPP Erlang"}.
|
||||
{"Error","Erreur"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Exempter des Jabberd IDs du test CAPTCHA"}.
|
||||
{"Export all tables as SQL queries to a file:","Exporter toutes les tables vers un fichier SQL :"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Exporter les données de tous les utilisateurs du serveur vers un fichier PIEFXIS (XEP-0227) :"}.
|
||||
|
@ -160,7 +147,6 @@
|
|||
{"Fill in the form to search for any matching XMPP User","Complétez le formulaire pour rechercher un utilisateur XMPP correspondant"}.
|
||||
{"Friday","Vendredi"}.
|
||||
{"From ~ts","De ~ts"}.
|
||||
{"From","De"}.
|
||||
{"Full List of Room Admins","Liste complète des administrateurs des salons"}.
|
||||
{"Full List of Room Owners","Liste complète des propriétaires des salons"}.
|
||||
{"Full Name","Nom complet"}.
|
||||
|
@ -169,13 +155,9 @@
|
|||
{"Get Number of Online Users","Récupérer le nombre d'utilisateurs en ligne"}.
|
||||
{"Get Number of Registered Users","Récupérer le nombre d'utilisateurs enregistrés"}.
|
||||
{"Get User Last Login Time","Récupérer la dernière date de connexion de l'utilisateur"}.
|
||||
{"Get User Password","Récupérer le mot de passe de l'utilisateur"}.
|
||||
{"Get User Statistics","Récupérer les statistiques de l'utilisateur"}.
|
||||
{"Given Name","Nom"}.
|
||||
{"Grant voice to this person?","Accorder le droit de parole à cet utilisateur ?"}.
|
||||
{"Group","Groupe"}.
|
||||
{"Groups that will be displayed to the members","Groupes qui seront affichés aux membres"}.
|
||||
{"Groups","Groupes"}.
|
||||
{"has been banned","a été banni"}.
|
||||
{"has been kicked because of a system shutdown","a été éjecté en raison de l'arrêt du système"}.
|
||||
{"has been kicked because of an affiliation change","a été éjecté à cause d'un changement d'autorisation"}.
|
||||
|
@ -183,7 +165,6 @@
|
|||
{"has been kicked","a été expulsé"}.
|
||||
{"Hats limit exceeded","La limite a été dépassée"}.
|
||||
{"Host unknown","Serveur inconnu"}.
|
||||
{"Host","Serveur"}.
|
||||
{"HTTP File Upload","Téléversement de fichier HTTP"}.
|
||||
{"Idle connection","Connexion inactive"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","SI vous ne voyez pas l'image CAPTCHA ici, visitez la page web."}.
|
||||
|
@ -197,13 +178,13 @@
|
|||
{"Import Users From jabberd14 Spool Files","Importer des utilisateurs depuis un fichier spool Jabberd 1.4"}.
|
||||
{"Improper domain part of 'from' attribute","Le domaine de l'attribut 'from' est incorrect"}.
|
||||
{"Improper message type","Mauvais type de message"}.
|
||||
{"Incoming s2s Connections:","Connexions s2s entrantes :"}.
|
||||
{"Incorrect CAPTCHA submit","Entrée CAPTCHA incorrecte"}.
|
||||
{"Incorrect data form","Formulaire incorrect"}.
|
||||
{"Incorrect password","Mot de passe incorrect"}.
|
||||
{"Incorrect value of 'action' attribute","Valeur de l'attribut 'action' incorrecte"}.
|
||||
{"Incorrect value of 'action' in data form","Valeur de l'attribut 'action' incorrecte dans le formulaire"}.
|
||||
{"Incorrect value of 'path' in data form","Valeur de l'attribut 'path' incorrecte dans le formulaire"}.
|
||||
{"Install","Installer"}.
|
||||
{"Insufficient privilege","Droits insuffisants"}.
|
||||
{"Internal server error","Erreur interne du serveur"}.
|
||||
{"Invalid 'from' attribute in forwarded message","L'attribut 'from' du message transféré est incorrect"}.
|
||||
|
@ -221,15 +202,12 @@
|
|||
{"July","Juillet"}.
|
||||
{"June","Juin"}.
|
||||
{"Just created","Vient d'être créé"}.
|
||||
{"Label:","Étiquette :"}.
|
||||
{"Last Activity","Dernière activité"}.
|
||||
{"Last login","Dernière connexion"}.
|
||||
{"Last message","Dernier message"}.
|
||||
{"Last month","Dernier mois"}.
|
||||
{"Last year","Dernière année"}.
|
||||
{"leaves the room","quitte le salon"}.
|
||||
{"List of rooms","Liste des salons"}.
|
||||
{"Low level update script","Script de mise à jour de bas-niveau"}.
|
||||
{"Make participants list public","Rendre la liste des participants publique"}.
|
||||
{"Make room CAPTCHA protected","Protéger le salon par un CAPTCHA"}.
|
||||
{"Make room members-only","Réserver le salon aux membres uniquement"}.
|
||||
|
@ -246,9 +224,7 @@
|
|||
{"Maximum Number of Occupants","Nombre maximal d'occupants"}.
|
||||
{"May","Mai"}.
|
||||
{"Membership is required to enter this room","Vous devez être membre pour accèder à ce salon"}.
|
||||
{"Members:","Membres :"}.
|
||||
{"Memorize your password, or write it in a paper placed in a safe place. In XMPP there isn't an automated way to recover your password if you forget it.","Mémorisez votre mot de passe, ou écrivez-le sur un papier conservé dans un endroit secret. Dans XMPP il n'y a pas de mécanisme pour retrouver votre mot de passe si vous l'avez oublié."}.
|
||||
{"Memory","Mémoire"}.
|
||||
{"Message body","Corps du message"}.
|
||||
{"Message not found in forwarded payload","Message non trouvé dans l'enveloppe transférée"}.
|
||||
{"Messages from strangers are rejected","Les messages d'étrangers sont rejetés"}.
|
||||
|
@ -259,14 +235,12 @@
|
|||
{"Moderator privileges required","Les droits de modérateur sont nécessaires"}.
|
||||
{"Moderator","Modérateur"}.
|
||||
{"Moderators Only","Modérateurs uniquement"}.
|
||||
{"Modified modules","Modules mis à jour"}.
|
||||
{"Module failed to handle the query","Échec de traitement de la demande"}.
|
||||
{"Monday","Lundi"}.
|
||||
{"Multicast","Multidiffusion"}.
|
||||
{"Multiple <item/> elements are not allowed by RFC6121","Les multiples éléments <item/> ne sont pas autorisés avec RFC6121"}.
|
||||
{"Multi-User Chat","Discussion de groupe"}.
|
||||
{"Name","Nom"}.
|
||||
{"Name:","Nom :"}.
|
||||
{"Natural Language for Room Discussions","Langue naturelle pour les discussions en salle"}.
|
||||
{"Natural-Language Room Name","Nom de la salle en langue naturelle"}.
|
||||
{"Neither 'jid' nor 'nick' attribute found","Attribut 'jid' ou 'nick' absent"}.
|
||||
|
@ -329,14 +303,10 @@
|
|||
{"Occupants are allowed to invite others","Les occupants sont autorisés à inviter d’autres personnes"}.
|
||||
{"Occupants May Change the Subject","Les occupants peuvent changer le sujet"}.
|
||||
{"October","Octobre"}.
|
||||
{"Offline Messages","Messages en attente"}.
|
||||
{"Offline Messages:","Messages hors ligne :"}.
|
||||
{"OK","OK"}.
|
||||
{"Old Password:","Ancien mot de passe :"}.
|
||||
{"Online Users:","Utilisateurs connectés :"}.
|
||||
{"Online Users","Utilisateurs en ligne"}.
|
||||
{"Online","En ligne"}.
|
||||
{"Only admins can see this","Seuls les administrateurs peuvent voir cela"}.
|
||||
{"Only deliver notifications to available users","Envoyer les notifications uniquement aux utilisateurs disponibles"}.
|
||||
{"Only <enable/> or <disable/> tags are allowed","Seul le tag <enable/> ou <disable/> est autorisé"}.
|
||||
{"Only <list/> element is allowed in this query","Seul l'élément <list/> est autorisé dans cette requête"}.
|
||||
|
@ -351,9 +321,7 @@
|
|||
{"Organization Name","Nom de l'organisation"}.
|
||||
{"Organization Unit","Unité de l'organisation"}.
|
||||
{"Outgoing s2s Connections","Connexions s2s sortantes"}.
|
||||
{"Outgoing s2s Connections:","Connexions s2s sortantes :"}.
|
||||
{"Owner privileges required","Les droits de propriétaire sont nécessaires"}.
|
||||
{"Packet","Paquet"}.
|
||||
{"Participant","Participant"}.
|
||||
{"Password Verification","Vérification du mot de passe"}.
|
||||
{"Password Verification:","Vérification du mot de passe :"}.
|
||||
|
@ -361,7 +329,6 @@
|
|||
{"Password:","Mot de passe :"}.
|
||||
{"Path to Dir","Chemin vers le répertoire"}.
|
||||
{"Path to File","Chemin vers le fichier"}.
|
||||
{"Pending","En suspens"}.
|
||||
{"Period: ","Période : "}.
|
||||
{"Persist items to storage","Stockage persistant des éléments"}.
|
||||
{"Persistent","Persistant"}.
|
||||
|
@ -393,20 +360,15 @@
|
|||
{"Receive notification of new nodes only","Recevoir les notifications de tous les nouveaux nœuds descendants"}.
|
||||
{"Recipient is not in the conference room","Le destinataire n'est pas dans la conférence"}.
|
||||
{"Register an XMPP account","Inscrire un compte XMPP"}.
|
||||
{"Registered Users","Utilisateurs enregistrés"}.
|
||||
{"Registered Users:","Utilisateurs enregistrés :"}.
|
||||
{"Register","Enregistrer"}.
|
||||
{"Remote copy","Copie distante"}.
|
||||
{"Remove All Offline Messages","Effacer tous les messages hors ligne"}.
|
||||
{"Remove User","Supprimer l'utilisateur"}.
|
||||
{"Remove","Supprimer"}.
|
||||
{"Replaced by new connection","Remplacé par une nouvelle connexion"}.
|
||||
{"Request has timed out","La demande a expiré"}.
|
||||
{"Request is ignored","La demande est ignorée"}.
|
||||
{"Requested role","Rôle demandé"}.
|
||||
{"Resources","Ressources"}.
|
||||
{"Restart Service","Redémarrer le service"}.
|
||||
{"Restart","Redémarrer"}.
|
||||
{"Restore Backup from File at ","Restaurer la sauvegarde depuis le fichier sur "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Restauration de la sauvegarde binaire après redémarrage (nécessite moins de mémoire) :"}.
|
||||
{"Restore binary backup immediately:","Restauration immédiate d'une sauvegarde binaire :"}.
|
||||
|
@ -418,19 +380,14 @@
|
|||
{"Room Occupants","Occupants du salon"}.
|
||||
{"Room title","Titre du salon"}.
|
||||
{"Roster groups allowed to subscribe","Groupes de liste de contact autorisés à s'abonner"}.
|
||||
{"Roster of ~ts","Liste de contacts de ~ts"}.
|
||||
{"Roster size","Taille de la liste de contacts"}.
|
||||
{"Roster:","Liste de contacts :"}.
|
||||
{"RPC Call Error","Erreur d'appel RPC"}.
|
||||
{"Running Nodes","Nœuds actifs"}.
|
||||
{"~s invites you to the room ~s","~s vous invite dans la salle de discussion ~s"}.
|
||||
{"Saturday","Samedi"}.
|
||||
{"Script check","Validation du script"}.
|
||||
{"Search Results for ","Résultats de recherche pour "}.
|
||||
{"Search the text","Recherche le texte"}.
|
||||
{"Search until the date","Rechercher jusqu’à la date"}.
|
||||
{"Search users in ","Rechercher des utilisateurs "}.
|
||||
{"Select All","Tout sélectionner"}.
|
||||
{"Send announcement to all online users on all hosts","Envoyer l'annonce à tous les utilisateurs en ligne sur tous les serveurs"}.
|
||||
{"Send announcement to all online users","Envoyer l'annonce à tous les utilisateurs en ligne"}.
|
||||
{"Send announcement to all users on all hosts","Envoyer une annonce à tous les utilisateurs de tous les domaines"}.
|
||||
|
@ -450,20 +407,14 @@
|
|||
{"Specify the event message type","Définir le type de message d'événement"}.
|
||||
{"Specify the publisher model","Définir le modèle de publication"}.
|
||||
{"Stanza ID","Identifiant Stanza"}.
|
||||
{"Statistics of ~p","Statistiques de ~p"}.
|
||||
{"Statistics","Statistiques"}.
|
||||
{"Stop","Arrêter"}.
|
||||
{"Stopped Nodes","Nœuds arrêtés"}.
|
||||
{"Storage Type","Type de stockage"}.
|
||||
{"Store binary backup:","Sauvegarde binaire :"}.
|
||||
{"Store plain text backup:","Sauvegarde texte :"}.
|
||||
{"Stream management is already enabled","La gestion des flux est déjà activée"}.
|
||||
{"Subject","Sujet"}.
|
||||
{"Submit","Soumettre"}.
|
||||
{"Submitted","Soumis"}.
|
||||
{"Subscriber Address","Adresse de l'abonné"}.
|
||||
{"Subscribers may publish","Les souscripteurs peuvent publier"}.
|
||||
{"Subscription","Abonnement"}.
|
||||
{"Subscriptions are not allowed","Les abonnement ne sont pas autorisés"}.
|
||||
{"Sunday","Dimanche"}.
|
||||
{"Text associated with a picture","Texte associé à une image"}.
|
||||
|
@ -512,10 +463,8 @@
|
|||
{"Thursday","Jeudi"}.
|
||||
{"Time delay","Délais"}.
|
||||
{"Timed out waiting for stream resumption","Expiration du délai d’attente pour la reprise du flux"}.
|
||||
{"Time","Heure"}.
|
||||
{"To register, visit ~s","Pour vous enregistrer, visitez ~s"}.
|
||||
{"To ~ts","À ~ts"}.
|
||||
{"To","A"}.
|
||||
{"Token TTL","Jeton TTL"}.
|
||||
{"Too many active bytestreams","Trop de flux SOCKS5 actifs"}.
|
||||
{"Too many CAPTCHA requests","Trop de requêtes CAPTCHA"}.
|
||||
|
@ -525,30 +474,21 @@
|
|||
{"Too many receiver fields were specified","Trop de champs de récepteurs ont été spécifiés"}.
|
||||
{"Too many unacked stanzas","Trop de stanzas sans accusé de réception (ack)"}.
|
||||
{"Too many users in this conference","Trop d'utilisateurs dans cette conférence"}.
|
||||
{"Total rooms","Nombre de salons"}.
|
||||
{"Traffic rate limit is exceeded","La limite de trafic a été dépassée"}.
|
||||
{"Transactions Aborted:","Transactions annulées :"}.
|
||||
{"Transactions Committed:","Transactions commitées :"}.
|
||||
{"Transactions Logged:","Transactions journalisées :"}.
|
||||
{"Transactions Restarted:","Transactions redémarrées :"}.
|
||||
{"Tuesday","Mardi"}.
|
||||
{"Unable to generate a CAPTCHA","Impossible de générer le CAPTCHA"}.
|
||||
{"Unable to register route on existing local domain","Impossible d'enregistrer la route sur un domaine locale existant"}.
|
||||
{"Unauthorized","Non autorisé"}.
|
||||
{"Unexpected action","Action inattendu"}.
|
||||
{"Unexpected error condition: ~p","Condition d’erreur inattendue : ~p"}.
|
||||
{"Uninstall","Désinstaller"}.
|
||||
{"Unregister an XMPP account","Annuler l’enregistrement d’un compte XMPP"}.
|
||||
{"Unregister","Désinscrire"}.
|
||||
{"Unselect All","Tout désélectionner"}.
|
||||
{"Unsupported <index/> element","Elément <index/> non supporté"}.
|
||||
{"Unsupported version","Version non prise en charge"}.
|
||||
{"Update message of the day (don't send)","Mise à jour du message du jour (pas d'envoi)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Mettre à jour le message du jour sur tous les domaines (ne pas envoyer)"}.
|
||||
{"Update plan","Plan de mise à jour"}.
|
||||
{"Update ~p","Mise à jour de ~p"}.
|
||||
{"Update script","Script de mise à jour"}.
|
||||
{"Update","Mettre à jour"}.
|
||||
{"Uptime:","Temps depuis le démarrage :"}.
|
||||
{"Upgrade","Mise à niveau"}.
|
||||
{"URL for Archived Discussion Logs","URL des journaux de discussion archivés"}.
|
||||
{"User already exists","L'utilisateur existe déjà"}.
|
||||
{"User JID","JID de l'utilisateur"}.
|
||||
|
@ -563,14 +503,12 @@
|
|||
{"Users Last Activity","Dernière activité des utilisateurs"}.
|
||||
{"Users","Utilisateurs"}.
|
||||
{"User","Utilisateur"}.
|
||||
{"Validate","Valider"}.
|
||||
{"Value 'get' of 'type' attribute is not allowed","La valeur de l'attribut 'type' ne peut être 'get'"}.
|
||||
{"Value of '~s' should be boolean","La valeur de '~s' ne peut être booléen"}.
|
||||
{"Value of '~s' should be datetime string","La valeur de '~s' doit être une chaine datetime"}.
|
||||
{"Value of '~s' should be integer","La valeur de '~s' doit être un entier"}.
|
||||
{"Value 'set' of 'type' attribute is not allowed","La valeur de l'attribut 'type' ne peut être 'set'"}.
|
||||
{"vCard User Search","Recherche dans l'annnuaire"}.
|
||||
{"View Queue","Afficher la file d’attente"}.
|
||||
{"Virtual Hosts","Serveurs virtuels"}.
|
||||
{"Visitors are not allowed to change their nicknames in this room","Les visiteurs ne sont pas autorisés à changer de pseudo dans ce salon"}.
|
||||
{"Visitors are not allowed to send messages to all occupants","Les visiteurs ne sont pas autorisés à envoyer des messages à tout les occupants"}.
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
{"Accept","Aceptar"}.
|
||||
{"Access denied by service policy","Acceso denegado pola política do servizo"}.
|
||||
{"Action on user","Acción no usuario"}.
|
||||
{"Add Jabber ID","Engadir ID Jabber"}.
|
||||
{"Add New","Engadir novo"}.
|
||||
{"Add User","Engadir usuario"}.
|
||||
{"Administration of ","Administración de "}.
|
||||
{"Administration","Administración"}.
|
||||
|
@ -60,22 +58,17 @@
|
|||
{"Conference room does not exist","A sala de conferencias non existe"}.
|
||||
{"Configuration of room ~s","Configuración para a sala ~s"}.
|
||||
{"Configuration","Configuración"}.
|
||||
{"Connected Resources:","Recursos conectados:"}.
|
||||
{"Country","País"}.
|
||||
{"CPU Time:","Tempo da CPU:"}.
|
||||
{"Database failure","Erro na base de datos"}.
|
||||
{"Database Tables at ~p","Táboas da base de datos en ~p"}.
|
||||
{"Database Tables Configuration at ","Configuración de táboas da base de datos en "}.
|
||||
{"Database","Base de datos"}.
|
||||
{"December","Decembro"}.
|
||||
{"Default users as participants","Os usuarios son participantes por defecto"}.
|
||||
{"Delete message of the day on all hosts","Borrar a mensaxe do día en todos os dominios"}.
|
||||
{"Delete message of the day","Borrar mensaxe do dia"}.
|
||||
{"Delete Selected","Eliminar os seleccionados"}.
|
||||
{"Delete User","Borrar usuario"}.
|
||||
{"Deliver event notifications","Entregar notificacións de eventos"}.
|
||||
{"Deliver payloads with event notifications","Enviar payloads xunto coas notificacións de eventos"}.
|
||||
{"Description:","Descrición:"}.
|
||||
{"Disc only copy","Copia en disco soamente"}.
|
||||
{"Dump Backup to Text File at ","Exporta copia de seguridade a ficheiro de texto en "}.
|
||||
{"Dump to Text File","Exportar a ficheiro de texto"}.
|
||||
|
@ -87,7 +80,6 @@
|
|||
{"ejabberd SOCKS5 Bytestreams module","Módulo SOCKS5 Bytestreams para ejabberd"}.
|
||||
{"ejabberd vCard module","Módulo vCard para ejabberd"}.
|
||||
{"ejabberd Web Admin","ejabberd Administrador Web"}.
|
||||
{"Elements","Elementos"}.
|
||||
{"Email","Email"}.
|
||||
{"Enable logging","Gardar históricos"}.
|
||||
{"Enable message archiving","Activar o almacenamento de mensaxes"}.
|
||||
|
@ -99,7 +91,6 @@
|
|||
{"Enter path to jabberd14 spool file","Introduce ruta ao ficheiro jabberd14 spool"}.
|
||||
{"Enter path to text file","Introduce ruta ao ficheiro de texto"}.
|
||||
{"Enter the text you see","Introduza o texto que ves"}.
|
||||
{"Error","Erro"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Excluír Jabber IDs das probas de CAPTCHA"}.
|
||||
{"Export all tables as SQL queries to a file:","Exportar todas as táboas a un ficheiro SQL:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Exportar datos de todos os usuarios do servidor a ficheros PIEFXIS (XEP-0227):"}.
|
||||
|
@ -115,24 +106,19 @@
|
|||
{"February","Febreiro"}.
|
||||
{"File larger than ~w bytes","O ficheiro é maior que ~w bytes"}.
|
||||
{"Friday","Venres"}.
|
||||
{"From","De"}.
|
||||
{"Full Name","Nome completo"}.
|
||||
{"Get Number of Online Users","Ver número de usuarios conectados"}.
|
||||
{"Get Number of Registered Users","Ver número de usuarios rexistrados"}.
|
||||
{"Get User Last Login Time","Ver data da última conexión de usuario"}.
|
||||
{"Get User Password","Ver contrasinal de usuario"}.
|
||||
{"Get User Statistics","Ver estatísticas de usuario"}.
|
||||
{"Given Name","Nome"}.
|
||||
{"Grant voice to this person?","¿Conceder voz a esta persoa?"}.
|
||||
{"Group","Grupo"}.
|
||||
{"Groups","Grupos"}.
|
||||
{"has been banned","foi bloqueado"}.
|
||||
{"has been kicked because of a system shutdown","foi expulsado porque o sistema vaise a deter"}.
|
||||
{"has been kicked because of an affiliation change","foi expulsado debido a un cambio de afiliación"}.
|
||||
{"has been kicked because the room has been changed to members-only","foi expulsado, porque a sala cambiouse a só-membros"}.
|
||||
{"has been kicked","foi expulsado"}.
|
||||
{"Host unknown","Dominio descoñecido"}.
|
||||
{"Host","Host"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Si non ves a imaxe CAPTCHA aquí, visita a páxina web."}.
|
||||
{"Import Directory","Importar directorio"}.
|
||||
{"Import File","Importar ficheiro"}.
|
||||
|
@ -144,7 +130,6 @@
|
|||
{"Import Users From jabberd14 Spool Files","Importar usuarios de ficheiros spool de jabberd-1.4"}.
|
||||
{"Improper domain part of 'from' attribute","Parte de dominio impropio no atributo 'from'"}.
|
||||
{"Improper message type","Tipo de mensaxe incorrecta"}.
|
||||
{"Incoming s2s Connections:","Conexións S2S saíntes:"}.
|
||||
{"Incorrect CAPTCHA submit","O CAPTCHA proporcionado é incorrecto"}.
|
||||
{"Incorrect data form","Formulario de datos incorrecto"}.
|
||||
{"Incorrect password","Contrasinal incorrecta"}.
|
||||
|
@ -169,8 +154,6 @@
|
|||
{"Last month","Último mes"}.
|
||||
{"Last year","Último ano"}.
|
||||
{"leaves the room","sae da sala"}.
|
||||
{"List of rooms","Lista de salas"}.
|
||||
{"Low level update script","Script de actualización a baixo nivel"}.
|
||||
{"Make participants list public","A lista de participantes é pública"}.
|
||||
{"Make room CAPTCHA protected","Protexer a sala con CAPTCHA"}.
|
||||
{"Make room members-only","Sala só para membros"}.
|
||||
|
@ -184,21 +167,17 @@
|
|||
{"Maximum Number of Occupants","Número máximo de ocupantes"}.
|
||||
{"May","Maio"}.
|
||||
{"Membership is required to enter this room","Necesitas ser membro desta sala para poder entrar"}.
|
||||
{"Members:","Membros:"}.
|
||||
{"Memory","Memoria"}.
|
||||
{"Message body","Corpo da mensaxe"}.
|
||||
{"Message not found in forwarded payload","Mensaxe non atopada no contido reenviado"}.
|
||||
{"Middle Name","Segundo nome"}.
|
||||
{"Minimum interval between voice requests (in seconds)","Intervalo mínimo entre peticións de voz (en segundos)"}.
|
||||
{"Moderator privileges required","Necesítase privilexios de moderador"}.
|
||||
{"Moderator","Moderator"}.
|
||||
{"Modified modules","Módulos Modificados"}.
|
||||
{"Module failed to handle the query","O módulo non puido xestionar a consulta"}.
|
||||
{"Monday","Luns"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multi-User Chat","Salas de Charla"}.
|
||||
{"Name","Nome"}.
|
||||
{"Name:","Nome:"}.
|
||||
{"Neither 'jid' nor 'nick' attribute found","Non se atopou o atributo 'jid' nin 'nick'"}.
|
||||
{"Neither 'role' nor 'affiliation' attribute found","Non se atopou o atributo 'role' nin 'affiliation'"}.
|
||||
{"Never","Nunca"}.
|
||||
|
@ -247,12 +226,9 @@
|
|||
{"Number of online users","Número de usuarios conectados"}.
|
||||
{"Number of registered users","Número de usuarios rexistrados"}.
|
||||
{"October","Outubro"}.
|
||||
{"Offline Messages","Mensaxes diferidas"}.
|
||||
{"Offline Messages:","Mensaxes sen conexión:"}.
|
||||
{"OK","Aceptar"}.
|
||||
{"Old Password:","Contrasinal anterior:"}.
|
||||
{"Online Users","Usuarios conectados"}.
|
||||
{"Online Users:","Usuarios conectados:"}.
|
||||
{"Online","Conectado"}.
|
||||
{"Only deliver notifications to available users","Só enviar notificacións aos usuarios dispoñibles"}.
|
||||
{"Only <enable/> or <disable/> tags are allowed","Só se permiten etiquetas <enable/> ou <disable/>"}.
|
||||
|
@ -267,9 +243,7 @@
|
|||
{"Organization Name","Nome da organización"}.
|
||||
{"Organization Unit","Unidade da organización"}.
|
||||
{"Outgoing s2s Connections","Conexións S2S saíntes"}.
|
||||
{"Outgoing s2s Connections:","Conexións S2S saíntes:"}.
|
||||
{"Owner privileges required","Requírense privilexios de propietario da sala"}.
|
||||
{"Packet","Paquete"}.
|
||||
{"Participant","Participante"}.
|
||||
{"Password Verification","Verificación da contrasinal"}.
|
||||
{"Password Verification:","Verificación da Contrasinal:"}.
|
||||
|
@ -277,7 +251,6 @@
|
|||
{"Password:","Contrasinal:"}.
|
||||
{"Path to Dir","Ruta ao directorio"}.
|
||||
{"Path to File","Ruta ao ficheiro"}.
|
||||
{"Pending","Pendente"}.
|
||||
{"Period: ","Periodo: "}.
|
||||
{"Persist items to storage","Persistir elementos ao almacenar"}.
|
||||
{"Ping query is incorrect","A solicitude de Ping é incorrecta"}.
|
||||
|
@ -296,17 +269,12 @@
|
|||
{"RAM copy","Copia en RAM"}.
|
||||
{"Really delete message of the day?","¿Está seguro que quere borrar a mensaxe do dia?"}.
|
||||
{"Recipient is not in the conference room","O receptor non está na sala de conferencia"}.
|
||||
{"Registered Users","Usuarios rexistrados"}.
|
||||
{"Registered Users:","Usuarios rexistrados:"}.
|
||||
{"Register","Rexistrar"}.
|
||||
{"Remote copy","Copia remota"}.
|
||||
{"Remove All Offline Messages","Borrar Todas as Mensaxes Sen conexión"}.
|
||||
{"Remove User","Eliminar usuario"}.
|
||||
{"Remove","Borrar"}.
|
||||
{"Replaced by new connection","Substituído por unha nova conexión"}.
|
||||
{"Resources","Recursos"}.
|
||||
{"Restart Service","Reiniciar o servizo"}.
|
||||
{"Restart","Reiniciar"}.
|
||||
{"Restore Backup from File at ","Restaura copia de seguridade desde o ficheiro en "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Restaurar copia de seguridade binaria no seguinte reinicio de ejabberd (require menos memoria):"}.
|
||||
{"Restore binary backup immediately:","Restaurar inmediatamente copia de seguridade binaria:"}.
|
||||
|
@ -320,10 +288,8 @@
|
|||
{"Room title","Título da sala"}.
|
||||
{"Roster groups allowed to subscribe","Lista de grupos autorizados a subscribir"}.
|
||||
{"Roster size","Tamaño da lista de contactos"}.
|
||||
{"RPC Call Error","Erro na chamada RPC"}.
|
||||
{"Running Nodes","Nodos funcionando"}.
|
||||
{"Saturday","Sábado"}.
|
||||
{"Script check","Comprobación de script"}.
|
||||
{"Search Results for ","Buscar resultados por "}.
|
||||
{"Search users in ","Buscar usuarios en "}.
|
||||
{"Send announcement to all online users on all hosts","Enviar anuncio a todos os usuarios conectados en todos os dominios"}.
|
||||
|
@ -341,19 +307,13 @@
|
|||
{"Specify the access model","Especifica o modelo de acceso"}.
|
||||
{"Specify the event message type","Especifica o tipo da mensaxe de evento"}.
|
||||
{"Specify the publisher model","Especificar o modelo do publicante"}.
|
||||
{"Statistics of ~p","Estatísticas de ~p"}.
|
||||
{"Statistics","Estatísticas"}.
|
||||
{"Stop","Deter"}.
|
||||
{"Stopped Nodes","Nodos detidos"}.
|
||||
{"Storage Type","Tipo de almacenamento"}.
|
||||
{"Store binary backup:","Gardar copia de seguridade binaria:"}.
|
||||
{"Store plain text backup:","Gardar copia de seguridade en texto plano:"}.
|
||||
{"Subject","Asunto"}.
|
||||
{"Submit","Enviar"}.
|
||||
{"Submitted","Enviado"}.
|
||||
{"Subscriber Address","Dirección do subscriptor"}.
|
||||
{"Subscriptions are not allowed","Non se permiten subscricións"}.
|
||||
{"Subscription","Subscripción"}.
|
||||
{"Sunday","Domingo"}.
|
||||
{"That nickname is already in use by another occupant","Ese alcume xa está a ser usado por outro ocupante"}.
|
||||
{"That nickname is registered by another person","O alcume xa está rexistrado por outra persoa"}.
|
||||
|
@ -372,7 +332,6 @@
|
|||
{"This room is not anonymous","Sala non anónima"}.
|
||||
{"Thursday","Xoves"}.
|
||||
{"Time delay","Atraso temporal"}.
|
||||
{"Time","Data"}.
|
||||
{"To register, visit ~s","Para rexistrarse, visita ~s"}.
|
||||
{"Token TTL","Token TTL"}.
|
||||
{"Too many active bytestreams","Demasiados bytestreams activos"}.
|
||||
|
@ -382,13 +341,7 @@
|
|||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Demasiados (~p) fallou autenticaciones desde esta dirección IP (~s). A dirección será desbloqueada as ~s UTC"}.
|
||||
{"Too many unacked stanzas","Demasiadas mensaxes sen recoñecer recibilos"}.
|
||||
{"Too many users in this conference","Demasiados usuarios nesta sala"}.
|
||||
{"To","Para"}.
|
||||
{"Total rooms","Salas totais"}.
|
||||
{"Traffic rate limit is exceeded","Hase exedido o límite de tráfico"}.
|
||||
{"Transactions Aborted:","Transaccións abortadas:"}.
|
||||
{"Transactions Committed:","Transaccións finalizadas:"}.
|
||||
{"Transactions Logged:","Transaccións rexistradas:"}.
|
||||
{"Transactions Restarted:","Transaccións reiniciadas:"}.
|
||||
{"Tuesday","Martes"}.
|
||||
{"Unable to generate a CAPTCHA","No se pudo generar un CAPTCHA"}.
|
||||
{"Unable to register route on existing local domain","Non se pode rexistrar a ruta no dominio local existente"}.
|
||||
|
@ -398,11 +351,6 @@
|
|||
{"Unsupported <index/> element","Elemento <index/> non soportado"}.
|
||||
{"Update message of the day (don't send)","Actualizar mensaxe do dia, pero non envialo"}.
|
||||
{"Update message of the day on all hosts (don't send)","Actualizar a mensaxe do día en todos os dominos (pero non envialo)"}.
|
||||
{"Update ~p","Actualizar ~p"}.
|
||||
{"Update plan","Plan de actualización"}.
|
||||
{"Update script","Script de actualización"}.
|
||||
{"Update","Actualizar"}.
|
||||
{"Uptime:","Tempo desde o inicio:"}.
|
||||
{"User already exists","O usuario xa existe"}.
|
||||
{"User JID","Jabber ID do usuario"}.
|
||||
{"User (jid)","Usuario (jid)"}.
|
||||
|
@ -414,7 +362,6 @@
|
|||
{"Users Last Activity","Última actividade dos usuarios"}.
|
||||
{"Users","Usuarios"}.
|
||||
{"User","Usuario"}.
|
||||
{"Validate","Validar"}.
|
||||
{"Value 'get' of 'type' attribute is not allowed","O valor \"get\" do atributo 'type' non está permitido"}.
|
||||
{"Value of '~s' should be boolean","O valor de '~s' debería ser booleano"}.
|
||||
{"Value of '~s' should be datetime string","O valor de '~s' debería ser unha data"}.
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
{"Accept","קבל"}.
|
||||
{"Access denied by service policy","גישה נדחתה על ידי פוליסת שירות"}.
|
||||
{"Action on user","פעולה על משתמש"}.
|
||||
{"Add Jabber ID","הוסף מזהה Jabber"}.
|
||||
{"Add New","הוסף חדש"}.
|
||||
{"Add User","הוסף משתמש"}.
|
||||
{"Administration of ","ניהול של "}.
|
||||
{"Administration","הנהלה"}.
|
||||
|
@ -58,22 +56,17 @@
|
|||
{"Conference room does not exist","חדר ועידה לא קיים"}.
|
||||
{"Configuration of room ~s","תצורת חדר ~s"}.
|
||||
{"Configuration","תצורה"}.
|
||||
{"Connected Resources:","משאבים מחוברים:"}.
|
||||
{"Country","ארץ"}.
|
||||
{"CPU Time:","זמן מחשב (CPU):"}.
|
||||
{"Database failure","כשל מסד נתונים"}.
|
||||
{"Database Tables at ~p","טבלאות מסד נתונים אצל ~p"}.
|
||||
{"Database Tables Configuration at ","תצורת טבלאות מסד נתונים אצל "}.
|
||||
{"Database","מסד נתונים"}.
|
||||
{"December","דצמבר"}.
|
||||
{"Default users as participants","משתמשים שגרתיים כמשתתפים"}.
|
||||
{"Delete message of the day on all hosts","מחק את בשורת היום בכל המארחים"}.
|
||||
{"Delete message of the day","מחק את בשורת היום"}.
|
||||
{"Delete Selected","מחק נבחרות"}.
|
||||
{"Delete User","מחק משתמש"}.
|
||||
{"Deliver event notifications","מסור התראות אירוע"}.
|
||||
{"Deliver payloads with event notifications","מסור מטעני ייעוד (מטע״ד) יחד עם התראות אירוע"}.
|
||||
{"Description:","תיאור:"}.
|
||||
{"Disc only copy","העתק של תקליטור בלבד"}.
|
||||
{"Dump Backup to Text File at ","השלך גיבוי לקובץ טקסט אצל "}.
|
||||
{"Dump to Text File","השלך לקובץ טקסט"}.
|
||||
|
@ -85,7 +78,6 @@
|
|||
{"ejabberd SOCKS5 Bytestreams module","מודול SOCKS5 Bytestreams של ejabberd"}.
|
||||
{"ejabberd vCard module","מודול vCard של ejabberd"}.
|
||||
{"ejabberd Web Admin","מנהל רשת ejabberd"}.
|
||||
{"Elements","אלמנטים"}.
|
||||
{"Email","דוא״ל"}.
|
||||
{"Enable logging","אפשר רישום פעילות"}.
|
||||
{"Enable message archiving","אפשר אחסון הודעות"}.
|
||||
|
@ -96,7 +88,6 @@
|
|||
{"Enter path to jabberd14 spool file","הזן נתיב לקובץ סליל (spool file) של jabberd14"}.
|
||||
{"Enter path to text file","הזן נתיב לקובץ טקסט"}.
|
||||
{"Enter the text you see","הזן את הכיתוב שאתה רואה"}.
|
||||
{"Error","שגיאה"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","הוצא כתובות Jabber מתוך אתגר CAPTCHA"}.
|
||||
{"Export all tables as SQL queries to a file:","יצא את כל הטבלאות בתור שאילתות SQL לתוך קובץ:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","יצא מידע של כל המשתמשים שבתוך שרת זה לתוך קבצי PIEFXIS (XEP-0227):"}.
|
||||
|
@ -109,24 +100,19 @@
|
|||
{"February","פברואר"}.
|
||||
{"File larger than ~w bytes","קובץ גדול יותר משיעור של ~w בייטים"}.
|
||||
{"Friday","יום שישי"}.
|
||||
{"From","מאת"}.
|
||||
{"Full Name","שם מלא"}.
|
||||
{"Get Number of Online Users","השג מספר של משתמשים מקוונים"}.
|
||||
{"Get Number of Registered Users","השג מספר של משתמשים רשומים"}.
|
||||
{"Get User Last Login Time","השג זמן כניסה אחרון של משתמש"}.
|
||||
{"Get User Password","השג סיסמת משתמש"}.
|
||||
{"Get User Statistics","השג סטטיסטיקת משתמש"}.
|
||||
{"Given Name","שם פרטי"}.
|
||||
{"Grant voice to this person?","להעניק ביטוי לאישיות זו?"}.
|
||||
{"Groups","קבוצות"}.
|
||||
{"Group","קבוצה"}.
|
||||
{"has been banned","נאסר/ה"}.
|
||||
{"has been kicked because of a system shutdown","נבעט/ה משום כיבוי מערכת"}.
|
||||
{"has been kicked because of an affiliation change","נבעט/ה משום שינוי סינוף"}.
|
||||
{"has been kicked because the room has been changed to members-only","נבעט/ה משום שהחדר שונה אל חברים-בלבד"}.
|
||||
{"has been kicked","נבעט/ה"}.
|
||||
{"Host unknown","מארח לא ידוע"}.
|
||||
{"Host","מארח"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","אם אינך רואה תמונת CAPTCHA כאן, בקר בעמוד רשת."}.
|
||||
{"Import Directory","ייבוא מדור"}.
|
||||
{"Import File","ייבוא קובץ"}.
|
||||
|
@ -137,7 +123,6 @@
|
|||
{"Import Users from Dir at ","ייבוא משתמשים מתוך מדור אצל "}.
|
||||
{"Import Users From jabberd14 Spool Files","יבא משתמשים מתוך קבצי סליל (Spool Files) של jabberd14"}.
|
||||
{"Improper message type","טיפוס הודעה לא מתאים"}.
|
||||
{"Incoming s2s Connections:","חיבורי s2s נכנסים:"}.
|
||||
{"Incorrect CAPTCHA submit","נשלחה CAPTCHA שגויה"}.
|
||||
{"Incorrect data form","טופס מידע לא תקין"}.
|
||||
{"Incorrect password","מילת מעבר שגויה"}.
|
||||
|
@ -158,8 +143,6 @@
|
|||
{"Last month","חודש אחרון"}.
|
||||
{"Last year","שנה אחרונה"}.
|
||||
{"leaves the room","עוזב/ת את החדר"}.
|
||||
{"List of rooms","רשימה של חדרים"}.
|
||||
{"Low level update script","תסריט עדכון Low level"}.
|
||||
{"Make participants list public","הפוך רשימת משתתפים לפומבית"}.
|
||||
{"Make room CAPTCHA protected","הפוך חדר לחדר מוגן CAPTCHA"}.
|
||||
{"Make room members-only","הפוך חדר לחדר עבור חברים-בלבד"}.
|
||||
|
@ -173,20 +156,16 @@
|
|||
{"Maximum Number of Occupants","מספר מרבי של נוכחים"}.
|
||||
{"May","מאי"}.
|
||||
{"Membership is required to enter this room","נדרשת חברות כדי להיכנס אל חדר זה"}.
|
||||
{"Members:","חברים:"}.
|
||||
{"Memory","זיכרון"}.
|
||||
{"Message body","גוף הודעה"}.
|
||||
{"Middle Name","שם אמצעי"}.
|
||||
{"Minimum interval between voice requests (in seconds)","תדירות מינימלית בין בקשות ביטוי (בשניות)"}.
|
||||
{"Moderator privileges required","נדרשות הרשאות אחראי"}.
|
||||
{"Moderator","אחראי"}.
|
||||
{"Modified modules","מודולים שהותאמו"}.
|
||||
{"Module failed to handle the query","מודול נכשל לטפל בשאילתא"}.
|
||||
{"Monday","יום שני"}.
|
||||
{"Multicast","שידור מרובב"}.
|
||||
{"Multi-User Chat","שיחה מרובת משתמשים"}.
|
||||
{"Name","שם"}.
|
||||
{"Name:","שם:"}.
|
||||
{"Never","אף פעם"}.
|
||||
{"New Password:","סיסמה חדשה:"}.
|
||||
{"Nickname Registration at ","רישום שם כינוי אצל "}.
|
||||
|
@ -223,12 +202,9 @@
|
|||
{"Number of online users","מספר של משתמשים מקוונים"}.
|
||||
{"Number of registered users","מספר של משתמשים רשומים"}.
|
||||
{"October","אוקטובר"}.
|
||||
{"Offline Messages","הודעות לא מקוונות"}.
|
||||
{"Offline Messages:","הודעות לא מקוונות:"}.
|
||||
{"OK","אישור"}.
|
||||
{"Old Password:","סיסמה ישנה:"}.
|
||||
{"Online Users","משתמשים מקוונים"}.
|
||||
{"Online Users:","משתמשים מקוונים:"}.
|
||||
{"Online","מקוון"}.
|
||||
{"Only deliver notifications to available users","מסור התראות למשתמשים זמינים בלבד"}.
|
||||
{"Only <enable/> or <disable/> tags are allowed","רק תגיות <enable/> או <disable/> הינן מורשות"}.
|
||||
|
@ -242,9 +218,7 @@
|
|||
{"Organization Name","שם ארגון"}.
|
||||
{"Organization Unit","יחידת איגוד"}.
|
||||
{"Outgoing s2s Connections","חיבורי s2s יוצאים"}.
|
||||
{"Outgoing s2s Connections:","חיבורי s2s יוצאים:"}.
|
||||
{"Owner privileges required","נדרשות הרשאות בעלים"}.
|
||||
{"Packet","חבילת מידע"}.
|
||||
{"Participant","משתתף"}.
|
||||
{"Password Verification","אימות סיסמה"}.
|
||||
{"Password Verification:","אימות סיסמה:"}.
|
||||
|
@ -252,7 +226,6 @@
|
|||
{"Password:","סיסמה:"}.
|
||||
{"Path to Dir","נתיב למדור"}.
|
||||
{"Path to File","נתיב לקובץ"}.
|
||||
{"Pending","ממתינות"}.
|
||||
{"Period: ","משך זמן: "}.
|
||||
{"Persist items to storage","פריטים קבועים לאחסון"}.
|
||||
{"Ping query is incorrect","שאילתת פינג הינה שגויה"}.
|
||||
|
@ -270,17 +243,12 @@
|
|||
{"RAM copy","העתק RAM"}.
|
||||
{"Really delete message of the day?","באמת למחוק את בשורת היום?"}.
|
||||
{"Recipient is not in the conference room","מקבל אינו מצוי בחדר הועידה"}.
|
||||
{"Registered Users","משתמשים רשומים"}.
|
||||
{"Registered Users:","משתמשים רשומים:"}.
|
||||
{"Register","הרשם"}.
|
||||
{"Remote copy","העתק מרוחק"}.
|
||||
{"Remove All Offline Messages","הסר את כל ההודעות הלא מקוונות"}.
|
||||
{"Remove User","הסר משתמש"}.
|
||||
{"Remove","הסר"}.
|
||||
{"Replaced by new connection","הוחלף בחיבור חדש"}.
|
||||
{"Resources","משאבים"}.
|
||||
{"Restart Service","אתחל שירות"}.
|
||||
{"Restart","אתחל"}.
|
||||
{"Restore Backup from File at ","שחזר גיבוי מתוך קובץ אצל "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","שחזר גיבוי בינארי לאחר האתחול הבא של ejabberd (מצריך פחות זיכרון):"}.
|
||||
{"Restore binary backup immediately:","שחזר גיבוי בינארי לאלתר:"}.
|
||||
|
@ -294,10 +262,8 @@
|
|||
{"Room title","כותרת חדר"}.
|
||||
{"Roster groups allowed to subscribe","קבוצות רשימה מורשות להירשם"}.
|
||||
{"Roster size","גודל רשימה"}.
|
||||
{"RPC Call Error","שגיאת קריאת RPC"}.
|
||||
{"Running Nodes","צמתים מורצים"}.
|
||||
{"Saturday","יום שבת"}.
|
||||
{"Script check","בדיקת תסריט"}.
|
||||
{"Search Results for ","תוצאות חיפוש עבור "}.
|
||||
{"Search users in ","חיפוש משתמשים אצל "}.
|
||||
{"Send announcement to all online users on all hosts","שלח בשורה לכל המשתמשים המקוונים בכל המארחים"}.
|
||||
|
@ -315,19 +281,13 @@
|
|||
{"Specify the access model","ציין מודל גישה"}.
|
||||
{"Specify the event message type","ציין טיפוס הודעת אירוע"}.
|
||||
{"Specify the publisher model","ציין מודל פרסום"}.
|
||||
{"Statistics of ~p","סטטיסטיקות של ~p"}.
|
||||
{"Statistics","סטטיסטיקה"}.
|
||||
{"Stopped Nodes","צמתים שנפסקו"}.
|
||||
{"Stop","הפסק"}.
|
||||
{"Storage Type","טיפוס אחסון"}.
|
||||
{"Store binary backup:","אחסן גיבוי בינארי:"}.
|
||||
{"Store plain text backup:","אחסן גיבוי טקסט גלוי (plain text):"}.
|
||||
{"Subject","נושא"}.
|
||||
{"Submitted","נשלח"}.
|
||||
{"Submit","שלח"}.
|
||||
{"Subscriber Address","כתובת מנוי"}.
|
||||
{"Subscriptions are not allowed","הרשמות אינן מורשות"}.
|
||||
{"Subscription","הרשמה"}.
|
||||
{"Sunday","יום ראשון"}.
|
||||
{"That nickname is already in use by another occupant","שם כינוי זה כבר מצוי בשימוש על ידי נוכח אחר"}.
|
||||
{"That nickname is registered by another person","שם כינוי זה הינו רשום על ידי מישהו אחר"}.
|
||||
|
@ -341,7 +301,6 @@
|
|||
{"This room is not anonymous","חדר זה אינו אנונימי"}.
|
||||
{"Thursday","יום חמישי"}.
|
||||
{"Time delay","זמן שיהוי"}.
|
||||
{"Time","זמן"}.
|
||||
{"To register, visit ~s","כדי להירשם, בקרו ~s"}.
|
||||
{"Token TTL","סימן TTL"}.
|
||||
{"Too many active bytestreams","יותר מדי יחידות bytestream פעילות"}.
|
||||
|
@ -349,13 +308,7 @@
|
|||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","יותר מדי (~p) אימותים כושלים מתוך כתובת IP זו (~s). הכתובת תורשה לקבל גישה בשעה ~s UTC"}.
|
||||
{"Too many unacked stanzas","יותר מדי סטנזות בלי אישורי קבלה"}.
|
||||
{"Too many users in this conference","יותר מדי משתמשים בועידה זו"}.
|
||||
{"Total rooms","חדרים סה״כ"}.
|
||||
{"To","לכבוד"}.
|
||||
{"Traffic rate limit is exceeded","מגבלת שיעור תעבורה נחצתה"}.
|
||||
{"Transactions Aborted:","טרנזקציות שבוטלו:"}.
|
||||
{"Transactions Committed:","טרנזקציות שבוצעו:"}.
|
||||
{"Transactions Logged:","טרנזקציות שנרשמו:"}.
|
||||
{"Transactions Restarted:","טרנזקציות שהותחלו מחדש:"}.
|
||||
{"Tuesday","יום שלישי"}.
|
||||
{"Unable to generate a CAPTCHA","אין אפשרות להפיק CAPTCHA"}.
|
||||
{"Unauthorized","לא מורשה"}.
|
||||
|
@ -363,11 +316,6 @@
|
|||
{"Unregister","בטל רישום"}.
|
||||
{"Update message of the day (don't send)","עדכן את בשורת היום (אל תשלח)"}.
|
||||
{"Update message of the day on all hosts (don't send)","עדכן את בשורת היום בכל המארחים (אל תשלח)"}.
|
||||
{"Update plan","תכנית עדכון"}.
|
||||
{"Update ~p","עדכון ~p"}.
|
||||
{"Update script","תסריט עדכון"}.
|
||||
{"Update","עדכן"}.
|
||||
{"Uptime:","זמן פעילות:"}.
|
||||
{"User already exists","משתמש כבר קיים"}.
|
||||
{"User JID","JID משתמש"}.
|
||||
{"User (jid)","משתמש (jid)"}.
|
||||
|
@ -379,7 +327,6 @@
|
|||
{"Users Last Activity","פעילות משתמשים אחרונה"}.
|
||||
{"Users","משתמשים"}.
|
||||
{"User","משתמש"}.
|
||||
{"Validate","הענק תוקף"}.
|
||||
{"Value of '~s' should be boolean","ערך של '~s' צריך להיות boolean"}.
|
||||
{"Value of '~s' should be datetime string","ערך של '~s' צריך להיות מחרוזת datetime"}.
|
||||
{"Value of '~s' should be integer","ערך של '~s' צריך להיות integer"}.
|
||||
|
|
|
@ -10,8 +10,6 @@
|
|||
{"Access denied by service policy","Hozzáférés megtagadva a szolgáltatási irányelv miatt"}.
|
||||
{"Account doesn't exist","A fiók nem létezik"}.
|
||||
{"Action on user","Művelet a felhasználón"}.
|
||||
{"Add Jabber ID","Jabber-azonosító hozzáadása"}.
|
||||
{"Add New","Új hozzáadása"}.
|
||||
{"Add User","Felhasználó hozzáadása"}.
|
||||
{"Administration of ","Adminisztrációja ennek: "}.
|
||||
{"Administration","Adminisztráció"}.
|
||||
|
@ -66,22 +64,15 @@
|
|||
{"Conference room does not exist","A konferenciaszoba nem létezik"}.
|
||||
{"Configuration of room ~s","A(z) ~s szoba beállítása"}.
|
||||
{"Configuration","Beállítás"}.
|
||||
{"Connected Resources:","Kapcsolódott erőforrások:"}.
|
||||
{"Country","Ország"}.
|
||||
{"CPU Time:","Processzoridő:"}.
|
||||
{"Database failure","Adatbázishiba"}.
|
||||
{"Database Tables at ~p","Adatbázistáblák itt: ~p"}.
|
||||
{"Database Tables Configuration at ","Adatbázistáblák beállítása itt: "}.
|
||||
{"Database","Adatbázis"}.
|
||||
{"December","december"}.
|
||||
{"Default users as participants","Alapértelmezett felhasználók mint résztvevők"}.
|
||||
{"Delete content","Tartalom törlése"}.
|
||||
{"Delete message of the day on all hosts","Napi üzenet törlése az összes gépen"}.
|
||||
{"Delete message of the day","Napi üzenet törlése"}.
|
||||
{"Delete Selected","Kijelöltek törlése"}.
|
||||
{"Delete table","Tábla törlése"}.
|
||||
{"Delete User","Felhasználó törlése"}.
|
||||
{"Description:","Leírás:"}.
|
||||
{"Disc only copy","Csak lemez másolása"}.
|
||||
{"Dump Backup to Text File at ","Biztonsági mentés kiírása szövegfájlba itt: "}.
|
||||
{"Dump to Text File","Kiírás szövegfájlba"}.
|
||||
|
@ -95,7 +86,6 @@
|
|||
{"ejabberd vCard module","ejabberd vCard modul"}.
|
||||
{"ejabberd Web Admin","ejabberd webes adminisztráció"}.
|
||||
{"ejabberd","ejabberd"}.
|
||||
{"Elements","Elemek"}.
|
||||
{"Email","E-mail"}.
|
||||
{"Enable logging","Naplózás engedélyezése"}.
|
||||
{"Enabling push without 'node' attribute is not supported","A „node” attribútum nélküli felküldés engedélyezése nem támogatott"}.
|
||||
|
@ -106,7 +96,6 @@
|
|||
{"Enter path to jabberd14 spool file","Adja meg a jabberd14 tárolófájl útvonalát"}.
|
||||
{"Enter path to text file","Adja meg a szövegfájl útvonalát"}.
|
||||
{"Enter the text you see","Írja be a látott szöveget"}.
|
||||
{"Error","Hiba"}.
|
||||
{"Export all tables as SQL queries to a file:","Összes tábla exportálása SQL-lekérdezésekként egy fájlba:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","A kiszolgálón lévő összes felhasználó adatainak exportálása PIEFXIS-fájlokba (XEP-0227):"}.
|
||||
{"Export data of users in a host to PIEFXIS files (XEP-0227):","Egy gépen lévő felhasználók adatainak exportálása PIEFXIS-fájlokba (XEP-0227):"}.
|
||||
|
@ -121,24 +110,19 @@
|
|||
{"File larger than ~w bytes","A fájl nagyobb ~w bájtnál"}.
|
||||
{"Friday","péntek"}.
|
||||
{"From ~ts","Feladó: ~ts"}.
|
||||
{"From","Feladó"}.
|
||||
{"Full Name","Teljes név"}.
|
||||
{"Get Number of Online Users","Elérhető felhasználók számának lekérése"}.
|
||||
{"Get Number of Registered Users","Regisztrált felhasználók számának lekérése"}.
|
||||
{"Get Pending","Függőben lévő lekérése"}.
|
||||
{"Get User Last Login Time","Felhasználó legutolsó bejelentkezési idejének lekérése"}.
|
||||
{"Get User Password","Felhasználó jelszavának lekérése"}.
|
||||
{"Get User Statistics","Felhasználói statisztikák lekérése"}.
|
||||
{"Given Name","Keresztnév"}.
|
||||
{"Group","Csoport"}.
|
||||
{"Groups","Csoportok"}.
|
||||
{"has been banned","ki lett tiltva"}.
|
||||
{"has been kicked because of a system shutdown","ki lett rúgva egy rendszerleállítás miatt"}.
|
||||
{"has been kicked because of an affiliation change","ki lett rúgva egy hovatartozás megváltozása miatt"}.
|
||||
{"has been kicked because the room has been changed to members-only","ki lett rúgva, mert a szobát megváltoztatták csak tagok részére"}.
|
||||
{"has been kicked","ki lett rúgva"}.
|
||||
{"Host unknown","Gép ismeretlen"}.
|
||||
{"Host","Gép"}.
|
||||
{"HTTP File Upload","HTTP fájlfeltöltés"}.
|
||||
{"Idle connection","Tétlen kapcsolat"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Ha nem látja itt a CAPTCHA képet, akkor látogassa meg a weboldalt."}.
|
||||
|
@ -152,7 +136,6 @@
|
|||
{"Import Users From jabberd14 Spool Files","Felhasználók importálása jabberd14 tárolófájlokból"}.
|
||||
{"Improper domain part of 'from' attribute","A „from” attribútum tartományrésze helytelen"}.
|
||||
{"Improper message type","Helytelen üzenettípus"}.
|
||||
{"Incoming s2s Connections:","Bejövő s2s kapcsolatok:"}.
|
||||
{"Incorrect CAPTCHA submit","Hibás CAPTCHA beküldés"}.
|
||||
{"Incorrect data form","Hibás adatűrlap"}.
|
||||
{"Incorrect password","Hibás jelszó"}.
|
||||
|
@ -182,8 +165,6 @@
|
|||
{"Last month","Múlt hónap"}.
|
||||
{"Last year","Múlt év"}.
|
||||
{"leaves the room","elhagyta a szobát"}.
|
||||
{"List of rooms","Szobák listája"}.
|
||||
{"Low level update script","Alacsony szintű frissítő parancsfájl"}.
|
||||
{"Make participants list public","Résztvevőlista nyilvánossá tétele"}.
|
||||
{"Make room CAPTCHA protected","Szoba CAPTCHA-védetté tétele"}.
|
||||
{"Make room members-only","Szoba beállítása csak tagoknak"}.
|
||||
|
@ -197,20 +178,16 @@
|
|||
{"Maximum Number of Occupants","Résztvevők legnagyobb száma"}.
|
||||
{"May","május"}.
|
||||
{"Membership is required to enter this room","Tagság szükséges a szobába lépéshez"}.
|
||||
{"Members:","Tagok:"}.
|
||||
{"Memory","Memória"}.
|
||||
{"Message body","Üzenettörzs"}.
|
||||
{"Message not found in forwarded payload","Nem található üzenet a továbbított adatokban"}.
|
||||
{"Messages from strangers are rejected","Idegenektől származó üzenetek vissza vannak utasítva"}.
|
||||
{"Middle Name","Középső név"}.
|
||||
{"Moderator privileges required","Moderátori jogosultságok szükségesek"}.
|
||||
{"Modified modules","Módosított modulok"}.
|
||||
{"Module failed to handle the query","A modul nem tudta kezelni a lekérdezést"}.
|
||||
{"Monday","hétfő"}.
|
||||
{"Multicast","Csoportcímzés"}.
|
||||
{"Multi-User Chat","Többfelhasználós csevegés"}.
|
||||
{"Name","Név"}.
|
||||
{"Name:","Név:"}.
|
||||
{"Neither 'jid' nor 'nick' attribute found","Sem a „jid”, sem a „nick” attribútum nem található"}.
|
||||
{"Neither 'role' nor 'affiliation' attribute found","Sem a „role”, sem az „affiliation” attribútum nem található"}.
|
||||
{"Never","Soha"}.
|
||||
|
@ -259,12 +236,9 @@
|
|||
{"Number of online users","Elérhető felhasználók száma"}.
|
||||
{"Number of registered users","Regisztrált felhasználók száma"}.
|
||||
{"October","október"}.
|
||||
{"Offline Messages","Kapcsolat nélküli üzenetek"}.
|
||||
{"Offline Messages:","Kapcsolat nélküli üzenetek:"}.
|
||||
{"OK","Rendben"}.
|
||||
{"Old Password:","Régi jelszó:"}.
|
||||
{"Online Users","Elérhető felhasználók"}.
|
||||
{"Online Users:","Elérhető felhasználók:"}.
|
||||
{"Online","Elérhető"}.
|
||||
{"Only <enable/> or <disable/> tags are allowed","Csak az <enable/> vagy <disable/> címkék engedélyezettek"}.
|
||||
{"Only <list/> element is allowed in this query","Csak a <list/> elem engedélyezett ebben a lekérdezésben"}.
|
||||
|
@ -278,17 +252,14 @@
|
|||
{"Organization Name","Szervezet neve"}.
|
||||
{"Organization Unit","Szervezeti egység"}.
|
||||
{"Outgoing s2s Connections","Kimenő s2s kapcsolatok"}.
|
||||
{"Outgoing s2s Connections:","Kimenő s2s kapcsolatok:"}.
|
||||
{"Owner privileges required","Tulajdonosi jogosultságok szükségesek"}.
|
||||
{"Packet relay is denied by service policy","Csomagátjátszás megtagadva a szolgáltatási irányelv miatt"}.
|
||||
{"Packet","Csomag"}.
|
||||
{"Password Verification","Jelszó ellenőrzése"}.
|
||||
{"Password Verification:","Jelszó ellenőrzése:"}.
|
||||
{"Password","Jelszó"}.
|
||||
{"Password:","Jelszó:"}.
|
||||
{"Path to Dir","Útvonal a könyvtárhoz"}.
|
||||
{"Path to File","Útvonal a fájlhoz"}.
|
||||
{"Pending","Függőben"}.
|
||||
{"Period: ","Időszak: "}.
|
||||
{"Ping query is incorrect","A lekérdezés pingelése hibás"}.
|
||||
{"Ping","Ping"}.
|
||||
|
@ -310,19 +281,14 @@
|
|||
{"RAM copy","RAM másolás"}.
|
||||
{"Really delete message of the day?","Valóban törli a napi üzenetet?"}.
|
||||
{"Recipient is not in the conference room","A címzett nincs a konferenciaszobában"}.
|
||||
{"Registered Users","Regisztrált felhasználók"}.
|
||||
{"Registered Users:","Regisztrált felhasználók:"}.
|
||||
{"Register","Regisztráció"}.
|
||||
{"Remote copy","Távoli másolás"}.
|
||||
{"Remove All Offline Messages","Összes kapcsolat nélküli üzenet eltávolítása"}.
|
||||
{"Remove User","Felhasználó eltávolítása"}.
|
||||
{"Remove","Eltávolítás"}.
|
||||
{"Replaced by new connection","Kicserélve egy új kapcsolattal"}.
|
||||
{"Request has timed out","A kérés túllépte az időkorlátot"}.
|
||||
{"Request is ignored","A kérés mellőzve lett"}.
|
||||
{"Resources","Erőforrások"}.
|
||||
{"Restart Service","Szolgáltatás újraindítása"}.
|
||||
{"Restart","Újraindítás"}.
|
||||
{"Restore Backup from File at ","Biztonsági mentés visszaállítása fájlból itt: "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Bináris biztonsági mentés visszaállítása az ejabberd következő újraindítása után (kevesebb memóriát igényel):"}.
|
||||
{"Restore binary backup immediately:","Bináris biztonsági mentés visszaállítása azonnal:"}.
|
||||
|
@ -334,15 +300,11 @@
|
|||
{"Room Occupants","Szoba résztvevői"}.
|
||||
{"Room terminates","Szoba megszűnik"}.
|
||||
{"Room title","Szoba címe"}.
|
||||
{"Roster of ~ts","~ts névsora"}.
|
||||
{"Roster size","Névsor mérete"}.
|
||||
{"RPC Call Error","RPC hívási hiba"}.
|
||||
{"Running Nodes","Futó csomópontok"}.
|
||||
{"Saturday","szombat"}.
|
||||
{"Script check","Parancsfájl-ellenőrzés"}.
|
||||
{"Search Results for ","Keresési eredménye ennek: "}.
|
||||
{"Search users in ","Felhasználók keresése ebben: "}.
|
||||
{"Select All","Összes kijelölése"}.
|
||||
{"Send announcement to all online users on all hosts","Közlemény küldése az összes elérhető felhasználónak az összes gépen"}.
|
||||
{"Send announcement to all online users","Közlemény küldése az összes elérhető felhasználónak"}.
|
||||
{"Send announcement to all users on all hosts","Közlemény küldése az összes felhasználónak az összes gépen"}.
|
||||
|
@ -357,19 +319,13 @@
|
|||
{"Show Ordinary Table","Szokásos táblázat megjelenítése"}.
|
||||
{"Shut Down Service","Szolgáltatás leállítása"}.
|
||||
{"SOCKS5 Bytestreams","SOCKS5 bájtfolyamok"}.
|
||||
{"Statistics of ~p","~p statisztikái"}.
|
||||
{"Statistics","Statisztikák"}.
|
||||
{"Stop","Leállítás"}.
|
||||
{"Stopped Nodes","Leállított csomópontok"}.
|
||||
{"Storage Type","Tárolótípus"}.
|
||||
{"Store binary backup:","Bináris biztonsági mentés tárolása:"}.
|
||||
{"Store plain text backup:","Egyszerű szöveges biztonsági mentés tárolása:"}.
|
||||
{"Stream management is already enabled","A folyamkezelés már engedélyezve van"}.
|
||||
{"Stream management is not enabled","A folyamkezelés nincs engedélyezve"}.
|
||||
{"Subject","Tárgy"}.
|
||||
{"Submit","Elküldés"}.
|
||||
{"Submitted","Elküldve"}.
|
||||
{"Subscription","Feliratkozás"}.
|
||||
{"Subscriptions are not allowed","Feliratkozások nem engedélyezettek"}.
|
||||
{"Sunday","vasárnap"}.
|
||||
{"That nickname is already in use by another occupant","Ezt a becenevet már használja egy másik résztvevő"}.
|
||||
|
@ -394,26 +350,19 @@
|
|||
{"Thursday","csütörtök"}.
|
||||
{"Time delay","Időkésleltetés"}.
|
||||
{"Timed out waiting for stream resumption","Időtúllépés a folyam újrakezdésére várakozásnál"}.
|
||||
{"Time","Idő"}.
|
||||
{"To register, visit ~s","Regisztráláshoz látogassa meg ezt az oldalt: ~s"}.
|
||||
{"To ~ts","Címzett: ~ts"}.
|
||||
{"To","Címzett"}.
|
||||
{"Token TTL","Token élettartama"}.
|
||||
{"Too many active bytestreams","Túl sok aktív bájtfolyam"}.
|
||||
{"Too many CAPTCHA requests","Túl sok CAPTCHA kérés"}.
|
||||
{"Too many child elements","Túl sok gyermekelem"}.
|
||||
{"Too many <item/> elements","Túl sok <item/> elem"}.
|
||||
{"Too many <list/> elements","Túl sok <list/> elem"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Túl sok (~p) sikertelen hitelesítés erről az IP-címről (~ts) A cím ~ts-kor lesz feloldva UTC szerint"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Túl sok (~p) sikertelen hitelesítés erről az IP-címről (~s) A cím ~s-kor lesz feloldva UTC szerint"}.
|
||||
{"Too many receiver fields were specified","Túl sok fogadómező lett meghatározva"}.
|
||||
{"Too many unacked stanzas","Túl sok nyugtázatlan stanza"}.
|
||||
{"Too many users in this conference","Túl sok felhasználó ebben a konferenciában"}.
|
||||
{"Total rooms","Szobák összesen"}.
|
||||
{"Traffic rate limit is exceeded","Forgalom sebességkorlátja elérve"}.
|
||||
{"Transactions Aborted:","Megszakított tranzakciók:"}.
|
||||
{"Transactions Committed:","Véglegesített tranzakciók:"}.
|
||||
{"Transactions Logged:","Naplózott tranzakciók:"}.
|
||||
{"Transactions Restarted:","Újraindított tranzakciók:"}.
|
||||
{"~ts's Offline Messages Queue","~ts kapcsolat nélküli üzeneteinek tárolója"}.
|
||||
{"Tuesday","kedd"}.
|
||||
{"Unable to generate a CAPTCHA","Nem lehet előállítani CAPTCHA-t"}.
|
||||
|
@ -422,16 +371,10 @@
|
|||
{"Unexpected action","Váratlan művelet"}.
|
||||
{"Unexpected error condition: ~p","Váratlan hibafeltétel: ~p"}.
|
||||
{"Unregister","Regisztráció törlése"}.
|
||||
{"Unselect All","Összes kijelölésének megszüntetése"}.
|
||||
{"Unsupported <index/> element","Nem támogatott <index/> elem"}.
|
||||
{"Unsupported version","Nem támogatott verzió"}.
|
||||
{"Update message of the day (don't send)","Napi üzenet frissítése (ne küldje el)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Napi üzenet frissítése az összes gépen (ne küldje el)"}.
|
||||
{"Update plan","Frissítési terv"}.
|
||||
{"Update ~p","~p frissítése"}.
|
||||
{"Update script","Frissítő parancsfájl"}.
|
||||
{"Update","Frissítés"}.
|
||||
{"Uptime:","Működési idő:"}.
|
||||
{"User already exists","A felhasználó már létezik"}.
|
||||
{"User (jid)","Felhasználó (JID)"}.
|
||||
{"User Management","Felhasználó-kezelés"}.
|
||||
|
@ -444,7 +387,6 @@
|
|||
{"Users are not allowed to register accounts so quickly","A felhasználóknak nem engedélyezett fiókokat regisztrálni ilyen gyorsan"}.
|
||||
{"Users Last Activity","Felhasználók utolsó tevékenysége"}.
|
||||
{"Users","Felhasználók"}.
|
||||
{"Validate","Ellenőrzés"}.
|
||||
{"Value 'get' of 'type' attribute is not allowed","A „type” attribútum „get” értéke nem engedélyezett"}.
|
||||
{"Value of '~s' should be boolean","A(z) „~s” értéke csak logikai lehet"}.
|
||||
{"Value of '~s' should be datetime string","A(z) „~s” értéke csak dátum és idő karakterlánc lehet"}.
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
{"Access model","Model akses"}.
|
||||
{"Account doesn't exist","Akun tidak ada"}.
|
||||
{"Action on user","Tindakan pada pengguna"}.
|
||||
{"Add Jabber ID","Tambah Jabber ID"}.
|
||||
{"Add New","Tambah Baru"}.
|
||||
{"Add User","Tambah Pengguna"}.
|
||||
{"Administration of ","Administrasi "}.
|
||||
{"Administration","Administrasi"}.
|
||||
|
@ -87,28 +85,20 @@
|
|||
{"Conference room does not exist","Ruang Konferensi tidak ada"}.
|
||||
{"Configuration of room ~s","Pengaturan ruangan ~s"}.
|
||||
{"Configuration","Pengaturan"}.
|
||||
{"Connected Resources:","Sumber Daya Terhubung:"}.
|
||||
{"Contact Addresses (normally, room owner or owners)","Alamat Kontak (biasanya, pemilik atau pemilik kamar)"}.
|
||||
{"Country","Negara"}.
|
||||
{"CPU Time:","Waktu CPU:"}.
|
||||
{"Current Discussion Topic","Topik diskusi saat ini"}.
|
||||
{"Database failure","Kegagalan database"}.
|
||||
{"Database Tables at ~p","Tabel Database pada ~p"}.
|
||||
{"Database Tables Configuration at ","Konfigurasi Tabel Database pada "}.
|
||||
{"Database","Database"}.
|
||||
{"December","Desember"}.
|
||||
{"Default users as participants","pengguna pertama kali masuk sebagai participant"}.
|
||||
{"Delete content","Hapus isi"}.
|
||||
{"Delete message of the day on all hosts","Hapus pesan harian pada semua host"}.
|
||||
{"Delete message of the day","Hapus pesan harian"}.
|
||||
{"Delete Selected","Hapus Yang Terpilih"}.
|
||||
{"Delete table","Hapus tabel"}.
|
||||
{"Delete User","Hapus Pengguna"}.
|
||||
{"Deliver event notifications","Memberikan pemberitahuan acara"}.
|
||||
{"Deliver payloads with event notifications","Memberikan muatan dengan pemberitahuan acara"}.
|
||||
{"Description:","Keterangan:"}.
|
||||
{"Disc only copy","Hanya salinan dari disc"}.
|
||||
{"Displayed:","Tampilkan:"}.
|
||||
{"Don't tell your password to anybody, not even the administrators of the XMPP server.","Jangan beritahukan kata sandi Anda ke siapapun, bahkan ke administrator layanan XMPP."}.
|
||||
{"Dump Backup to Text File at ","Dump Backup menjadi File Teks di "}.
|
||||
{"Dump to Text File","Dump menjadi File Teks"}.
|
||||
|
@ -123,7 +113,6 @@
|
|||
{"ejabberd vCard module","Modul ejabberd vCard"}.
|
||||
{"ejabberd Web Admin","Admin Web ejabberd"}.
|
||||
{"ejabberd","ejabberd"}.
|
||||
{"Elements","Elemen-elemen"}.
|
||||
{"Email Address","Alamat email"}.
|
||||
{"Email","Email"}.
|
||||
{"Enable logging","Aktifkan log"}.
|
||||
|
@ -137,7 +126,6 @@
|
|||
{"Enter path to text file","Masukkan path ke file teks"}.
|
||||
{"Enter the text you see","Masukkan teks yang Anda lihat"}.
|
||||
{"Erlang XMPP Server","Server Erlang XMPP"}.
|
||||
{"Error","Kesalahan"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Kecualikan Jabber IDs dari tantangan CAPTCHA"}.
|
||||
{"Export all tables as SQL queries to a file:","Ekspor semua tabel sebagai kueri SQL ke file:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Ekspor data dari semua pengguna pada layanan ke berkas PIEFXIS (XEP-0227):"}.
|
||||
|
@ -155,7 +143,6 @@
|
|||
{"Fill in the form to search for any matching XMPP User","Isi kolom untuk mencari pengguna XMPP"}.
|
||||
{"Friday","Jumat"}.
|
||||
{"From ~ts","Dari ~ts"}.
|
||||
{"From","Dari"}.
|
||||
{"Full List of Room Admins","Daftar Lengkap Admin Kamar"}.
|
||||
{"Full List of Room Owners","Daftar Lengkap Pemilik Kamar"}.
|
||||
{"Full Name","Nama Lengkap"}.
|
||||
|
@ -163,20 +150,15 @@
|
|||
{"Get Number of Registered Users","Dapatkan Jumlah Pengguna Yang Terdaftar"}.
|
||||
{"Get Pending","Lihat yang tertunda"}.
|
||||
{"Get User Last Login Time","Lihat Waktu Login Terakhir Pengguna"}.
|
||||
{"Get User Password","Dapatkan User Password"}.
|
||||
{"Get User Statistics","Dapatkan Statistik Pengguna"}.
|
||||
{"Given Name","Nama"}.
|
||||
{"Grant voice to this person?","Ijinkan akses suara kepadanya?"}.
|
||||
{"Group","Grup"}.
|
||||
{"Groups that will be displayed to the members","Grup yang akan ditampilkan kepada anggota"}.
|
||||
{"Groups","Grup"}.
|
||||
{"has been banned","telah dibanned"}.
|
||||
{"has been kicked because of a system shutdown","telah dikick karena sistem shutdown"}.
|
||||
{"has been kicked because of an affiliation change","telah dikick karena perubahan afiliasi"}.
|
||||
{"has been kicked because the room has been changed to members-only","telah dikick karena ruangan telah diubah menjadi hanya untuk member"}.
|
||||
{"has been kicked","telah dikick"}.
|
||||
{"Host unknown","Host tidak dikenal"}.
|
||||
{"Host","Host"}.
|
||||
{"HTTP File Upload","Unggah Berkas HTTP"}.
|
||||
{"Idle connection","Koneksi menganggur"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Jika Anda tidak melihat gambar CAPTCHA disini, silahkan kunjungi halaman web."}.
|
||||
|
@ -189,7 +171,6 @@
|
|||
{"Import Users from Dir at ","Impor Pengguna dari Dir di "}.
|
||||
{"Import Users From jabberd14 Spool Files","Impor Pengguna Dari jabberd14 Spool File"}.
|
||||
{"Improper message type","Jenis pesan yang tidak benar"}.
|
||||
{"Incoming s2s Connections:","Koneksi s2s masuk:"}.
|
||||
{"Incorrect CAPTCHA submit","Isian CAPTCHA salah"}.
|
||||
{"Incorrect data form","Formulir data salah"}.
|
||||
{"Incorrect password","Kata sandi salah"}.
|
||||
|
@ -212,7 +193,6 @@
|
|||
{"Last month","Akhir bulan"}.
|
||||
{"Last year","Akhir tahun"}.
|
||||
{"leaves the room","meninggalkan ruangan"}.
|
||||
{"Low level update script","Perbaruan naskah tingkat rendah"}.
|
||||
{"Make participants list public","Buat daftar participant diketahui oleh public"}.
|
||||
{"Make room CAPTCHA protected","Buat ruangan dilindungi dengan CAPTCHA"}.
|
||||
{"Make room members-only","Buat ruangan hanya untuk member saja"}.
|
||||
|
@ -224,17 +204,13 @@
|
|||
{"Max payload size in bytes","Max kapasitas ukuran dalam bytes"}.
|
||||
{"Maximum Number of Occupants","Maksimum Jumlah Penghuni"}.
|
||||
{"May","Mei"}.
|
||||
{"Members:","Anggota:"}.
|
||||
{"Membership is required to enter this room","Hanya Member yang dapat masuk ruangan ini"}.
|
||||
{"Memory","Memori"}.
|
||||
{"Message body","Isi Pesan"}.
|
||||
{"Middle Name","Nama Tengah"}.
|
||||
{"Moderator privileges required","Hak istimewa moderator dibutuhkan"}.
|
||||
{"Modified modules","Modifikasi modul-modul"}.
|
||||
{"Monday","Senin"}.
|
||||
{"Multiple <item/> elements are not allowed by RFC6121","Beberapa elemen <item/> tidak diizinkan oleh RFC6121"}.
|
||||
{"Name","Nama"}.
|
||||
{"Name:","Nama:"}.
|
||||
{"Never","Tidak Pernah"}.
|
||||
{"New Password:","Password Baru:"}.
|
||||
{"Nickname Registration at ","Pendaftaran Julukan pada "}.
|
||||
|
@ -257,11 +233,8 @@
|
|||
{"Number of online users","Jumlah pengguna online"}.
|
||||
{"Number of registered users","Jumlah pengguna terdaftar"}.
|
||||
{"October","Oktober"}.
|
||||
{"Offline Messages","Pesan Offline"}.
|
||||
{"Offline Messages:","Pesan Offline:"}.
|
||||
{"OK","YA"}.
|
||||
{"Old Password:","Password Lama:"}.
|
||||
{"Online Users:","Pengguna Online:"}.
|
||||
{"Online Users","Pengguna Yang Online"}.
|
||||
{"Online","Online"}.
|
||||
{"Only deliver notifications to available users","Hanya mengirimkan pemberitahuan kepada pengguna yang tersedia"}.
|
||||
|
@ -273,9 +246,7 @@
|
|||
{"Organization Name","Nama Organisasi"}.
|
||||
{"Organization Unit","Unit Organisasi"}.
|
||||
{"Outgoing s2s Connections","Koneksi Keluar s2s"}.
|
||||
{"Outgoing s2s Connections:","Koneksi s2s yang keluar:"}.
|
||||
{"Owner privileges required","Hak istimewa owner dibutuhkan"}.
|
||||
{"Packet","Paket"}.
|
||||
{"Participant","Partisipan"}.
|
||||
{"Password Verification:","Verifikasi Kata Sandi:"}.
|
||||
{"Password Verification","Verifikasi Sandi"}.
|
||||
|
@ -283,7 +254,6 @@
|
|||
{"Password","Sandi"}.
|
||||
{"Path to Dir","Jalur ke Dir"}.
|
||||
{"Path to File","Jalur ke File"}.
|
||||
{"Pending","Tertunda"}.
|
||||
{"Period: ","Periode: "}.
|
||||
{"Persist items to storage","Pertahankan item ke penyimpanan"}.
|
||||
{"Persistent","Persisten"}.
|
||||
|
@ -314,20 +284,15 @@
|
|||
{"Receive notification of new nodes only","Terima notifikasi dari node baru saja"}.
|
||||
{"Recipient is not in the conference room","Penerima tidak berada di ruangan konferensi"}.
|
||||
{"Register an XMPP account","Daftarkan sebuah akun XMPP"}.
|
||||
{"Registered Users","Pengguna Terdaftar"}.
|
||||
{"Registered Users:","Pengguna Terdaftar:"}.
|
||||
{"Register","Mendaftar"}.
|
||||
{"Remote copy","Salinan Remote"}.
|
||||
{"Remove All Offline Messages","Hapus Semua Pesan Offline"}.
|
||||
{"Remove User","Hapus Pengguna"}.
|
||||
{"Remove","Menghapus"}.
|
||||
{"Replaced by new connection","Diganti dengan koneksi baru"}.
|
||||
{"Request has timed out","Waktu permintaan telah habis"}.
|
||||
{"Request is ignored","Permintaan diabaikan"}.
|
||||
{"Requested role","Peran yang diminta"}.
|
||||
{"Resources","Sumber daya"}.
|
||||
{"Restart Service","Restart Layanan"}.
|
||||
{"Restart","Jalankan Ulang"}.
|
||||
{"Restore Backup from File at ","Kembalikan Backup dari File pada "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Mengembalikan cadangan yang berpasanagn setelah ejabberd berikutnya dijalankan ulang (memerlukan memori lebih sedikit):"}.
|
||||
{"Restore binary backup immediately:","Segera mengembalikan cadangan yang berpasangan:"}.
|
||||
|
@ -341,20 +306,15 @@
|
|||
{"Room terminates","Ruang dihentikan"}.
|
||||
{"Room title","Nama Ruangan"}.
|
||||
{"Roster groups allowed to subscribe","Kelompok kontak yang diizinkan untuk berlangganan"}.
|
||||
{"Roster of ~ts","Daftar ~ts"}.
|
||||
{"Roster size","Ukuran Daftar Kontak"}.
|
||||
{"Roster:","Daftar:"}.
|
||||
{"RPC Call Error","Panggilan Kesalahan RPC"}.
|
||||
{"Running Nodes","Menjalankan Node"}.
|
||||
{"~s invites you to the room ~s","~s mengundang anda masuk kamar ~s"}.
|
||||
{"Saturday","Sabtu"}.
|
||||
{"Script check","Periksa naskah"}.
|
||||
{"Search from the date","Cari dari tanggal"}.
|
||||
{"Search Results for ","Hasil Pencarian untuk "}.
|
||||
{"Search the text","Cari teks"}.
|
||||
{"Search until the date","Cari sampai tanggal"}.
|
||||
{"Search users in ","Pencarian pengguna dalam "}.
|
||||
{"Select All","Pilih Semua"}.
|
||||
{"Send announcement to all online users on all hosts","Kirim pengumuman untuk semua pengguna yang online pada semua host"}.
|
||||
{"Send announcement to all online users","Kirim pengumuman untuk semua pengguna yang online"}.
|
||||
{"Send announcement to all users on all hosts","Kirim pengumuman untuk semua pengguna pada semua host"}.
|
||||
|
@ -372,21 +332,15 @@
|
|||
{"Specify the event message type","Tentukan jenis acara pesan"}.
|
||||
{"Specify the publisher model","Tentukan model penerbitan"}.
|
||||
{"Stanza ID","ID Stanza"}.
|
||||
{"Statistics of ~p","statistik dari ~p"}.
|
||||
{"Statistics","Statistik"}.
|
||||
{"Stop","Hentikan"}.
|
||||
{"Stopped Nodes","Menghentikan node"}.
|
||||
{"Storage Type","Jenis Penyimpanan"}.
|
||||
{"Store binary backup:","Penyimpanan cadangan yang berpasangan:"}.
|
||||
{"Store plain text backup:","Simpan cadangan teks biasa:"}.
|
||||
{"Stream management is already enabled","Manajemen stream sudah diaktifkan"}.
|
||||
{"Stream management is not enabled","Manajemen stream tidak diaktifkan"}.
|
||||
{"Subject","Subyek"}.
|
||||
{"Submit","Serahkan"}.
|
||||
{"Submitted","Ulangi masukan"}.
|
||||
{"Subscriber Address","Alamat Pertemanan"}.
|
||||
{"Subscribers may publish","Pelanggan dapat mempublikasikan"}.
|
||||
{"Subscription","Berlangganan"}.
|
||||
{"Subscriptions are not allowed","Langganan tidak diperbolehkan"}.
|
||||
{"Sunday","Minggu"}.
|
||||
{"Text associated with a picture","Teks yang terkait dengan gambar"}.
|
||||
|
@ -422,11 +376,9 @@
|
|||
{"This service can not process the address: ~s","Layanan ini tidak dapat memproses alamat: ~s"}.
|
||||
{"Thursday","Kamis"}.
|
||||
{"Time delay","Waktu tunda"}.
|
||||
{"Time","Waktu"}.
|
||||
{"To register, visit ~s","Untuk mendaftar, kunjungi ~s"}.
|
||||
{"To ~ts","Kepada ~ts"}.
|
||||
{"Token TTL","TTL Token"}.
|
||||
{"To","Kepada"}.
|
||||
{"Too many active bytestreams","Terlalu banyak bytestream aktif"}.
|
||||
{"Too many CAPTCHA requests","Terlalu banyak permintaan CAPTCHA"}.
|
||||
{"Too many child elements","Terlalu banyak elemen turunan"}.
|
||||
|
@ -435,12 +387,7 @@
|
|||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Terlalu banyak (~p) percobaan otentifikasi yang gagal dari alamat IP (~s). Alamat akan di unblok pada ~s UTC"}.
|
||||
{"Too many receiver fields were specified","Terlalu banyak bidang penerima yang ditentukan"}.
|
||||
{"Too many users in this conference","Terlalu banyak pengguna di grup ini"}.
|
||||
{"Total rooms","Total kamar"}.
|
||||
{"Traffic rate limit is exceeded","Batas tingkat lalu lintas terlampaui"}.
|
||||
{"Transactions Aborted:","Transaksi dibatalkan:"}.
|
||||
{"Transactions Committed:","Transaksi yang dilakukan:"}.
|
||||
{"Transactions Logged:","Transaksi yang ditempuh:"}.
|
||||
{"Transactions Restarted:","Transaksi yang dijalankan ulang:"}.
|
||||
{"~ts's Offline Messages Queue","~ts's antrian Pesan Offline"}.
|
||||
{"Tuesday","Selasa"}.
|
||||
{"Unable to generate a CAPTCHA","Tidak dapat menghasilkan CAPTCHA"}.
|
||||
|
@ -450,16 +397,10 @@
|
|||
{"Unexpected error condition: ~p","Kondisi kerusakan yang tidak diduga: ~p"}.
|
||||
{"Unregister an XMPP account","Nonaktifkan akun XMPP"}.
|
||||
{"Unregister","Nonaktifkan"}.
|
||||
{"Unselect All","Batalkan semua"}.
|
||||
{"Unsupported <index/> element","Elemen <index/> tidak didukung"}.
|
||||
{"Unsupported version","Versi tidak didukung"}.
|
||||
{"Update message of the day (don't send)","Rubah pesan harian (tidak dikirim)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Rubah pesan harian pada semua host (tidak dikirim)"}.
|
||||
{"Update plan","Rencana Perubahan"}.
|
||||
{"Update ~p","Memperbaharui ~p"}.
|
||||
{"Update script","Perbarui naskah"}.
|
||||
{"Update","Memperbarui"}.
|
||||
{"Uptime:","Sampai saat:"}.
|
||||
{"User already exists","Pengguna sudah ada"}.
|
||||
{"User (jid)","Pengguna (jid)"}.
|
||||
{"User JID","Pengguna JID"}.
|
||||
|
@ -473,15 +414,12 @@
|
|||
{"Users are not allowed to register accounts so quickly","Pengguna tidak diperkenankan untuk mendaftar akun begitu cepat"}.
|
||||
{"Users Last Activity","Aktifitas terakhir para pengguna"}.
|
||||
{"Users","Pengguna"}.
|
||||
{"Validate","Mengesahkan"}.
|
||||
{"Value 'get' of 'type' attribute is not allowed","Nilai 'get' dari 'type' atribut tidak diperbolehkan"}.
|
||||
{"Value of '~s' should be boolean","Nilai '~ s' harus boolean"}.
|
||||
{"Value of '~s' should be datetime string","Nilai '~s' harus string datetime"}.
|
||||
{"Value of '~s' should be integer","Nilai '~ s' harus integer"}.
|
||||
{"Value 'set' of 'type' attribute is not allowed","Nilai 'set' dari 'type' atribut tidak diperbolehkan"}.
|
||||
{"vCard User Search","vCard Pencarian Pengguna"}.
|
||||
{"View Queue","Lihat antrian"}.
|
||||
{"View Roster","Lihat daftar kontak"}.
|
||||
{"Virtual Hosts","Host Virtual"}.
|
||||
{"Visitors are not allowed to change their nicknames in this room","Tamu tidak diperbolehkan untuk mengubah nama panggilan di ruangan ini"}.
|
||||
{"Visitors are not allowed to send messages to all occupants","Tamu tidak diperbolehkan untuk mengirim pesan ke semua penghuni"}.
|
||||
|
|
425
priv/msgs/it.msg
425
priv/msgs/it.msg
|
@ -3,40 +3,77 @@
|
|||
%% To improve translations please read:
|
||||
%% https://docs.ejabberd.im/developer/extending-ejabberd/localization/
|
||||
|
||||
{" (Add * to the end of field to match substring)"," Riempire il modulo per la ricerca di utenti Jabber corrispondenti ai criteri (Aggiungere * alla fine del campo per la ricerca di una sottostringa"}.
|
||||
{" (Add * to the end of field to match substring)"," (Aggiungere * alla fine del campo per far corrispondere la sottostringa)"}.
|
||||
{" has set the subject to: "," ha modificato l'oggetto in: "}.
|
||||
{"# participants","# partecipanti"}.
|
||||
{"A description of the node","Una descrizione del nodo"}.
|
||||
{"A friendly name for the node","Un nome comodo per il nodo"}.
|
||||
{"A password is required to enter this room","Per entrare in questa stanza è prevista una password"}.
|
||||
{"Access denied by service policy","Accesso impedito dalle politiche del servizio"}.
|
||||
{"A password is required to enter this room","Per entrare in questa stanza è necessaria una password"}.
|
||||
{"A Web Page","Una pagina web"}.
|
||||
{"Accept","Accettare"}.
|
||||
{"Access denied by service policy","Accesso negato dalle politiche del servizio"}.
|
||||
{"Access model","Modello di accesso"}.
|
||||
{"Account doesn't exist","L'account non esiste"}.
|
||||
{"Action on user","Azione sull'utente"}.
|
||||
{"Add Jabber ID","Aggiungere un Jabber ID (Jabber ID)"}.
|
||||
{"Add New","Aggiungere nuovo"}.
|
||||
{"Add a hat to a user","Aggiungere un cappello a un utente"}.
|
||||
{"Add User","Aggiungere un utente"}.
|
||||
{"Administration of ","Amministrazione di "}.
|
||||
{"Administration","Amministrazione"}.
|
||||
{"Administrator privileges required","Necessari i privilegi di amministratore"}.
|
||||
{"Administrator privileges required","Sono richiesti privilegi di amministratore"}.
|
||||
{"All activity","Tutta l'attività"}.
|
||||
{"All Users","Tutti gli utenti"}.
|
||||
{"Allow this Jabber ID to subscribe to this pubsub node?","Consentire a questo Jabber ID l'iscrizione a questo nodo pubsub?"}.
|
||||
{"Allow subscription","Consenti iscrizione"}.
|
||||
{"Allow this Jabber ID to subscribe to this pubsub node?","Consentire a questo ID Jabber di iscriversi a questo nodo pubsub?"}.
|
||||
{"Allow this person to register with the room?","Permettere a questa persona di registrarsi con la stanza?"}.
|
||||
{"Allow users to change the subject","Consentire agli utenti di cambiare l'oggetto"}.
|
||||
{"Allow users to query other users","Consentire agli utenti query verso altri utenti"}.
|
||||
{"Allow users to send invites","Consentire agli utenti l'invio di inviti"}.
|
||||
{"Allow users to send private messages","Consentire agli utenti l'invio di messaggi privati"}.
|
||||
{"Allow users to send invites","Consenti agli utenti di inviare inviti"}.
|
||||
{"Allow users to send private messages","Consenti agli utenti di inviare messaggi privati"}.
|
||||
{"Allow visitors to change nickname","Consentire ai visitatori di cambiare il nickname"}.
|
||||
{"Allow visitors to send private messages to","Consentire agli ospiti l'invio di messaggi privati a"}.
|
||||
{"Allow visitors to send status text in presence updates","Consentire ai visitatori l'invio di testo sullo stato in aggiornamenti sulla presenza"}.
|
||||
{"Allow visitors to send voice requests","Consentire agli ospiti l'invio di richieste di parola"}.
|
||||
{"An associated LDAP group that defines room membership; this should be an LDAP Distinguished Name according to an implementation-specific or deployment-specific definition of a group.","Un gruppo LDAP associato che definisce l'appartenenza alla sala; deve trattarsi di un nome distinto LDAP in base a una definizione di gruppo specifica dell'implementazione o della distribuzione."}.
|
||||
{"Announcements","Annunci"}.
|
||||
{"Answer associated with a picture","Risposta associata ad un'immagine"}.
|
||||
{"Answer associated with a video","Risposta associata a un video"}.
|
||||
{"Answer associated with speech","Risposta associata al discorso"}.
|
||||
{"Answer to a question","Risposta a una domanda"}.
|
||||
{"Anyone in the specified roster group(s) may subscribe and retrieve items","Chiunque nei gruppi di elenco specificati può iscriversi e recuperare elementi"}.
|
||||
{"Anyone may associate leaf nodes with the collection","Chiunque può associare i nodi foglia alla raccolta"}.
|
||||
{"Anyone may publish","Chiunque può pubblicare"}.
|
||||
{"Anyone may subscribe and retrieve items","Chiunque può iscriversi e recuperare elementi"}.
|
||||
{"Anyone with a presence subscription of both or from may subscribe and retrieve items","Chiunque abbia un abbonamento di presenza di entrambi o di può sottoscrivere e recuperare elementi"}.
|
||||
{"Anyone with Voice","Chiunque abbia la Voce"}.
|
||||
{"Anyone","Chiunque"}.
|
||||
{"April","Aprile"}.
|
||||
{"Attribute 'channel' is required for this request","Per questa richiesta è richiesto l'attributo 'canale'"}.
|
||||
{"Attribute 'id' is mandatory for MIX messages","L'attributo 'id' è obbligatorio per i messaggi MIX"}.
|
||||
{"Attribute 'jid' is not allowed here","L'attributo \"jid\" non è consentito qui"}.
|
||||
{"Attribute 'node' is not allowed here","L'attributo \"nodo\" non è consentito qui"}.
|
||||
{"Attribute 'to' of stanza that triggered challenge","Attributo \"a\" della strofa che ha innescato la sfida"}.
|
||||
{"August","Agosto"}.
|
||||
{"Backup Management","Gestione dei salvataggi"}.
|
||||
{"Backup to File at ","Salvataggio sul file "}.
|
||||
{"Backup","Salvare"}.
|
||||
{"Automatic node creation is not enabled","La creazione automatica del nodo non è abilitata"}.
|
||||
{"Backup Management","Gestione dei Backup"}.
|
||||
{"Backup of ~p","Backup di ~p"}.
|
||||
{"Backup to File at ","Backup su file in "}.
|
||||
{"Backup","Backup"}.
|
||||
{"Bad format","Formato non valido"}.
|
||||
{"Birthday","Compleanno"}.
|
||||
{"Both the username and the resource are required","Sono richiesti sia il nome utente che la risorsa"}.
|
||||
{"Bytestream already activated","Bytestream già attivato"}.
|
||||
{"Cannot remove active list","Impossibile rimuovere l'elenco attivo"}.
|
||||
{"Cannot remove default list","Impossibile rimuovere l'elenco predefinito"}.
|
||||
{"CAPTCHA web page","Pagina web CAPTCHA"}.
|
||||
{"Change Password","Modificare la password"}.
|
||||
{"Challenge ID","ID Sfida"}.
|
||||
{"Change Password","Cambiare la password"}.
|
||||
{"Change User Password","Cambiare la password dell'utente"}.
|
||||
{"Changing password is not allowed","Non è consentito modificare la password"}.
|
||||
{"Changing role/affiliation is not allowed","Non è consentito cambiare ruolo/affiliazione"}.
|
||||
{"Channel already exists","Canale già esistente"}.
|
||||
{"Channel does not exist","Il canale non esiste"}.
|
||||
{"Channel JID","Canale JID"}.
|
||||
{"Channels","Canali"}.
|
||||
{"Characters not allowed:","Caratteri non consentiti:"}.
|
||||
{"Chatroom configuration modified","Configurazione della stanza modificata"}.
|
||||
{"Chatroom is created","La stanza è creata"}.
|
||||
|
@ -46,39 +83,48 @@
|
|||
{"Chatrooms","Stanze"}.
|
||||
{"Choose a username and password to register with this server","Scegliere un nome utente e una password per la registrazione con questo server"}.
|
||||
{"Choose storage type of tables","Selezionare una modalità di conservazione delle tabelle"}.
|
||||
{"Choose whether to approve this entity's subscription.","Scegliere se approvare l'iscrizione per questa entità"}.
|
||||
{"Choose whether to approve this entity's subscription.","Scegliere se approvare l'iscrizione per questa entità."}.
|
||||
{"City","Città"}.
|
||||
{"Client acknowledged more stanzas than sent by server","Il client ha riconosciuto più stanze di quelle inviate dal server"}.
|
||||
{"Commands","Comandi"}.
|
||||
{"Conference room does not exist","La stanza per conferenze non esiste"}.
|
||||
{"Configuration of room ~s","Configurazione per la stanza ~s"}.
|
||||
{"Configuration","Configurazione"}.
|
||||
{"Connected Resources:","Risorse connesse:"}.
|
||||
{"Contact Addresses (normally, room owner or owners)","Indirizzi di contatto (normalmente, proprietario o proprietari della stanza)"}.
|
||||
{"Country","Paese"}.
|
||||
{"CPU Time:","Tempo CPU:"}.
|
||||
{"Current Discussion Topic","Argomento di discussione attuale"}.
|
||||
{"Database failure","Errore del database"}.
|
||||
{"Database Tables Configuration at ","Configurazione delle tabelle del database su "}.
|
||||
{"Database","Database"}.
|
||||
{"December","Dicembre"}.
|
||||
{"Default users as participants","Definire per default gli utenti come partecipanti"}.
|
||||
{"Delete message of the day on all hosts","Eliminare il messaggio del giorno (MOTD) su tutti gli host"}.
|
||||
{"Delete message of the day","Eliminare il messaggio del giorno (MOTD)"}.
|
||||
{"Delete Selected","Eliminare gli elementi selezionati"}.
|
||||
{"Delete User","Eliminare l'utente"}.
|
||||
{"Deliver event notifications","Inviare notifiche degli eventi"}.
|
||||
{"Deliver payloads with event notifications","Inviare il contenuto del messaggio con la notifica dell'evento"}.
|
||||
{"Description:","Descrizione:"}.
|
||||
{"Disc only copy","Copia su disco soltanto"}.
|
||||
{"Disc only copy","Copia solo su disco"}.
|
||||
{"Don't tell your password to anybody, not even the administrators of the XMPP server.","Non rivelare la tua password a nessuno, nemmeno agli amministratori del server XMPP."}.
|
||||
{"Dump Backup to Text File at ","Trascrivere il salvataggio sul file di testo "}.
|
||||
{"Dump to Text File","Trascrivere su file di testo"}.
|
||||
{"Duplicated groups are not allowed by RFC6121","I gruppi duplicati non sono consentiti da RFC6121"}.
|
||||
{"Dynamically specify a replyto of the item publisher","Specifica dinamicamente una risposta dell'editore dell'elemento"}.
|
||||
{"Edit Properties","Modificare le proprietà"}.
|
||||
{"Either approve or decline the voice request.","Approva oppure respingi la richiesta di parola."}.
|
||||
{"ejabberd HTTP Upload service","Servizio di Caricamento HTTP di ejabberd"}.
|
||||
{"ejabberd MUC module","Modulo MUC per ejabberd"}.
|
||||
{"ejabberd Multicast service","Servizio Multicast ejabberd"}.
|
||||
{"ejabberd Publish-Subscribe module","Modulo Pubblicazione/Iscrizione (PubSub) per ejabberd"}.
|
||||
{"ejabberd SOCKS5 Bytestreams module","Modulo SOCKS5 Bytestreams per ejabberd"}.
|
||||
{"ejabberd vCard module","Modulo vCard per ejabberd"}.
|
||||
{"ejabberd Web Admin","Amministrazione web ejabberd"}.
|
||||
{"Elements","Elementi"}.
|
||||
{"ejabberd","ejabberd"}.
|
||||
{"Email Address","Indirizzo di Posta Elettronica"}.
|
||||
{"Email","E-mail"}.
|
||||
{"Enable logging","Abilitare i log"}.
|
||||
{"Enable hats","Abilitare i cappelli"}.
|
||||
{"Enable logging","Abilitare la registrazione"}.
|
||||
{"Enable message archiving","Abilita l'archiviazione dei messaggi"}.
|
||||
{"Enabling push without 'node' attribute is not supported","L'abilitazione del push senza l'attributo 'nodo' non è supportata"}.
|
||||
{"End User Session","Terminare la sessione dell'utente"}.
|
||||
{"Enter nickname you want to register","Immettere il nickname che si vuole registrare"}.
|
||||
{"Enter path to backup file","Immettere il percorso del file di salvataggio"}.
|
||||
|
@ -86,30 +132,49 @@
|
|||
{"Enter path to jabberd14 spool file","Immettere il percorso del file di spool di jabberd14"}.
|
||||
{"Enter path to text file","Immettere il percorso del file di testo"}.
|
||||
{"Enter the text you see","Immettere il testo visibile"}.
|
||||
{"Error","Errore"}.
|
||||
{"Erlang XMPP Server","Server XMPP Erlang"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Escludi degli ID Jabber dal passaggio CAPTCHA"}.
|
||||
{"Export all tables as SQL queries to a file:","Esporta tutte le tabelle come query SQL in un file:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Esportare i dati di tutti gli utenti nel server in file PIEFXIS (XEP-0227):"}.
|
||||
{"Export data of users in a host to PIEFXIS files (XEP-0227):","Esportare i dati degli utenti di un host in file PIEFXIS (XEP-0227):"}.
|
||||
{"External component failure","Guasto del componente esterno"}.
|
||||
{"External component timeout","Timeout del componente esterno"}.
|
||||
{"Failed to activate bytestream","Impossibile attivare il flusso di byte"}.
|
||||
{"Failed to extract JID from your voice request approval","Impossibile estrarre il JID dall'approvazione della richiesta di parola"}.
|
||||
{"Failed to map delegated namespace to external component","Impossibile mappare lo spazio dei nomi delegato al componente esterno"}.
|
||||
{"Failed to parse HTTP response","Impossibile analizzare la risposta HTTP"}.
|
||||
{"Failed to process option '~s'","Impossibile elaborare l'opzione '~s'"}.
|
||||
{"Family Name","Cognome"}.
|
||||
{"FAQ Entry","Inserimento delle domande frequenti"}.
|
||||
{"February","Febbraio"}.
|
||||
{"File larger than ~w bytes","File più grande di ~w byte"}.
|
||||
{"Fill in the form to search for any matching XMPP User","Compila il modulo per cercare qualsiasi utente XMPP corrispondente"}.
|
||||
{"Friday","Venerdì"}.
|
||||
{"From","Da"}.
|
||||
{"From ~ts","Da ~ts"}.
|
||||
{"Full List of Room Admins","Elenco Completo degli Amministratori delle Stanze"}.
|
||||
{"Full List of Room Owners","Elenco Completo dei Proprietari delle Stanze"}.
|
||||
{"Full Name","Nome completo"}.
|
||||
{"Get List of Online Users","Ottieni L'elenco degli Utenti Online"}.
|
||||
{"Get List of Registered Users","Ottieni L'elenco degli Utenti Registrati"}.
|
||||
{"Get Number of Online Users","Ottenere il numero di utenti online"}.
|
||||
{"Get Number of Registered Users","Ottenere il numero di utenti registrati"}.
|
||||
{"Get Pending","Ottieni in sospeso"}.
|
||||
{"Get User Last Login Time","Ottenere la data di ultimo accesso dell'utente"}.
|
||||
{"Get User Password","Ottenere la password dell'utente"}.
|
||||
{"Get User Statistics","Ottenere le statistiche dell'utente"}.
|
||||
{"Given Name","Nome di battesimo"}.
|
||||
{"Grant voice to this person?","Dare parola a questa persona?"}.
|
||||
{"Group","Gruppo"}.
|
||||
{"Groups","Gruppi"}.
|
||||
{"has been banned","è stata/o bandita/o"}.
|
||||
{"has been kicked because of a system shutdown","è stato espulso a causa dello spegnimento del sistema"}.
|
||||
{"has been kicked because of an affiliation change","è stato espulso a causa di un cambiamento di appartenenza"}.
|
||||
{"has been kicked because the room has been changed to members-only","è stato espulso per la limitazione della stanza ai soli membri"}.
|
||||
{"has been kicked","è stata/o espulsa/o"}.
|
||||
{"Host","Host"}.
|
||||
{"Hash of the vCard-temp avatar of this room","Hash dell'avatar vCard-temp di questa stanza"}.
|
||||
{"Hat title","Titolo del Cappello"}.
|
||||
{"Hat URI","URI Cappello"}.
|
||||
{"Hats limit exceeded","Limite di cappelli superato"}.
|
||||
{"Host unknown","Host sconosciuto"}.
|
||||
{"HTTP File Upload","Caricamento file HTTP"}.
|
||||
{"Idle connection","Connessione inattiva"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Se qui non vedi l'immagine CAPTCHA, visita la pagina web."}.
|
||||
{"Import Directory","Importare una directory"}.
|
||||
{"Import File","Importare un file"}.
|
||||
|
@ -119,23 +184,48 @@
|
|||
{"Import users data from jabberd14 spool directory:","Importare i dati utenti da directory di spool di jabberd14:"}.
|
||||
{"Import Users from Dir at ","Importare utenti dalla directory "}.
|
||||
{"Import Users From jabberd14 Spool Files","Importare utenti da file di spool di jabberd14"}.
|
||||
{"Improper domain part of 'from' attribute","Parte del dominio non corretta dell'attributo 'da'"}.
|
||||
{"Improper message type","Tipo di messaggio non corretto"}.
|
||||
{"Incorrect CAPTCHA submit","Invio CAPTCHA errato"}.
|
||||
{"Incorrect data form","Modulo dati errato"}.
|
||||
{"Incorrect password","Password non esatta"}.
|
||||
{"Incorrect value of 'action' attribute","Valore errato dell'attributo 'azione'"}.
|
||||
{"Incorrect value of 'action' in data form","Valore errato di 'azione' nel modulo dati"}.
|
||||
{"Incorrect value of 'path' in data form","Valore errato di 'percorso' nel modulo dati"}.
|
||||
{"Installed Modules:","Moduli installati:"}.
|
||||
{"Install","Installare"}.
|
||||
{"Insufficient privilege","Privilegio insufficiente"}.
|
||||
{"Internal server error","Errore interno del server"}.
|
||||
{"Invalid 'from' attribute in forwarded message","Attributo 'da' non valido nel messaggio inoltrato"}.
|
||||
{"Invalid node name","Nome del nodo non valido"}.
|
||||
{"Invalid 'previd' value","Valore 'previd' non valido"}.
|
||||
{"Invitations are not allowed in this conference","Non sono ammessi inviti a questa conferenza"}.
|
||||
{"IP addresses","Indirizzi IP"}.
|
||||
{"is now known as","è ora conosciuta/o come"}.
|
||||
{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","Non è consentito inviare messaggi di errore alla stanza. Il partecipante (~s) ha inviato un messaggio di errore (~s) ed è stato espulso dalla stanza"}.
|
||||
{"It is not allowed to send private messages of type \"groupchat\"","Non è consentito l'invio di messaggi privati di tipo \"groupchat\""}.
|
||||
{"It is not allowed to send private messages to the conference","Non è consentito l'invio di messaggi privati alla conferenza"}.
|
||||
{"Jabber ID","Jabber ID (Jabber ID)"}.
|
||||
{"January","Gennaio"}.
|
||||
{"JID normalization denied by service policy","Normalizzazione JID negata dalla politica del servizio"}.
|
||||
{"JID normalization failed","La normalizzazione JID non è riuscita"}.
|
||||
{"Joined MIX channels of ~ts","Canali MIX uniti di ~ts"}.
|
||||
{"Joined MIX channels:","Canali MIX uniti:"}.
|
||||
{"joins the room","entra nella stanza"}.
|
||||
{"July","Luglio"}.
|
||||
{"June","Giugno"}.
|
||||
{"Just created","Appena creato"}.
|
||||
{"Last Activity","Ultima attività"}.
|
||||
{"Last login","Ultimo accesso"}.
|
||||
{"Last message","Ultimo messaggio"}.
|
||||
{"Last month","Ultimo mese"}.
|
||||
{"Last year","Ultimo anno"}.
|
||||
{"Least significant bits of SHA-256 hash of text should equal hexadecimal label","I bit meno significativi dell'hash di testo SHA-256 devono corrispondere all'etichetta esadecimale"}.
|
||||
{"leaves the room","esce dalla stanza"}.
|
||||
{"Low level update script","Script di aggiornamento di basso livello"}.
|
||||
{"List of users with hats","Elenco degli utenti con cappelli"}.
|
||||
{"List users with hats","Elenca gli utenti con cappelli"}.
|
||||
{"Logged Out","Disconnesso"}.
|
||||
{"Logging","Registrazione"}.
|
||||
{"Make participants list public","Rendere pubblica la lista dei partecipanti"}.
|
||||
{"Make room CAPTCHA protected","Rendere la stanza protetta da CAPTCHA"}.
|
||||
{"Make room members-only","Rendere la stanza riservata ai membri"}.
|
||||
|
@ -143,113 +233,199 @@
|
|||
{"Make room password protected","Rendere la stanza protetta da password"}.
|
||||
{"Make room persistent","Rendere la stanza persistente"}.
|
||||
{"Make room public searchable","Rendere la sala visibile al pubblico"}.
|
||||
{"Malformed username","Nome utente malformato"}.
|
||||
{"MAM preference modification denied by service policy","Modifica delle preferenze MAM negata dalla policy del servizio"}.
|
||||
{"March","Marzo"}.
|
||||
{"Max # of items to persist, or `max` for no specific limit other than a server imposed maximum","Numero massimo di elementi da persistere o `max` per nessun limite specifico diverso da quello massimo imposto dal server"}.
|
||||
{"Max payload size in bytes","Dimensione massima del contenuto del messaggio in byte"}.
|
||||
{"Maximum file size","Dimensione massima del file"}.
|
||||
{"Maximum Number of History Messages Returned by Room","Numero Massimo di Messaggi di Cronologia Restituiti dalla Stanza"}.
|
||||
{"Maximum number of items to persist","Numero massimo di elementi da persistere"}.
|
||||
{"Maximum Number of Occupants","Numero massimo di occupanti"}.
|
||||
{"May","Maggio"}.
|
||||
{"Membership is required to enter this room","Per entrare in questa stanza è necessario essere membro"}.
|
||||
{"Members:","Membri:"}.
|
||||
{"Memory","Memoria"}.
|
||||
{"Memorize your password, or write it in a paper placed in a safe place. In XMPP there isn't an automated way to recover your password if you forget it.","Memorizza la tua password, oppure scrivila su un foglio riposto in un luogo sicuro. In XMPP non esiste un modo automatico per recuperare la password se la dimentichi."}.
|
||||
{"Mere Availability in XMPP (No Show Value)","Mera disponibilità in XMPP (Nessun Valore Mostrato)"}.
|
||||
{"Message body","Corpo del messaggio"}.
|
||||
{"Message not found in forwarded payload","Messaggio non trovato nel payload inoltrato"}.
|
||||
{"Messages from strangers are rejected","I messaggi provenienti da sconosciuti vengono rifiutati"}.
|
||||
{"Messages of type headline","Messaggi di tipo headline"}.
|
||||
{"Messages of type normal","Messaggi di tipo normale"}.
|
||||
{"Middle Name","Altro nome"}.
|
||||
{"Minimum interval between voice requests (in seconds)","Intervallo minimo fra due richieste di parola (in secondi)"}.
|
||||
{"Moderator privileges required","Necessari i privilegi di moderatore"}.
|
||||
{"Modified modules","Moduli modificati"}.
|
||||
{"Moderator","Moderatore/Moderatrice"}.
|
||||
{"Moderators Only","Solo i Moderatori"}.
|
||||
{"Module failed to handle the query","Il modulo non è riuscito a gestire la query"}.
|
||||
{"Monday","Lunedì"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multiple <item/> elements are not allowed by RFC6121","Più elementi <item/> non sono consentiti da RFC6121"}.
|
||||
{"Multi-User Chat","Chat Multiutente"}.
|
||||
{"Name","Nome"}.
|
||||
{"Name:","Nome:"}.
|
||||
{"Natural Language for Room Discussions","Linguaggio Naturale per le Discussioni in Sala"}.
|
||||
{"Natural-Language Room Name","Nome della Stanza in Linguaggio Naturale"}.
|
||||
{"Neither 'jid' nor 'nick' attribute found","Né l'attributo 'jid' né quello 'nick' sono stati trovati"}.
|
||||
{"Neither 'role' nor 'affiliation' attribute found","Non sono stati trovati né gli attributi 'ruolo' né 'affiliazione'"}.
|
||||
{"Never","Mai"}.
|
||||
{"New Password:","Nuova password:"}.
|
||||
{"Nickname can't be empty","Il soprannome non può essere vuoto"}.
|
||||
{"Nickname Registration at ","Registrazione di un nickname su "}.
|
||||
{"Nickname ~s does not exist in the room","Il nickname ~s non esiste nella stanza"}.
|
||||
{"Nickname","Nickname"}.
|
||||
{"Nickname","Soprannome"}.
|
||||
{"No address elements found","Nessun elemento dell'indirizzo trovato"}.
|
||||
{"No addresses element found","Nessun elemento degli indirizzi trovato"}.
|
||||
{"No 'affiliation' attribute found","Nessun attributo 'affiliazione' trovato"}.
|
||||
{"No available resource found","Nessuna risorsa disponibile trovata"}.
|
||||
{"No body provided for announce message","Nessun corpo fornito per il messaggio di annuncio"}.
|
||||
{"No child elements found","Non sono stati trovati elementi figlio"}.
|
||||
{"No data form found","Nessun modulo dati trovato"}.
|
||||
{"No Data","Nessuna informazione"}.
|
||||
{"No features available","Nessuna funzionalità disponibile"}.
|
||||
{"No <forwarded/> element found","Nessun elemento <forwarded/> trovato"}.
|
||||
{"No hook has processed this command","Nessun hook ha elaborato questo comando"}.
|
||||
{"No info about last activity found","Nessuna informazione sull'ultima attività trovata"}.
|
||||
{"No 'item' element found","Nessun elemento 'item' trovato"}.
|
||||
{"No items found in this query","Nessun elemento trovato in questa query"}.
|
||||
{"No limit","Nessun limite"}.
|
||||
{"Node ID","ID del nodo"}.
|
||||
{"No module is handling this query","Nessun modulo gestisce questa query"}.
|
||||
{"No node specified","Nessun nodo specificato"}.
|
||||
{"No 'password' found in data form","Nessuna 'password' trovata nel modulo dati"}.
|
||||
{"No 'password' found in this query","Nessuna \"password\" trovata in questa query"}.
|
||||
{"No 'path' found in data form","Nessun 'percorso' trovato nel modulo dati"}.
|
||||
{"No pending subscriptions found","Nessuna sottoscrizione in attesa trovata"}.
|
||||
{"No privacy list with this name found","Nessun elenco di privacy con questo nome trovato"}.
|
||||
{"No private data found in this query","Non sono stati trovati dati privati in questa query"}.
|
||||
{"No running node found","Nessun nodo in esecuzione trovato"}.
|
||||
{"No services available","Nessun servizio disponibile"}.
|
||||
{"No statistics found for this item","Nessuna statistica trovata per questa voce"}.
|
||||
{"No 'to' attribute found in the invitation","Nessun attributo 'a' trovato nell'invito"}.
|
||||
{"Nobody","Nessuno"}.
|
||||
{"Node already exists","Il nodo esiste già"}.
|
||||
{"Node ID","ID del Nodo"}.
|
||||
{"Node index not found","Indice del nodo non trovato"}.
|
||||
{"Node not found","Nodo non trovato"}.
|
||||
{"Node ~p","Nodo ~p"}.
|
||||
{"Node","Nodo"}.
|
||||
{"Nodeprep has failed","Nodeprep non è riuscito"}.
|
||||
{"Nodes","Nodi"}.
|
||||
{"None","Nessuno"}.
|
||||
{"None","Niente"}.
|
||||
{"Not allowed","Non consentito"}.
|
||||
{"Not Found","Non trovato"}.
|
||||
{"Not subscribed","Non sottoscritto"}.
|
||||
{"Notify subscribers when items are removed from the node","Notificare gli iscritti quando sono eliminati degli elementi dal nodo"}.
|
||||
{"Notify subscribers when the node configuration changes","Notificare gli iscritti quando la configurazione del nodo cambia"}.
|
||||
{"Notify subscribers when the node is deleted","Notificare gli iscritti quando il nodo è cancellato"}.
|
||||
{"November","Novembre"}.
|
||||
{"Number of answers required","Numero di risposte richieste"}.
|
||||
{"Number of occupants","Numero di presenti"}.
|
||||
{"Number of Offline Messages","Numero di messaggi offline"}.
|
||||
{"Number of online users","Numero di utenti online"}.
|
||||
{"Number of registered users","Numero di utenti registrati"}.
|
||||
{"Number of seconds after which to automatically purge items, or `max` for no specific limit other than a server imposed maximum","Numero di secondi dopo i quali eliminare automaticamente gli elementi o `max` per nessun limite specifico diverso da quello massimo imposto dal server"}.
|
||||
{"Occupants are allowed to invite others","Gli occupanti possono invitare altri"}.
|
||||
{"Occupants are allowed to query others","Gli occupanti possono interrogare gli altri"}.
|
||||
{"Occupants May Change the Subject","Gli Occupanti Possono Cambiare il Soggetto"}.
|
||||
{"October","Ottobre"}.
|
||||
{"Offline Messages","Messaggi offline"}.
|
||||
{"Offline Messages:","Messaggi offline:"}.
|
||||
{"OK","OK"}.
|
||||
{"Old Password:","Vecchia password:"}.
|
||||
{"Online Users:","Utenti connessi:"}.
|
||||
{"Online Users","Utenti online"}.
|
||||
{"Online","Online"}.
|
||||
{"Only collection node owners may associate leaf nodes with the collection","Solo i proprietari dei nodi di raccolta possono associare i nodi foglia alla collezione"}.
|
||||
{"Only deliver notifications to available users","Inviare le notifiche solamente agli utenti disponibili"}.
|
||||
{"Only <enable/> or <disable/> tags are allowed","Sono consentiti solo i tag <enable/> o <disable/>"}.
|
||||
{"Only <list/> element is allowed in this query","In questa query è consentito solo l'elemento <list/>"}.
|
||||
{"Only members may query archives of this room","Solo i membri possono interrogare gli archivi di questa stanza"}.
|
||||
{"Only moderators and participants are allowed to change the subject in this room","La modifica dell'oggetto di questa stanza è consentita soltanto ai moderatori e ai partecipanti"}.
|
||||
{"Only moderators are allowed to change the subject in this room","La modifica dell'oggetto di questa stanza è consentita soltanto ai moderatori"}.
|
||||
{"Only moderators are allowed to retract messages","Solo i moderatori possono ritirare i messaggi"}.
|
||||
{"Only moderators can approve voice requests","Soltanto i moderatori possono approvare richieste di parola"}.
|
||||
{"Only occupants are allowed to send messages to the conference","L'invio di messaggi alla conferenza è consentito soltanto ai presenti"}.
|
||||
{"Only occupants are allowed to send queries to the conference","L'invio di query alla conferenza è consentito ai soli presenti"}.
|
||||
{"Only publishers may publish","Solo gli editori possono pubblicare"}.
|
||||
{"Only service administrators are allowed to send service messages","L'invio di messaggi di servizio è consentito solamente agli amministratori del servizio"}.
|
||||
{"Only those on a whitelist may associate leaf nodes with the collection","Solo chi fa parte di una whitelist può associare i nodi foglia alla collezione"}.
|
||||
{"Only those on a whitelist may subscribe and retrieve items","Solo chi fa parte di una whitelist può sottoscrivere e recuperare le voci"}.
|
||||
{"Organization Name","Nome dell'organizzazione"}.
|
||||
{"Organization Unit","Unità dell'organizzazione"}.
|
||||
{"Other Modules Available:","Altri Moduli Disponibili:"}.
|
||||
{"Outgoing s2s Connections","Connessioni s2s in uscita"}.
|
||||
{"Outgoing s2s Connections:","Connessioni s2s in uscita:"}.
|
||||
{"Owner privileges required","Necessari i privilegi di proprietario"}.
|
||||
{"Packet","Pacchetto"}.
|
||||
{"Packet relay is denied by service policy","Il relay dei pacchetti è negato dalla politica di servizio"}.
|
||||
{"Participant ID","ID Partecipante"}.
|
||||
{"Participant","Partecipante"}.
|
||||
{"Password Verification","Verifica della password"}.
|
||||
{"Password Verification:","Verifica della password:"}.
|
||||
{"Password","Password"}.
|
||||
{"Password:","Password:"}.
|
||||
{"Path to Dir","Percorso della directory"}.
|
||||
{"Path to File","Percorso del file"}.
|
||||
{"Pending","Pendente"}.
|
||||
{"Payload semantic type information","Informazioni sul tipo semantico del payload"}.
|
||||
{"Period: ","Periodo: "}.
|
||||
{"Persist items to storage","Conservazione persistente degli elementi"}.
|
||||
{"Persistent","Persistente"}.
|
||||
{"Ping query is incorrect","La query ping non è corretta"}.
|
||||
{"Ping","Ping"}.
|
||||
{"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","N.B.: Queste opzioni comportano il salvataggio solamente del database interno Mnesia. Se si sta utilizzando il modulo ODBC, è necessario salvare anche il proprio database SQL separatamente."}.
|
||||
{"Please, wait for a while before sending new voice request","Attendi qualche istante prima di inviare una nuova richiesta di parola"}.
|
||||
{"Pong","Pong"}.
|
||||
{"Possessing 'ask' attribute is not allowed by RFC6121","Il possesso dell'attributo 'chiedi' non è consentito da RFC6121"}.
|
||||
{"Present real Jabber IDs to","Rendere visibile il Jabber ID reale a"}.
|
||||
{"Previous session not found","Sessione precedente non trovata"}.
|
||||
{"Previous session PID has been killed","Il PID della sessione precedente è stato ucciso"}.
|
||||
{"Previous session PID has exited","Il PID della sessione precedente è terminato"}.
|
||||
{"Previous session PID is dead","Il PID della sessione precedente è morto"}.
|
||||
{"Previous session timed out","La sessione precedente è scaduta"}.
|
||||
{"private, ","privato, "}.
|
||||
{"Public","Pubblico"}.
|
||||
{"Publish model","Pubblica modello"}.
|
||||
{"Publish-Subscribe","Pubblicazione-Iscrizione"}.
|
||||
{"PubSub subscriber request","Richiesta di iscrizione per PubSub"}.
|
||||
{"Purge all items when the relevant publisher goes offline","Cancella tutti gli elementi quando chi li ha pubblicati non è più online"}.
|
||||
{"Push record not found","Record push non trovato"}.
|
||||
{"Queries to the conference members are not allowed in this room","In questa stanza non sono consentite query ai membri della conferenza"}.
|
||||
{"Query to another users is forbidden","La richiesta ad altri utenti è vietata"}.
|
||||
{"RAM and disc copy","Copia in memoria (RAM) e su disco"}.
|
||||
{"RAM copy","Copia in memoria (RAM)"}.
|
||||
{"Really delete message of the day?","Si conferma l'eliminazione del messaggio del giorno (MOTD)?"}.
|
||||
{"Receive notification from all descendent nodes","Ricevere una notifica da tutti i nodi discendenti"}.
|
||||
{"Receive notification from direct child nodes only","Ricevere notifiche solo dai nodi figli diretti"}.
|
||||
{"Receive notification of new items only","Ricevere una notifica solo per le nuove voce"}.
|
||||
{"Receive notification of new nodes only","Ricevere solo la notifica di nuovi nodi"}.
|
||||
{"Recipient is not in the conference room","Il destinatario non è nella stanza per conferenze"}.
|
||||
{"Registered Users","Utenti registrati"}.
|
||||
{"Registered Users:","Utenti registrati:"}.
|
||||
{"Register an XMPP account","Registra un account XMPP"}.
|
||||
{"Register","Registra"}.
|
||||
{"Remote copy","Copia remota"}.
|
||||
{"Remove All Offline Messages","Eliminare tutti i messaggi offline"}.
|
||||
{"Remove User","Eliminare l'utente"}.
|
||||
{"Remove","Eliminare"}.
|
||||
{"Remove a hat from a user","Rimuovere un cappello da un utente"}.
|
||||
{"Remove User","Rimuovere l'utente"}.
|
||||
{"Replaced by new connection","Sostituito da una nuova connessione"}.
|
||||
{"Request has timed out","La richiesta è scaduta"}.
|
||||
{"Request is ignored","La richiesta viene ignorata"}.
|
||||
{"Requested role","Ruolo richiesto"}.
|
||||
{"Resources","Risorse"}.
|
||||
{"Restart Service","Riavviare il servizio"}.
|
||||
{"Restart","Riavviare"}.
|
||||
{"Restore Backup from File at ","Recuperare il salvataggio dal file "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Recuperare un salvataggio binario dopo il prossimo riavvio di ejabberd (necessita di meno memoria):"}.
|
||||
{"Restore binary backup immediately:","Recuperare un salvataggio binario adesso:"}.
|
||||
{"Restore plain text backup immediately:","Recuperare un salvataggio come semplice testo adesso:"}.
|
||||
{"Restore","Recuperare"}.
|
||||
{"Roles and Affiliations that May Retrieve Member List","Ruoli e Affiliazioni che Possono Recuperare L'elenco dei Membri"}.
|
||||
{"Roles for which Presence is Broadcasted","Ruoli per i quali viene Trasmessa la Presenza"}.
|
||||
{"Roles that May Send Private Messages","Ruoli che possono inviare messaggi privati"}.
|
||||
{"Room Configuration","Configurazione della stanza"}.
|
||||
{"Room creation is denied by service policy","La creazione di stanze è impedita dalle politiche del servizio"}.
|
||||
{"Room description","Descrizione della stanza"}.
|
||||
{"Room Occupants","Presenti nella stanza"}.
|
||||
{"Room terminates","La stanza termina"}.
|
||||
{"Room title","Titolo della stanza"}.
|
||||
{"Roster groups allowed to subscribe","Gruppi roster abilitati alla registrazione"}.
|
||||
{"Roster size","Dimensione della lista dei contatti"}.
|
||||
{"RPC Call Error","Errore di chiamata RPC"}.
|
||||
{"Running Nodes","Nodi attivi"}.
|
||||
{"~s invites you to the room ~s","~s ti invita nella stanza ~s"}.
|
||||
{"Saturday","Sabato"}.
|
||||
{"Script check","Verifica dello script"}.
|
||||
{"Search from the date","Cerca dalla data"}.
|
||||
{"Search Results for ","Risultati della ricerca per "}.
|
||||
{"Search the text","Cerca nel testo"}.
|
||||
{"Search until the date","Cerca fino alla data"}.
|
||||
{"Search users in ","Cercare utenti in "}.
|
||||
{"Send announcement to all online users on all hosts","Inviare l'annuncio a tutti gli utenti online su tutti gli host"}.
|
||||
{"Send announcement to all online users","Inviare l'annuncio a tutti gli utenti online"}.
|
||||
|
@ -257,80 +433,193 @@
|
|||
{"Send announcement to all users","Inviare l'annuncio a tutti gli utenti"}.
|
||||
{"September","Settembre"}.
|
||||
{"Server:","Server:"}.
|
||||
{"Service list retrieval timed out","Il recupero dell'elenco dei servizi è scaduto"}.
|
||||
{"Session state copying timed out","La copia dello stato della sessione è scaduta"}.
|
||||
{"Set message of the day and send to online users","Impostare il messaggio del giorno (MOTD) ed inviarlo agli utenti online"}.
|
||||
{"Set message of the day on all hosts and send to online users","Impostare il messaggio del giorno (MOTD) su tutti gli host e inviarlo agli utenti online"}.
|
||||
{"Shared Roster Groups","Gruppi di liste di contatti comuni"}.
|
||||
{"Show Integral Table","Mostrare la tabella integrale"}.
|
||||
{"Show Occupants Join/Leave","Mostra gli occupanti che si uniscono/escono"}.
|
||||
{"Show Ordinary Table","Mostrare la tabella normale"}.
|
||||
{"Shut Down Service","Terminare il servizio"}.
|
||||
{"SOCKS5 Bytestreams","SOCKS5 flussi di byte"}.
|
||||
{"Some XMPP clients can store your password in the computer, but you should do this only in your personal computer for safety reasons.","Alcuni client XMPP possono memorizzare la tua password nel computer, ma dovresti farlo solo sul tuo computer personale per motivi di sicurezza."}.
|
||||
{"Sources Specs:","Sorgenti Specifiche:"}.
|
||||
{"Specify the access model","Specificare il modello di accesso"}.
|
||||
{"Specify the event message type","Specificare il tipo di messaggio di evento"}.
|
||||
{"Specify the publisher model","Definire il modello di pubblicazione"}.
|
||||
{"Statistics of ~p","Statistiche di ~p"}.
|
||||
{"Statistics","Statistiche"}.
|
||||
{"Stop","Arrestare"}.
|
||||
{"Stanza id is not valid","L'id della stanza non è valido"}.
|
||||
{"Stanza ID","Stanza ID"}.
|
||||
{"Statically specify a replyto of the node owner(s)","Specificare staticamente una risposta del proprietario(i) del nodo"}.
|
||||
{"Stopped Nodes","Nodi arrestati"}.
|
||||
{"Storage Type","Tipo di conservazione"}.
|
||||
{"Store binary backup:","Conservare un salvataggio binario:"}.
|
||||
{"Store plain text backup:","Conservare un salvataggio come semplice testo:"}.
|
||||
{"Stream management is already enabled","La gestione del flusso è già abilitata"}.
|
||||
{"Stream management is not enabled","La gestione del flusso non è abilitata"}.
|
||||
{"Subject","Oggetto"}.
|
||||
{"Submit","Inviare"}.
|
||||
{"Submitted","Inviato"}.
|
||||
{"Subscriber Address","Indirizzo dell'iscritta/o"}.
|
||||
{"Subscription","Iscrizione"}.
|
||||
{"Subscribers may publish","I sottoscrittori possono pubblicare"}.
|
||||
{"Subscription requests must be approved and only subscribers may retrieve items","Le richieste di sottoscrizione devono essere approvate e solo i sottoscrittori possono recuperare le voci"}.
|
||||
{"Subscriptions are not allowed","Le sottoscrizioni non sono consentite"}.
|
||||
{"Sunday","Domenica"}.
|
||||
{"Text associated with a picture","Testo associato a un'immagine"}.
|
||||
{"Text associated with a sound","Testo associato a un suono"}.
|
||||
{"Text associated with a video","Testo associato a un video"}.
|
||||
{"Text associated with speech","Testo associato al parlato"}.
|
||||
{"That nickname is already in use by another occupant","Il nickname è già in uso all'interno della conferenza"}.
|
||||
{"That nickname is registered by another person","Questo nickname è registrato da un'altra persona"}.
|
||||
{"The account already exists","L'account esiste già"}.
|
||||
{"The account was not unregistered","L'account non era non registrato"}.
|
||||
{"The body text of the last received message","Il corpo del testo dell'ultimo messaggio ricevuto"}.
|
||||
{"The CAPTCHA is valid.","Il CAPTCHA è valido."}.
|
||||
{"The CAPTCHA verification has failed","La verifica del CAPTCHA ha avuto esito negativo"}.
|
||||
{"The captcha you entered is wrong","Il captcha che hai inserito è sbagliato"}.
|
||||
{"The child nodes (leaf or collection) associated with a collection","I nodi figlio (foglia o raccolta) associati a una raccolta"}.
|
||||
{"The collections with which a node is affiliated","Le collezioni a cui è affiliato un nodo"}.
|
||||
{"The DateTime at which a leased subscription will end or has ended","Il DateTime in cui un abbonamento in leasing terminerà o è terminato"}.
|
||||
{"The datetime when the node was created","La dataora in cui è stato creato il nodo"}.
|
||||
{"The default language of the node","La lingua predefinita del nodo"}.
|
||||
{"The feature requested is not supported by the conference","La funzionalità richiesta non è supportata dalla conferenza"}.
|
||||
{"The JID of the node creator","Il JID del creatore del nodo"}.
|
||||
{"The JIDs of those to contact with questions","I JID di coloro da contattare per domande"}.
|
||||
{"The JIDs of those with an affiliation of owner","I JID di coloro che hanno un'affiliazione di proprietario"}.
|
||||
{"The JIDs of those with an affiliation of publisher","I JID di coloro che hanno un'affiliazione di editore"}.
|
||||
{"The list of all online users","L'elenco di tutti gli utenti online"}.
|
||||
{"The list of all users","L'elenco di tutti gli utenti"}.
|
||||
{"The list of JIDs that may associate leaf nodes with a collection","L'elenco dei JID che possono associare i nodi foglia a una collezione"}.
|
||||
{"The maximum number of child nodes that can be associated with a collection, or `max` for no specific limit other than a server imposed maximum","Il numero massimo di nodi figli che possono essere associati a una collezione, o `max` per non avere un limite specifico, se non quello imposto dal server"}.
|
||||
{"The minimum number of milliseconds between sending any two notification digests","Il numero minimo di millisecondi tra l'invio di due digest di notifica qualsiasi"}.
|
||||
{"The name of the node","Il nome del nodo"}.
|
||||
{"The node is a collection node","Il nodo è un nodo di raccolta"}.
|
||||
{"The node is a leaf node (default)","Il nodo è un nodo foglia (predefinito)"}.
|
||||
{"The NodeID of the relevant node","Il NodeID del nodo rilevante"}.
|
||||
{"The number of pending incoming presence subscription requests","Il numero di richieste di sottoscrizione di presenza in entrata in sospeso"}.
|
||||
{"The number of subscribers to the node","Il numero di abbonati al nodo"}.
|
||||
{"The number of unread or undelivered messages","Il numero di messaggi non letti o non consegnati"}.
|
||||
{"The password contains unacceptable characters","La password contiene caratteri non accettabili"}.
|
||||
{"The password is too weak","La password è troppo debole"}.
|
||||
{"the password is","la password è"}.
|
||||
{"The password of your XMPP account was successfully changed.","La password del tuo account XMPP è stata modificata con successo."}.
|
||||
{"The password was not changed","La password non è stata modificata"}.
|
||||
{"The passwords are different","Le password sono diverse"}.
|
||||
{"The presence states for which an entity wants to receive notifications","Gli stati di presenza per i quali un'entità desidera ricevere le notifiche"}.
|
||||
{"The query is only allowed from local users","La query è consentita solo da utenti locali"}.
|
||||
{"The query must not contain <item/> elements","La query non deve contenere elementi <item/>"}.
|
||||
{"The room subject can be modified by participants","L'oggetto della stanza potrà essere modificato dai partecipanti"}.
|
||||
{"The semantic type information of data in the node, usually specified by the namespace of the payload (if any)","Le informazioni sul tipo semantico dei dati nel nodo, solitamente specificate dallo spazio dei nomi del payload (se presente)"}.
|
||||
{"The sender of the last received message","Il mittente dell'ultimo messaggio ricevuto"}.
|
||||
{"The stanza MUST contain only one <active/> element, one <default/> element, or one <list/> element","La stanza DEVE contenere solo un elemento <active/>, un elemento <default/> o un elemento <list/>"}.
|
||||
{"The subscription identifier associated with the subscription request","L'identificatore di sottoscrizione associato alla richiesta di sottoscrizione"}.
|
||||
{"The URL of an XSL transformation which can be applied to payloads in order to generate an appropriate message body element.","L'URL di una trasformazione XSL che può essere applicata ai payload per generare un elemento del corpo del messaggio appropriato."}.
|
||||
{"The URL of an XSL transformation which can be applied to the payload format in order to generate a valid Data Forms result that the client could display using a generic Data Forms rendering engine","L'URL di una trasformazione XSL che può essere applicata al formato del payload per generare un risultato valido di Data Forms che il client può visualizzare utilizzando un motore di rendering Data Forms generico"}.
|
||||
{"There was an error changing the password: ","Si è verificato un errore durante la modifica della password: "}.
|
||||
{"There was an error creating the account: ","Si è verificato un errore nella creazione dell'account: "}.
|
||||
{"There was an error deleting the account: ","Si è verificato un errore nella cancellazione dell'account: "}.
|
||||
{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","Questo è insensibile alle maiuscole: macbeth è lo stesso che MacBeth e Macbeth."}.
|
||||
{"This page allows to register an XMPP account in this XMPP server. Your JID (Jabber ID) will be of the form: username@server. Please read carefully the instructions to fill correctly the fields.","Questa pagina consente di registrare un account XMPP in questo server XMPP. Il tuo JID (Jabber ID) sarà nel formato: nomeutente@server. Si prega di leggere attentamente le istruzioni per compilare correttamente i campi."}.
|
||||
{"This page allows to unregister an XMPP account in this XMPP server.","Questa pagina consente di annullare la registrazione di un account XMPP in questo server XMPP."}.
|
||||
{"This room is not anonymous","Questa stanza non è anonima"}.
|
||||
{"This service can not process the address: ~s","Questo servizio non può elaborare l'indirizzo: ~s"}.
|
||||
{"Thursday","Giovedì"}.
|
||||
{"Time delay","Ritardo"}.
|
||||
{"Time","Ora"}.
|
||||
{"To","A"}.
|
||||
{"Timed out waiting for stream resumption","Timed out in attesa della ripresa dello stream"}.
|
||||
{"To register, visit ~s","Per registrarsi, visita ~s"}.
|
||||
{"To ~ts","A ~ts"}.
|
||||
{"Token TTL","Gettone TTL"}.
|
||||
{"Too many active bytestreams","Troppi bytestream attivi"}.
|
||||
{"Too many CAPTCHA requests","Troppe richieste CAPTCHA"}.
|
||||
{"Too many child elements","Troppi elementi figlio"}.
|
||||
{"Too many <item/> elements","Troppi elementi <item/>"}.
|
||||
{"Too many <list/> elements","Troppi elementi <list/>"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Troppe (~p) autenticazioni non riuscite da questo indirizzo IP (~s). L'indirizzo verrà sbloccato alle ~s UTC"}.
|
||||
{"Too many receiver fields were specified","Sono stati specificati troppi campi del ricevitore"}.
|
||||
{"Too many unacked stanzas","Troppe stanze non riconosciute"}.
|
||||
{"Too many users in this conference","Troppi utenti in questa conferenza"}.
|
||||
{"Traffic rate limit is exceeded","Limite di traffico superato"}.
|
||||
{"Transactions Aborted:","Transazioni abortite:"}.
|
||||
{"Transactions Committed:","Transazioni avvenute:"}.
|
||||
{"Transactions Logged:","Transazioni con log:"}.
|
||||
{"Transactions Restarted:","Transazioni riavviate:"}.
|
||||
{"~ts's MAM Archive","Archivio MAM di ~ts"}.
|
||||
{"~ts's Offline Messages Queue","La Coda dei Messaggi Offline di ~ts"}.
|
||||
{"Tuesday","Martedì"}.
|
||||
{"Unable to generate a CAPTCHA","Impossibile generare un CAPTCHA"}.
|
||||
{"Unable to register route on existing local domain","Impossibile registrare il percorso sul dominio locale esistente"}.
|
||||
{"Unauthorized","Non autorizzato"}.
|
||||
{"Unexpected action","Azione inaspettata"}.
|
||||
{"Unexpected error condition: ~p","Condizione di errore imprevisto: ~p"}.
|
||||
{"Uninstall","Disinstallare"}.
|
||||
{"Unregister an XMPP account","Disregistrare un account XMPP"}.
|
||||
{"Unregister","Elimina"}.
|
||||
{"Unsupported <index/> element","Elemento <index/> non supportato"}.
|
||||
{"Unsupported version","Versione non supportata"}.
|
||||
{"Update message of the day (don't send)","Aggiornare il messaggio del giorno (MOTD) (non inviarlo)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Aggiornare il messaggio del giorno (MOTD) su tutti gli host (non inviarlo)"}.
|
||||
{"Update plan","Piano di aggiornamento"}.
|
||||
{"Update script","Script di aggiornamento"}.
|
||||
{"Update","Aggiornare"}.
|
||||
{"Uptime:","Tempo dall'avvio:"}.
|
||||
{"Update specs to get modules source, then install desired ones.","Aggiorna le specifiche per ottenere il sorgente dei moduli, quindi installa quelli desiderati."}.
|
||||
{"Update Specs","Aggiorna Specifiche"}.
|
||||
{"Updating the vCard is not supported by the vCard storage backend","L'aggiornamento della vCard non è supportato dal backend di archiviazione vCard"}.
|
||||
{"Upgrade","Aggiornamento"}.
|
||||
{"URL for Archived Discussion Logs","URL per i Registri delle Discussioni Archiviati"}.
|
||||
{"User already exists","L'utente esiste già"}.
|
||||
{"User JID","JID utente"}.
|
||||
{"User (jid)","Utente (jid)"}.
|
||||
{"User Management","Gestione degli utenti"}.
|
||||
{"User not allowed to perform an IQ set on another user's vCard.","L'utente non è autorizzato a eseguire un set IQ sulla vCard di un altro utente."}.
|
||||
{"User removed","Utente rimosso"}.
|
||||
{"User session not found","Sessione utente non trovata"}.
|
||||
{"User session terminated","Sessione utente terminata"}.
|
||||
{"User ~ts","Utente ~ts"}.
|
||||
{"Username:","Nome utente:"}.
|
||||
{"Users are not allowed to register accounts so quickly","Non è consentito agli utenti registrare account così rapidamente"}.
|
||||
{"Users Last Activity","Ultima attività degli utenti"}.
|
||||
{"Users","Utenti"}.
|
||||
{"User","Utente"}.
|
||||
{"Validate","Validare"}.
|
||||
{"Value 'get' of 'type' attribute is not allowed","Il valore 'get' dell'attributo 'type' non è consentito"}.
|
||||
{"Value of '~s' should be boolean","Il valore di '~s' dovrebbe essere booleano"}.
|
||||
{"Value of '~s' should be datetime string","Il valore di '~s' deve essere una stringa dataora"}.
|
||||
{"Value of '~s' should be integer","Il valore di '~s' dovrebbe essere un intero"}.
|
||||
{"Value 'set' of 'type' attribute is not allowed","Il valore 'set' dell'attributo 'type' non è consentito"}.
|
||||
{"vCard User Search","Ricerca di utenti per vCard"}.
|
||||
{"View joined MIX channels","Visualizza i canali MIX uniti"}.
|
||||
{"Virtual Hosts","Host Virtuali"}.
|
||||
{"Visitors are not allowed to change their nicknames in this room","Non è consentito ai visitatori cambiare il nickname in questa stanza"}.
|
||||
{"Visitors are not allowed to send messages to all occupants","Non è consentito ai visitatori l'invio di messaggi a tutti i presenti"}.
|
||||
{"Visitor","Visitatore"}.
|
||||
{"Voice request","Richiesta di parola"}.
|
||||
{"Voice requests are disabled in this conference","In questa conferenza le richieste di parola sono escluse"}.
|
||||
{"Wednesday","Mercoledì"}.
|
||||
{"When a new subscription is processed and whenever a subscriber comes online","Quando viene elaborato una nuova sottoscrizione e ogni volta che una sottoscrizione entra in linea"}.
|
||||
{"When a new subscription is processed","Quando viene elaborata una nuova sottoscrizione"}.
|
||||
{"When to send the last published item","Quando inviare l'ultimo elemento pubblicato"}.
|
||||
{"Whether to allow subscriptions","Consentire iscrizioni?"}.
|
||||
{"Whether an entity wants to receive an XMPP message body in addition to the payload format","Se un'entità vuole ricevere un corpo del messaggio XMPP inoltre al formato del payload"}.
|
||||
{"Whether an entity wants to receive digests (aggregations) of notifications or all notifications individually","Se un'entità desidera ricevere i digest (aggregazioni) di notifiche o tutte le notifiche individualmente"}.
|
||||
{"Whether an entity wants to receive or disable notifications","Se un'entità desidera ricevere o disabilitare le notifiche"}.
|
||||
{"Whether owners or publisher should receive replies to items","Se i proprietari o l'editore dovrebbero ricevere le risposte alle voci"}.
|
||||
{"Whether the node is a leaf (default) or a collection","Se il nodo è una foglia (impostazione predefinita) o una collezione"}.
|
||||
{"Whether to allow subscriptions","Se consentire le iscrizioni"}.
|
||||
{"Whether to make all subscriptions temporary, based on subscriber presence","Se rendere temporanee tutte le sottoscrizioni, in base alla presenza della sottoscrizione"}.
|
||||
{"Whether to notify owners about new subscribers and unsubscribes","Se notificare ai proprietari le nuove sottoscrizioni e le cancellazioni"}.
|
||||
{"Who can send private messages","Chi può inviare messaggi privati"}.
|
||||
{"Who may associate leaf nodes with a collection","Chi può associare i nodi foglia a una collezione"}.
|
||||
{"Wrong parameters in the web formulary","Parametri errati nel formulario web"}.
|
||||
{"Wrong xmlns","xmlns errati"}.
|
||||
{"XMPP Account Registration","Registrazione dell'account XMPP"}.
|
||||
{"XMPP Domains","Domini XMPP"}.
|
||||
{"XMPP Show Value of Away","XMPP Mostra Valore di Assenza"}.
|
||||
{"XMPP Show Value of Chat","XMPP Mostra il Valore della Chat"}.
|
||||
{"XMPP Show Value of DND (Do Not Disturb)","XMPP Mostra Valore di DND (Non Disturbare)"}.
|
||||
{"XMPP Show Value of XA (Extended Away)","XMPP Mostra Valore di XA (Extended Away)"}.
|
||||
{"XMPP URI of Associated Publish-Subscribe Node","URI XMPP del Nodo di Pubblicazione-Sottoscrizione Associato"}.
|
||||
{"You are being removed from the room because of a system shutdown","Stai per essere rimosso dalla stanza a causa di un arresto del sistema"}.
|
||||
{"You are not allowed to send private messages","Non ti è consentito inviare messaggi privati"}.
|
||||
{"You are not joined to the channel","Non si è connessi al canale"}.
|
||||
{"You can later change your password using an XMPP client.","È possibile modificare successivamente la tua password utilizzando un client XMPP."}.
|
||||
{"You have been banned from this room","Sei stata/o bandita/o da questa stanza"}.
|
||||
{"You have joined too many conferences","Hai partecipato a troppe conferenze"}.
|
||||
{"You must fill in field \"Nickname\" in the form","Si deve riempire il campo \"Nickname\" nel modulo"}.
|
||||
{"You need a client that supports x:data and CAPTCHA to register","La registrazione richiede un client che supporti x:data e CAPTCHA"}.
|
||||
{"You need a client that supports x:data to register the nickname","Per registrare il nickname è necessario un client che supporti x:data"}.
|
||||
{"You need an x:data capable client to search","Per effettuare ricerche è necessario un client che supporti x:data"}.
|
||||
{"Your active privacy list has denied the routing of this stanza.","In base alla tua attuale lista privacy questa stanza è stata esclusa dalla navigazione."}.
|
||||
{"Your contact offline message queue is full. The message has been discarded.","La coda dei messaggi offline del contatto è piena. Il messaggio è stato scartato"}.
|
||||
{"Your contact offline message queue is full. The message has been discarded.","La coda dei messaggi offline del contatto è piena. Il messaggio è stato scartato."}.
|
||||
{"Your subscription request and/or messages to ~s have been blocked. To unblock your subscription request, visit ~s","I messaggi verso ~s sono bloccati. Per sbloccarli, visitare ~s"}.
|
||||
{"Your XMPP account was successfully registered.","Il tuo account XMPP è stato registrato con successo."}.
|
||||
{"Your XMPP account was successfully unregistered.","L'account XMPP è stato disregistrato con successo."}.
|
||||
{"You're not allowed to create nodes","Non ti è consentito creare nodi"}.
|
||||
|
|
107
priv/msgs/ja.msg
107
priv/msgs/ja.msg
|
@ -4,7 +4,7 @@
|
|||
%% https://docs.ejabberd.im/developer/extending-ejabberd/localization/
|
||||
|
||||
{" (Add * to the end of field to match substring)"," (* を最後に付けると部分文字列にマッチします)"}.
|
||||
{" has set the subject to: "," は件名を設定しました: "}.
|
||||
{" has set the subject to: "," は題を設定しました: "}.
|
||||
{"A description of the node","ノードの説明"}.
|
||||
{"A friendly name for the node","ノードのフレンドリネーム"}.
|
||||
{"A password is required to enter this room","このチャットルームに入るにはパスワードが必要です"}.
|
||||
|
@ -14,8 +14,6 @@
|
|||
{"Access model","アクセスモデル"}.
|
||||
{"Account doesn't exist","アカウントは存在しません"}.
|
||||
{"Action on user","ユーザー操作"}.
|
||||
{"Add Jabber ID","Jabber ID を追加"}.
|
||||
{"Add New","新規追加"}.
|
||||
{"Add User","ユーザーを追加"}.
|
||||
{"Administration of ","管理: "}.
|
||||
{"Administration","管理"}.
|
||||
|
@ -36,6 +34,7 @@
|
|||
{"Anyone","誰にでも"}.
|
||||
{"April","4月"}.
|
||||
{"August","8月"}.
|
||||
{"Automatic node creation is not enabled","ノードの自動作成は有効になっていません"}.
|
||||
{"Backup Management","バックアップ管理"}.
|
||||
{"Backup of ~p","バックアップ: ~p"}.
|
||||
{"Backup to File at ","ファイルにバックアップ: "}.
|
||||
|
@ -44,11 +43,13 @@
|
|||
{"Birthday","誕生日"}.
|
||||
{"Both the username and the resource are required","ユーザー名とリソースの両方が必要"}.
|
||||
{"CAPTCHA web page","CAPTCHA ウェブページ"}.
|
||||
{"Challenge ID","チャレンジ ID"}.
|
||||
{"Change Password","パスワードを変更"}.
|
||||
{"Change User Password","パスワードを変更"}.
|
||||
{"Changing password is not allowed","パスワード変更の権限がありません"}.
|
||||
{"Channel already exists","チャンネルは既に存在します"}.
|
||||
{"Channel does not exist","チャンネルは存在しません"}.
|
||||
{"Channel JID","チャンネル ID"}.
|
||||
{"Channels","チャンネル"}.
|
||||
{"Characters not allowed:","使用できない文字:"}.
|
||||
{"Chatroom configuration modified","チャットルームの設定が変更されました"}.
|
||||
|
@ -65,25 +66,19 @@
|
|||
{"Conference room does not exist","会議室は存在しません"}.
|
||||
{"Configuration of room ~s","チャットルーム ~s の設定"}.
|
||||
{"Configuration","設定"}.
|
||||
{"Connected Resources:","接続リソース:"}.
|
||||
{"Contact Addresses (normally, room owner or owners)","連絡先 (通常は会議室の主宰者またはその複数)"}.
|
||||
{"Country","国"}.
|
||||
{"CPU Time:","CPU時間:"}.
|
||||
{"Current Discussion Topic","現在の話題"}.
|
||||
{"Database Tables at ~p","データーベーステーブル: ~p"}.
|
||||
{"Database failure","データーベース障害"}.
|
||||
{"Database Tables Configuration at ","データーベーステーブル設定 "}.
|
||||
{"Database","データーベース"}.
|
||||
{"December","12月"}.
|
||||
{"Default users as participants","デフォルトのユーザーは参加者"}.
|
||||
{"Delete content","内容を削除"}.
|
||||
{"Delete message of the day on all hosts","全ホストのお知らせメッセージを削除"}.
|
||||
{"Delete message of the day","お知らせメッセージを削除"}.
|
||||
{"Delete Selected","選択した項目を削除"}.
|
||||
{"Delete table","テーブルを削除"}.
|
||||
{"Delete User","ユーザーを削除"}.
|
||||
{"Deliver event notifications","イベント通知を配送する"}.
|
||||
{"Deliver payloads with event notifications","イベント通知と同時にペイロードを配送する"}.
|
||||
{"Description:","説明:"}.
|
||||
{"Disc only copy","ディスクだけのコピー"}.
|
||||
{"Don't tell your password to anybody, not even the administrators of the XMPP server.","パスワードは誰にも(たとえ XMPP サーバーの管理者でも)教えないようにしてください。"}.
|
||||
{"Dump Backup to Text File at ","テキストファイルにバックアップ: "}.
|
||||
|
@ -99,7 +94,6 @@
|
|||
{"ejabberd vCard module","ejabberd vCard モジュール"}.
|
||||
{"ejabberd Web Admin","ejabberd ウェブ管理"}.
|
||||
{"ejabberd","ejabberd"}.
|
||||
{"Elements","要素"}.
|
||||
{"Email Address","メールアドレス"}.
|
||||
{"Email","メール"}.
|
||||
{"Enable logging","ロギングを有効"}.
|
||||
|
@ -112,38 +106,38 @@
|
|||
{"Enter path to text file","テキストファイルのパスを入力してください"}.
|
||||
{"Enter the text you see","見えているテキストを入力してください"}.
|
||||
{"Erlang XMPP Server","Erlang XMPP サーバー"}.
|
||||
{"Error","エラー"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","CAPTCHA 入力を免除する Jabber ID"}.
|
||||
{"Export all tables as SQL queries to a file:","すべてのテーブルをSQL形式でファイルにエクスポート: "}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","サーバーにあるすべてのユーザーデータを PIEFXIS ファイルにエクスポート (XEP-0227):"}.
|
||||
{"Export data of users in a host to PIEFXIS files (XEP-0227):","ホストのユーザーデータを PIEFXIS ファイルにエクスポート (XEP-0227):"}.
|
||||
{"External component failure","外部コンポーネントの障害"}.
|
||||
{"External component timeout","外部コンポーネントのタイムアウト"}.
|
||||
{"Failed to extract JID from your voice request approval","発言権要求の承認から JID を取り出すことに失敗しました"}.
|
||||
{"Failed to parse HTTP response","HTTP 応答のパースに失敗しました"}.
|
||||
{"Failed to process option '~s'","オプション '~s' の処理に失敗しました"}.
|
||||
{"Family Name","姓"}.
|
||||
{"February","2月"}.
|
||||
{"Fill in the form to search for any matching XMPP User","XMPP ユーザーを検索するには欄に入力してください"}.
|
||||
{"Friday","金曜日"}.
|
||||
{"From ~ts","From ~ts"}.
|
||||
{"From","差出人"}.
|
||||
{"Full List of Room Admins","チャットルーム管理者の一覧"}.
|
||||
{"Full List of Room Owners","チャットルーム主宰者の一覧"}.
|
||||
{"Full Name","氏名"}.
|
||||
{"Get List of Online Users","オンラインユーザーの一覧を取得"}.
|
||||
{"Get List of Registered Users","登録ユーザーの一覧を取得"}.
|
||||
{"Get Number of Online Users","オンラインユーザー数を取得"}.
|
||||
{"Get Number of Registered Users","登録ユーザー数を取得"}.
|
||||
{"Get Pending","保留中の取得"}.
|
||||
{"Get User Last Login Time","最終ログイン時間を取得"}.
|
||||
{"Get User Password","パスワードを取得"}.
|
||||
{"Get User Statistics","ユーザー統計を取得"}.
|
||||
{"Given Name","名"}.
|
||||
{"Grant voice to this person?","この人に発言権を与えますか ?"}.
|
||||
{"Groups","グループ"}.
|
||||
{"Group","グループ"}.
|
||||
{"has been banned","はバンされました"}.
|
||||
{"has been kicked because of a system shutdown","はシステムシャットダウンのためキックされました"}.
|
||||
{"has been kicked because of an affiliation change","は分掌が変更されたためキックされました"}.
|
||||
{"has been kicked because the room has been changed to members-only","はチャットルームがメンバー制に変更されたためキックされました"}.
|
||||
{"has been kicked","はキックされました"}.
|
||||
{"Host unknown","不明なホスト"}.
|
||||
{"Host","ホスト"}.
|
||||
{"HTTP File Upload","HTTP ファイルアップロード"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","ここに CAPTCHA 画像が表示されない場合、ウェブページを参照してください。"}.
|
||||
{"Import Directory","ディレクトリインポート"}.
|
||||
|
@ -155,11 +149,14 @@
|
|||
{"Import Users from Dir at ","ディレクトリからユーザーをインポート: "}.
|
||||
{"Import Users From jabberd14 Spool Files","jabberd14 Spool ファイルからユーザーをインポート"}.
|
||||
{"Improper message type","誤ったメッセージタイプです"}.
|
||||
{"Incoming s2s Connections:","内向き s2s コネクション:"}.
|
||||
{"Incorrect data form","データ形式が違います"}.
|
||||
{"Incorrect password","パスワードが違います"}.
|
||||
{"Installed Modules:","インストールされているモジュール:"}.
|
||||
{"Install","インストール"}.
|
||||
{"Insufficient privilege","権限が不十分です"}.
|
||||
{"Internal server error","内部サーバーエラー"}.
|
||||
{"Invalid node name","無効なノード名です"}.
|
||||
{"Invalid 'previd' value","無効な 'previd' の値です"}.
|
||||
{"Invitations are not allowed in this conference","この会議では、招待はできません"}.
|
||||
{"IP addresses","IP アドレス"}.
|
||||
{"is now known as","は名前を変更しました: "}.
|
||||
|
@ -168,19 +165,17 @@
|
|||
{"It is not allowed to send private messages to the conference","この会議にプライベートメッセージを送信することはできません"}.
|
||||
{"Jabber ID","Jabber ID"}.
|
||||
{"January","1月"}.
|
||||
{"JID normalization failed","JID の正規化に失敗しました"}.
|
||||
{"joins the room","がチャットルームに参加しました"}.
|
||||
{"July","7月"}.
|
||||
{"June","6月"}.
|
||||
{"Just created","作成しました"}.
|
||||
{"Label:","ラベル:"}.
|
||||
{"Last Activity","活動履歴"}.
|
||||
{"Last login","最終ログイン"}.
|
||||
{"Last message","最終メッセージ"}.
|
||||
{"Last month","先月"}.
|
||||
{"Last year","去年"}.
|
||||
{"leaves the room","がチャットルームから退出しました"}.
|
||||
{"List of rooms","チャットルームの一覧"}.
|
||||
{"Low level update script","低レベル更新スクリプト"}.
|
||||
{"Make participants list public","参加者一覧を公開"}.
|
||||
{"Make room CAPTCHA protected","チャットルームを CAPTCHA で保護"}.
|
||||
{"Make room members-only","チャットルームをメンバーのみに制限"}.
|
||||
|
@ -195,20 +190,16 @@
|
|||
{"Maximum Number of Occupants","最大在室者数"}.
|
||||
{"May","5月"}.
|
||||
{"Membership is required to enter this room","このチャットルームに入るにはメンバーでなければなりません"}.
|
||||
{"Members:","メンバー:"}.
|
||||
{"Memorize your password, or write it in a paper placed in a safe place. In XMPP there isn't an automated way to recover your password if you forget it.","パスワードは記憶するか、紙に書いて安全な場所に保管してください。もしあなたがパスワードを忘れてしまった場合、XMPP ではパスワードのリカバリを自動的に行うことはできません。"}.
|
||||
{"Memory","メモリ"}.
|
||||
{"Message body","本文"}.
|
||||
{"Middle Name","ミドルネーム"}.
|
||||
{"Minimum interval between voice requests (in seconds)","発言権の要求の最小時間間隔 (秒)"}.
|
||||
{"Moderator privileges required","モデレーター権限が必要です"}.
|
||||
{"Moderator","モデレーター"}.
|
||||
{"Modified modules","更新されたモジュール"}.
|
||||
{"Monday","月曜日"}.
|
||||
{"Multicast","マルチキャスト"}.
|
||||
{"Multi-User Chat","マルチユーザーチャット"}.
|
||||
{"Name","名"}.
|
||||
{"Name:","名前:"}.
|
||||
{"Natural-Language Room Name","自然言語での会議室名"}.
|
||||
{"Never","なし"}.
|
||||
{"New Password:","新しいパスワード:"}.
|
||||
|
@ -216,14 +207,22 @@
|
|||
{"Nickname Registration at ","ニックネーム登録: "}.
|
||||
{"Nickname ~s does not exist in the room","ニックネーム ~s はこのチャットルームにいません"}.
|
||||
{"Nickname","ニックネーム"}.
|
||||
{"No address elements found","アドレス要素が見つかりません"}.
|
||||
{"No addresses element found","アドレス要素が見つかりません"}.
|
||||
{"No body provided for announce message","アナウンスメッセージはありませんでした"}.
|
||||
{"No child elements found","子要素が見つかりません"}.
|
||||
{"No Data","データなし"}.
|
||||
{"No <forwarded/> element found","<forwarded/> 要素が見つかりません"}.
|
||||
{"No 'item' element found","'item' 要素が見つかりません"}.
|
||||
{"No limit","制限なし"}.
|
||||
{"No 'password' found in this query","このクエリに 'password' が見つかりません"}.
|
||||
{"No services available","利用できるサービスはありません"}.
|
||||
{"Node already exists","ノードは既に存在しています"}.
|
||||
{"Node ID","ノードID"}.
|
||||
{"Node not found","ノードが見つかりません"}.
|
||||
{"Node ~p","ノード ~p"}.
|
||||
{"Nodes","ノード"}.
|
||||
{"Node","ノード"}.
|
||||
{"None","なし"}.
|
||||
{"Not Found","見つかりません"}.
|
||||
{"Notify subscribers when items are removed from the node","アイテムがノードから消された時に購読者へ通知する"}.
|
||||
|
@ -237,14 +236,13 @@
|
|||
{"Occupants are allowed to invite others","在室者は誰かを招待することができます"}.
|
||||
{"Occupants May Change the Subject","ユーザーによる件名の変更を許可"}.
|
||||
{"October","10月"}.
|
||||
{"Offline Messages","オフラインメッセージ"}.
|
||||
{"Offline Messages:","オフラインメッセージ:"}.
|
||||
{"OK","OK"}.
|
||||
{"Old Password:","古いパスワード:"}.
|
||||
{"Online Users","オンラインユーザー"}.
|
||||
{"Online Users:","オンラインユーザー:"}.
|
||||
{"Online","オンライン"}.
|
||||
{"Only deliver notifications to available users","有効なユーザーにのみ告知を送信する"}.
|
||||
{"Only <enable/> or <disable/> tags are allowed","<enable/> タグまたは <disable/> タグのみが許可されます"}.
|
||||
{"Only <list/> element is allowed in this query","このクエリでは <list/> 要素のみが許可されます"}.
|
||||
{"Only members may query archives of this room","メンバーのみがこのルームのアーカイブを取得できます"}.
|
||||
{"Only moderators and participants are allowed to change the subject in this room","モデレーターと参加者のみがチャットルームの件名を変更できます"}.
|
||||
{"Only moderators are allowed to change the subject in this room","モデレーターのみがチャットルームの件名を変更できます"}.
|
||||
|
@ -255,9 +253,8 @@
|
|||
{"Organization Name","会社名"}.
|
||||
{"Organization Unit","部署名"}.
|
||||
{"Outgoing s2s Connections","外向き s2s コネクション"}.
|
||||
{"Outgoing s2s Connections:","外向き s2s コネクション:"}.
|
||||
{"Owner privileges required","主宰者の権限が必要です"}.
|
||||
{"Packet","パケット"}.
|
||||
{"Participant ID","参加者 ID"}.
|
||||
{"Participant","参加者"}.
|
||||
{"Password Verification","パスワード (確認)"}.
|
||||
{"Password Verification:","パスワード (確認):"}.
|
||||
|
@ -265,7 +262,6 @@
|
|||
{"Password:","パスワード:"}.
|
||||
{"Path to Dir","ディレクトリのパス"}.
|
||||
{"Path to File","ファイルのパス"}.
|
||||
{"Pending","保留"}.
|
||||
{"Period: ","期間: "}.
|
||||
{"Persist items to storage","アイテムをストレージに保存する"}.
|
||||
{"Persistent","チャットルームを永続化"}.
|
||||
|
@ -274,27 +270,26 @@
|
|||
{"Please, wait for a while before sending new voice request","新しい発言権の要求を送るまで少し間をおいてください"}.
|
||||
{"Pong","Pong"}.
|
||||
{"Present real Jabber IDs to","本当の Jabber ID を公開"}.
|
||||
{"Previous session not found","前のセッションが見つかりません"}.
|
||||
{"private, ","プライベート、"}.
|
||||
{"Public","公開"}.
|
||||
{"Publish-Subscribe","Publish-Subscribe"}.
|
||||
{"PubSub subscriber request","PubSub 購読者のリクエスト"}.
|
||||
{"Purge all items when the relevant publisher goes offline","公開者がオフラインになるときに、すべてのアイテムを削除"}.
|
||||
{"Queries to the conference members are not allowed in this room","このチャットルームでは、会議のメンバーへのクエリーは禁止されています"}.
|
||||
{"Query to another users is forbidden","他のユーザーへのクエリは禁止されています"}.
|
||||
{"RAM and disc copy","RAM, ディスクコピー"}.
|
||||
{"RAM copy","RAM コピー"}.
|
||||
{"Really delete message of the day?","本当にお知らせメッセージを削除しますか ?"}.
|
||||
{"Recipient is not in the conference room","受信者はこの会議室にいません"}.
|
||||
{"Register an XMPP account","XMPP アカウントを登録"}.
|
||||
{"Registered Users","登録ユーザー"}.
|
||||
{"Registered Users:","登録ユーザー:"}.
|
||||
{"Register","登録"}.
|
||||
{"Remote copy","リモートコピー"}.
|
||||
{"Remove All Offline Messages","すべてのオフラインメッセージを削除"}.
|
||||
{"Remove User","ユーザーを削除"}.
|
||||
{"Remove","削除"}.
|
||||
{"Replaced by new connection","新しいコネクションによって置き換えられました"}.
|
||||
{"Request is ignored","リクエストは無視されます"}.
|
||||
{"Resources","リソース"}.
|
||||
{"Restart Service","サービスを再起動"}.
|
||||
{"Restart","再起動"}.
|
||||
{"Restore Backup from File at ","ファイルからバックアップをリストア: "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","ejabberd の再起動時にバイナリバックアップからリストア (メモリ少):"}.
|
||||
{"Restore binary backup immediately:","直ちにバイナリバックアップからリストア:"}.
|
||||
|
@ -307,17 +302,12 @@
|
|||
{"Room Occupants","在室者"}.
|
||||
{"Room title","チャットルームのタイトル"}.
|
||||
{"Roster groups allowed to subscribe","名簿グループは購読を許可しました"}.
|
||||
{"Roster of ~ts","~ts の名簿"}.
|
||||
{"Roster size","名簿サイズ"}.
|
||||
{"Roster:","名簿:"}.
|
||||
{"RPC Call Error","RPC 呼び出しエラー"}.
|
||||
{"Running Nodes","起動ノード"}.
|
||||
{"~s invites you to the room ~s","~s はあなたをチャットルーム ~s に招待しています"}.
|
||||
{"Saturday","土曜日"}.
|
||||
{"Script check","スクリプトチェック"}.
|
||||
{"Search Results for ","検索結果: "}.
|
||||
{"Search users in ","ユーザーの検索: "}.
|
||||
{"Select All","すべて選択"}.
|
||||
{"Send announcement to all online users on all hosts","全ホストのオンラインユーザーにアナウンスを送信"}.
|
||||
{"Send announcement to all online users","すべてのオンラインユーザーにアナウンスを送信"}.
|
||||
{"Send announcement to all users on all hosts","全ホストのユーザーにアナウンスを送信"}.
|
||||
|
@ -330,23 +320,18 @@
|
|||
{"Show Integral Table","累積の表を表示"}.
|
||||
{"Show Ordinary Table","通常の表を表示"}.
|
||||
{"Shut Down Service","サービスを停止"}.
|
||||
{"SOCKS5 Bytestreams","SOCKS5 Bytestreams"}.
|
||||
{"Some XMPP clients can store your password in the computer, but you should do this only in your personal computer for safety reasons.","XMPP クライアントはコンピューターにパスワードを記憶できます。コンピューターが安全であると信頼できる場合にのみ、この機能を使用してください。"}.
|
||||
{"Specify the access model","アクセスモデルを設定する"}.
|
||||
{"Specify the event message type","イベントメッセージ種別を設定"}.
|
||||
{"Specify the publisher model","公開モデルを指定する"}.
|
||||
{"Stanza ID","スタンザ ID"}.
|
||||
{"Statistics of ~p","~p の統計"}.
|
||||
{"Statistics","統計"}.
|
||||
{"Stopped Nodes","停止ノード"}.
|
||||
{"Stop","停止"}.
|
||||
{"Storage Type","ストレージタイプ"}.
|
||||
{"Store binary backup:","バイナリバックアップを保存:"}.
|
||||
{"Store plain text backup:","プレーンテキストバックアップを保存:"}.
|
||||
{"Subject","件名"}.
|
||||
{"Submitted","送信完了"}.
|
||||
{"Submit","送信"}.
|
||||
{"Subscriber Address","購読者のアドレス"}.
|
||||
{"Subscription","認可"}.
|
||||
{"Sunday","日曜日"}.
|
||||
{"That nickname is already in use by another occupant","そのニックネームは既にほかの在室者によって使用されています"}.
|
||||
{"That nickname is registered by another person","ニックネームはほかの人によって登録されています"}.
|
||||
|
@ -373,46 +358,40 @@
|
|||
{"This room is not anonymous","このチャットルームは非匿名です"}.
|
||||
{"Thursday","木曜日"}.
|
||||
{"Time delay","遅延時間"}.
|
||||
{"Time","時間"}.
|
||||
{"Too many CAPTCHA requests","CAPTCHA 要求が多すぎます"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","~p回の認証に失敗しました。このIPアドレス(~s)は~s UTCまでブロックされます。"}.
|
||||
{"Too many unacked stanzas","多くのスタンザが応答していません"}.
|
||||
{"Total rooms","チャットルーム数"}.
|
||||
{"To","To"}.
|
||||
{"Too many users in this conference","この会議にはユーザーが多すぎます"}.
|
||||
{"Traffic rate limit is exceeded","トラフィックレートの制限を超えました"}.
|
||||
{"Transactions Aborted:","トランザクションの失敗:"}.
|
||||
{"Transactions Committed:","トランザクションのコミット:"}.
|
||||
{"Transactions Logged:","トランザクションのログ: "}.
|
||||
{"Transactions Restarted:","トランザクションの再起動:"}.
|
||||
{"~ts's Offline Messages Queue","~ts のオフラインメッセージキュー"}.
|
||||
{"Tuesday","火曜日"}.
|
||||
{"Unable to generate a CAPTCHA","CAPTCHA を生成できません"}.
|
||||
{"Unauthorized","認証されていません"}.
|
||||
{"Unexpected action","予期しないアクション"}.
|
||||
{"Unexpected error condition: ~p","予期しないエラー状態: ~p"}.
|
||||
{"Uninstall","アンインストール"}.
|
||||
{"Unregister an XMPP account","XMPP アカウントを削除"}.
|
||||
{"Unregister","削除"}.
|
||||
{"Unsupported version","対応していないバージョン"}.
|
||||
{"Update message of the day (don't send)","お知らせメッセージを更新 (送信しない)"}.
|
||||
{"Update message of the day on all hosts (don't send)","全ホストのお知らせメッセージを更新 (送信しない)"}.
|
||||
{"Update plan","更新計画"}.
|
||||
{"Update ~p","更新 ~p"}.
|
||||
{"Update script","スクリプトの更新"}.
|
||||
{"Update","更新"}.
|
||||
{"Uptime:","起動時間:"}.
|
||||
{"Upgrade","アップグレード"}.
|
||||
{"User already exists","ユーザーは既に存在しています"}.
|
||||
{"User (jid)","ユーザー (JID)"}.
|
||||
{"User JID","ユーザー JID"}.
|
||||
{"User Management","ユーザー管理"}.
|
||||
{"User removed","ユーザーを削除しました"}.
|
||||
{"User session not found","ユーザーセッションが見つかりません"}.
|
||||
{"User session terminated","ユーザーセッションが終了しました"}.
|
||||
{"User ~ts","ユーザー ~ts"}.
|
||||
{"Username:","ユーザー名:"}.
|
||||
{"Users are not allowed to register accounts so quickly","それほど速くアカウントを登録することはできません"}.
|
||||
{"Users Last Activity","ユーザーの活動履歴"}.
|
||||
{"Users","ユーザー"}.
|
||||
{"User","ユーザー"}.
|
||||
{"Validate","検証"}.
|
||||
{"Value of '~s' should be boolean","'~s' の値はブール値である必要があります"}.
|
||||
{"Value of '~s' should be integer","'~s' の値は整数である必要があります"}.
|
||||
{"vCard User Search","vCard検索"}.
|
||||
{"View Queue","キューを表示"}.
|
||||
{"View Roster","名簿を表示"}.
|
||||
{"Virtual Hosts","バーチャルホスト"}.
|
||||
{"Visitors are not allowed to change their nicknames in this room","傍聴者はこのチャットルームでニックネームを変更することはできません"}.
|
||||
{"Visitors are not allowed to send messages to all occupants","傍聴者はすべての在室者にメッセージを送信することはできません"}.
|
||||
|
@ -420,11 +399,15 @@
|
|||
{"Voice requests are disabled in this conference","この会議では、発言権の要求はできません"}.
|
||||
{"Voice request","発言権を要求"}.
|
||||
{"Wednesday","水曜日"}.
|
||||
{"When a new subscription is processed","新しい購読が処理されるとき"}.
|
||||
{"When to send the last published item","最後の公開アイテムを送信するタイミングで"}.
|
||||
{"Whether to allow subscriptions","購読を許可するかどうか"}.
|
||||
{"Who can send private messages","誰がプライベートメッセージを送れるか"}.
|
||||
{"XMPP Account Registration","XMPP アカウント登録"}.
|
||||
{"XMPP Domains","XMPP ドメイン"}.
|
||||
{"You are being removed from the room because of a system shutdown","システムシャットダウンのためチャットルームから削除されました"}.
|
||||
{"You are not allowed to send private messages","プライベートメッセージを送信する権限がありません"}.
|
||||
{"You are not joined to the channel","チャンネルに参加していません"}.
|
||||
{"You can later change your password using an XMPP client.","あなたは後で XMPP クライアントを使用してパスワードを変更できます。"}.
|
||||
{"You have been banned from this room","あなたはこのチャットルームから締め出されています"}.
|
||||
{"You must fill in field \"Nickname\" in the form","フォームの\"ニックネーム\"欄を入力する必要があります"}.
|
||||
|
|
|
@ -3,13 +3,12 @@
|
|||
%% To improve translations please read:
|
||||
%% https://docs.ejabberd.im/developer/extending-ejabberd/localization/
|
||||
|
||||
{" (Add * to the end of field to match substring)"," Gebruik de velden om te zoeken (Voeg achteraan het teken * toe om te zoeken naar alles wat met het eerste deel begint.)."}.
|
||||
{" has set the subject to: "," veranderde het onderwerp in: "}.
|
||||
{"A friendly name for the node","Bijnaam voor deze knoop"}.
|
||||
{"A password is required to enter this room","U hebt een wachtwoord nodig om deze chatruimte te kunnen betreden"}.
|
||||
{"Access denied by service policy","De toegang werd geweigerd door het beleid van deze dienst"}.
|
||||
{"Action on user","Actie op gebruiker"}.
|
||||
{"Add Jabber ID","Jabber ID toevoegen"}.
|
||||
{"Add New","Toevoegen"}.
|
||||
{"Add User","Gebruiker toevoegen"}.
|
||||
{"Administration of ","Beheer van "}.
|
||||
{"Administration","Beheer"}.
|
||||
|
@ -52,21 +51,16 @@
|
|||
{"Conference room does not exist","De chatruimte bestaat niet"}.
|
||||
{"Configuration of room ~s","Instellingen van chatruimte ~s"}.
|
||||
{"Configuration","Instellingen"}.
|
||||
{"Connected Resources:","Verbonden bronnen:"}.
|
||||
{"Country","Land"}.
|
||||
{"CPU Time:","Processortijd:"}.
|
||||
{"Database Tables at ~p","Databasetabellen van ~p"}.
|
||||
{"Database Tables Configuration at ","Instellingen van databasetabellen op "}.
|
||||
{"Database","Database"}.
|
||||
{"December","December"}.
|
||||
{"Default users as participants","Gebruikers standaard instellen als deelnemers"}.
|
||||
{"Delete message of the day on all hosts","Verwijder bericht-van-de-dag op alle hosts"}.
|
||||
{"Delete message of the day","Bericht van de dag verwijderen"}.
|
||||
{"Delete Selected","Geselecteerde verwijderen"}.
|
||||
{"Delete User","Verwijder Gebruiker"}.
|
||||
{"Deliver event notifications","Gebeurtenisbevestigingen Sturen"}.
|
||||
{"Deliver payloads with event notifications","Berichten bezorgen samen met gebeurtenisnotificaties"}.
|
||||
{"Description:","Beschrijving:"}.
|
||||
{"Disc only copy","Harde schijf"}.
|
||||
{"Dump Backup to Text File at ","Backup naar een tekstbestand schrijven op "}.
|
||||
{"Dump to Text File","Backup naar een tekstbestand schrijven"}.
|
||||
|
@ -78,7 +72,6 @@
|
|||
{"ejabberd SOCKS5 Bytestreams module","ejabberd SOCKS5 Bytestreams module"}.
|
||||
{"ejabberd vCard module","ejabberd's vCard-module"}.
|
||||
{"ejabberd Web Admin","ejabberd Webbeheer"}.
|
||||
{"Elements","Elementen"}.
|
||||
{"Email","E-mail"}.
|
||||
{"Enable logging","Logs aanzetten"}.
|
||||
{"Enable message archiving","Zet bericht-archivering aan"}.
|
||||
|
@ -89,7 +82,6 @@
|
|||
{"Enter path to jabberd14 spool file","Voer pad naar jabberd14-spool-bestand in"}.
|
||||
{"Enter path to text file","Voer pad naar backupbestand in"}.
|
||||
{"Enter the text you see","Voer de getoonde tekst in"}.
|
||||
{"Error","Fout"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Geen CAPTCHA test voor Jabber IDs"}.
|
||||
{"Export all tables as SQL queries to a file:","Exporteer alle tabellen als SQL-queries naar een bestand:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Exporteer data van alle gebruikers in de server naar PIEFXIS-bestanden (XEP-0227):"}.
|
||||
|
@ -98,22 +90,17 @@
|
|||
{"Family Name","Achternaam"}.
|
||||
{"February","Februari"}.
|
||||
{"Friday","Vrijdag"}.
|
||||
{"From","Van"}.
|
||||
{"Full Name","Volledige naam"}.
|
||||
{"Get Number of Online Users","Aantal Aanwezige Gebruikers Opvragen"}.
|
||||
{"Get Number of Registered Users","Aantal Geregistreerde Gebruikers Opvragen"}.
|
||||
{"Get User Last Login Time","Tijd van Laatste Aanmelding Opvragen"}.
|
||||
{"Get User Password","Gebruikerswachtwoord Opvragen"}.
|
||||
{"Get User Statistics","Gebruikers-statistieken Opvragen"}.
|
||||
{"Grant voice to this person?","Stemaanvraag honoreren voor deze persoon?"}.
|
||||
{"Group","Groep"}.
|
||||
{"Groups","Groepen"}.
|
||||
{"has been banned","is verbannen"}.
|
||||
{"has been kicked because of a system shutdown","is weggestuurd omdat het systeem gestopt wordt"}.
|
||||
{"has been kicked because of an affiliation change","is weggestuurd vanwege een affiliatieverandering"}.
|
||||
{"has been kicked because the room has been changed to members-only","is weggestuurd omdat de chatruimte vanaf heden alleen toegankelijk is voor leden"}.
|
||||
{"has been kicked","is weggestuurd"}.
|
||||
{"Host","Host"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Als U het CAPTCHA-plaatje niet ziet, bezoek dan de webpagina."}.
|
||||
{"Import Directory","Directory importeren"}.
|
||||
{"Import File","Bestand importeren"}.
|
||||
|
@ -139,8 +126,6 @@
|
|||
{"Last month","Afgelopen maand"}.
|
||||
{"Last year","Afgelopen jaar"}.
|
||||
{"leaves the room","verliet de chatruimte"}.
|
||||
{"List of rooms","Lijst van groepsgesprekken"}.
|
||||
{"Low level update script","Lowlevel script voor de opwaardering"}.
|
||||
{"Make participants list public","Deelnemerslijst publiek maken"}.
|
||||
{"Make room CAPTCHA protected","Chatruimte beveiligen met een geautomatiseerde Turing test"}.
|
||||
{"Make room members-only","Chatruimte enkel toegankelijk maken voor leden"}.
|
||||
|
@ -152,19 +137,15 @@
|
|||
{"Max payload size in bytes","Maximumgrootte van bericht in bytes"}.
|
||||
{"Maximum Number of Occupants","Maximum aantal aanwezigen"}.
|
||||
{"May","Mei"}.
|
||||
{"Members:","Groepsleden:"}.
|
||||
{"Membership is required to enter this room","U moet lid zijn om deze chatruimte te kunnen betreden"}.
|
||||
{"Memory","Geheugen"}.
|
||||
{"Message body","Bericht"}.
|
||||
{"Middle Name","Tussennaam"}.
|
||||
{"Minimum interval between voice requests (in seconds)","Minimale interval tussen stemaanvragen (in seconden)"}.
|
||||
{"Moderator privileges required","U hebt moderatorprivileges nodig"}.
|
||||
{"Modified modules","Gewijzigde modules"}.
|
||||
{"Monday","Maandag"}.
|
||||
{"Multicast","Multicast"}.
|
||||
{"Multi-User Chat","Groepschat"}.
|
||||
{"Name","Naam"}.
|
||||
{"Name:","Naam:"}.
|
||||
{"Never","Nooit"}.
|
||||
{"New Password:","Nieuw Wachtwoord:"}.
|
||||
{"Nickname Registration at ","Registratie van een bijnaam op "}.
|
||||
|
@ -187,12 +168,9 @@
|
|||
{"Number of online users","Aantal Aanwezige Gebruikers"}.
|
||||
{"Number of registered users","Aantal Geregistreerde Gebruikers"}.
|
||||
{"October","Oktober"}.
|
||||
{"Offline Messages","Offline berichten"}.
|
||||
{"Offline Messages:","Offline berichten:"}.
|
||||
{"OK","OK"}.
|
||||
{"Old Password:","Oud Wachtwoord:"}.
|
||||
{"Online Users","Online gebruikers"}.
|
||||
{"Online Users:","Online gebruikers:"}.
|
||||
{"Online","Online"}.
|
||||
{"Only deliver notifications to available users","Notificaties alleen verzenden naar online gebruikers"}.
|
||||
{"Only moderators and participants are allowed to change the subject in this room","Alleen moderators en deelnemers mogen het onderwerp van deze chatruimte veranderen"}.
|
||||
|
@ -204,16 +182,13 @@
|
|||
{"Organization Name","Organisatie"}.
|
||||
{"Organization Unit","Afdeling"}.
|
||||
{"Outgoing s2s Connections","Uitgaande s2s-verbindingen"}.
|
||||
{"Outgoing s2s Connections:","Uitgaande s2s-verbindingen:"}.
|
||||
{"Owner privileges required","U hebt eigenaarsprivileges nodig"}.
|
||||
{"Packet","Pakket"}.
|
||||
{"Password Verification","Wachtwoord Bevestiging"}.
|
||||
{"Password Verification:","Wachtwoord Bevestiging:"}.
|
||||
{"Password","Wachtwoord"}.
|
||||
{"Password:","Wachtwoord:"}.
|
||||
{"Path to Dir","Pad naar directory"}.
|
||||
{"Path to File","Pad naar bestand"}.
|
||||
{"Pending","Bezig"}.
|
||||
{"Period: ","Periode: "}.
|
||||
{"Persist items to storage","Items in het geheugen bewaren"}.
|
||||
{"Ping","Ping"}.
|
||||
|
@ -230,17 +205,12 @@
|
|||
{"RAM copy","RAM"}.
|
||||
{"Really delete message of the day?","Wilt u het bericht van de dag verwijderen?"}.
|
||||
{"Recipient is not in the conference room","De ontvanger is niet in de chatruimte"}.
|
||||
{"Registered Users","Geregistreerde gebruikers"}.
|
||||
{"Registered Users:","Geregistreerde gebruikers:"}.
|
||||
{"Register","Registreer"}.
|
||||
{"Remote copy","Op andere nodes in de cluster"}.
|
||||
{"Remove All Offline Messages","Verwijder alle offline berichten"}.
|
||||
{"Remove User","Gebruiker verwijderen"}.
|
||||
{"Remove","Verwijderen"}.
|
||||
{"Replaced by new connection","Vervangen door een nieuwe verbinding"}.
|
||||
{"Resources","Bronnen"}.
|
||||
{"Restart Service","Herstart Service"}.
|
||||
{"Restart","Herstarten"}.
|
||||
{"Restore Backup from File at ","Binaire backup direct herstellen op "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Binaire backup herstellen na herstart van ejabberd (vereist minder geheugen):"}.
|
||||
{"Restore binary backup immediately:","Binaire backup direct herstellen:"}.
|
||||
|
@ -253,10 +223,8 @@
|
|||
{"Room title","Naam van de chatruimte"}.
|
||||
{"Roster groups allowed to subscribe","Contactlijst-groepen die mogen abonneren"}.
|
||||
{"Roster size","Contactlijst Groote"}.
|
||||
{"RPC Call Error","RPC-oproepfout"}.
|
||||
{"Running Nodes","Draaiende nodes"}.
|
||||
{"Saturday","Zaterdag"}.
|
||||
{"Script check","Controle van script"}.
|
||||
{"Search Results for ","Zoekresultaten voor "}.
|
||||
{"Search users in ","Gebruikers zoeken in "}.
|
||||
{"Send announcement to all online users on all hosts","Mededeling verzenden naar alle online gebruikers op alle virtuele hosts"}.
|
||||
|
@ -274,18 +242,12 @@
|
|||
{"Specify the access model","Geef toegangsmodel"}.
|
||||
{"Specify the event message type","Geef type van eventbericht"}.
|
||||
{"Specify the publisher model","Publicatietype opgeven"}.
|
||||
{"Statistics of ~p","Statistieken van ~p"}.
|
||||
{"Statistics","Statistieken"}.
|
||||
{"Stopped Nodes","Gestopte nodes"}.
|
||||
{"Stop","Stoppen"}.
|
||||
{"Storage Type","Opslagmethode"}.
|
||||
{"Store binary backup:","Binaire backup maken:"}.
|
||||
{"Store plain text backup:","Backup naar een tekstbestand schrijven:"}.
|
||||
{"Subject","Onderwerp"}.
|
||||
{"Submitted","Verzonden"}.
|
||||
{"Submit","Verzenden"}.
|
||||
{"Subscriber Address","Abonnee Adres"}.
|
||||
{"Subscription","Inschrijving"}.
|
||||
{"Sunday","Zondag"}.
|
||||
{"That nickname is already in use by another occupant","Deze bijnaam is al in gebruik door een andere aanwezige"}.
|
||||
{"That nickname is registered by another person","Deze bijnaam is al geregistreerd door iemand anders"}.
|
||||
|
@ -299,28 +261,16 @@
|
|||
{"This room is not anonymous","Deze chatruimte is niet anoniem"}.
|
||||
{"Thursday","Donderdag"}.
|
||||
{"Time delay","Vertraging"}.
|
||||
{"Time","Tijd"}.
|
||||
{"To","Aan"}.
|
||||
{"Too many CAPTCHA requests","Te veel CAPTCHA-aanvragen"}.
|
||||
{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Te veel (~p) mislukte authenticatie-pogingen van dit IP-adres (~s). Dit adres zal worden gedeblokkeerd om ~s UTC"}.
|
||||
{"Too many unacked stanzas","Te veel niet-bevestigde stanzas"}.
|
||||
{"Total rooms","Aantal groepsgesprekken"}.
|
||||
{"Traffic rate limit is exceeded","Dataverkeerslimiet overschreden"}.
|
||||
{"Transactions Aborted:","Afgebroken transacties:"}.
|
||||
{"Transactions Committed:","Bevestigde transacties:"}.
|
||||
{"Transactions Logged:","Gelogde transacties:"}.
|
||||
{"Transactions Restarted:","Herstarte transacties:"}.
|
||||
{"Tuesday","Dinsdag"}.
|
||||
{"Unable to generate a CAPTCHA","Het generen van een CAPTCHA is mislukt"}.
|
||||
{"Unauthorized","Niet geautoriseerd"}.
|
||||
{"Unregister","Opheffen"}.
|
||||
{"Update message of the day (don't send)","Bericht van de dag bijwerken (niet verzenden)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Verander bericht-van-de-dag op alle hosts (niet versturen)"}.
|
||||
{"Update plan","Plan voor de opwaardering"}.
|
||||
{"Update ~p","Opwaarderen van ~p"}.
|
||||
{"Update script","Script voor de opwaardering"}.
|
||||
{"Update","Bijwerken"}.
|
||||
{"Uptime:","Uptime:"}.
|
||||
{"User JID","JID Gebruiker"}.
|
||||
{"User Management","Gebruikersbeheer"}.
|
||||
{"User","Gebruiker"}.
|
||||
|
@ -328,7 +278,6 @@
|
|||
{"Users are not allowed to register accounts so quickly","Het is gebruikers niet toegestaan zo snel achter elkaar te registreren"}.
|
||||
{"Users Last Activity","Laatste activiteit van gebruikers"}.
|
||||
{"Users","Gebruikers"}.
|
||||
{"Validate","Bevestigen"}.
|
||||
{"vCard User Search","Gebruikers zoeken"}.
|
||||
{"Virtual Hosts","Virtuele hosts"}.
|
||||
{"Visitors are not allowed to change their nicknames in this room","Het is bezoekers niet toegestaan hun naam te veranderen in dit kanaal"}.
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
{"Accept","Godta"}.
|
||||
{"Access denied by service policy","Tilgang nektes på grunn av en tjenesteregel"}.
|
||||
{"Action on user","Handling på bruker"}.
|
||||
{"Add Jabber ID","Legg til Jabber-ID"}.
|
||||
{"Add New","Legg til ny"}.
|
||||
{"Add User","Legg til bruker"}.
|
||||
{"Administration of ","Administrasjon av "}.
|
||||
{"Administration","Administrasjon"}.
|
||||
|
@ -59,23 +57,17 @@
|
|||
{"Conference room does not exist","Konferanserommet finnes ikke"}.
|
||||
{"Configuration of room ~s","Oppsett for rom ~s"}.
|
||||
{"Configuration","Oppsett"}.
|
||||
{"Connected Resources:","Tilkoblede ressurser:"}.
|
||||
{"Country","Land"}.
|
||||
{"CPU Time:","Prosessortid:"}.
|
||||
{"Current Discussion Topic","Nåværende diskusjonstema"}.
|
||||
{"Database Tables at ~p","Databasetabeller på ~p"}.
|
||||
{"Database Tables Configuration at ","Database-tabelloppsett på "}.
|
||||
{"Database","Database"}.
|
||||
{"December","desember"}.
|
||||
{"Default users as participants","Standard brukere som deltakere"}.
|
||||
{"Delete message of the day","Slett melding for dagen"}.
|
||||
{"Delete Selected","Slett valgte"}.
|
||||
{"Delete User","Slett bruker"}.
|
||||
{"Deliver event notifications","Lever begivenhetskunngjøringer"}.
|
||||
{"Deliver payloads with event notifications","Send innhold sammen med hendelsesmerknader"}.
|
||||
{"Description:","Beskrivelse:"}.
|
||||
{"Disc only copy","Kun diskkopi"}.
|
||||
{"'Displayed groups' not added (they do not exist!): ","«Viste grupper» ikke lagt til (de finnes ikke!): "}.
|
||||
{"Dump Backup to Text File at ","Dump sikkerhetskopi til tekstfil på "}.
|
||||
{"Dump to Text File","Dump til tekstfil"}.
|
||||
{"Edit Properties","Rediger egenskaper"}.
|
||||
|
@ -84,7 +76,6 @@
|
|||
{"ejabberd MUC module","ejabberd-MUC-modul"}.
|
||||
{"ejabberd Multicast service","ejabberd-multikastingstjeneste"}.
|
||||
{"ejabberd Publish-Subscribe module","ejabberd-Publish-Subscribe-modul"}.
|
||||
{"Elements","Elementer"}.
|
||||
{"Email","E-post"}.
|
||||
{"Enable logging","Skru på loggføring"}.
|
||||
{"Enable message archiving","Skru på meldingsarkivering"}.
|
||||
|
@ -95,7 +86,6 @@
|
|||
{"Enter path to jabberd14 spool dir","Skriv inn sti til jabberd14 spoolkatalog"}.
|
||||
{"Enter path to text file","Skriv inn sti til tekstfil"}.
|
||||
{"Enter the text you see","Skriv inn teksten du ser"}.
|
||||
{"Error","Feil"}.
|
||||
{"Exclude Jabber IDs from CAPTCHA challenge","Ekskluder Jabber-ID-er fra CAPTCHA-utfordring"}.
|
||||
{"Export all tables as SQL queries to a file:","Eksporter alle tabeller som SQL-spørringer til en fil:"}.
|
||||
{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Eksporter data om alle brukere på en tjener til PIEFXIS-filer (XEP-0227):"}.
|
||||
|
@ -107,23 +97,18 @@
|
|||
{"February","februar"}.
|
||||
{"File larger than ~w bytes","Fil større enn ~w byte"}.
|
||||
{"Friday","fredag"}.
|
||||
{"From","Fra"}.
|
||||
{"Full List of Room Admins","Full liste over romadministratorer"}.
|
||||
{"Full List of Room Owners","Full liste over romeiere"}.
|
||||
{"Full Name","Fullt navn"}.
|
||||
{"Get Number of Online Users","Vis antall tilkoblede brukere"}.
|
||||
{"Get Number of Registered Users","Vis antall registrerte brukere"}.
|
||||
{"Get User Last Login Time","Vis brukers siste innloggingstidspunkt"}.
|
||||
{"Get User Password","Hent brukers passord"}.
|
||||
{"Get User Statistics","Vis brukerstatistikk"}.
|
||||
{"Group","Gruppe"}.
|
||||
{"Groups","Grupper"}.
|
||||
{"has been banned","har blitt bannlyst"}.
|
||||
{"has been kicked because of a system shutdown","har blitt kastet ut på grunn av systemavstenging"}.
|
||||
{"has been kicked because of an affiliation change","har blitt kastet ut på grunn av en tilknytningsendring"}.
|
||||
{"has been kicked","har blitt kastet ut"}.
|
||||
{"Host unknown","Ukjent vert"}.
|
||||
{"Host","Vert"}.
|
||||
{"HTTP File Upload","HTTP-filopplasting"}.
|
||||
{"If you don't see the CAPTCHA image here, visit the web page.","Dersom du ikke ser et CAPTCHA-bilde her, besøk nettsiden."}.
|
||||
{"Import Directory","Importer mappe"}.
|
||||
|
@ -146,16 +131,13 @@
|
|||
{"July","juli"}.
|
||||
{"June","juni"}.
|
||||
{"Just created","Akkurat opprettet"}.
|
||||
{"Label:","Etikett:"}.
|
||||
{"Last Activity","Siste aktivitet"}.
|
||||
{"Last login","Siste innlogging"}.
|
||||
{"Last month","Siste måned"}.
|
||||
{"Last year","Siste år"}.
|
||||
{"Least significant bits of SHA-256 hash of text should equal hexadecimal label","De minst viktige bit-ene av SHA-256-sjekksummen for tekst skal tilsvare heksadesimal etikett"}.
|
||||
{"leaves the room","forlater rommet"}.
|
||||
{"List of rooms","Romliste"}.
|
||||
{"Logging","Loggføring"}.
|
||||
{"Low level update script","Lavnivå-oppdateringsskript"}.
|
||||
{"Make participants list public","Gjør deltakerlisten offentlig"}.
|
||||
{"Make room members-only","Gjør rommet tilgjengelig kun for medlemmer"}.
|
||||
{"Make room password protected","Passordbeskytt rommet"}.
|
||||
|
@ -166,8 +148,6 @@
|
|||
{"Maximum Number of History Messages Returned by Room","Maksimalt antall historikkmeldinger tilbudt av rommet"}.
|
||||
{"May","mai"}.
|
||||
{"Membership is required to enter this room","Medlemskap kreves for tilgang til dette rommet"}.
|
||||
{"Members:","Medlemmer:"}.
|
||||
{"Memory","Minne"}.
|
||||
{"Message body","Meldingskropp"}.
|
||||
{"Message not found in forwarded payload","Fant ikke melding i videresendt nyttelast"}.
|
||||
{"Messages from strangers are rejected","Meldinger fra ukjente avvises"}.
|
||||
|
@ -175,13 +155,10 @@
|
|||
{"Messages of type normal","Meldinger av normal type"}.
|
||||
{"Middle Name","Mellomnavn"}.
|
||||
{"Minimum interval between voice requests (in seconds)","Minimumsintervall mellom lydforespørsler (i sekunder)"}.
|
||||
{"Modified modules","Endrede moduler"}.
|
||||
{"Monday","mandag"}.
|
||||
{"Multicast","Multikasting"}.
|
||||
{"Multi-User Chat","Multibrukersludring"}.
|
||||
{"Name in the rosters where this group will be displayed","Navn i kontaktlistene der denne gruppen vises"}.
|
||||
{"Name","Navn"}.
|
||||
{"Name:","Navn:"}.
|
||||
{"Never","Aldri"}.
|
||||
{"New Password:","Nytt passord:"}.
|
||||
{"Nickname can't be empty","Kallenavn kan ikke stå tomt"}.
|
||||
|
@ -206,14 +183,10 @@
|
|||
{"Number of online users","Antall tilkoblede brukere"}.
|
||||
{"Number of registered users","Antall registrerte brukere"}.
|
||||
{"October","oktober"}.
|
||||
{"Offline Messages","Frakoblede meldinger"}.
|
||||
{"Offline Messages:","Frakoblede meldinger:"}.
|
||||
{"OK","OK"}.
|
||||
{"Old Password:","Gammelt passord:"}.
|
||||
{"Online Users","Tilkoblede brukere"}.
|
||||
{"Online Users:","Tilkoblede brukere:"}.
|
||||
{"Online","Tilkoblet"}.
|
||||
{"Only admins can see this","Kun administratorer kan se dette"}.
|
||||
{"Only deliver notifications to available users","Kun send kunngjøringer til tilgjengelige brukere"}.
|
||||
{"Only occupants are allowed to send messages to the conference","Bare deltakere får sende normale meldinger til konferansen"}.
|
||||
{"Only occupants are allowed to send queries to the conference","Kun deltakere tillates å sende forespørsler til konferansen"}.
|
||||
|
@ -222,9 +195,7 @@
|
|||
{"Organization Name","Organisasjonsnavn"}.
|
||||
{"Organization Unit","Organisasjonsenhet"}.
|
||||
{"Outgoing s2s Connections","Utgående s2s-koblinger"}.
|
||||
{"Outgoing s2s Connections:","Utgående s2s-koblinger"}.
|
||||
{"Owner privileges required","Eierprivilegier kreves"}.
|
||||
{"Packet","Pakke"}.
|
||||
{"Participant","Deltager"}.
|
||||
{"Password Verification","Passordbekreftelse"}.
|
||||
{"Password Verification:","Passordbekreftelse:"}.
|
||||
|
@ -232,7 +203,6 @@
|
|||
{"Password:","Passord:"}.
|
||||
{"Path to Dir","Sti til mappe"}.
|
||||
{"Path to File","Sti til fil"}.
|
||||
{"Pending","Ventende"}.
|
||||
{"Period: ","Periode: "}.
|
||||
{"Persist items to storage","Vedvarende elementer til lagring"}.
|
||||
{"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","Merk at disse valgene kun vil sikkerhetskopiere den innebygde Mnesia-databasen. Dersom du bruker ODBC-modulen må du også ta sikkerhetskopi av din SQL-database."}.
|
||||
|
@ -249,19 +219,14 @@
|
|||
{"RAM copy","Minnekopi"}.
|
||||
{"Really delete message of the day?","Vil du virkelig slette melding for dagen?"}.
|
||||
{"Recipient is not in the conference room","Mottakeren er ikke i konferanserommet"}.
|
||||
{"Registered Users","Registrerte brukere"}.
|
||||
{"Registered Users:","Registrerte brukere:"}.
|
||||
{"Register","Registrer"}.
|
||||
{"Remove All Offline Messages","Fjern Alle frakoblede meldinger"}.
|
||||
{"Remove User","Fjern bruker"}.
|
||||
{"Remove","Fjern"}.
|
||||
{"Replaced by new connection","Erstattet av en ny tilkobling"}.
|
||||
{"Request has timed out","Tidsavbrudd for forespørsel"}.
|
||||
{"Request is ignored","Forespørsel ignorert"}.
|
||||
{"Requested role","Forespurt rolle"}.
|
||||
{"Resources","Ressurser"}.
|
||||
{"Restart Service","Omstart av tjeneste"}.
|
||||
{"Restart","Start på ny"}.
|
||||
{"Restore Backup from File at ","Gjenopprett fra sikkerhetskopifil på "}.
|
||||
{"Restore binary backup after next ejabberd restart (requires less memory):","Gjenopprett binær sikkerhetskopi etter neste ejabberd-omstart (krever mindre minne):"}.
|
||||
{"Restore binary backup immediately:","Gjenopprett binær sikkerhetskopi umiddelbart:"}.
|
||||
|
@ -276,10 +241,8 @@
|
|||
{"Roster size","Kontaktlistestørrelse"}.
|
||||
{"Running Nodes","Kjørende noder"}.
|
||||
{"Saturday","lørdag"}.
|
||||
{"Script check","Skript-sjekk"}.
|
||||
{"Search Results for ","Søkeresultater for "}.
|
||||
{"Search users in ","Søk etter brukere i "}.
|
||||
{"Select All","Velg alt"}.
|
||||
{"Send announcement to all online users on all hosts","Send kunngjøring til alle tilkoblede brukere på alle verter"}.
|
||||
{"Send announcement to all online users","Send kunngjøring alle tilkoblede brukere"}.
|
||||
{"Send announcement to all users on all hosts","Send kunngjøring til alle brukere på alle verter"}.
|
||||
|
@ -293,19 +256,13 @@
|
|||
{"Specify the access model","Spesifiser tilgangsmodellen"}.
|
||||
{"Specify the event message type","Spesifiser hendelsesbeskjedtypen"}.
|
||||
{"Specify the publisher model","Angi publiseringsmodell"}.
|
||||
{"Statistics of ~p","Statistikk for ~p"}.
|
||||
{"Statistics","Statistikk"}.
|
||||
{"Stopped Nodes","Stoppede noder"}.
|
||||
{"Stop","Stopp"}.
|
||||
{"Storage Type","Lagringstype"}.
|
||||
{"Store binary backup:","Lagre binær sikkerhetskopi:"}.
|
||||
{"Store plain text backup:","Lagre klartekst-sikkerhetskopi:"}.
|
||||
{"Subject","Emne"}.
|
||||
{"Submit","Send"}.
|
||||
{"Submitted","Innsendt"}.
|
||||
{"Subscriber Address","Abonnementsadresse"}.
|
||||
{"Subscribers may publish","Abonnenter kan publisere"}.
|
||||
{"Subscription","Abonnement"}.
|
||||
{"Subscriptions are not allowed","Abonnementer tillates ikke"}.
|
||||
{"Sunday","søndag"}.
|
||||
{"Text associated with a picture","Tekst tilknyttet et bilde"}.
|
||||
|
@ -334,17 +291,11 @@
|
|||
{"This room is not anonymous","Dette rommet er ikke anonymt"}.
|
||||
{"Thursday","torsdag"}.
|
||||
{"Time delay","Tidsforsinkelse"}.
|
||||
{"Time","Tid"}.
|
||||
{"To register, visit ~s","Besøk ~s for registrering"}.
|
||||
{"Too many CAPTCHA requests","For mange CAPTCHA-forespørsler"}.
|
||||
{"Too many <item/> elements","For mange <item/>-elementer"}.
|
||||
{"Too many <list/> elements","For mange <list/>-elementer"}.
|
||||
{"To","Til"}.
|
||||
{"Traffic rate limit is exceeded","Grense for tillatt trafikkmengde overskredet"}.
|
||||
{"Transactions Aborted:","Avbrutte transaksjoner:"}.
|
||||
{"Transactions Committed:","Sendte transaksjoner:"}.
|
||||
{"Transactions Logged:","Loggede transaksjoner:"}.
|
||||
{"Transactions Restarted:","Omstartede transaksjoner:"}.
|
||||
{"Tuesday","tirsdag"}.
|
||||
{"Unable to generate a CAPTCHA","Kunne ikke generere CAPTCHA"}.
|
||||
{"Unauthorized","Uautorisert"}.
|
||||
|
@ -353,11 +304,6 @@
|
|||
{"Unsupported version","Ustøttet versjon"}.
|
||||
{"Update message of the day (don't send)","Oppdater melding for dagen (ikke send)"}.
|
||||
{"Update message of the day on all hosts (don't send)","Oppdater melding for dagen på alle verter (ikke send)"}.
|
||||
{"Update plan","Oppdateringplan"}.
|
||||
{"Update ~p","Oppdater ~p"}.
|
||||
{"Update script","Oppdateringsskript"}.
|
||||
{"Update","Oppdater"}.
|
||||
{"Uptime:","Oppetid:"}.
|
||||
{"User already exists","Brukeren finnes allerede"}.
|
||||
{"User Management","Brukerhåndtering"}.
|
||||
{"User removed","Fjernet bruker"}.
|
||||
|
@ -367,9 +313,7 @@
|
|||
{"Users are not allowed to register accounts so quickly","Brukere har ikke lov til registrere kontoer så fort"}.
|
||||
{"Users Last Activity","Brukers siste aktivitet"}.
|
||||
{"Users","Brukere"}.
|
||||
{"Validate","Bekrefte gyldighet"}.
|
||||
{"vCard User Search","vCard-brukersøk"}.
|
||||
{"View Queue","Vis kø"}.
|
||||
{"Virtual Hosts","Virtuelle maskiner"}.
|
||||
{"Visitor","Besøker"}.
|
||||
{"Visitors are not allowed to change their nicknames in this room","Besøkende får ikke lov å endre kallenavn i dette rommet"}.
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue