mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-12-05 17:02:32 -05:00
Compare commits
842 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
11d87067aa | ||
|
|
6c9c57c14d | ||
|
|
404c5f6dc0 | ||
|
|
f0f274e1e1 | ||
|
|
e9f014df07 | ||
|
|
778eadd418 | ||
|
|
3de9d15410 | ||
|
|
3b0567d261 | ||
|
|
49a75b5f19 | ||
|
|
8676dd3ce3 | ||
|
|
d5c412e3df | ||
|
|
1d2980f8fa | ||
|
|
3e80edcdfd | ||
|
|
be184b57dd | ||
|
|
f83f378528 | ||
|
|
21a6384ebf | ||
|
|
03e0683dd7 | ||
|
|
ac2813012a | ||
|
|
e34eca557b | ||
|
|
687b88ca6f | ||
|
|
776c75ba86 | ||
|
|
55ff9bedb7 | ||
|
|
2bdc3ac10c | ||
|
|
f2039300c2 | ||
|
|
03e59ea9d3 | ||
|
|
a89a156f8e | ||
|
|
0eb22c84ff | ||
|
|
d1593b8069 | ||
|
|
93391d028c | ||
|
|
142fb0ad08 | ||
|
|
942dca43d3 | ||
|
|
081bf663a4 | ||
|
|
55e309125e | ||
|
|
7323e8eb67 | ||
|
|
098540b9e5 | ||
|
|
10412c4f51 | ||
|
|
2f8b1a21c7 | ||
|
|
03fe3ee720 | ||
|
|
8a72840de0 | ||
|
|
8bf86f33a3 | ||
|
|
8637f8a852 | ||
|
|
bff7e214ab | ||
|
|
f3bbfdc64d | ||
|
|
461f56bca1 | ||
|
|
d1d4ec3e38 | ||
|
|
a0f34bbbd9 | ||
|
|
49819a2eeb | ||
|
|
f91d8610ae | ||
|
|
52f5d5cd6a | ||
|
|
870b615364 | ||
|
|
25ccc11dc4 | ||
|
|
f2b7ce9546 | ||
|
|
6bdc9606f6 | ||
|
|
71d0bd0d07 | ||
|
|
6ae3040aac | ||
|
|
065396abab | ||
|
|
1804314f45 | ||
|
|
ff894ecbe7 | ||
|
|
0bf54fae52 | ||
|
|
3c66c602f6 | ||
|
|
e854716236 | ||
|
|
beb16b81a9 | ||
|
|
57d5c0870a | ||
|
|
9d008d587a | ||
|
|
804d6eecea | ||
|
|
cc927248f0 | ||
|
|
d133598d80 | ||
|
|
682ee1a459 | ||
|
|
61b5730c48 | ||
|
|
463d8d6306 | ||
|
|
da40511306 | ||
|
|
c2195ec576 | ||
|
|
16443c8cc0 | ||
|
|
9116cd02e6 | ||
|
|
652d9fe950 | ||
|
|
e956e6e320 | ||
|
|
2e58922d01 | ||
|
|
33b7652b62 | ||
|
|
0e9086ca1f | ||
|
|
3ca2a9af28 | ||
|
|
e7b615d921 | ||
|
|
2cb6e98092 | ||
|
|
1ccc441aab | ||
|
|
8ddc5aa63e | ||
|
|
f894b62bfe | ||
|
|
aac9369f3f | ||
|
|
1581604f71 | ||
|
|
56161c0a88 | ||
|
|
242df83785 | ||
|
|
2338ad8223 | ||
|
|
b4f4e080af | ||
|
|
132545e057 | ||
|
|
68590dfdb8 | ||
|
|
2e271d695b | ||
|
|
cd745d35c2 | ||
|
|
6928e2aca2 | ||
|
|
49e86614c5 | ||
|
|
51dcf65fd7 | ||
|
|
c6c0165214 | ||
|
|
342935de49 | ||
|
|
ced5bb4631 | ||
|
|
0a832cee9c | ||
|
|
1cfce8b72c | ||
|
|
cdcde26dfc | ||
|
|
1ffb79f852 | ||
|
|
644aaf0c0e | ||
|
|
cdea03792d | ||
|
|
b190e7417e | ||
|
|
7dd3ff7c8d | ||
|
|
21a253103e | ||
|
|
db3fb29b30 | ||
|
|
c5d2ae5831 | ||
|
|
9d0ca00f89 | ||
|
|
79e5d2c9d7 | ||
|
|
3a62d392b4 | ||
|
|
f2858ea48c | ||
|
|
3c78fb420b | ||
|
|
2d22ee7ccc | ||
|
|
9a243a1454 | ||
|
|
165e40c0db | ||
|
|
7f1c2b475b | ||
|
|
a5f38fa6e6 | ||
|
|
598968bf74 | ||
|
|
ee661b0a9f | ||
|
|
7d7b3413bc | ||
|
|
7400008384 | ||
|
|
4e564e8ce4 | ||
|
|
8691fdc533 | ||
|
|
7d103f1d32 | ||
|
|
3de1a265ea | ||
|
|
3b6d4d9df6 | ||
|
|
e96e5374b4 | ||
|
|
5c91709ac8 | ||
|
|
96a91b9d0e | ||
|
|
65b88c09fb | ||
|
|
80ff07f53d | ||
|
|
4f6485d1f9 | ||
|
|
d1c903f36f | ||
|
|
516ebcfa2b | ||
|
|
9414de24d4 | ||
|
|
16990071cb | ||
|
|
52433d253f | ||
|
|
bb6327d969 | ||
|
|
476f441c9b | ||
|
|
c79b5e6179 | ||
|
|
c1bee3fee5 | ||
|
|
d786103d8d | ||
|
|
b3850f6bb7 | ||
|
|
e3db3c0341 | ||
|
|
1ce3bc2870 | ||
|
|
24ac111782 | ||
|
|
07f127ffe4 | ||
|
|
c58f566047 | ||
|
|
f28d6dff32 | ||
|
|
7e49ce9a7b | ||
|
|
59115cd1c7 | ||
|
|
1d93fe4cf9 | ||
|
|
3f1f7640cb | ||
|
|
83ee7c5e92 | ||
|
|
b95ddf18ba | ||
|
|
61d255726c | ||
|
|
05e2851c67 | ||
|
|
f20a174038 | ||
|
|
ec108e7c02 | ||
|
|
ad114295e7 | ||
|
|
0ff7259bc3 | ||
|
|
49af94334e | ||
|
|
22c318fda3 | ||
|
|
da5fd7699e | ||
|
|
3d498a74ba | ||
|
|
460b4bb3f2 | ||
|
|
47723cee33 | ||
|
|
a1b03be27e | ||
|
|
012d99c05c | ||
|
|
2c8a425f87 | ||
|
|
8555f8c28c | ||
|
|
46413c2c52 | ||
|
|
eaeaf9dd69 | ||
|
|
ee11d7da63 | ||
|
|
0ac93aacd5 | ||
|
|
691d8af26d | ||
|
|
87c66b2423 | ||
|
|
005123a371 | ||
|
|
bb8ce43cc0 | ||
|
|
13611e34d2 | ||
|
|
b8190c44a8 | ||
|
|
95d5ec5f0e | ||
|
|
874204bf18 | ||
|
|
6c296a9a17 | ||
|
|
ad06b0e723 | ||
|
|
0652dd344b | ||
|
|
8b3c3e89e9 | ||
|
|
c82ac5ae68 | ||
|
|
2776db0cf9 | ||
|
|
ba19179e4f | ||
|
|
e347ffa336 | ||
|
|
c85af62401 | ||
|
|
39b64b7570 | ||
|
|
56b220b92e | ||
|
|
972fbecc94 | ||
|
|
136e781c7f | ||
|
|
0852d1be9f | ||
|
|
fb722c79be | ||
|
|
c63d069f69 | ||
|
|
1cd7e41f33 | ||
|
|
d6d6d14977 | ||
|
|
82cda4b57a | ||
|
|
301c800319 | ||
|
|
30af83aa6a | ||
|
|
0f9501f93a | ||
|
|
466b2b82d0 | ||
|
|
8ab39512d9 | ||
|
|
e08e95c04e | ||
|
|
e7b1fa5ab5 | ||
|
|
14a2f98418 | ||
|
|
de7d08ee75 | ||
|
|
2a486cad66 | ||
|
|
80fc639480 | ||
|
|
c7608aeb17 | ||
|
|
050300040c | ||
|
|
94c3a2fedd | ||
|
|
421043d923 | ||
|
|
1c22b212c2 | ||
|
|
d52b3eaf21 | ||
|
|
30ca226e39 | ||
|
|
15037013e7 | ||
|
|
30fa9303e8 | ||
|
|
b4753a02de | ||
|
|
628073cbe1 | ||
|
|
2755592175 | ||
|
|
6051ccb23c | ||
|
|
46f9cae0ef | ||
|
|
16614168a7 | ||
|
|
5a15939f08 | ||
|
|
bb5aab16c9 | ||
|
|
b38ac1d025 | ||
|
|
22cf8e940c | ||
|
|
b0ab6bd7e2 | ||
|
|
7b9d85c1b5 | ||
|
|
3637804929 | ||
|
|
c70a44e0fe | ||
|
|
cf18b601e2 | ||
|
|
139cc07bda | ||
|
|
619c3f28f7 | ||
|
|
9966668307 | ||
|
|
77a0a67029 | ||
|
|
b65466cebd | ||
|
|
f1873e32d6 | ||
|
|
b7b4e65d2d | ||
|
|
16bb334fba | ||
|
|
3f1d416526 | ||
|
|
722aaa225b | ||
|
|
7e2e37ab3f | ||
|
|
83411d0fa4 | ||
|
|
d608dd953b | ||
|
|
e5e0a024f9 | ||
|
|
8e6db0829c | ||
|
|
5359fec195 | ||
|
|
f2daf0be9a | ||
|
|
b633a33137 | ||
|
|
d13bf37845 | ||
|
|
4b831a634a | ||
|
|
f91e0a6546 | ||
|
|
2e2d669fdf | ||
|
|
7ecdf7a7be | ||
|
|
9b940de854 | ||
|
|
82807ffe69 | ||
|
|
b1066ad58f | ||
|
|
ac8b1fc108 | ||
|
|
820be2a0ae | ||
|
|
9869f95bd6 | ||
|
|
c87286d3c6 | ||
|
|
7028ca9df3 | ||
|
|
435fc141ae | ||
|
|
889fa63aff | ||
|
|
dae75521d3 | ||
|
|
b9d440f2f7 | ||
|
|
ec4c325efd | ||
|
|
b350ac38dc | ||
|
|
e88c82e7e0 | ||
|
|
99ad01ae0d | ||
|
|
8f8c52d8c4 | ||
|
|
c56fa5a320 | ||
|
|
7d5bae5a50 | ||
|
|
7c404082f8 | ||
|
|
dc8e61cbe5 | ||
|
|
f2ebf52f6e | ||
|
|
fa223e22ed | ||
|
|
6d22c8faa5 | ||
|
|
01ebf2835b | ||
|
|
3ef693a259 | ||
|
|
3a4d932d2b | ||
|
|
571332ae18 | ||
|
|
0607f5552a | ||
|
|
016a6d3aa6 | ||
|
|
c7d98f88e8 | ||
|
|
b82756087a | ||
|
|
91258fea78 | ||
|
|
5c1c6e1f03 | ||
|
|
6d5762d711 | ||
|
|
05bef917ae | ||
|
|
348277bcbd | ||
|
|
3b62572c89 | ||
|
|
158c4f741b | ||
|
|
abcf179042 | ||
|
|
3dba09d19d | ||
|
|
1c4193cce2 | ||
|
|
849ade6e58 | ||
|
|
0d4e6a0865 | ||
|
|
e07408161a | ||
|
|
32bd47e105 | ||
|
|
1bb5d698cc | ||
|
|
9752a9c719 | ||
|
|
7973babe4b | ||
|
|
78e4b578e2 | ||
|
|
8eb8848898 | ||
|
|
aac1460240 | ||
|
|
dde5582669 | ||
|
|
937d2fe0f6 | ||
|
|
aa854cf1f9 | ||
|
|
2bd05a5a04 | ||
|
|
bcc50557a9 | ||
|
|
3a8da1f82b | ||
|
|
bdcb69ad37 | ||
|
|
811634a2b0 | ||
|
|
2512320b30 | ||
|
|
db03faf042 | ||
|
|
701259158f | ||
|
|
a5efdc6492 | ||
|
|
38b15ded87 | ||
|
|
351749dff6 | ||
|
|
2d9912cea7 | ||
|
|
3b50ed8192 | ||
|
|
c4ab34a049 | ||
|
|
985e7b3c6d | ||
|
|
7546c50226 | ||
|
|
6435f6b882 | ||
|
|
bbccb671b8 | ||
|
|
8abb24bc01 | ||
|
|
419008f644 | ||
|
|
d17c2430d7 | ||
|
|
ca533f8937 | ||
|
|
30c3a4c7c1 | ||
|
|
9d22d5b7b5 | ||
|
|
2846dce6ea | ||
|
|
9973b2e3b8 | ||
|
|
d008a2559a | ||
|
|
6470bc1cda | ||
|
|
221b636f3f | ||
|
|
7f3a0b8a88 | ||
|
|
f7e41063bf | ||
|
|
d0fca373ba | ||
|
|
451c4c9d54 | ||
|
|
a59002275d | ||
|
|
d6cd959a2b | ||
|
|
99bbde7be9 | ||
|
|
92dbd14006 | ||
|
|
57f078925e | ||
|
|
6e9243f6e9 | ||
|
|
8b4e12da81 | ||
|
|
8bba860f85 | ||
|
|
d2d26835c3 | ||
|
|
aff62a8006 | ||
|
|
b5fd28ef7c | ||
|
|
c510ebe5e5 | ||
|
|
5ba95090d9 | ||
|
|
ad51fa830b | ||
|
|
1ba922eba2 | ||
|
|
9588a5740c | ||
|
|
7cd765d548 | ||
|
|
6022c0f7d7 | ||
|
|
5ed8be9998 | ||
|
|
4357fe1ba9 | ||
|
|
0548744e94 | ||
|
|
8b2d115335 | ||
|
|
a64db76b4d | ||
|
|
094735566d | ||
|
|
f7b1f9f0dc | ||
|
|
ce25011f0d | ||
|
|
c464f5e7dc | ||
|
|
f85034eb27 | ||
|
|
849755ecd2 | ||
|
|
9217275908 | ||
|
|
00bc3c86b1 | ||
|
|
9e13ca45e6 | ||
|
|
46c38a28eb | ||
|
|
76bbcf2f8c | ||
|
|
ee7e8aa782 | ||
|
|
ba605495ac | ||
|
|
fd0abc250d | ||
|
|
847f9fc8d1 | ||
|
|
748847d5bf | ||
|
|
046e98565e | ||
|
|
71eddc89ea | ||
|
|
9730a424ec | ||
|
|
7b260cdafc | ||
|
|
4369095a51 | ||
|
|
1c706e8c45 | ||
|
|
91029b73e5 | ||
|
|
de4b42a11e | ||
|
|
03230b6386 | ||
|
|
4dbf2796c0 | ||
|
|
03892f5ef1 | ||
|
|
fdf3f86ab0 | ||
|
|
7b15ad5989 | ||
|
|
443f2ca556 | ||
|
|
fa692ccc0b | ||
|
|
0c3d8af8f4 | ||
|
|
3a20c11331 | ||
|
|
aa8c9c350e | ||
|
|
139329233a | ||
|
|
d79996aeea | ||
|
|
fb839084fe | ||
|
|
dea9dde637 | ||
|
|
ebc657dcc6 | ||
|
|
80506856fb | ||
|
|
93a0e45c34 | ||
|
|
3cb2b95121 | ||
|
|
a04869ab27 | ||
|
|
c69b1185d3 | ||
|
|
ad7466a026 | ||
|
|
54dad2a604 | ||
|
|
d5899fae83 | ||
|
|
5d44bfabed | ||
|
|
b6c8be5f43 | ||
|
|
b2abfc5710 | ||
|
|
a9b328ff3c | ||
|
|
0870403299 | ||
|
|
f07b78bd0d | ||
|
|
b2497386bb | ||
|
|
f8558b98c1 | ||
|
|
84ac5f3952 | ||
|
|
404800c556 | ||
|
|
415385b747 | ||
|
|
f7dbaca340 | ||
|
|
32b4c6ce86 | ||
|
|
a3c36d4bde | ||
|
|
fc4703ef80 | ||
|
|
a301b2c758 | ||
|
|
e27682abd3 | ||
|
|
df922a0e3e | ||
|
|
51c83d958c | ||
|
|
17139ce439 | ||
|
|
61652a0306 | ||
|
|
113b97b9c9 | ||
|
|
2784730f7f | ||
|
|
1a9216b522 | ||
|
|
08fc732b7b | ||
|
|
54baf687ec | ||
|
|
8096cd803e | ||
|
|
27b0d606c8 | ||
|
|
af220e497f | ||
|
|
892b2487f5 | ||
|
|
7971c02dc5 | ||
|
|
c1d8272b49 | ||
|
|
bce5dd26f3 | ||
|
|
04e97f3516 | ||
|
|
7eed033c9e | ||
|
|
a2fe1a8757 | ||
|
|
9ee860c3f0 | ||
|
|
1dbe9537e9 | ||
|
|
775f4ce69a | ||
|
|
e83beeef34 | ||
|
|
e77cfff892 | ||
|
|
9495432b8f | ||
|
|
d71c334a34 | ||
|
|
aa8cc90ad0 | ||
|
|
589041556e | ||
|
|
85354f2722 | ||
|
|
c0c5535005 | ||
|
|
e126cf9f4e | ||
|
|
c2d23b37a7 | ||
|
|
3a968d707f | ||
|
|
b07c44c8b4 | ||
|
|
43b0a58649 | ||
|
|
f258e93cf7 | ||
|
|
93138b04cb | ||
|
|
0cf54ec9c2 | ||
|
|
ce031cf7bd | ||
|
|
e6495bc7c0 | ||
|
|
1b196bf0fb | ||
|
|
dbed24aaca | ||
|
|
48a7a21aca | ||
|
|
f595afab18 | ||
|
|
0aca00b245 | ||
|
|
9af58d3abf | ||
|
|
dd5ef3696f | ||
|
|
03d49bac53 | ||
|
|
6c082a10b1 | ||
|
|
77944e195a | ||
|
|
6ebfdef025 | ||
|
|
bc39a6741c | ||
|
|
bda7e08208 | ||
|
|
aa69dd381f | ||
|
|
1fd8a8e0a6 | ||
|
|
1329fa1b09 | ||
|
|
b550f38eed | ||
|
|
ae7b912ac8 | ||
|
|
af9478922e | ||
|
|
7acea29cdb | ||
|
|
6082eb21e3 | ||
|
|
a91cda4995 | ||
|
|
7959654dc8 | ||
|
|
dc9a85ca98 | ||
|
|
591ed50ac3 | ||
|
|
47350328e6 | ||
|
|
75ed749cb3 | ||
|
|
f44ea8b749 | ||
|
|
76c0071f57 | ||
|
|
2a396b4438 | ||
|
|
51a54863c5 | ||
|
|
06f986b92e | ||
|
|
652ceba845 | ||
|
|
16d0f54d8f | ||
|
|
872cce784a | ||
|
|
aec3ad382a | ||
|
|
9d4f9ef73c | ||
|
|
cf7cafc261 | ||
|
|
e3bff7e87c | ||
|
|
4b19421075 | ||
|
|
cf371e8093 | ||
|
|
5eeadc6399 | ||
|
|
f6823ea3d1 | ||
|
|
f24290c423 | ||
|
|
f8a36885fe | ||
|
|
a555eff2cc | ||
|
|
05c389623c | ||
|
|
bf00f5e9a2 | ||
|
|
7685c4d5d5 | ||
|
|
e701ec9617 | ||
|
|
6c1ee096a1 | ||
|
|
2df282222f | ||
|
|
43c7bd48c7 | ||
|
|
86579068d9 | ||
|
|
8e6ab9aa35 | ||
|
|
77566a887a | ||
|
|
9d0eca1914 | ||
|
|
79a3164d9d | ||
|
|
eb73e48192 | ||
|
|
cd6af7f185 | ||
|
|
3d6020b9cf | ||
|
|
461f03aac0 | ||
|
|
35149f8837 | ||
|
|
c0d01f32a6 | ||
|
|
83a0459b6a | ||
|
|
50f6dcef2f | ||
|
|
5c514fd663 | ||
|
|
1c2196f78f | ||
|
|
43cc3c40f3 | ||
|
|
7a6a4cf59d | ||
|
|
3bcf375204 | ||
|
|
a175bdc1c7 | ||
|
|
b557b437a3 | ||
|
|
d1f0b59b5d | ||
|
|
3ece3a1f2b | ||
|
|
1f1a85de18 | ||
|
|
e08c9dafa6 | ||
|
|
ad27607ccc | ||
|
|
c1bcca4432 | ||
|
|
9f2ed694ce | ||
|
|
edadd8f2fd | ||
|
|
afa08713e0 | ||
|
|
d23620727e | ||
|
|
b456c6ad3b | ||
|
|
0298b53803 | ||
|
|
bfd6e4af3f | ||
|
|
31612aae4a | ||
|
|
219367e7c1 | ||
|
|
7b64f10fc7 | ||
|
|
1ad1744054 | ||
|
|
7b825f2cd7 | ||
|
|
3759fce090 | ||
|
|
470521f7c8 | ||
|
|
a070dffb93 | ||
|
|
9e7bc94aab | ||
|
|
033d0113a5 | ||
|
|
d0a53ed2df | ||
|
|
49b80e9fe3 | ||
|
|
d5f5ddbec5 | ||
|
|
17c7dd658d | ||
|
|
ca19ecaefc | ||
|
|
c149f00f82 | ||
|
|
b041d59fc7 | ||
|
|
b983d5904b | ||
|
|
8b15053dd4 | ||
|
|
e15815cd97 | ||
|
|
94a64d8fae | ||
|
|
fd7088de1a | ||
|
|
7d4946560d | ||
|
|
b7c9647e1a | ||
|
|
36b9f64aae | ||
|
|
60a72b2ba4 | ||
|
|
f830f73ae6 | ||
|
|
95f51e1126 | ||
|
|
8916f55d52 | ||
|
|
4aaef9558a | ||
|
|
0b78664792 | ||
|
|
db5d4d5158 | ||
|
|
0dfd8b6453 | ||
|
|
11a2fb1088 | ||
|
|
40feeff442 | ||
|
|
a0a2976e0a | ||
|
|
741f3cbdcc | ||
|
|
a6965c4b5a | ||
|
|
19b05e632c | ||
|
|
8610b47a68 | ||
|
|
2ab8890540 | ||
|
|
5de5a519c3 | ||
|
|
0d193d3e9e | ||
|
|
622382f425 | ||
|
|
c1f09326cc | ||
|
|
ddbbba4aaa | ||
|
|
bcf7ea30c5 | ||
|
|
35e9fab701 | ||
|
|
864b6d313e | ||
|
|
d47d12e961 | ||
|
|
9f0e752318 | ||
|
|
34bd5ead15 | ||
|
|
1fd5dffdc7 | ||
|
|
6d7a900bbb | ||
|
|
fb4f921159 | ||
|
|
14cc701b25 | ||
|
|
d8c4113d24 | ||
|
|
9eb6bb7738 | ||
|
|
de96f8b9f9 | ||
|
|
e34975001c | ||
|
|
f3b282062b | ||
|
|
84732a24fa | ||
|
|
dad775b494 | ||
|
|
05ad3fcd5c | ||
|
|
6ae02d2d02 | ||
|
|
757a3114dc | ||
|
|
94b9878c6c | ||
|
|
7775b16199 | ||
|
|
f01d48f9ae | ||
|
|
179883094e | ||
|
|
971ccf9df4 | ||
|
|
07eb6bf88e | ||
|
|
5afd8174ca | ||
|
|
f1fea38712 | ||
|
|
f275c6e5e7 | ||
|
|
5ec25959df | ||
|
|
4f270f3aab | ||
|
|
4028dd3009 | ||
|
|
706b04610d | ||
|
|
014e3baea0 | ||
|
|
92ca7c935a | ||
|
|
5c9b1c9a3d | ||
|
|
5ebee60c97 | ||
|
|
3337a9cbab | ||
|
|
54975eb812 | ||
|
|
537531803a | ||
|
|
f4b640126b | ||
|
|
1de3251127 | ||
|
|
7e98076e4a | ||
|
|
c58c55b752 | ||
|
|
928be5717f | ||
|
|
ccbaa926ce | ||
|
|
d1208d7d19 | ||
|
|
099fe59a97 | ||
|
|
889acaec82 | ||
|
|
c42e9d4c5c | ||
|
|
4378e5295d | ||
|
|
73a427f6aa | ||
|
|
abfee70eb3 | ||
|
|
77cdbf8dd6 | ||
|
|
28bc68c916 | ||
|
|
ecb64cc2ec | ||
|
|
23706a1ba9 | ||
|
|
d3f406a34a | ||
|
|
55afc7eb33 | ||
|
|
7a70d12efd | ||
|
|
1ecaf6f8d5 | ||
|
|
e01cdbb091 | ||
|
|
b88b5a2601 | ||
|
|
e7476edd68 | ||
|
|
cbbeb412f9 | ||
|
|
f544890f00 | ||
|
|
72560fa6d0 | ||
|
|
4637ff78c0 | ||
|
|
501aff41ea | ||
|
|
449b1bfe9e | ||
|
|
4a8358ecb4 | ||
|
|
8f74e4dd31 | ||
|
|
2b35d9f012 | ||
|
|
35001107e0 | ||
|
|
a7d7b90ae8 | ||
|
|
119ba7ef8b | ||
|
|
28bbe9c646 | ||
|
|
8739c04024 | ||
|
|
57240d25b9 | ||
|
|
15ea5440a3 | ||
|
|
1e60d1c265 | ||
|
|
b7cd097c43 | ||
|
|
6c934b02e6 | ||
|
|
fcb9b40b43 | ||
|
|
7a6884e4b1 | ||
|
|
e86698cfeb | ||
|
|
53650aefa6 | ||
|
|
1d80a0cad1 | ||
|
|
f6d27a0f43 | ||
|
|
f71aa9dd21 | ||
|
|
1cb5394e96 | ||
|
|
2b2dbd25f7 | ||
|
|
dd4cd0eeb1 | ||
|
|
ee7b0cf730 | ||
|
|
95ef5d6348 | ||
|
|
23192b9ef6 | ||
|
|
7cd98c8a63 | ||
|
|
fca7686701 | ||
|
|
be767478f4 | ||
|
|
b3ad5d90ed | ||
|
|
fb093b7411 | ||
|
|
e4ea3110e3 | ||
|
|
79676c4f72 | ||
|
|
d61827b92c | ||
|
|
1f1f46c70f | ||
|
|
9188e4a7ec | ||
|
|
e5a780eb0c | ||
|
|
d8c85a2b15 | ||
|
|
83080bc5a2 | ||
|
|
233bfc59ac | ||
|
|
c606caf3a3 | ||
|
|
efdf69552f | ||
|
|
38531bf95c | ||
|
|
6d714db928 | ||
|
|
f8e7497695 | ||
|
|
d6ef812704 | ||
|
|
4f81bc9621 | ||
|
|
59276ce2a5 | ||
|
|
96791bd72b | ||
|
|
8756b22f5a | ||
|
|
487d256f46 | ||
|
|
fe0b6aaba4 | ||
|
|
017c8a6900 | ||
|
|
afe4af0dc2 | ||
|
|
fb8e4430ac | ||
|
|
7499f5dbfa | ||
|
|
c7b58aa65b | ||
|
|
705d9b8238 | ||
|
|
1bc650b0f9 | ||
|
|
580aeea4e2 | ||
|
|
8495824843 | ||
|
|
18bb3611fa | ||
|
|
9f7bf8d1a2 | ||
|
|
82146eda3d | ||
|
|
d75881e1a3 | ||
|
|
5be967e8c5 | ||
|
|
d9fa875d84 | ||
|
|
04f93c98d2 | ||
|
|
402f6c19e7 | ||
|
|
84b0df0437 | ||
|
|
9f4a7f7623 | ||
|
|
10012c1e16 | ||
|
|
d65f8856f4 | ||
|
|
d79d8fbbea | ||
|
|
772590c41c | ||
|
|
d9c71bddb8 | ||
|
|
29ce2401ca | ||
|
|
720ef38886 | ||
|
|
728ab6c8c1 | ||
|
|
935028addc | ||
|
|
e70e22d557 | ||
|
|
f3db4b5cb0 | ||
|
|
d60fc06379 | ||
|
|
a813260717 | ||
|
|
10d01df7dd | ||
|
|
8eb075fa86 | ||
|
|
c2e7bfa641 | ||
|
|
2f23244937 | ||
|
|
9ecea9e1d5 | ||
|
|
61b34e835e | ||
|
|
4e2b83c052 | ||
|
|
45ee4755a6 | ||
|
|
59281afe90 | ||
|
|
cf5a63a5d5 | ||
|
|
96869074c3 | ||
|
|
c107d5fa7f | ||
|
|
bed56e8891 | ||
|
|
c4b641e62a | ||
|
|
153d710eb4 | ||
|
|
83471e0866 | ||
|
|
01b9843883 | ||
|
|
749af89e9f | ||
|
|
27b61a2770 | ||
|
|
eb3b6346bb | ||
|
|
2e9a0de4a1 | ||
|
|
f83e3cc3e7 | ||
|
|
a8f4659552 | ||
|
|
25a5c3dec9 | ||
|
|
c49cb4a213 | ||
|
|
c4dbbc2d1e | ||
|
|
fe3d6f57af | ||
|
|
052af2f9bf | ||
|
|
16da9f52ac | ||
|
|
22a342d36d | ||
|
|
4fcf32b5e9 | ||
|
|
5bdb455bc0 | ||
|
|
1cb74f0ea7 | ||
|
|
c7e8c95640 | ||
|
|
ccb322d08e | ||
|
|
b27e0f2d21 | ||
|
|
6a715d87dd | ||
|
|
6138b78c07 | ||
|
|
f84ef48819 | ||
|
|
cda27944b6 | ||
|
|
c9281f734b | ||
|
|
f378ea0d2e | ||
|
|
40c37b5c06 | ||
|
|
57b7db6956 | ||
|
|
b4f5c2c0a1 | ||
|
|
f6903cf582 | ||
|
|
3816385228 | ||
|
|
f65085946c | ||
|
|
b10b746d9e | ||
|
|
ed5945e182 | ||
|
|
cf48a13fc7 | ||
|
|
29d9bbad32 | ||
|
|
004f42bf6e | ||
|
|
41e0d105f6 | ||
|
|
fdd61963e6 | ||
|
|
10cbd4d3c4 | ||
|
|
64af7800dc | ||
|
|
c428982c00 | ||
|
|
1363bc3f43 | ||
|
|
09ddfe4250 | ||
|
|
e13de0950c | ||
|
|
c1ac78eea4 | ||
|
|
21de95e0a6 | ||
|
|
0593bb9c53 | ||
|
|
bd1ce26dc7 | ||
|
|
2612e7c23a | ||
|
|
93ca7abc1a | ||
|
|
de4af14676 | ||
|
|
c9a6c0ffcc | ||
|
|
d414806fa2 | ||
|
|
d54c129c57 | ||
|
|
7c848153f8 | ||
|
|
4e36c2f82d | ||
|
|
b5c71bc59c | ||
|
|
d20724d7b2 | ||
|
|
1cca5ee5cb |
17
.github/CODEOWNERS
vendored
17
.github/CODEOWNERS
vendored
@@ -9,23 +9,27 @@ redbot/core/config.py @tekulvw
|
||||
redbot/core/cog_manager.py @tekulvw
|
||||
redbot/core/core_commands.py @tekulvw
|
||||
redbot/core/context.py @Tobotimus
|
||||
redbot/core/commands/* @mikeshardmind
|
||||
redbot/core/data_manager.py @tekulvw
|
||||
redbot/core/dev_commands.py @tekulvw
|
||||
redbot/core/drivers/* @tekulvw
|
||||
redbot/core/events.py @tekulvw
|
||||
redbot/core/global_checks.py @tekulvw
|
||||
redbot/core/i18n.py @tekulvw
|
||||
redbot/core/json_io.py @tekulvw
|
||||
redbot/core/modlog.py @palmtree5
|
||||
redbot/core/rpc.py @tekulvw
|
||||
redbot/core/sentry_setup.py @Kowlin @tekulvw
|
||||
redbot/core/utils/chat_formatting.py @tekulvw
|
||||
redbot/core/utils/mod.py @palmtree5
|
||||
redbot/core/utils/data_converter.py @mikeshardmind
|
||||
redbot/core/utils/antispam.py @mikeshardmind
|
||||
redbot/core/utils/tunnel.py @mikeshardmind
|
||||
redbot/core/utils/caching.py @mikeshardmind
|
||||
redbot/core/utils/common_filters.py @mikeshardmind
|
||||
|
||||
# Cogs
|
||||
redbot/cogs/admin/* @tekulvw
|
||||
redbot/cogs/alias/* @tekulvw
|
||||
redbot/cogs/audio/* @tekulvw
|
||||
redbot/cogs/audio/* @aikaterna
|
||||
redbot/cogs/bank/* @tekulvw
|
||||
redbot/cogs/cleanup/* @palmtree5
|
||||
redbot/cogs/customcom/* @palmtree5
|
||||
@@ -38,6 +42,9 @@ redbot/cogs/mod/* @palmtree5
|
||||
redbot/cogs/modlog/* @palmtree5
|
||||
redbot/cogs/streams/* @Twentysix26 @palmtree5
|
||||
redbot/cogs/trivia/* @Tobotimus
|
||||
redbot/cogs/reports/* @mikeshardmind
|
||||
redbot/cogs/permissions/* @mikeshardmind
|
||||
redbot/cogs/warnings/* @palmtree5
|
||||
|
||||
# Docs
|
||||
docs/* @tekulvw @palmtree5
|
||||
@@ -47,3 +54,7 @@ setup.py @tekulvw
|
||||
redbot/__init__.py @tekulvw
|
||||
redbot/__main__.py @tekulvw
|
||||
redbot/setup.py @tekulvw
|
||||
|
||||
# Others
|
||||
.travis.yml @Kowlin
|
||||
crowdin.yml @Kowlin
|
||||
|
||||
121
.github/CONTRIBUTING.md
vendored
121
.github/CONTRIBUTING.md
vendored
@@ -1,23 +1,43 @@
|
||||
# Introduction
|
||||
### Welcome!
|
||||
First off, thank you for contributing to the further development of Red. We're always looking for new ways to improve our project and we appreciate any help you can give us.
|
||||
# Contents
|
||||
* [1. Introduction](#1-introduction)
|
||||
* [1.1 Why do these guidelines exist?](#11-why-do-these-guidelines-exist)
|
||||
* [1.2 What kinds of contributions are we looking for?](#12-what-kinds-of-contributions-are-we-looking-for)
|
||||
* [2. Ground Rules](#2-ground-rules)
|
||||
* [3. Your First Contribution](#3-your-first-contribution)
|
||||
* [4. Getting Started](#4-getting-started)
|
||||
* [4.1 Setting up your development environment](#41-setting-up-your-development-environment)
|
||||
* [4.2 Testing](#42-testing)
|
||||
* [4.3 Style](#43-style)
|
||||
* [4.4 Make](#44-make)
|
||||
* [4.5 Keeping your dependencies up to date](#45-keeping-your-dependencies-up-to-date)
|
||||
* [4.6 To contribute changes](#46-to-contribute-changes)
|
||||
* [4.7 How To Report A Bug](#47-how-to-report-a-bug)
|
||||
* [4.8 How To Suggest A Feature Or Enhancement](#48-how-to-suggest-a-feature-or-enhancement)
|
||||
* [5. Code Review Process](#5-code-review-process)
|
||||
* [5.1 Issues](#51-issues)
|
||||
* [5.2 Pull Requests](#52-pull-requests)
|
||||
* [5.3 Differences between "new features" and "improvements"](#53-differences-between-new-features-and-improvements)
|
||||
* [6. Community](#6-community)
|
||||
|
||||
### Why do these guidelines exist?
|
||||
# 1. Introduction
|
||||
**Welcome!** First off, thank you for contributing to the further development of Red. We're always looking for new ways to improve our project and we appreciate any help you can give us.
|
||||
|
||||
### 1.1 Why do these guidelines exist?
|
||||
Red is an open source project. This means that each and every one of the developers and contributors who have helped make Red what it is today have done so by volunteering their time and effort. It takes a lot of time to coordinate and organize issues and new features and to review and test pull requests. By following these guidelines you will help the developers streamline the contribution process and save them time. In doing so we hope to get back to each and every issue and pull request in a timely manner.
|
||||
|
||||
### What kinds of contributions are we looking for?
|
||||
### 1.2 What kinds of contributions are we looking for?
|
||||
We love receiving contributions from our community. Any assistance you can provide with regards to bug fixes, feature enhancements, and documentation is more than welcome.
|
||||
|
||||
# Ground Rules
|
||||
# 2. Ground Rules
|
||||
We've made a point to use [ZenHub](https://www.zenhub.com/) (a plugin for GitHub) as our main source of collaboration and coordination. Your experience contributing to Red will be greatly improved if you go get that plugin.
|
||||
1. Ensure cross compatibility for Windows, Mac OS and Linux.
|
||||
2. Ensure all Python features used in contributions exist and work in Python 3.5 and above.
|
||||
2. Ensure all Python features used in contributions exist and work in Python 3.7 and above.
|
||||
3. Create new tests for code you add or bugs you fix. It helps us help you by making sure we don't accidentally break anything :grinning:
|
||||
4. Create any issues for new features you'd like to implement and explain why this feature is useful to everyone and not just you personally.
|
||||
5. Don't add new cogs unless specifically given approval in an issue discussing said cog idea.
|
||||
6. Be welcoming to newcomers and encourage diverse new contributors from all backgrounds. See [Python Community Code of Conduct](https://www.python.org/psf/codeofconduct/).
|
||||
|
||||
# Your First Contribution
|
||||
# 3. Your First Contribution
|
||||
Unsure of how to get started contributing to Red? Please take a look at the Issues section of this repo and sort by the following labels:
|
||||
|
||||
* beginner - issues that can normally be fixed in just a few lines of code and maybe a test or two.
|
||||
@@ -27,35 +47,92 @@ Unsure of how to get started contributing to Red? Please take a look at the Issu
|
||||
|
||||
At this point you're ready to start making changes. Feel free to ask for help; everyone was a beginner at some point!
|
||||
|
||||
# Getting Started
|
||||
### Testing
|
||||
We've recently started adding unit-testing into Red. All current tests can be found in the `tests/` directory at the root level of the repository. You will need `py.test` installed in order to run them (which is already in `requirement.txt`). Tests can be run by simply calling `pytest` once you've `cd`'d into the Red repository folder.
|
||||
# 4. Getting Started
|
||||
|
||||
### To contribute changes
|
||||
1. Create your own fork of the Red repository.
|
||||
2. Make the changes in your own fork.
|
||||
Red's repository is configured to follow a particular development workflow, using various reputable tools. We kindly ask that you stick to this workflow when contributing to Red, by following the guides below. This will help you to easily produce quality code, identify errors early, and streamline the code review process.
|
||||
|
||||
### 4.1 Setting up your development environment
|
||||
The following requirements must be installed prior to setting up:
|
||||
- Python 3.7.0 or greater
|
||||
- git
|
||||
- pip
|
||||
|
||||
If you're not on Windows, you should also have GNU make installed, and you can optionally install [pyenv](https://github.com/pyenv/pyenv), which can help you run tests for different python versions.
|
||||
|
||||
1. Fork and clone the repository to a directory on your local machine.
|
||||
2. Open a command line in that directory and execute the following command:
|
||||
```bash
|
||||
make newenv
|
||||
```
|
||||
Red, its dependencies, and all required development tools, are now installed to a virtual environment located in the `.venv` subdirectory. Red is installed in editable mode, meaning that edits you make to the source code in the repository will be reflected when you run Red.
|
||||
3. Activate the new virtual environment with one of the following commands:
|
||||
- Posix:
|
||||
```bash
|
||||
source .venv/bin/activate
|
||||
```
|
||||
- Windows:
|
||||
```powershell
|
||||
.venv\Scripts\activate
|
||||
```
|
||||
Each time you open a new command line, you should execute this command first. From here onwards, we will assume you are executing commands from within this activated virtual environment.
|
||||
|
||||
**Note:** If you're comfortable with setting up virtual environments yourself and would rather do it manually, just run `pip install -Ur tools/dev-requirements.txt` after setting it up.
|
||||
|
||||
### 4.2 Testing
|
||||
We've recently started using [tox](https://github.com/tox-dev/tox) to run all of our tests. It's extremely simple to use, and if you followed the previous section correctly, it is already installed to your virtual environment.
|
||||
|
||||
Currently, tox does the following, creating its own virtual environments for each stage:
|
||||
- Runs all of our unit tests with [pytest](https://github.com/pytest-dev/pytest) on python 3.7 (test environment `py37`)
|
||||
- Ensures documentation builds without warnings, and all hyperlinks have a valid destination (test environment `docs`)
|
||||
- Ensures that the code meets our style guide with [black](https://github.com/ambv/black) (test environment `style`)
|
||||
|
||||
To run all of these tests, just run the command `tox` in the project directory.
|
||||
|
||||
To run a subset of these tests, use the command `tox -e <env>`, where `<env>` is the test environment you want tox to run. The test environments are noted in the dot points above.
|
||||
|
||||
Your PR will not be merged until all of these tests pass.
|
||||
|
||||
### 4.3 Style
|
||||
Our style checker of choice, [black](https://github.com/ambv/black), actually happens to be an auto-formatter. The checking functionality simply detects whether or not it would try to reformat something in your code, should you run the formatter on it. For this reason, we recommend using this tool as a formatter, regardless of any disagreements you might have with the style it enforces.
|
||||
|
||||
Use the command `black --help` to see how to use this tool. The full style guide is explained in detail on [black's GitHub repository](https://github.com/ambv/black). **There is one exception to this**, however, which is that we set the line length to 99, instead of black's default 88. When using `black` on the command line, simply use it like so: `black -l 99 -N <src>`.
|
||||
|
||||
### 4.4 Make
|
||||
You may have noticed we have a `Makefile` and a `make.bat` in the top-level directory. For now, you can do three things with them:
|
||||
1. `make reformat`: Reformat all python files in the project with Black
|
||||
2. `make stylecheck`: Check if any `.py` files in the project need reformatting
|
||||
3. `make newenv`: Set up a new virtual environment in the `.venv` subdirectory, and install Red and its dependencies. If one already exists, it is cleared out and replaced.
|
||||
4. `make syncenv`: Sync your environment with Red's latest dependencies.
|
||||
|
||||
### 4.5 Keeping your dependencies up to date
|
||||
Whenever you pull from upstream (V3/develop on the main repository) and you notice either of the files `setup.cfg` or `tools/dev-requirements.txt` have been changed, it can often mean some package dependencies have been updated, added or removed. To make sure you're testing and formatting with the most up-to-date versions of our dependencies, run `make syncenv`. You could also simply do `make newenv` to install them to a clean new virtual environment.
|
||||
|
||||
### 4.6 To contribute changes
|
||||
|
||||
1. Create a new branch on your fork
|
||||
2. Make the changes
|
||||
3. If you like the changes and think the main Red project could use it:
|
||||
* Ensure your code follows (generally) the PEP8 Python style guide
|
||||
* Run tests with `tox` to ensure your code is up to scratch
|
||||
* Create a Pull Request on GitHub with your changes
|
||||
|
||||
### How To Report A Bug
|
||||
### 4.7 How To Report A Bug
|
||||
Please see our **ISSUES.MD** for more information.
|
||||
|
||||
### How To Suggest A Feature Or Enhancement
|
||||
### 4.8 How To Suggest A Feature Or Enhancement
|
||||
The goal of Red is to be as useful to as many people as possible, this means that all features must be useful to anyone and any server that uses Red.
|
||||
|
||||
If you find yourself wanting a feature that Red does not already have, you're probably not alone. There's bound to be a great number of users out there needing the same thing and a lot of the features that Red has today have been added because of the needs of our users. Open an issue on our issues list and describe the feature you would like to see, how you would use it, how it should work, and why it would be useful to the Red community as a whole.
|
||||
|
||||
# Code Review Process
|
||||
# 5. Code Review Process
|
||||
|
||||
We have a core team working tirelessly to implement new features and fix bugs for the Red community. This core team looks at and evaluates new issues and PRs on a daily basis.
|
||||
|
||||
The decisions we make are based on a simple majority of that team or by decree of the project owner.
|
||||
|
||||
### Issues
|
||||
### 5.1 Issues
|
||||
Any new issues will be looked at and evaluated for validity of a bug or for the usefulness of a suggested feature. If we have questions about your issue we will get back as soon as we can (usually in a day or two) and will try to make a decision within a week.
|
||||
|
||||
### Pull Requests
|
||||
### 5.2 Pull Requests
|
||||
Pull requests are evaluated by their quality and how effectively they solve their corresponding issue. The process for reviewing pull requests is as follows:
|
||||
|
||||
1. A pull request is submitted
|
||||
@@ -66,10 +143,10 @@ Pull requests are evaluated by their quality and how effectively they solve thei
|
||||
4. If any feedback is given we expect a response within 1 week or we may decide to close the PR.
|
||||
5. If your pull request is not vetoed and no core member requests changes then it will be approved and merged into the project.
|
||||
|
||||
### Differences between "new features" and "improvements"
|
||||
### 5.3 Differences between "new features" and "improvements"
|
||||
The difference between a new feature and improvement can be quite fuzzy and the project owner reserves all rights to decide under which category your PR falls.
|
||||
|
||||
At a very basic level a PR is a new feature if it changes the intended way any part of the Red project currently works or if it modifies the user experience (UX) in any significant way. Otherwise, it is likely to be considered an improvement.
|
||||
|
||||
# Community
|
||||
# 6. Community
|
||||
You can chat with the core team and other community members about issues or pull requests in the #coding channel of the Red support server located [here](https://discord.gg/red).
|
||||
|
||||
3
.github/FUNDING.yml
vendored
Normal file
3
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
patreon: Red_Devs
|
||||
25
.github/ISSUE_TEMPLATE.md
vendored
25
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,20 +1,5 @@
|
||||
Please be sure to read through other issues as well to make sure what you are suggesting/reporting has not already
|
||||
been suggested/reported
|
||||
|
||||
### Type:
|
||||
|
||||
- [ ] Suggestion
|
||||
- [ ] Bug
|
||||
|
||||
### Brief description of the problem
|
||||
|
||||
### Expected behavior
|
||||
|
||||
### Actual behavior
|
||||
|
||||
### Steps to reproduce
|
||||
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
<!--
|
||||
Please be sure to use the correct template,
|
||||
if your report doesn't have the correct template please open an issue describing your issue in detail
|
||||
For support regarding the bot itself please visit the discord server over at https://discord.gg/red
|
||||
-->
|
||||
|
||||
20
.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
Please be sure to read through other issues as well to make sure what you are suggesting/reporting has not already
|
||||
been suggested/reported
|
||||
|
||||
### Type:
|
||||
|
||||
- [ ] Suggestion
|
||||
- [ ] Bug
|
||||
|
||||
### Brief description of the problem
|
||||
|
||||
### Expected behavior
|
||||
|
||||
### Actual behavior
|
||||
|
||||
### Steps to reproduce
|
||||
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
31
.github/ISSUE_TEMPLATE/command_bug.md
vendored
Normal file
31
.github/ISSUE_TEMPLATE/command_bug.md
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
name: Bug reports for commands
|
||||
about: For bugs that involve commands found within Red
|
||||
|
||||
---
|
||||
|
||||
# Command bugs
|
||||
|
||||
<!--
|
||||
Did you find a bug with a command? Fill out the following:
|
||||
-->
|
||||
|
||||
#### Command name
|
||||
|
||||
<!-- Replace this line with the name of the command -->
|
||||
|
||||
#### What cog is this command from?
|
||||
|
||||
<!-- Replace this line with the name of the cog -->
|
||||
|
||||
#### What were you expecting to happen?
|
||||
|
||||
<!-- Replace this line with a description of what you were expecting to happen -->
|
||||
|
||||
#### What actually happened?
|
||||
|
||||
<!-- Replace this line with a description of what actually happened. Include any error messages -->
|
||||
|
||||
#### How can we reproduce this issue?
|
||||
|
||||
<!-- Replace with numbered steps to reproduce the issue -->
|
||||
41
.github/ISSUE_TEMPLATE/feature_req.md
vendored
Normal file
41
.github/ISSUE_TEMPLATE/feature_req.md
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: For feature requests regarding Red itself.
|
||||
|
||||
---
|
||||
|
||||
# Feature request
|
||||
|
||||
<!-- This template is for feature requests. Please fill out the following: -->
|
||||
|
||||
|
||||
#### Select the type of feature you are requesting:
|
||||
|
||||
<!-- To check a box, replace the space between the [] with a x -->
|
||||
|
||||
- [ ] Cog
|
||||
- [ ] Command
|
||||
- [ ] API functionality
|
||||
|
||||
#### Describe your requested feature
|
||||
|
||||
<!--
|
||||
Feel free to describe in as much detail as you wish.
|
||||
|
||||
If you are requesting a cog to be included in core:
|
||||
- Describe the functionality in as much detail as possible
|
||||
- Include the command structure, if possible
|
||||
- Please note that unless it's something that should be core functionality,
|
||||
we reserve the right to reject your suggestion and point you to our cog
|
||||
board to request it for a third-party cog
|
||||
|
||||
If you are requesting a command:
|
||||
- Include what cog it should be in and a name for the command
|
||||
- Describe the intended functionality for the command
|
||||
- Note any restrictions on who can use the command or where it can be used
|
||||
|
||||
If you are requesting API functionality:
|
||||
- Describe what it should do
|
||||
- Note whether it is to extend existing functionality or introduce new functionality
|
||||
|
||||
-->
|
||||
27
.github/ISSUE_TEMPLATE/other_bug.md
vendored
Normal file
27
.github/ISSUE_TEMPLATE/other_bug.md
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: For bugs that don't involve a command.
|
||||
|
||||
---
|
||||
|
||||
# Other bugs
|
||||
|
||||
<!--
|
||||
Did you find a bug with something other than a command? Fill out the following:
|
||||
-->
|
||||
|
||||
#### What were you trying to do?
|
||||
|
||||
<!-- Replace this line with a description of what you were trying to do -->
|
||||
|
||||
#### What were you expecting to happen?
|
||||
|
||||
<!-- Replace this line with a description of what you were expecting to happen -->
|
||||
|
||||
#### What actually happened?
|
||||
|
||||
<!-- Replace this line with a description of what actually happened. Include any error messages -->
|
||||
|
||||
#### How can we reproduce this issue?
|
||||
|
||||
<!-- Replace with numbered steps to reproduce the issue -->
|
||||
7
.github/PULL_REQUEST_TEMPLATE/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
7
.github/PULL_REQUEST_TEMPLATE/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
### Type
|
||||
|
||||
- [ ] Bugfix
|
||||
- [ ] Enhancement
|
||||
- [ ] New feature
|
||||
|
||||
### Description of the changes
|
||||
15
.github/PULL_REQUEST_TEMPLATE/bugfix.md
vendored
Normal file
15
.github/PULL_REQUEST_TEMPLATE/bugfix.md
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
# Bugfix request
|
||||
|
||||
<!--
|
||||
THIS TEMPLATE IS CURRENTLY UNUSED DUE TO GITHUB LIMITATIONS!
|
||||
To be used for pull requests that fix a bug
|
||||
-->
|
||||
|
||||
#### Describe the bug being fixed
|
||||
|
||||
<!--
|
||||
If an issue exists for the bug, mention
|
||||
that this PR fixes that issue
|
||||
-->
|
||||
|
||||
#### Anything we need to know about this fix?
|
||||
21
.github/PULL_REQUEST_TEMPLATE/enhancement.md
vendored
Normal file
21
.github/PULL_REQUEST_TEMPLATE/enhancement.md
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
# Enhancement request
|
||||
|
||||
<!--
|
||||
THIS TEMPLATE IS CURRENTLY UNUSED DUE TO GITHUB LIMITATIONS!
|
||||
To be used for PRs which enhance existing features
|
||||
-->
|
||||
|
||||
#### Describe the enhancement
|
||||
|
||||
<!--
|
||||
Describe what your changes do.
|
||||
If adding commands, describe any restrictions on their usage.
|
||||
- For example, who can use the command? Where can it be used?
|
||||
-->
|
||||
|
||||
#### Does this enhancement break existing functionality?
|
||||
|
||||
<!-- To check a box, replace the space between the [] with a x -->
|
||||
|
||||
- [ ] Yes
|
||||
- [ ] No
|
||||
22
.github/PULL_REQUEST_TEMPLATE/new_feature.md
vendored
Normal file
22
.github/PULL_REQUEST_TEMPLATE/new_feature.md
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
# New feature addition
|
||||
|
||||
<!--
|
||||
THIS TEMPLATE IS CURRENTLY UNUSED DUE TO GITHUB LIMITATIONS!
|
||||
To be used for PRs which add a new feature
|
||||
Examples of this include new APIs, new core cogs, etc.
|
||||
-->
|
||||
|
||||
#### What type of feature is this?
|
||||
|
||||
<!-- To check a box, replace the space between the [] with a x -->
|
||||
|
||||
- [ ] New core cog
|
||||
- [ ] New API
|
||||
- [ ] Other
|
||||
|
||||
#### Describe the feature
|
||||
|
||||
<!--
|
||||
If you are adding a cog, describe its commands in detail (functionality, usage restrictions, etc).
|
||||
If the new feature introduces new requirements, please try to explain why they are necessary.
|
||||
-->
|
||||
16
.github/PULL_REQUEST_TEMPLATE/release.md
vendored
Normal file
16
.github/PULL_REQUEST_TEMPLATE/release.md
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
# New release
|
||||
|
||||
<!--
|
||||
THIS TEMPLATE IS CURRENTLY UNUSED DUE TO GITHUB LIMITATIONS!
|
||||
To be used by collaborators for doing releases.
|
||||
Most contributors will not need to use this.
|
||||
-->
|
||||
|
||||
#### Version
|
||||
|
||||
|
||||
|
||||
#### Has a draft release been created for this?
|
||||
|
||||
- [ ] Yes
|
||||
- [ ] No
|
||||
6
.github/PULL_REQUEST_TEMPLATE/translations.md
vendored
Normal file
6
.github/PULL_REQUEST_TEMPLATE/translations.md
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
# Translations update
|
||||
|
||||
<!--
|
||||
THIS TEMPLATE IS CURRENTLY UNUSED DUE TO GITHUB LIMITATIONS!
|
||||
Used for PRs updating translations from Crowdin
|
||||
-->
|
||||
34
.gitignore
vendored
34
.gitignore
vendored
@@ -1,40 +1,18 @@
|
||||
# Trivia list repo injection
|
||||
redbot/trivia/
|
||||
|
||||
*.json
|
||||
*.exe
|
||||
*.dll
|
||||
*.pot
|
||||
.data
|
||||
!/tests/cogs/dataconverter/data/**/*.json
|
||||
Pipfile
|
||||
Pipfile.lock
|
||||
|
||||
### JetBrains template
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff:
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/dictionaries
|
||||
|
||||
# Sensitive or high-churn files:
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.xml
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
|
||||
# Gradle:
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# CMake
|
||||
cmake-build-debug/
|
||||
|
||||
# Mongo Explorer plugin:
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
## File-based project format:
|
||||
.idea/
|
||||
*.iws
|
||||
|
||||
## Plugin-specific files:
|
||||
@@ -156,3 +134,5 @@ ENV/
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
|
||||
# pytest
|
||||
.pytest_cache/
|
||||
|
||||
148
.pylintrc
Normal file
148
.pylintrc
Normal file
@@ -0,0 +1,148 @@
|
||||
[MASTER]
|
||||
|
||||
# Specify a configuration file.
|
||||
#rcfile=
|
||||
|
||||
# Add files or directories to the blacklist. They should be base names, not
|
||||
# paths.
|
||||
ignore=pytest
|
||||
|
||||
# Pickle collected data for later comparisons.
|
||||
persistent=no
|
||||
|
||||
# List of plugins (as comma separated values of python modules names) to load,
|
||||
# usually to register additional checkers.
|
||||
load-plugins=
|
||||
|
||||
# DO NOT CHANGE THIS VALUE # Use multiple processes to speed up Pylint.
|
||||
jobs=1
|
||||
|
||||
# Allow loading of arbitrary C extensions. Extensions are imported into the
|
||||
# active Python interpreter and may run arbitrary code.
|
||||
unsafe-load-any-extension=no
|
||||
|
||||
# A comma-separated list of package or module names from where C extensions may
|
||||
# be loaded. Extensions are loading into the active Python interpreter and may
|
||||
# run arbitrary code
|
||||
extension-pkg-whitelist=
|
||||
|
||||
# Allow optimization of some AST trees. This will activate a peephole AST
|
||||
# optimizer, which will apply various small optimizations. For instance, it can
|
||||
# be used to obtain the result of joining multiple strings with the addition
|
||||
# operator. Joining a lot of strings can lead to a maximum recursion error in
|
||||
# Pylint and this flag can prevent that. It has one side effect, the resulting
|
||||
# AST will be different than the one from reality.
|
||||
optimize-ast=no
|
||||
|
||||
|
||||
[MESSAGES CONTROL]
|
||||
|
||||
# Only show warnings with the listed confidence levels. Leave empty to show
|
||||
# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED
|
||||
confidence=
|
||||
|
||||
# Enable the message, report, category or checker with the given id(s). You can
|
||||
# either give multiple identifier separated by comma (,) or put this option
|
||||
# multiple time. See also the "--disable" option for examples.
|
||||
|
||||
|
||||
enable=all
|
||||
|
||||
disable=C, # black is enforcing this for us already, incompatibly
|
||||
W, # unbroaden this to the below specifics later on.
|
||||
W0107, # uneccessary pass is stylisitc in most places
|
||||
W0212, # Should likely refactor around protected access warnings later
|
||||
W1203, # fstrings are too fast to care about enforcing this.
|
||||
W0612, # unused vars can sometimes indicate an issue, but ...
|
||||
W1401, # Should probably fix the reason this is disabled (start up screen)
|
||||
W0511, # Nope, todos are fine for future people to see things to do.
|
||||
W0613, # Too many places where we need to take unused args do to d.py ... also menus
|
||||
W0221, # Overriden converters.
|
||||
W0223, # abstractmethod not defined in mixins is expected
|
||||
I, # ...
|
||||
R # While some of these have merit, It's too large a burden to enable this right now.
|
||||
|
||||
|
||||
[REPORTS]
|
||||
|
||||
output-format=parseable
|
||||
files-output=no
|
||||
reports=no
|
||||
|
||||
|
||||
[LOGGING]
|
||||
|
||||
# Logging modules to check that the string format arguments are in logging
|
||||
# function parameter format
|
||||
logging-modules=logging
|
||||
|
||||
|
||||
[TYPECHECK]
|
||||
|
||||
# Tells whether missing members accessed in mixin class should be ignored. A
|
||||
# mixin class is detected if its name ends with "mixin" (case insensitive).
|
||||
ignore-mixin-members=yes
|
||||
|
||||
# TODO: Write a plyint plugin to allow this with these mixin classes
|
||||
# To use the abstractmethod we know will be defined in the final class.
|
||||
ignored-classes=redbot.cogs.mod.movetocore.MoveToCore,
|
||||
redbot.cogs.mod.kickban.KickBanMixin,
|
||||
redbot.cogs.mod.mutes.MuteMixin,
|
||||
redbot.cogs.mod.names.ModInfo,
|
||||
redbot.cogs.mod.settings.ModSettings,
|
||||
redbot.cogs.mod.events.Events
|
||||
|
||||
ignored-modules=distutils # https://github.com/PyCQA/pylint/issues/73
|
||||
|
||||
|
||||
[VARIABLES]
|
||||
|
||||
# Tells whether we should check for unused import in __init__ files.
|
||||
init-import=no
|
||||
|
||||
# A regular expression matching the name of dummy variables (i.e. expectedly
|
||||
# not used).
|
||||
dummy-variables-rgx=_$|dummy
|
||||
|
||||
|
||||
[SIMILARITIES]
|
||||
|
||||
# Minimum lines number of a similarity.
|
||||
min-similarity-lines=4
|
||||
|
||||
# Ignore comments when computing similarities.
|
||||
ignore-comments=yes
|
||||
|
||||
# Ignore docstrings when computing similarities.
|
||||
ignore-docstrings=yes
|
||||
|
||||
# Ignore imports when computing similarities.
|
||||
ignore-imports=no
|
||||
|
||||
|
||||
[MISCELLANEOUS]
|
||||
|
||||
# List of note tags to take in consideration, separated by a comma.
|
||||
notes=FIXME,XXX,TODO
|
||||
|
||||
|
||||
[CLASSES]
|
||||
|
||||
# List of method names used to declare (i.e. assign) instance attributes.
|
||||
defining-attr-methods=__init__,__new__,__call__
|
||||
|
||||
# List of valid names for the first argument in a class method.
|
||||
valid-classmethod-first-arg=cls
|
||||
|
||||
# List of valid names for the first argument in a metaclass class method.
|
||||
valid-metaclass-classmethod-first-arg=mcs
|
||||
|
||||
# List of member names, which should be excluded from the protected access
|
||||
# warning.
|
||||
exclude-protected=
|
||||
|
||||
[EXCEPTIONS]
|
||||
|
||||
# Exceptions that will emit a warning when being caught. Defaults to
|
||||
# "Exception"
|
||||
overgeneral-exceptions=Exception,discord.DiscordException
|
||||
17
.readthedocs.yml
Normal file
17
.readthedocs.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
version: 2
|
||||
|
||||
formats:
|
||||
- pdf
|
||||
|
||||
build:
|
||||
image: latest
|
||||
|
||||
python:
|
||||
version: 3.7
|
||||
install:
|
||||
- requirements: docs/requirements.txt
|
||||
- method: pip
|
||||
path: .
|
||||
extra_requirements:
|
||||
- docs
|
||||
- mongo
|
||||
66
.travis.yml
66
.travis.yml
@@ -1,42 +1,60 @@
|
||||
dist: trusty
|
||||
dist: xenial
|
||||
language: python
|
||||
cache: pip
|
||||
notifications:
|
||||
email: false
|
||||
|
||||
python:
|
||||
- 3.5.3
|
||||
- 3.6.1
|
||||
- 3.7.2
|
||||
env:
|
||||
global:
|
||||
- PIPENV_IGNORE_VIRTUALENVS=1
|
||||
matrix:
|
||||
- TOXENV=py
|
||||
- TOXENV=docs
|
||||
- TOXENV=style
|
||||
|
||||
install:
|
||||
- echo "pytest>3" >> requirements.txt
|
||||
- echo "pytest-asyncio" >> requirements.txt
|
||||
- echo "git+https://github.com/Rapptz/discord.py.git@rewrite#egg=discord.py[voice]"
|
||||
>> requirements.txt
|
||||
- pip install -r requirements.txt
|
||||
- pip install .
|
||||
- pip install --upgrade pip tox
|
||||
|
||||
script:
|
||||
- python -m compileall ./redbot/cogs
|
||||
- python -m pytest
|
||||
before_deploy:
|
||||
- curl https://artifacts.crowdin.com/repo/GPG-KEY-crowdin | sudo apt-key add -
|
||||
- echo "deb https://artifacts.crowdin.com/repo/deb/ /" | sudo tee -a /etc/apt/sources.list
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install -y crowdin
|
||||
- tox
|
||||
|
||||
jobs:
|
||||
include:
|
||||
# These jobs only occur on tag creation if the prior ones succeed
|
||||
- stage: PyPi Deployment
|
||||
if: tag IS present
|
||||
python: 3.7.2
|
||||
env:
|
||||
- DEPLOYING=true
|
||||
- TOXENV=py36
|
||||
deploy:
|
||||
- provider: pypi
|
||||
distributions: sdist bdist_wheel
|
||||
user: Red-DiscordBot
|
||||
password:
|
||||
secure: Ty9vYnd/wCuQkVC/OsS4E2jT9LVDVfzsFrQc4U2hMYcTJnYbl/3omyObdCWCOBC40vUDkVHAQU8ULHzoCA+2KX9Ds/7/P5zCumAA0uJRR9Smw7OlRzSMxJI+/lGq4CwXKzxDZKuo5rsxXEbW5qmYjtO8Mk6KuLkvieb1vyr2DcqWEFzg/7TZNDfD1oP8et8ITQ26lLP1dtQx/jlAiIBzgK9wziuwj1Divb9A///VsGz43N8maZ+jfsDjYqrfUVWTy3ar7JPUplletenYCR1PmQ5C46XfV0kitKd1aITJ48YPAKyYgKy8AIT+Uz1JArTnqdzLSFRNELS57qS00lzgllbteCyWQ8Uzy0Zpxb/5DDH8/mL1n0MyJrF8qjZd2hLNAXg3z/k9bGXeiMLGwoxRlGXkL2XpiVgI93UKKyVyooGNMgPTc/QdSc7krjAWcOtX/HgLR34jxeLPFEdzJNAFIimfDD8N+XTFcNBw6EvOYm/n5MXkckNoX/G+ThNobHZ7VKSASltZ9zBRAJ2dDh35G3CYmVEk33U77RKbL9le/Za9QVBcAO8i6rqVGYkdO7thHHKHc/1CB1jNnjsFSDt0bURtNfAqfwKCurQC8487zbEzT+2fog3Wygv7g3cklaRg4guY8UjZuFWStYGqbroTsOCd9ATNqeO5B13pNhllSzU=
|
||||
skip_cleanup: true
|
||||
on:
|
||||
repo: Cog-Creators/Red-DiscordBot
|
||||
branch: V3/develop
|
||||
python: 3.5.3
|
||||
tags: true
|
||||
- stage: Crowdin Deployment
|
||||
if: tag IS present
|
||||
python: 3.7.2
|
||||
env:
|
||||
- DEPLOYING=true
|
||||
- TOXENV=py36
|
||||
before_deploy:
|
||||
- curl https://artifacts.crowdin.com/repo/GPG-KEY-crowdin | sudo apt-key add -
|
||||
- echo "deb https://artifacts.crowdin.com/repo/deb/ /" | sudo tee -a /etc/apt/sources.list
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install -y crowdin
|
||||
- pip install redgettext==3.1
|
||||
deploy:
|
||||
- provider: script
|
||||
script: python3 ./generate_strings.py
|
||||
script: make upload_translations
|
||||
skip_cleanup: true
|
||||
on:
|
||||
repo: Cog-Creators/Red-DiscordBot
|
||||
branch: V3/develop
|
||||
python: 3.5.3
|
||||
tags: true
|
||||
cache: pip
|
||||
notifications:
|
||||
email: false
|
||||
|
||||
32
LICENSE
32
LICENSE
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
Red - A fully customizable Discord bot
|
||||
Copyright (C) 2015-2018 Twentysix
|
||||
Copyright (C) 2015-2019 Twentysix
|
||||
|
||||
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
|
||||
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic and paper mail.
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
Red-DiscordBot Copyright (C) 2015-2018 Twentysix
|
||||
Red-DiscordBot Copyright (C) 2015-2019 Twentysix
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
@@ -672,3 +672,31 @@ may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
|
||||
The Red-DiscordBot project contains subcomponents in audio.py that have a
|
||||
separate copyright notice and license terms. Your use of the source code for
|
||||
these subcomponents is subject to the terms and conditions of the following
|
||||
licenses.
|
||||
|
||||
This product bundles methods from https://github.com/Just-Some-Bots/MusicBot/
|
||||
blob/master/musicbot/spotify.py which are available under an MIT license.
|
||||
|
||||
Copyright (c) 2015-2018 Just-Some-Bots (https://github.com/Just-Some-Bots)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
include README.rst
|
||||
include LICENSE
|
||||
include requirements.txt
|
||||
include discord/bin/*.dll
|
||||
26
Makefile
Normal file
26
Makefile
Normal file
@@ -0,0 +1,26 @@
|
||||
# Python Code Style
|
||||
reformat:
|
||||
black -l 99 `git ls-files "*.py"`
|
||||
stylecheck:
|
||||
black --check -l 99 `git ls-files "*.py"`
|
||||
|
||||
# Translations
|
||||
gettext:
|
||||
redgettext --command-docstrings --verbose --recursive redbot --exclude-files "redbot/pytest/**/*"
|
||||
upload_translations:
|
||||
$(MAKE) gettext
|
||||
crowdin upload sources
|
||||
download_translations:
|
||||
crowdin download
|
||||
|
||||
# Dependencies
|
||||
bumpdeps:
|
||||
python tools/bumpdeps.py
|
||||
|
||||
# Development environment
|
||||
newenv:
|
||||
python3.7 -m venv --clear .venv
|
||||
.venv/bin/pip install -U pip setuptools
|
||||
$(MAKE) syncenv
|
||||
syncenv:
|
||||
.venv/bin/pip install -Ur ./tools/dev-requirements.txt
|
||||
133
README.md
Normal file
133
README.md
Normal file
@@ -0,0 +1,133 @@
|
||||
<h1 align="center">
|
||||
<br>
|
||||
<a href="https://github.com/Cog-Creators/Red-DiscordBot/tree/V3/develop"><img src="https://imgur.com/pY1WUFX.png" alt="Red - Discord Bot"></a>
|
||||
<br>
|
||||
Red Discord Bot
|
||||
<br>
|
||||
</h1>
|
||||
|
||||
<h4 align="center">Music, Moderation, Trivia, Stream Alerts and Fully Modular.</h4>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://discord.gg/red">
|
||||
<img src="https://discordapp.com/api/guilds/133049272517001216/widget.png?style=shield" alt="Discord Server">
|
||||
</a>
|
||||
<a href="https://www.patreon.com/Red_Devs">
|
||||
<img src="https://img.shields.io/badge/Support-Red!-yellow.svg" alt="Support Red on Patreon!">
|
||||
</a>
|
||||
<a href="https://www.python.org/downloads/">
|
||||
<img src="https://img.shields.io/badge/Made%20With-Python%203.7-blue.svg?style=for-the-badge" alt="Made with Python 3.7">
|
||||
</a>
|
||||
<a href="https://crowdin.com/project/red-discordbot">
|
||||
<img src="https://d322cqt584bo4o.cloudfront.net/red-discordbot/localized.svg" alt="Localized with Crowdin">
|
||||
</a>
|
||||
<a href="https://github.com/Rapptz/discord.py/">
|
||||
<img src="https://img.shields.io/badge/discord-py-blue.svg" alt="discord.py">
|
||||
</a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://travis-ci.com/Cog-Creators/Red-DiscordBot">
|
||||
<img src="https://api.travis-ci.com/Cog-Creators/Red-DiscordBot.svg?branch=V3/develop" alt="Travis CI">
|
||||
</a>
|
||||
<a href="http://red-discordbot.readthedocs.io/en/stable/?badge=stable">
|
||||
<img src="https://readthedocs.org/projects/red-discordbot/badge/?version=stable" alt="Red on readthedocs.org">
|
||||
</a>
|
||||
<a href="https://github.com/ambv/black">
|
||||
<img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code Style: Black">
|
||||
</a>
|
||||
<a href="http://makeapullrequest.com">
|
||||
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="#overview">Overview</a>
|
||||
•
|
||||
<a href="#installation">Installation</a>
|
||||
•
|
||||
<a href="http://red-discordbot.readthedocs.io/en/stable/index.html">Documentation</a>
|
||||
•
|
||||
<a href="#plugins">Plugins</a>
|
||||
•
|
||||
<a href="#join-the-community">Community</a>
|
||||
•
|
||||
<a href="#license">License</a>
|
||||
</p>
|
||||
|
||||
# Overview
|
||||
|
||||
Red is a fully modular bot – meaning all features and commands can be enabled/disabled to your
|
||||
liking, making it completely customizable. This is also a *self-hosted bot* – meaning you will need
|
||||
to host and maintain your own instance. You can turn Red into an admin bot, music bot, trivia bot,
|
||||
new best friend or all of these together!
|
||||
|
||||
[Installation](#installation) is easy, and you do **NOT** need to know anything about coding! Aside
|
||||
from installation and updating, every part of the bot can be controlled from within Discord.
|
||||
|
||||
**The default set of modules includes and is not limited to:**
|
||||
|
||||
- Moderation features (kick/ban/softban/hackban, mod-log, filter, chat cleanup)
|
||||
- Trivia (lists are included and can be easily added)
|
||||
- Music features (YouTube, SoundCloud, local files, playlists, queues)
|
||||
- Stream alerts (Twitch, Youtube, Mixer, Hitbox, Picarto)
|
||||
- Bank (slot machine, user credits)
|
||||
- Custom commands
|
||||
- Imgur/gif search
|
||||
- Admin automation (self-role assignment, cross-server announcements, mod-mail reports)
|
||||
- Customisable command permissions
|
||||
|
||||
**Additionally, other [plugins](#plugins) (cogs) can be easily found and added from our growing
|
||||
community of cog repositories.**
|
||||
|
||||
# Installation
|
||||
|
||||
**The following platforms are officially supported:**
|
||||
|
||||
- [Windows](https://red-discordbot.readthedocs.io/en/stable/install_windows.html)
|
||||
- [MacOS](https://red-discordbot.readthedocs.io/en/stable/install_linux_mac.html)
|
||||
- [Ubuntu](https://red-discordbot.readthedocs.io/en/stable/install_linux_mac.html)
|
||||
- [Debian Stretch](https://red-discordbot.readthedocs.io/en/stable/install_linux_mac.html)
|
||||
- [CentOS 7](https://red-discordbot.readthedocs.io/en/stable/install_linux_mac.html)
|
||||
- [Arch Linux](https://red-discordbot.readthedocs.io/en/stable/install_linux_mac.html)
|
||||
- [Raspbian Stretch](https://red-discordbot.readthedocs.io/en/stable/install_linux_mac.html)
|
||||
|
||||
|
||||
If after reading the guide you are still experiencing issues, feel free to join the
|
||||
[Official Discord Server](https://discord.gg/red) and ask in the **#support** channel for help.
|
||||
|
||||
# Plugins
|
||||
|
||||
Red is fully modular, allowing you to load and unload plugins of your choice, and install 3rd party
|
||||
plugins directly from Discord! A few examples are:
|
||||
|
||||
- Cleverbot integration (talk to Red and she talks back)
|
||||
- Ban sync
|
||||
- Welcome messages
|
||||
- Casino
|
||||
- Reaction roles
|
||||
- Slow Mode
|
||||
- AniList
|
||||
- And much, much more!
|
||||
|
||||
Feel free to take a [peek](https://cogboard.red/t/approved-repositories/210) at a list of
|
||||
available 3rd party cogs!
|
||||
|
||||
# Join the community!
|
||||
|
||||
**Red** is in continuous development, and it’s supported by an active community which produces new
|
||||
content (cogs/plugins) for everyone to enjoy. New features are constantly added. If you can’t
|
||||
[find](https://cogboard.red/t/approved-repositories/210) the cog you’re looking for,
|
||||
consult our [guide](https://red-discordbot.readthedocs.io/en/stable/guide_cog_creation.html) on
|
||||
building your own cogs!
|
||||
|
||||
Join us on our [Official Discord Server](https://discord.gg/red)!
|
||||
|
||||
# License
|
||||
|
||||
Released under the [GNU GPL v3](https://www.gnu.org/licenses/gpl-3.0.en.html) license.
|
||||
|
||||
Red is named after the main character of "Transistor", a video game by
|
||||
[Super Giant Games](https://www.supergiantgames.com/games/transistor/).
|
||||
|
||||
Artwork created by [Sinlaire](https://sinlaire.deviantart.com/) on Deviant Art for the Red Discord
|
||||
Bot Project.
|
||||
38
README.rst
38
README.rst
@@ -1,38 +0,0 @@
|
||||
.. image:: https://readthedocs.org/projects/red-discordbot/badge/?version=v3-develop
|
||||
:target: http://red-discordbot.readthedocs.io/en/v3-develop/?badge=v3-develop
|
||||
:alt: Documentation Status
|
||||
|
||||
.. image:: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square
|
||||
:target: http://makeapullrequest.com
|
||||
:alt: PRs Welcome
|
||||
|
||||
.. image:: https://d322cqt584bo4o.cloudfront.net/red-discordbot/localized.svg
|
||||
:target: https://crowdin.com/project/red-discordbot
|
||||
:alt: Crowdin
|
||||
|
||||
********************
|
||||
Red - Discord Bot v3
|
||||
********************
|
||||
|
||||
**This is in beta and very much a work in progress. Regular use is not recommended.
|
||||
There will not be any effort made to prevent the breaking of current installations.**
|
||||
|
||||
How to install
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
Using python3 pip::
|
||||
|
||||
pip install --process-dependency-links -U Red-DiscordBot
|
||||
redbot-setup
|
||||
redbot <name>
|
||||
|
||||
To install requirements for voice::
|
||||
|
||||
pip install --process-dependency-links -U Red-DiscordBot[voice]
|
||||
|
||||
To install all requirements for docs and tests::
|
||||
|
||||
pip install --process-dependency-links -U Red-DiscordBot[test,docs]
|
||||
|
||||
For the latest git build, replace ``Red-DiscordBot`` in the above commands with
|
||||
``git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop``.
|
||||
@@ -1,5 +1,8 @@
|
||||
api_key_env: CROWDIN_API_KEY
|
||||
project_identifier_env: CROWDIN_PROJECT_ID
|
||||
base_path: ./redbot/
|
||||
files:
|
||||
- source: /**/*.pot
|
||||
- source: cogs/**/messages.pot
|
||||
translation: /%original_path%/%locale%.po
|
||||
- source: core/**/messages.pot
|
||||
translation: /%original_path%/%locale%.po
|
||||
|
||||
62
docs/autostart_systemd.rst
Normal file
62
docs/autostart_systemd.rst
Normal file
@@ -0,0 +1,62 @@
|
||||
.. systemd service guide
|
||||
|
||||
==============================================
|
||||
Setting up auto-restart using systemd on Linux
|
||||
==============================================
|
||||
|
||||
-------------------------
|
||||
Creating the service file
|
||||
-------------------------
|
||||
|
||||
Create the new service file:
|
||||
|
||||
:code:`sudo -e /etc/systemd/system/red@.service`
|
||||
|
||||
Paste the following and replace all instances of :code:`username` with the username your bot is running under (hopefully not root):
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[Unit]
|
||||
Description=%I redbot
|
||||
After=multi-user.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/home/username/.local/bin/redbot %I --no-prompt
|
||||
User=username
|
||||
Group=username
|
||||
Type=idle
|
||||
Restart=always
|
||||
RestartSec=15
|
||||
RestartPreventExitStatus=0
|
||||
TimeoutStopSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
Save and exit :code:`ctrl + O; enter; ctrl + x`
|
||||
|
||||
---------------------------------
|
||||
Starting and enabling the service
|
||||
---------------------------------
|
||||
|
||||
.. note:: This same file can be used to start as many instances of the bot as you wish, without creating more service files, just start and enable more services and add any bot instance name after the **@**
|
||||
|
||||
To start the bot, run the service and add the instance name after the **@**:
|
||||
|
||||
:code:`sudo systemctl start red@instancename`
|
||||
|
||||
To set the bot to start on boot, you must enable the service, again adding the instance name after the **@**:
|
||||
|
||||
:code:`sudo systemctl enable red@instancename`
|
||||
|
||||
If you need to shutdown the bot, you can use the ``[p]shutdown`` command or
|
||||
type the following command in the terminal, still by adding the instance name after the **@**:
|
||||
|
||||
:code:`sudo systemctl stop red@instancename`
|
||||
|
||||
.. warning:: If the service doesn't stop in the next 10 seconds, the process is killed.
|
||||
Check your logs to know the cause of the error that prevents the shutdown.
|
||||
|
||||
To view Red’s log, you can acccess through journalctl:
|
||||
|
||||
:code:`sudo journalctl -u red@instancename`
|
||||
232
docs/changelog_3_1_0.rst
Normal file
232
docs/changelog_3_1_0.rst
Normal file
@@ -0,0 +1,232 @@
|
||||
.. v3.1.0 Changelog
|
||||
|
||||
####################
|
||||
v3.1.0 Release Notes
|
||||
####################
|
||||
|
||||
----------------------
|
||||
Mongo Driver Migration
|
||||
----------------------
|
||||
|
||||
Due to the required changes of the Mongo driver for Config, all existing Mongo users will need to
|
||||
complete the below instructions to continue to use Mongo after updating to 3.1.
|
||||
This includes **all** users, regardless of any prior migration attempt to a development version of
|
||||
3.1.
|
||||
|
||||
#. Upgrade to 3.1
|
||||
#. Convert all existing Mongo instances to JSON using the new converters
|
||||
#. Start each bot instance while using JSON and load any and all cogs you have in order to successfully preserve data.
|
||||
#. Turn each instance off and convert back to Mongo.
|
||||
**NOTE:** No data is wiped from your Mongo database when converting to JSON.
|
||||
You may want to use a *new* database name when converting back to Mongo in order to not have duplicate data.
|
||||
|
||||
-------------
|
||||
Setup Utility
|
||||
-------------
|
||||
|
||||
New commands were introduced to simplify the conversion/editing/removal process both on our end and the users end.
|
||||
Please use ``redbot-setup --help`` to learn how to use the new features.
|
||||
|
||||
.. HINT::
|
||||
|
||||
Converting to JSON: ``redbot-setup convert <instance_name> json``
|
||||
|
||||
Converting to Mongo: ``redbot-setup convert <instance_name> mongo``
|
||||
|
||||
################
|
||||
v3.1.0 Changelog
|
||||
################
|
||||
|
||||
-----
|
||||
Audio
|
||||
-----
|
||||
|
||||
* Add Spotify support (`#2328`_)
|
||||
* Play local folders via text command (`#2457`_)
|
||||
* Change pause to a toggle (`#2461`_)
|
||||
* Remove aliases (`#2462`_)
|
||||
* Add track length restriction (`#2465`_)
|
||||
* Seek command can now seek to position (`#2470`_)
|
||||
* Add option for dc at queue end (`#2472`_)
|
||||
* Emptydisconnect and status refactor (`#2473`_)
|
||||
* Queue clean and queue clear addition (`#2476`_)
|
||||
* Fix for audioset status (`#2481`_)
|
||||
* Playlist download addition (`#2482`_)
|
||||
* Add songs when search-queuing (`#2513`_)
|
||||
* Match v2 behavior for channel change (`#2521`_)
|
||||
* Bot will no longer complain about permissions when trying to connect to user-limited channel, if it has "Move Members" permission (`#2525`_)
|
||||
* Fix issue on audiostats command when more than 20 servers to display (`#2533`_)
|
||||
* Fix for prev command display (`#2556`_)
|
||||
* Fix for localtrack playing (`#2557`_)
|
||||
* Fix for playlist queue when not playing (`#2586`_)
|
||||
* Track search and append fixes (`#2591`_)
|
||||
* DJ role should ask for a role (`#2606`_)
|
||||
|
||||
----
|
||||
Core
|
||||
----
|
||||
|
||||
* Warn on usage of ``yaml.load`` (`#2326`_)
|
||||
* New Event dispatch: ``on_message_without_command`` (`#2338`_)
|
||||
* Improve output format of cooldown messages (`#2412`_)
|
||||
* Delete cooldown messages when expired (`#2469`_)
|
||||
* Fix local blacklist/whitelist management (`#2531`_)
|
||||
* ``[p]set locale`` now only accepts actual locales (`#2553`_)
|
||||
* ``[p]listlocales`` now displays ``en-US`` (`#2553`_)
|
||||
* ``redbot --version`` will now give you current version of Red (`#2567`_)
|
||||
* Redesign help and related formatter (`#2628`_)
|
||||
* Default locale changed from ``en`` to ``en-US`` (`#2642`_)
|
||||
* New command ``[p]datapath`` that prints the bot's datapath (`#2652`_)
|
||||
|
||||
------
|
||||
Config
|
||||
------
|
||||
|
||||
* Updated Mongo driver to support large guilds (`#2536`_)
|
||||
* Introduced ``init_custom`` method on Config objects (`#2545`_)
|
||||
* We now record custom group primary key lengths in the core config object (`#2550`_)
|
||||
* Migrated internal UUIDs to maintain cross platform consistency (`#2604`_)
|
||||
|
||||
-------------
|
||||
DataConverter
|
||||
-------------
|
||||
|
||||
* It's dead jim (Removal) (`#2554`_)
|
||||
|
||||
----------
|
||||
discord.py
|
||||
----------
|
||||
|
||||
* No longer vendoring discord.py (`#2587`_)
|
||||
* Upgraded discord.py dependency to version 1.0.1 (`#2587`_)
|
||||
|
||||
----------
|
||||
Downloader
|
||||
----------
|
||||
|
||||
* ``[p]cog install`` will now tell user that cog has to be loaded (`#2523`_)
|
||||
* The message when libraries fail to install is now formatted (`#2576`_)
|
||||
* Fixed bug, that caused Downloader to include submodules on cog list (`#2590`_)
|
||||
* ``[p]cog uninstall`` allows to uninstall multiple cogs now (`#2592`_)
|
||||
* ``[p]cog uninstall`` will now remove cog from installed cogs even if it can't find the cog in install path anymore (`#2595`_)
|
||||
* ``[p]cog install`` will not allow to install cogs which aren't suitable for installed version of Red anymore (`#2605`_)
|
||||
* Cog Developers now have to use ``min_bot_version`` in form of version string instead of ``bot_version`` in info.json and they can also use ``max_bot_version`` to specify maximum version of Red, more in :doc:`framework_downloader`. (`#2605`_)
|
||||
|
||||
------
|
||||
Filter
|
||||
------
|
||||
|
||||
* Filter performs significantly better on large servers. (`#2509`_)
|
||||
|
||||
--------
|
||||
Launcher
|
||||
--------
|
||||
|
||||
* Fixed extras in the launcher (`#2588`_)
|
||||
|
||||
---
|
||||
Mod
|
||||
---
|
||||
|
||||
* Admins can now decide how many times message has to be repeated before ``deleterepeats`` removes it (`#2437`_)
|
||||
* Fix: make ``[p]ban [days]`` optional as per the doc (`#2602`_)
|
||||
* Added the command ``voicekick`` to kick members from a voice channel with optional mod case. (`#2639`_)
|
||||
|
||||
-----------
|
||||
Permissions
|
||||
-----------
|
||||
|
||||
* Removed: ``p`` alias for ``permissions`` command (`#2467`_)
|
||||
|
||||
-------------
|
||||
Setup Scripts
|
||||
-------------
|
||||
|
||||
* ``redbot-setup`` now uses the click CLI library (`#2579`_)
|
||||
* ``redbot-setup convert`` now used to convert between libraries (`#2579`_)
|
||||
* Backup support for Mongo is currently broken (`#2579`_)
|
||||
|
||||
-------
|
||||
Streams
|
||||
-------
|
||||
|
||||
* Add support for custom stream alert messages per guild (`#2600`_)
|
||||
* Add ability to exclude rerun Twitch streams, and note rerun streams in embed status (`#2620`_)
|
||||
|
||||
-----
|
||||
Tests
|
||||
-----
|
||||
|
||||
* Test for ``trivia`` cog uses explicitly utf-8 encoding for checking yaml files (`#2565`_)
|
||||
|
||||
------
|
||||
Trivia
|
||||
------
|
||||
|
||||
* Fix of dead image link for Sao Tome and Principe in ``worldflags`` trivia (`#2540`_)
|
||||
|
||||
-----------------
|
||||
Utility Functions
|
||||
-----------------
|
||||
|
||||
* New: ``chat_formatting.humanize_timedelta`` (`#2412`_)
|
||||
* ``Tunnel`` - Spelling correction of method name - changed ``files_from_attatch`` to ``files_from_attach`` (old name is left for backwards compatibility) (`#2496`_)
|
||||
* ``Tunnel`` - fixed behavior of ``react_close()``, now when tunnel closes message will be sent to other end (`#2507`_)
|
||||
* ``chat_formatting.humanize_list`` - Improved error handling of empty lists (`#2597`_)
|
||||
|
||||
.. _#2326: https://github.com/Cog-Creators/Red-DiscordBot/pull/2326
|
||||
.. _#2328: https://github.com/Cog-Creators/Red-DiscordBot/pull/2328
|
||||
.. _#2338: https://github.com/Cog-Creators/Red-DiscordBot/pull/2338
|
||||
.. _#2412: https://github.com/Cog-Creators/Red-DiscordBot/pull/2412
|
||||
.. _#2437: https://github.com/Cog-Creators/Red-DiscordBot/pull/2437
|
||||
.. _#2457: https://github.com/Cog-Creators/Red-DiscordBot/pull/2457
|
||||
.. _#2461: https://github.com/Cog-Creators/Red-DiscordBot/pull/2461
|
||||
.. _#2462: https://github.com/Cog-Creators/Red-DiscordBot/pull/2462
|
||||
.. _#2465: https://github.com/Cog-Creators/Red-DiscordBot/pull/2465
|
||||
.. _#2467: https://github.com/Cog-Creators/Red-DiscordBot/pull/2467
|
||||
.. _#2469: https://github.com/Cog-Creators/Red-DiscordBot/pull/2469
|
||||
.. _#2470: https://github.com/Cog-Creators/Red-DiscordBot/pull/2470
|
||||
.. _#2472: https://github.com/Cog-Creators/Red-DiscordBot/pull/2472
|
||||
.. _#2473: https://github.com/Cog-Creators/Red-DiscordBot/pull/2473
|
||||
.. _#2476: https://github.com/Cog-Creators/Red-DiscordBot/pull/2476
|
||||
.. _#2481: https://github.com/Cog-Creators/Red-DiscordBot/pull/2481
|
||||
.. _#2482: https://github.com/Cog-Creators/Red-DiscordBot/pull/2482
|
||||
.. _#2496: https://github.com/Cog-Creators/Red-DiscordBot/pull/2496
|
||||
.. _#2507: https://github.com/Cog-Creators/Red-DiscordBot/pull/2507
|
||||
.. _#2509: https://github.com/Cog-Creators/Red-DiscordBot/pull/2509
|
||||
.. _#2513: https://github.com/Cog-Creators/Red-DiscordBot/pull/2513
|
||||
.. _#2521: https://github.com/Cog-Creators/Red-DiscordBot/pull/2521
|
||||
.. _#2523: https://github.com/Cog-Creators/Red-DiscordBot/pull/2523
|
||||
.. _#2525: https://github.com/Cog-Creators/Red-DiscordBot/pull/2525
|
||||
.. _#2531: https://github.com/Cog-Creators/Red-DiscordBot/pull/2531
|
||||
.. _#2533: https://github.com/Cog-Creators/Red-DiscordBot/pull/2533
|
||||
.. _#2536: https://github.com/Cog-Creators/Red-DiscordBot/pull/2536
|
||||
.. _#2540: https://github.com/Cog-Creators/Red-DiscordBot/pull/2540
|
||||
.. _#2545: https://github.com/Cog-Creators/Red-DiscordBot/pull/2545
|
||||
.. _#2550: https://github.com/Cog-Creators/Red-DiscordBot/pull/2550
|
||||
.. _#2553: https://github.com/Cog-Creators/Red-DiscordBot/pull/2553
|
||||
.. _#2554: https://github.com/Cog-Creators/Red-DiscordBot/pull/2554
|
||||
.. _#2556: https://github.com/Cog-Creators/Red-DiscordBot/pull/2556
|
||||
.. _#2557: https://github.com/Cog-Creators/Red-DiscordBot/pull/2557
|
||||
.. _#2565: https://github.com/Cog-Creators/Red-DiscordBot/pull/2565
|
||||
.. _#2567: https://github.com/Cog-Creators/Red-DiscordBot/pull/2567
|
||||
.. _#2576: https://github.com/Cog-Creators/Red-DiscordBot/pull/2576
|
||||
.. _#2579: https://github.com/Cog-Creators/Red-DiscordBot/pull/2579
|
||||
.. _#2586: https://github.com/Cog-Creators/Red-DiscordBot/pull/2586
|
||||
.. _#2587: https://github.com/Cog-Creators/Red-DiscordBot/pull/2587
|
||||
.. _#2588: https://github.com/Cog-Creators/Red-DiscordBot/pull/2588
|
||||
.. _#2590: https://github.com/Cog-Creators/Red-DiscordBot/pull/2590
|
||||
.. _#2591: https://github.com/Cog-Creators/Red-DiscordBot/pull/2591
|
||||
.. _#2592: https://github.com/Cog-Creators/Red-DiscordBot/pull/2592
|
||||
.. _#2595: https://github.com/Cog-Creators/Red-DiscordBot/pull/2595
|
||||
.. _#2597: https://github.com/Cog-Creators/Red-DiscordBot/pull/2597
|
||||
.. _#2600: https://github.com/Cog-Creators/Red-DiscordBot/pull/2600
|
||||
.. _#2602: https://github.com/Cog-Creators/Red-DiscordBot/pull/2602
|
||||
.. _#2604: https://github.com/Cog-Creators/Red-DiscordBot/pull/2604
|
||||
.. _#2605: https://github.com/Cog-Creators/Red-DiscordBot/pull/2605
|
||||
.. _#2606: https://github.com/Cog-Creators/Red-DiscordBot/pull/2606
|
||||
.. _#2620: https://github.com/Cog-Creators/Red-DiscordBot/pull/2620
|
||||
.. _#2628: https://github.com/Cog-Creators/Red-DiscordBot/pull/2628
|
||||
.. _#2639: https://github.com/Cog-Creators/Red-DiscordBot/pull/2639
|
||||
.. _#2642: https://github.com/Cog-Creators/Red-DiscordBot/pull/2642
|
||||
.. _#2652: https://github.com/Cog-Creators/Red-DiscordBot/pull/2652
|
||||
109
docs/cog_customcom.rst
Normal file
109
docs/cog_customcom.rst
Normal file
@@ -0,0 +1,109 @@
|
||||
.. CustomCommands Cog Reference
|
||||
|
||||
============================
|
||||
CustomCommands Cog Reference
|
||||
============================
|
||||
|
||||
------------
|
||||
How it works
|
||||
------------
|
||||
|
||||
CustomCommands allows you to create simple commands for your bot without requiring you to code your own cog for Red.
|
||||
|
||||
If the command you attempt to create shares a name with an already loaded command, you cannot overwrite it with this cog.
|
||||
|
||||
---------
|
||||
Cooldowns
|
||||
---------
|
||||
|
||||
You can set cooldowns for your custom commands. If a command is on cooldown, it will not be triggered.
|
||||
|
||||
You can set cooldowns per member or per channel, or set a cooldown guild-wide. You can also set multiple types of cooldown on a single custom command. All cooldowns must pass before the command will trigger.
|
||||
|
||||
------------------
|
||||
Context Parameters
|
||||
------------------
|
||||
|
||||
You can enhance your custom command's response by leaving spaces for the bot to substitute.
|
||||
|
||||
+-----------+----------------------------------------+
|
||||
| Argument | Substitute |
|
||||
+===========+========================================+
|
||||
| {message} | The message the bot is responding to. |
|
||||
+-----------+----------------------------------------+
|
||||
| {author} | The user who called the command. |
|
||||
+-----------+----------------------------------------+
|
||||
| {channel} | The channel the command was called in. |
|
||||
+-----------+----------------------------------------+
|
||||
| {server} | The server the command was called in. |
|
||||
+-----------+----------------------------------------+
|
||||
| {guild} | Same as with {server}. |
|
||||
+-----------+----------------------------------------+
|
||||
|
||||
You can further refine the response with dot notation. For example, {author.mention} will mention the user who called the command.
|
||||
|
||||
------------------
|
||||
Command Parameters
|
||||
------------------
|
||||
|
||||
You can further enhance your custom command's response by leaving spaces for the user to substitute.
|
||||
|
||||
To do this, simply put {#} in the response, replacing # with any number starting with 0. Each number will be replaced with what the user gave the command, in order.
|
||||
|
||||
You can refine the response with colon notation. For example, {0:Member} will accept members of the server, and {0:int} will accept a number. If no colon notation is provided, the argument will be returned unchanged.
|
||||
|
||||
+-----------------+--------------------------------+
|
||||
| Argument | Substitute |
|
||||
+=================+================================+
|
||||
| {#:Member} | A member of your server. |
|
||||
+-----------------+--------------------------------+
|
||||
| {#:TextChannel} | A text channel in your server. |
|
||||
+-----------------+--------------------------------+
|
||||
| {#:Role} | A role in your server. |
|
||||
+-----------------+--------------------------------+
|
||||
| {#:int} | A whole number. |
|
||||
+-----------------+--------------------------------+
|
||||
| {#:float} | A decimal number. |
|
||||
+-----------------+--------------------------------+
|
||||
| {#:bool} | True or False. |
|
||||
+-----------------+--------------------------------+
|
||||
|
||||
You can specify more than the above with colon notation, but those are the most common.
|
||||
|
||||
As with context parameters, you can use dot notation to further refine the response. For example, {0.mention:Member} will mention the Member specified.
|
||||
|
||||
----------------
|
||||
Example commands
|
||||
----------------
|
||||
|
||||
Showing your own avatar
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]customcom add simple avatar {author.avatar_url}
|
||||
[p]avatar
|
||||
https://cdn.discordapp.com/avatars/133801473317404673/be4c4a4fe47cb3e74c31a0504e7a295e.webp?size=1024
|
||||
|
||||
Repeating the user
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]customcom add simple say {0}
|
||||
[p]say Pete and Repeat
|
||||
Pete and Repeat
|
||||
|
||||
Greeting the specified member
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]customcom add simple greet Hello, {0.mention:Member}!
|
||||
[p]greet Twentysix
|
||||
Hello, @Twentysix!
|
||||
|
||||
Comparing two text channel's categories
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]customcom add simple comparecategory {0.category:TextChannel} | {1.category:TextChannel}
|
||||
[p]comparecategory #support #general
|
||||
Red | Community
|
||||
97
docs/cog_permissions.rst
Normal file
97
docs/cog_permissions.rst
Normal file
@@ -0,0 +1,97 @@
|
||||
.. Permissions Cog Reference
|
||||
|
||||
=========================
|
||||
Permissions Cog Reference
|
||||
=========================
|
||||
|
||||
------------
|
||||
How it works
|
||||
------------
|
||||
|
||||
When loaded, the permissions cog will allow you to define extra custom rules for who can use a
|
||||
command.
|
||||
|
||||
If no applicable rules are found, the command will behave normally.
|
||||
|
||||
Rules can also be added to cogs, which will affect all commands from that cog. The cog name can be
|
||||
found from the help menu.
|
||||
|
||||
-------------
|
||||
Rule priority
|
||||
-------------
|
||||
|
||||
Rules set for subcommands will take precedence over rules set for the parent commands, which
|
||||
lastly take precedence over rules set for the cog. So for example, if a user is denied the Core
|
||||
cog, but allowed the ``[p]set token`` command, the user will not be able to use any command in the
|
||||
Core cog except for ``[p]set token``.
|
||||
|
||||
In terms of scope, global rules will be checked first, then server rules.
|
||||
|
||||
For each of those, the first rule pertaining to one of the following models will be used:
|
||||
|
||||
1. User
|
||||
2. Voice channel
|
||||
3. Text channel
|
||||
4. Channel category
|
||||
5. Roles, highest to lowest
|
||||
6. Server (can only be in global rules)
|
||||
7. Default rules
|
||||
|
||||
In private messages, only global rules about a user will be checked.
|
||||
|
||||
-------------------------
|
||||
Setting Rules From a File
|
||||
-------------------------
|
||||
|
||||
The permissions cog can also set, display or update rules with a YAML file with the
|
||||
``[p]permissions yaml`` command. Models must be represented by ID. Rules must be ``true`` for
|
||||
allow, or ``false`` for deny. Here is an example:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
COG:
|
||||
Admin:
|
||||
78631113035100160: true
|
||||
96733288462286848: false
|
||||
Audio:
|
||||
133049272517001216: true
|
||||
default: false
|
||||
COMMAND:
|
||||
cleanup bot:
|
||||
78631113035100160: true
|
||||
default: false
|
||||
ping:
|
||||
96733288462286848: false
|
||||
default: true
|
||||
|
||||
----------------------
|
||||
Example configurations
|
||||
----------------------
|
||||
|
||||
Locking the ``[p]play`` command to approved server(s) as a bot owner:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]permissions setdefaultglobalrule deny play
|
||||
[p]permissions addglobalrule allow play [server ID or name]
|
||||
|
||||
Locking the ``[p]play`` command to specific voice channel(s) as a serverowner or admin:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]permissions setdefaultserverrule deny play
|
||||
[p]permissions setdefaultserverrule deny "playlist start"
|
||||
[p]permissions addserverrule allow play [voice channel ID or name]
|
||||
[p]permissions addserverrule allow "playlist start" [voice channel ID or name]
|
||||
|
||||
Allowing extra roles to use ``[p]cleanup``:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]permissions addserverrule allow cleanup [role ID]
|
||||
|
||||
Preventing ``[p]cleanup`` from being used in channels where message history is important:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]permissions addserverrule deny cleanup [channel ID or mention]
|
||||
116
docs/conf.py
116
docs/conf.py
@@ -19,9 +19,10 @@
|
||||
#
|
||||
import os
|
||||
import sys
|
||||
sys.path.insert(0, os.path.abspath('..'))
|
||||
|
||||
os.environ['BUILDING_DOCS'] = "1"
|
||||
sys.path.insert(0, os.path.abspath(".."))
|
||||
|
||||
os.environ["BUILDING_DOCS"] = "1"
|
||||
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
@@ -34,38 +35,41 @@ os.environ['BUILDING_DOCS'] = "1"
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'sphinx.ext.autodoc',
|
||||
'sphinx.ext.intersphinx',
|
||||
'sphinx.ext.viewcode',
|
||||
'sphinx.ext.napoleon',
|
||||
'sphinxcontrib.asyncio'
|
||||
"sphinx.ext.autodoc",
|
||||
"sphinx.ext.intersphinx",
|
||||
"sphinx.ext.viewcode",
|
||||
"sphinx.ext.napoleon",
|
||||
"sphinx.ext.doctest",
|
||||
"sphinxcontrib_trio",
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
templates_path = ["_templates"]
|
||||
|
||||
# The suffix(es) of source filenames.
|
||||
# You can specify multiple suffix as a list of string:
|
||||
#
|
||||
# source_suffix = ['.rst', '.md']
|
||||
source_suffix = '.rst'
|
||||
source_suffix = ".rst"
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
master_doc = "index"
|
||||
|
||||
# General information about the project.
|
||||
project = 'Red - Discord Bot'
|
||||
copyright = '2017, Cog Creators'
|
||||
author = 'Cog Creators'
|
||||
project = "Red - Discord Bot"
|
||||
copyright = "2018, Cog Creators"
|
||||
author = "Cog Creators"
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
from redbot.core import __version__
|
||||
|
||||
# The short X.Y version.
|
||||
version = '3.0.0a1'
|
||||
version = __version__
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '3.0.0a1'
|
||||
release = __version__
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
@@ -77,10 +81,10 @@ language = None
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
# This patterns also effect to html_static_path and html_extra_path
|
||||
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
||||
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
pygments_style = "sphinx"
|
||||
|
||||
# If true, `todo` and `todoList` produce output, else they produce nothing.
|
||||
todo_include_todos = False
|
||||
@@ -94,7 +98,10 @@ default_role = "any"
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
#
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
html_theme = "sphinx_rtd_theme"
|
||||
|
||||
# This will be needed until sphinx_rtd_theme supports the html5 writer
|
||||
html4_writer = True
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
@@ -104,16 +111,16 @@ html_theme = 'sphinx_rtd_theme'
|
||||
|
||||
html_context = {
|
||||
# Enable the "Edit in GitHub link within the header of each page.
|
||||
'display_github': True,
|
||||
'github_user': 'Cog-Creators',
|
||||
'github_repo': 'Red-DiscordBot',
|
||||
'github_version': 'V3/develop/docs/'
|
||||
"display_github": True,
|
||||
"github_user": "Cog-Creators",
|
||||
"github_repo": "Red-DiscordBot",
|
||||
"github_version": "V3/develop/docs/",
|
||||
}
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
# html_static_path = ['_static']
|
||||
|
||||
# Custom sidebar templates, must be a dictionary that maps document names
|
||||
# to template names.
|
||||
@@ -121,12 +128,12 @@ html_static_path = ['_static']
|
||||
# This is required for the alabaster theme
|
||||
# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars
|
||||
html_sidebars = {
|
||||
'**': [
|
||||
'about.html',
|
||||
'navigation.html',
|
||||
'relations.html', # needs 'show_related': True theme option to display
|
||||
'searchbox.html',
|
||||
'donate.html',
|
||||
"**": [
|
||||
"about.html",
|
||||
"navigation.html",
|
||||
"relations.html", # needs 'show_related': True theme option to display
|
||||
"searchbox.html",
|
||||
"donate.html",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -134,7 +141,7 @@ html_sidebars = {
|
||||
# -- Options for HTMLHelp output ------------------------------------------
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'Red-DiscordBotdoc'
|
||||
htmlhelp_basename = "Red-DiscordBotdoc"
|
||||
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
@@ -143,15 +150,12 @@ latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#
|
||||
# 'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#
|
||||
# 'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#
|
||||
# 'preamble': '',
|
||||
|
||||
# Latex figure (float) alignment
|
||||
#
|
||||
# 'figure_align': 'htbp',
|
||||
@@ -161,8 +165,7 @@ latex_elements = {
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, 'Red-DiscordBot.tex', 'Red - Discord Bot Documentation',
|
||||
'Cog Creators', 'manual'),
|
||||
(master_doc, "Red-DiscordBot.tex", "Red - Discord Bot Documentation", "Cog Creators", "manual")
|
||||
]
|
||||
|
||||
|
||||
@@ -170,10 +173,7 @@ latex_documents = [
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
(master_doc, 'red-discordbot', 'Red - Discord Bot Documentation',
|
||||
[author], 1)
|
||||
]
|
||||
man_pages = [(master_doc, "red-discordbot", "Red - Discord Bot Documentation", [author], 1)]
|
||||
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
@@ -182,15 +182,39 @@ man_pages = [
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
(master_doc, 'Red-DiscordBot', 'Red - Discord Bot Documentation',
|
||||
author, 'Red-DiscordBot', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
(
|
||||
master_doc,
|
||||
"Red-DiscordBot",
|
||||
"Red - Discord Bot Documentation",
|
||||
author,
|
||||
"Red-DiscordBot",
|
||||
"One line description of project.",
|
||||
"Miscellaneous",
|
||||
)
|
||||
]
|
||||
|
||||
|
||||
# -- Options for linkcheck builder ----------------------------------------
|
||||
|
||||
# A list of regular expressions that match URIs that should not be
|
||||
# checked when doing a linkcheck build.
|
||||
linkcheck_ignore = [r"https://java.com*", r"https://chocolatey.org*"]
|
||||
|
||||
|
||||
# Example configuration for intersphinx: refer to the Python standard library.
|
||||
intersphinx_mapping = {'python': ('https://docs.python.org/3.5', None),
|
||||
'dpy': ('https://discordpy.readthedocs.io/en/rewrite/', None),
|
||||
'motor': ('https://motor.readthedocs.io/en/stable/', None)}
|
||||
# -- Options for extensions -----------------------------------------------
|
||||
|
||||
# Intersphinx
|
||||
intersphinx_mapping = {
|
||||
"python": ("https://docs.python.org/3", None),
|
||||
"dpy": ("https://discordpy.readthedocs.io/en/v1.0.1/", None),
|
||||
"motor": ("https://motor.readthedocs.io/en/stable/", None),
|
||||
}
|
||||
|
||||
# Doctest
|
||||
# If this string is non-empty, all blocks with ``>>>`` in them will be
|
||||
# tested, not just the ones explicitly marked with ``.. doctest::``
|
||||
doctest_test_doctest_blocks = ""
|
||||
|
||||
# Autodoc options
|
||||
autodoc_default_flags = ["show-inheritance"]
|
||||
autodoc_typehints = "none"
|
||||
|
||||
48
docs/framework_apikeys.rst
Normal file
48
docs/framework_apikeys.rst
Normal file
@@ -0,0 +1,48 @@
|
||||
.. V3 Shared API Key Reference
|
||||
|
||||
===============
|
||||
Shared API Keys
|
||||
===============
|
||||
|
||||
Red has a central API key storage utilising the core bots config. This allows cog creators to add a single location to store API keys for their cogs which may be shared between other cogs.
|
||||
|
||||
There needs to be some consistency between cog creators when using shared API keys between cogs. To help make this easier service should be all **lowercase** and the key names should match the naming convetion of the API being accessed.
|
||||
|
||||
Example:
|
||||
|
||||
Twitch has a client ID and client secret so a user should be asked to input
|
||||
|
||||
``[p]set api twitch client_id,1234ksdjf client_secret,1234aldlfkd``
|
||||
|
||||
and when accessed in the code it should be done by
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
await self.bot.db.api_tokens.get_raw("twitch", default={"client_id": None, "client_secret": None})
|
||||
|
||||
Each service has its own dict of key, value pairs for each required key type. If there's only one key required then a name for the key is still required for storing and accessing.
|
||||
|
||||
Example:
|
||||
|
||||
``[p]set api youtube api_key,1234ksdjf``
|
||||
|
||||
and when accessed in the code it should be done by
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
await self.bot.db.api_tokens.get_raw("youtube", default={"api_key": None})
|
||||
|
||||
|
||||
***********
|
||||
Basic Usage
|
||||
***********
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
class MyCog:
|
||||
@commands.command()
|
||||
async def youtube(self, ctx, user: str):
|
||||
apikey = await self.bot.db.api_tokens.get_raw("youtube", default={"api_key": None})
|
||||
if apikey["api_key"] is None:
|
||||
return await ctx.send("The YouTube API key has not been set.")
|
||||
# Use the API key to access content as you normally would
|
||||
@@ -16,15 +16,16 @@ Basic Usage
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from redbot.core import bank
|
||||
from redbot.core import bank, commands
|
||||
import discord
|
||||
|
||||
class MyCog:
|
||||
class MyCog(commands.Cog):
|
||||
@commands.command()
|
||||
async def balance(self, ctx, user: discord.Member = None):
|
||||
if user is None:
|
||||
user = ctx.author
|
||||
bal = bank.get_balance(user)
|
||||
currency = bank.get_currency_name(ctx.guild)
|
||||
bal = await bank.get_balance(user)
|
||||
currency = await bank.get_currency_name(ctx.guild)
|
||||
await ctx.send(
|
||||
"{}'s balance is {} {}".format(
|
||||
user.display_name, bal, currency
|
||||
@@ -40,3 +41,7 @@ Bank
|
||||
|
||||
.. automodule:: redbot.core.bank
|
||||
:members:
|
||||
:exclude-members: cost
|
||||
|
||||
.. autofunction:: cost
|
||||
:decorator:
|
||||
|
||||
23
docs/framework_bot.rst
Normal file
23
docs/framework_bot.rst
Normal file
@@ -0,0 +1,23 @@
|
||||
.. bot module docs
|
||||
|
||||
===
|
||||
Bot
|
||||
===
|
||||
|
||||
.. automodule:: redbot.core.bot
|
||||
|
||||
RedBase
|
||||
^^^^^^^
|
||||
|
||||
.. autoclass:: RedBase
|
||||
:members:
|
||||
:exclude-members: get_context
|
||||
|
||||
.. automethod:: register_rpc_handler
|
||||
.. automethod:: unregister_rpc_handler
|
||||
|
||||
Red
|
||||
^^^
|
||||
|
||||
.. autoclass:: Red
|
||||
:members:
|
||||
11
docs/framework_checks.rst
Normal file
11
docs/framework_checks.rst
Normal file
@@ -0,0 +1,11 @@
|
||||
.. _checks:
|
||||
|
||||
========================
|
||||
Command Check Decorators
|
||||
========================
|
||||
|
||||
The following are all decorators for commands, which add restrictions to where and when they can be
|
||||
run.
|
||||
|
||||
.. automodule:: redbot.core.checks
|
||||
:members:
|
||||
26
docs/framework_commands.rst
Normal file
26
docs/framework_commands.rst
Normal file
@@ -0,0 +1,26 @@
|
||||
.. red commands module documentation
|
||||
|
||||
================
|
||||
Commands Package
|
||||
================
|
||||
|
||||
This package acts almost identically to :doc:`discord.ext.commands <dpy:ext/commands/api>`; i.e.
|
||||
all of the attributes from discord.py's are also in ours.
|
||||
Some of these attributes, however, have been slightly modified, while others have been added to
|
||||
extend functionlities used throughout the bot, as outlined below.
|
||||
|
||||
.. autofunction:: redbot.core.commands.command
|
||||
|
||||
.. autofunction:: redbot.core.commands.group
|
||||
|
||||
.. autoclass:: redbot.core.commands.Command
|
||||
:members:
|
||||
|
||||
.. autoclass:: redbot.core.commands.Group
|
||||
:members:
|
||||
|
||||
.. autoclass:: redbot.core.commands.Context
|
||||
:members:
|
||||
|
||||
.. automodule:: redbot.core.commands.requires
|
||||
:members: PrivilegeLevel, PermState, Requires
|
||||
@@ -29,7 +29,7 @@ Basic Usage
|
||||
|
||||
@commands.command()
|
||||
async def return_some_data(self, ctx):
|
||||
await ctx.send(await config.foo())
|
||||
await ctx.send(await self.config.foo())
|
||||
|
||||
********
|
||||
Tutorial
|
||||
@@ -175,6 +175,195 @@ example, :py:meth:`Config.clear_all_guilds` resets all guild data. For member
|
||||
data, you can clear on both a per-guild and guild-independent basis, see
|
||||
:py:meth:`Config.clear_all_members` for more info.
|
||||
|
||||
**************
|
||||
Advanced Usage
|
||||
**************
|
||||
|
||||
Config makes it extremely easy to organize data that can easily fit into one of the standard categories (global,
|
||||
guild, user etc.) but there may come a time when your data does not work with the existing categories. There are now
|
||||
features within Config to enable developers to work with data how they wish.
|
||||
|
||||
This usage guide will cover the following features:
|
||||
|
||||
- :py:meth:`Group.get_raw`
|
||||
- :py:meth:`Group.set_raw`
|
||||
- :py:meth:`Group.clear_raw`
|
||||
|
||||
For this example let's suppose that we're creating a cog that allows users to buy and own multiple pets using
|
||||
the built-in Economy credits::
|
||||
|
||||
from redbot.core import bank
|
||||
from redbot.core import Config
|
||||
from discord.ext import commands
|
||||
|
||||
|
||||
class Pets:
|
||||
def __init__(self):
|
||||
self.conf = Config.get_conf(self, 1234567890)
|
||||
|
||||
# Here we'll assign some default costs for the pets
|
||||
self.conf.register_global(
|
||||
dog=100,
|
||||
cat=100,
|
||||
bird=50
|
||||
)
|
||||
self.conf.register_user(
|
||||
pets={}
|
||||
)
|
||||
|
||||
And now that the cog is set up we'll need to create some commands that allow users to purchase these pets::
|
||||
|
||||
# continued
|
||||
@commands.command()
|
||||
async def get_pet(self, ctx, pet_type: str, pet_name: str):
|
||||
"""
|
||||
Purchase a pet.
|
||||
|
||||
Pet type must be one of: dog, cat, bird
|
||||
"""
|
||||
# Now we need to determine what the cost of the pet is and
|
||||
# if the user has enough credits to purchase it.
|
||||
|
||||
# We will need to use "get_raw"
|
||||
try:
|
||||
cost = await self.conf.get_raw(pet_type)
|
||||
except KeyError:
|
||||
# KeyError is thrown whenever the data you try to access does not
|
||||
# exist in the registered defaults or in the saved data.
|
||||
await ctx.send("Bad pet type, try again.")
|
||||
return
|
||||
|
||||
After we've determined the cost of the pet we need to check if the user has enough credits and then we'll need to
|
||||
assign a new pet to the user. This is very easily done using the V3 bank API and :py:meth:`Group.set_raw`::
|
||||
|
||||
# continued
|
||||
if await bank.can_spend(ctx.author, cost):
|
||||
await self.conf.user(ctx.author).pets.set_raw(
|
||||
pet_name, value={'cost': cost, 'hunger': 0}
|
||||
)
|
||||
|
||||
# this is equivalent to doing the following
|
||||
|
||||
pets = await self.conf.user(ctx.author).pets()
|
||||
pets[pet_name] = {'cost': cost, 'hunger': 0}
|
||||
await self.conf.user(ctx.author).pets.set(pets)
|
||||
|
||||
Since the pets can get hungry we're gonna need a command that let's pet owners check how hungry their pets are::
|
||||
|
||||
# continued
|
||||
@commands.command()
|
||||
async def hunger(self, ctx, pet_name: str):
|
||||
try:
|
||||
hunger = await self.conf.user(ctx.author).pets.get_raw(pet_name, 'hunger')
|
||||
except KeyError:
|
||||
# Remember, this is thrown if something in the provided identifiers
|
||||
# is not found in the saved data or the defaults.
|
||||
await ctx.send("You don't own that pet!")
|
||||
return
|
||||
|
||||
await ctx.send("Your pet has {}/100 hunger".format(hunger))
|
||||
|
||||
We're responsible pet owners here, so we've also got to have a way to feed our pets::
|
||||
|
||||
# continued
|
||||
@commands.command()
|
||||
async def feed(self, ctx, pet_name: str, food: int):
|
||||
# This is a bit more complicated because we need to check if the pet is
|
||||
# owned first.
|
||||
try:
|
||||
pet = await self.conf.user(ctx.author).pets.get_raw(pet_name)
|
||||
except KeyError:
|
||||
# If the given pet name doesn't exist in our data
|
||||
await ctx.send("You don't own that pet!")
|
||||
return
|
||||
|
||||
hunger = pet.get("hunger")
|
||||
|
||||
# Determine the new hunger and make sure it doesn't go negative
|
||||
new_hunger = max(hunger - food, 0)
|
||||
|
||||
await self.conf.user(ctx.author).pets.set_raw(
|
||||
pet_name, 'hunger', value=new_hunger
|
||||
)
|
||||
|
||||
# We could accomplish the same thing a slightly different way
|
||||
await self.conf.user(ctx.author).pets.get_attr(pet_name).hunger.set(new_hunger)
|
||||
|
||||
await ctx.send("Your pet is now at {}/100 hunger!".format(new_hunger)
|
||||
|
||||
Of course, if we're less than responsible pet owners, there are consequences::
|
||||
|
||||
#continued
|
||||
@commands.command()
|
||||
async def adopt(self, ctx, pet_name: str, *, member: discord.Member):
|
||||
try:
|
||||
pet = await self.conf.user(member).pets.get_raw(pet_name)
|
||||
except KeyError:
|
||||
await ctx.send("That person doesn't own that pet!")
|
||||
return
|
||||
|
||||
hunger = pet.get("hunger")
|
||||
if hunger < 80:
|
||||
await ctx.send("That pet is too well taken care of to be adopted.")
|
||||
return
|
||||
|
||||
await self.conf.user(member).pets.clear_raw(pet_name)
|
||||
|
||||
# this is equivalent to doing the following
|
||||
|
||||
pets = await self.conf.user(member).pets()
|
||||
del pets[pet_name]
|
||||
await self.conf.user(member).pets.set(pets)
|
||||
|
||||
await self.conf.user(ctx.author).pets.set_raw(pet_name, value=pet)
|
||||
await ctx.send(
|
||||
"Your request to adopt this pet has been granted due to "
|
||||
"how poorly it was taken care of."
|
||||
)
|
||||
|
||||
|
||||
*************
|
||||
V2 Data Usage
|
||||
*************
|
||||
There has been much conversation on how to bring V2 data into V3 and, officially, we recommend that cog developers
|
||||
make use of the public interface in Config (using the categories as described in these docs) rather than simply
|
||||
copying and pasting your V2 data into V3. Using Config as recommended will result in a much better experience for
|
||||
you in the long run and will simplify cog creation and maintenance.
|
||||
|
||||
However.
|
||||
|
||||
We realize that many of our cog creators have expressed disinterest in writing converters for V2 to V3 style data.
|
||||
As a result we have opened up config to take standard V2 data and allow cog developers to manipulate it in V3 in
|
||||
much the same way they would in V2. The following examples will demonstrate how to accomplish this.
|
||||
|
||||
.. warning::
|
||||
|
||||
By following this method to use V2 data in V3 you may be at risk of data corruption if your cog is used on a bot
|
||||
with multiple shards. USE AT YOUR OWN RISK.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from redbot.core import Config
|
||||
|
||||
|
||||
class ExampleCog:
|
||||
def __init__(self):
|
||||
self.conf = Config.get_conf(self, 1234567890)
|
||||
|
||||
self.data = {}
|
||||
|
||||
async def load_data(self):
|
||||
self.data = await self.conf.custom("V2", "V2").all()
|
||||
|
||||
async def save_data(self):
|
||||
await self.conf.custom("V2", "V2").set(self.data)
|
||||
|
||||
|
||||
async def setup(bot):
|
||||
cog = ExampleCog()
|
||||
await cog.load_data()
|
||||
bot.add_cog(cog)
|
||||
|
||||
*************
|
||||
API Reference
|
||||
*************
|
||||
@@ -185,6 +374,21 @@ API Reference
|
||||
inside the bot itself! Simply take a peek inside of the :code:`tests/core/test_config.py` file for examples of using
|
||||
Config in all kinds of ways.
|
||||
|
||||
.. important::
|
||||
|
||||
When getting, setting or clearing values in Config, all keys are casted to `str` for you. This
|
||||
includes keys within a `dict` when one is being set, as well as keys in nested dictionaries
|
||||
within that `dict`. For example::
|
||||
|
||||
>>> conf = Config.get_conf(self, identifier=999)
|
||||
>>> conf.register_global(foo={})
|
||||
>>> await conf.foo.set_raw(123, value=True)
|
||||
>>> await conf.foo()
|
||||
{'123': True}
|
||||
>>> await conf.foo.set({123: True, 456: {789: False}}
|
||||
>>> await conf.foo()
|
||||
{'123': True, '456': {'789': False}}
|
||||
|
||||
.. automodule:: redbot.core.config
|
||||
|
||||
Config
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
.. red invocation context documentation
|
||||
|
||||
==========================
|
||||
Command Invocation Context
|
||||
==========================
|
||||
|
||||
.. automodule:: redbot.core.context
|
||||
|
||||
.. autoclass:: redbot.core.RedContext
|
||||
:members:
|
||||
@@ -6,21 +6,38 @@ Downloader Framework
|
||||
Info.json
|
||||
*********
|
||||
|
||||
The info.json file may exist inside every package folder in the repo,
|
||||
it is optional however. This string describes the valid keys within
|
||||
an info file (and maybe how the Downloader cog uses them).
|
||||
The optional info.json file may exist inside every package folder in the repo,
|
||||
as well as in the root of the repo. The following sections describe the valid
|
||||
keys within an info file (and maybe how the Downloader cog uses them).
|
||||
|
||||
KEYS (case sensitive):
|
||||
Keys common to both repo and cog info.json (case sensitive)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- ``author`` (list of strings) - list of names of authors of the cog
|
||||
- ``author`` (list of strings) - list of names of authors of the cog or repo.
|
||||
|
||||
- ``bot_version`` (list of integer) - Min version number of Red in the format ``(MAJOR, MINOR, PATCH)``
|
||||
- ``description`` (string) - A long description of the cog or repo. For cogs, this
|
||||
is displayed when a user executes ``!cog info``.
|
||||
|
||||
- ``description`` (string) - A long description of the cog that appears when a user executes ```!cog info``.
|
||||
- ``install_msg`` (string) - The message that gets displayed when a cog
|
||||
is installed or a repo is added
|
||||
|
||||
- ``hidden`` (bool) - Determines if a cog is available for install.
|
||||
.. tip:: You can use the ``[p]`` key in your string to use the prefix
|
||||
used for installing.
|
||||
|
||||
- ``install_msg`` (string) - The message that gets displayed when a cog is installed
|
||||
- ``short`` (string) - A short description of the cog or repo. For cogs, this info
|
||||
is displayed when a user executes ``!cog list``
|
||||
|
||||
Keys specific to the cog info.json (case sensitive)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- ``min_bot_version`` (string) - Min version number of Red in the format ``MAJOR.MINOR.MICRO``
|
||||
|
||||
- ``max_bot_version`` (string) - Max version number of Red in the format ``MAJOR.MINOR.MICRO``,
|
||||
if ``min_bot_version`` is newer than ``max_bot_version``, ``max_bot_version`` will be ignored
|
||||
|
||||
- ``hidden`` (bool) - Determines if a cog is visible in the cog list for a repo.
|
||||
|
||||
- ``disabled`` (bool) - Determines if a cog is available for install.
|
||||
|
||||
- ``required_cogs`` (map of cogname to repo URL) - A map of required cogs that this cog depends on.
|
||||
Downloader will not deal with this functionality but it may be useful for other cogs.
|
||||
@@ -29,9 +46,6 @@ KEYS (case sensitive):
|
||||
passed to pip on cog install. ``SHARED_LIBRARIES`` do NOT go in this
|
||||
list.
|
||||
|
||||
- ``short`` (string) - A short description of the cog that appears when
|
||||
a user executes `!cog list`
|
||||
|
||||
- ``tags`` (list of strings) - A list of strings that are related to the
|
||||
functionality of the cog. Used to aid in searching.
|
||||
|
||||
|
||||
@@ -13,11 +13,12 @@ Basic Usage
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from discord.ext import commands
|
||||
from redbot.core.i18n import CogI18n
|
||||
from redbot.core import commands
|
||||
from redbot.core.i18n import Translator, cog_i18n
|
||||
|
||||
_ = CogI18n("ExampleCog", __file__)
|
||||
_ = Translator("ExampleCog", __file__)
|
||||
|
||||
@cog_i18n(_)
|
||||
class ExampleCog:
|
||||
"""description"""
|
||||
|
||||
@@ -39,16 +40,19 @@ In a command prompt in your cog's package (where yourcog.py is),
|
||||
create a directory called "locales".
|
||||
Then do one of the following:
|
||||
|
||||
Windows: :code:`python <your python install path>\Tools\i18n\pygettext.py -n -p locales`
|
||||
Windows: :code:`python <your python install path>\Tools\i18n\pygettext.py -D -n -p locales`
|
||||
|
||||
Mac: ?
|
||||
|
||||
Linux: :code:`pygettext3 -n -p locales`
|
||||
Linux: :code:`pygettext3 -D -n -p locales`
|
||||
|
||||
This will generate a messages.pot file with strings to be translated
|
||||
This will generate a messages.pot file with strings to be translated, including
|
||||
docstrings.
|
||||
|
||||
-------------
|
||||
API Reference
|
||||
-------------
|
||||
|
||||
.. automodule:: redbot.core.i18n
|
||||
:members:
|
||||
:special-members: __call__
|
||||
|
||||
@@ -16,17 +16,17 @@ Basic Usage
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from redbot.core import modlog
|
||||
from redbot.core import commands, modlog
|
||||
import discord
|
||||
|
||||
class MyCog:
|
||||
class MyCog(commands.Cog):
|
||||
@commands.command()
|
||||
@checks.admin_or_permissions(ban_members=True)
|
||||
async def ban(self, ctx, user: discord.Member, reason: str = None):
|
||||
await ctx.guild.ban(user)
|
||||
case = modlog.create_case(
|
||||
ctx.guild, ctx.message.created_at, "ban", user,
|
||||
ctx.author, reason, until=None, channel=None
|
||||
case = await modlog.create_case(
|
||||
ctx.bot, ctx.guild, ctx.message.created_at, action="ban",
|
||||
user=user, moderator=ctx.author, reason=reason
|
||||
)
|
||||
await ctx.send("Done. It was about time.")
|
||||
|
||||
@@ -35,50 +35,65 @@ Basic Usage
|
||||
Registering Case types
|
||||
**********************
|
||||
|
||||
To register a single case type:
|
||||
To register case types, use an asynchronous ``initialize()`` method and call
|
||||
it from your setup function:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from redbot.core import modlog
|
||||
# mycog/mycog.py
|
||||
from redbot.core import modlog, commands
|
||||
import discord
|
||||
|
||||
class MyCog:
|
||||
def __init__(self, bot):
|
||||
class MyCog(commands.Cog):
|
||||
|
||||
async def initialize(self):
|
||||
await self.register_casetypes()
|
||||
|
||||
@staticmethod
|
||||
async def register_casetypes():
|
||||
# Registering a single casetype
|
||||
ban_case = {
|
||||
"name": "ban",
|
||||
"default_setting": True,
|
||||
"image": ":hammer:",
|
||||
"image": "\N{HAMMER}",
|
||||
"case_str": "Ban",
|
||||
"audit_type": "ban"
|
||||
# audit_type should be omitted if the action doesn't show
|
||||
# up in the audit log.
|
||||
"audit_type": "ban",
|
||||
}
|
||||
modlog.register_casetype(**ban_case)
|
||||
try:
|
||||
await modlog.register_casetype(**ban_case)
|
||||
except RuntimeError:
|
||||
pass
|
||||
|
||||
To register multiple case types:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from redbot.core import modlog
|
||||
import discord
|
||||
|
||||
class MyCog:
|
||||
def __init__(self, bot):
|
||||
# Registering multiple casetypes
|
||||
new_types = [
|
||||
{
|
||||
"name": "ban",
|
||||
"name": "hackban",
|
||||
"default_setting": True,
|
||||
"image": ":hammer:",
|
||||
"case_str": "Ban",
|
||||
"audit_type": "ban"
|
||||
"image": "\N{BUST IN SILHOUETTE}\N{HAMMER}",
|
||||
"case_str": "Hackban",
|
||||
"audit_type": "ban",
|
||||
},
|
||||
{
|
||||
"name": "kick",
|
||||
"default_setting": True,
|
||||
"image": ":boot:",
|
||||
"image": "\N{WOMANS BOOTS}",
|
||||
"case_str": "Kick",
|
||||
"audit_type": "kick"
|
||||
}
|
||||
]
|
||||
modlog.register_casetypes(new_types)
|
||||
await modlog.register_casetypes(new_types)
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
# mycog/__init__.py
|
||||
from .mycog import MyCog
|
||||
|
||||
async def setup(bot):
|
||||
cog = MyCog()
|
||||
await cog.initialize()
|
||||
bot.add_cog(cog)
|
||||
|
||||
.. important::
|
||||
Image should be the emoji you want to represent your case type with.
|
||||
|
||||
63
docs/framework_rpc.rst
Normal file
63
docs/framework_rpc.rst
Normal file
@@ -0,0 +1,63 @@
|
||||
.. rpc docs
|
||||
|
||||
===
|
||||
RPC
|
||||
===
|
||||
|
||||
V3 comes default with an internal RPC server that may be used to remotely control the bot in various ways.
|
||||
Cogs must register functions to be exposed to RPC clients.
|
||||
Each of those functions must only take JSON serializable parameters and must return JSON serializable objects.
|
||||
|
||||
To enable the internal RPC server you must start the bot with the ``--rpc`` flag.
|
||||
|
||||
********
|
||||
Examples
|
||||
********
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
def setup(bot):
|
||||
c = Cog()
|
||||
bot.add_cog(c)
|
||||
bot.register_rpc_handler(c.rpc_method)
|
||||
|
||||
*******************************
|
||||
Interacting with the RPC Server
|
||||
*******************************
|
||||
|
||||
The RPC server opens a websocket bound to port ``6133`` on ``127.0.0.1``.
|
||||
This is not configurable for security reasons as broad access to this server gives anyone complete control over your bot.
|
||||
To access the server you must find a library that implements websocket based JSONRPC in the language of your choice.
|
||||
|
||||
There are a few built-in RPC methods to note:
|
||||
|
||||
* ``GET_METHODS`` - Returns a list of available RPC methods.
|
||||
* ``GET_METHOD_INFO`` - Will return the docstring for an available RPC method. Useful for finding information about the method's parameters and return values.
|
||||
* ``GET_TOPIC`` - Returns a list of available RPC message topics.
|
||||
* ``GET_SUBSCRIPTIONS`` - Returns a list of RPC subscriptions.
|
||||
* ``SUBSCRIBE`` - Subscribes to an available RPC message topic.
|
||||
* ``UNSUBSCRIBE`` - Unsubscribes from an RPC message topic.
|
||||
|
||||
All RPC methods accept a list of parameters.
|
||||
The built-in methods above expect their parameters to be in list format.
|
||||
|
||||
All cog-based methods expect their parameter list to take one argument, a JSON object, in the following format::
|
||||
|
||||
params = [
|
||||
{
|
||||
"args": [], # A list of positional arguments
|
||||
"kwargs": {}, # A dictionary of keyword arguments
|
||||
}
|
||||
]
|
||||
|
||||
# As an example, here's a call to "get_method_info"
|
||||
rpc_call("GET_METHOD_INFO", ["get_methods",])
|
||||
|
||||
# And here's a call to "core__load"
|
||||
rpc_call("CORE__LOAD", {"args": [["general", "economy", "downloader"],], "kwargs": {}})
|
||||
|
||||
*************
|
||||
API Reference
|
||||
*************
|
||||
|
||||
Please see the :class:`redbot.core.bot.RedBase` class for details on the RPC handler register and unregister methods.
|
||||
@@ -4,14 +4,50 @@
|
||||
Utility Functions
|
||||
=================
|
||||
|
||||
General Utility
|
||||
===============
|
||||
|
||||
.. automodule:: redbot.core.utils
|
||||
:members: deduplicate_iterables, bounded_gather, bounded_gather_iter
|
||||
|
||||
Chat Formatting
|
||||
===============
|
||||
|
||||
.. automodule:: redbot.core.utils.chat_formatting
|
||||
:members:
|
||||
|
||||
Embed Helpers
|
||||
=============
|
||||
|
||||
.. automodule:: redbot.core.utils.embed
|
||||
:members:
|
||||
|
||||
Reaction Menus
|
||||
==============
|
||||
|
||||
.. automodule:: redbot.core.utils.menus
|
||||
:members:
|
||||
|
||||
Event Predicates
|
||||
================
|
||||
|
||||
.. automodule:: redbot.core.utils.predicates
|
||||
:members:
|
||||
|
||||
Mod Helpers
|
||||
===========
|
||||
|
||||
.. automodule:: redbot.core.utils.mod
|
||||
:members:
|
||||
|
||||
Tunnel
|
||||
======
|
||||
|
||||
.. automodule:: redbot.core.utils.tunnel
|
||||
:members: Tunnel
|
||||
|
||||
Common Filters
|
||||
==============
|
||||
|
||||
.. automodule:: redbot.core.utils.common_filters
|
||||
:members:
|
||||
|
||||
@@ -17,9 +17,8 @@ you in the process.
|
||||
Getting started
|
||||
---------------
|
||||
|
||||
To start off, be sure that you have installed Python 3.5 or higher (if you
|
||||
are on Windows, stick with 3.5). Open a terminal or command prompt and type
|
||||
:code:`pip install --process-dependency-links -U git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=redbot[test]`
|
||||
To start off, be sure that you have installed Python 3.7.
|
||||
Open a terminal or command prompt and type :code:`pip install -U git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=redbot[test]`
|
||||
(note that if you get an error with this, try again but put :code:`python -m` in front of the command
|
||||
This will install the latest version of V3.
|
||||
|
||||
@@ -45,9 +44,9 @@ In that file, place the following code:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from discord.ext import commands
|
||||
from redbot.core import commands
|
||||
|
||||
class Mycog:
|
||||
class Mycog(commands.Cog):
|
||||
"""My custom cog"""
|
||||
|
||||
@commands.command()
|
||||
@@ -90,6 +89,6 @@ have successfully created a cog!
|
||||
Additional resources
|
||||
--------------------
|
||||
|
||||
Be sure to check out the `migration guide </guide_migration>`_ for some resources
|
||||
Be sure to check out the :doc:`/guide_migration` for some resources
|
||||
on developing cogs for V3. This will also cover differences between V2 and V3 for
|
||||
those who developed cogs for V2.
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
Migrating Cogs to V3
|
||||
====================
|
||||
|
||||
First, be sure to read `discord.py's migration guide <http://discordpy.readthedocs.io/en/rewrite/migrating.html>`_
|
||||
First, be sure to read `discord.py's migration guide <https://discordpy.readthedocs.io/en/v1.0.1/migrating.html>`_
|
||||
as that covers all of the changes to discord.py that will affect the migration process
|
||||
|
||||
----------------
|
||||
|
||||
@@ -11,17 +11,17 @@ Welcome to Red - Discord Bot's documentation!
|
||||
:caption: Installation Guides:
|
||||
|
||||
install_windows
|
||||
install_mac
|
||||
install_ubuntu
|
||||
install_debian
|
||||
install_centos
|
||||
install_raspbian
|
||||
install_linux_mac
|
||||
venv_guide
|
||||
autostart_systemd
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Cog Reference:
|
||||
|
||||
cog_customcom
|
||||
cog_downloader
|
||||
cog_permissions
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
@@ -29,16 +29,26 @@ Welcome to Red - Discord Bot's documentation!
|
||||
|
||||
guide_migration
|
||||
guide_cog_creation
|
||||
framework_apikeys
|
||||
framework_bank
|
||||
framework_bot
|
||||
framework_checks
|
||||
framework_cogmanager
|
||||
framework_datamanager
|
||||
framework_commands
|
||||
framework_config
|
||||
framework_datamanager
|
||||
framework_downloader
|
||||
framework_events
|
||||
framework_i18n
|
||||
framework_modlog
|
||||
framework_context
|
||||
framework_rpc
|
||||
framework_utils
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Changelogs:
|
||||
|
||||
changelog_3_1_0
|
||||
|
||||
|
||||
Indices and tables
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
.. centos install guide
|
||||
|
||||
==========================
|
||||
Installing Red on CentOS 7
|
||||
==========================
|
||||
|
||||
---------------------------
|
||||
Installing pre-requirements
|
||||
---------------------------
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
yum -y groupinstall development
|
||||
yum -y install https://centos7.iuscommunity.org/ius-release.rpm
|
||||
yum -y install yum-utils wget which python35u python35u-pip python35u-devel openssl-devel libffi-devel git opus-devel
|
||||
sh -c "$(wget https://gist.githubusercontent.com/mustafaturan/7053900/raw/27f4c8bad3ee2bb0027a1a52dc8501bf1e53b270/latest-ffmpeg-centos6.sh -O -)"
|
||||
|
||||
--------------
|
||||
Installing Red
|
||||
--------------
|
||||
|
||||
Without audio:
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links red-discordbot`
|
||||
|
||||
With audio:
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links red-discordbot[voice]`
|
||||
|
||||
To install the development version (without audio):
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=red-discordbot`
|
||||
|
||||
To install the development version (with audio):
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=red-discordbot[voice]`
|
||||
|
||||
----------------------
|
||||
Setting up an instance
|
||||
----------------------
|
||||
|
||||
Run :code:`redbot-setup` and follow the prompts. It will ask first for where you want to
|
||||
store the data (the default is :code:`~/.local/share/Red-DiscordBot`) and will then ask
|
||||
for confirmation of that selection. Next, it will ask you to choose your storage backend
|
||||
(the default here is JSON). It will then ask for a name for your instance. This can be
|
||||
anything as long as it does not contain spaces; however, keep in mind that this is the
|
||||
name you will use to run your bot, and so it should be something you can remember.
|
||||
|
||||
-----------
|
||||
Running Red
|
||||
-----------
|
||||
|
||||
Run :code:`redbot <your instance name>` and run through the initial setup. This will ask for
|
||||
your token and a prefix.
|
||||
@@ -1,55 +0,0 @@
|
||||
.. debian install guide
|
||||
|
||||
================================
|
||||
Installing Red on Debian Stretch
|
||||
================================
|
||||
|
||||
.. warning:: For safety reasons, DO NOT install Red with a root user. Instead, make a new one.
|
||||
|
||||
---------------------------
|
||||
Installing pre-requirements
|
||||
---------------------------
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
echo "deb http://httpredir.debian.org/debian stretch-backports main contrib non-free" >> /etc/apt/sources.list
|
||||
apt-get update
|
||||
apt-get install python3.5-dev python3-pip build-essential libssl-dev libffi-dev git ffmpeg libopus-dev unzip -y
|
||||
|
||||
------------------
|
||||
Installing the bot
|
||||
------------------
|
||||
|
||||
To install without audio:
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links red-discordbot`
|
||||
|
||||
To install with audio:
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links red-discordbot[voice]`
|
||||
|
||||
To install the development version (without audio):
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=red-discordbot`
|
||||
|
||||
To install the development version (with audio):
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=red-discordbot[voice]`
|
||||
|
||||
------------------------
|
||||
Setting up your instance
|
||||
------------------------
|
||||
|
||||
Run :code:`redbot-setup` and follow the prompts. It will ask first for where you want to
|
||||
store the data (the default is :code:`~/.local/share/Red-DiscordBot`) and will then ask
|
||||
for confirmation of that selection. Next, it will ask you to choose your storage backend
|
||||
(the default here is JSON). It will then ask for a name for your instance. This can be
|
||||
anything as long as it does not contain spaces; however, keep in mind that this is the
|
||||
name you will use to run your bot, and so it should be something you can remember.
|
||||
|
||||
-----------
|
||||
Running Red
|
||||
-----------
|
||||
|
||||
Run :code:`redbot <your instance name>` and run through the initial setup. This will ask for
|
||||
your token and a prefix.
|
||||
244
docs/install_linux_mac.rst
Normal file
244
docs/install_linux_mac.rst
Normal file
@@ -0,0 +1,244 @@
|
||||
.. _linux-mac-install-guide:
|
||||
|
||||
==============================
|
||||
Installing Red on Linux or Mac
|
||||
==============================
|
||||
|
||||
.. warning::
|
||||
|
||||
For safety reasons, DO NOT install Red with a root user. If you are unsure how to create
|
||||
a new user, see the man page for the ``useradd`` command.
|
||||
|
||||
-------------------------------
|
||||
Installing the pre-requirements
|
||||
-------------------------------
|
||||
|
||||
Please install the pre-requirements using the commands listed for your operating system.
|
||||
|
||||
The pre-requirements are:
|
||||
- Python 3.7.0 or greater
|
||||
- pip 9.0 or greater
|
||||
- git
|
||||
- Java Runtime Environment 8 or later (for audio support)
|
||||
|
||||
.. _install-arch:
|
||||
|
||||
~~~~~~~~~~
|
||||
Arch Linux
|
||||
~~~~~~~~~~
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
sudo pacman -Syu python-pip git base-devel jre8-openjdk
|
||||
|
||||
.. _install-centos:
|
||||
.. _install-fedora:
|
||||
.. _install-rhel:
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
CentOS 7, Fedora, and RHEL
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
yum -y groupinstall development
|
||||
yum -y install https://centos7.iuscommunity.org/ius-release.rpm
|
||||
sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \
|
||||
openssl-devel xz xz-devel libffi-devel git2u java-1.8.0-openjdk
|
||||
|
||||
Complete the rest of the installation by `installing Python 3.7 with pyenv <install-python-pyenv>`.
|
||||
|
||||
.. _install-debian:
|
||||
.. _install-raspbian:
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Debian and Raspbian Stretch
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. warning::
|
||||
|
||||
Audio will not work on Raspberry Pi's **below** 2B. This is a CPU problem and
|
||||
*cannot* be fixed.
|
||||
|
||||
We recommend installing pyenv as a method of installing non-native versions of python on
|
||||
Debian/Raspbian Stretch. This guide will tell you how. First, run the following commands:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
|
||||
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
|
||||
xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git unzip default-jre
|
||||
|
||||
Complete the rest of the installation by `installing Python 3.7 with pyenv <install-python-pyenv>`.
|
||||
|
||||
.. _install-mac:
|
||||
|
||||
~~~
|
||||
Mac
|
||||
~~~
|
||||
|
||||
Install Brew: in Finder or Spotlight, search for and open *Terminal*. In the terminal, paste the
|
||||
following, then press Enter:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
|
||||
After the installation, install the required packages by pasting the commands and pressing enter,
|
||||
one-by-one:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
brew install python --with-brewed-openssl
|
||||
brew install git
|
||||
brew tap caskroom/versions
|
||||
brew cask install homebrew/cask-versions/adoptopenjdk8
|
||||
|
||||
It's possible you will have network issues. If so, go in your Applications folder, inside it, go in the Python 3.7 folder then double click ``Install certificates.command``
|
||||
|
||||
.. _install-ubuntu:
|
||||
.. _install-ubuntu-bionic:
|
||||
.. _install-ubuntu-cosmic:
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Ubuntu 18.04 Bionic Beaver and 18.10 Cosmic Cuttlefish
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
sudo apt install python3.7 python3.7-dev python3.7-venv python3-pip build-essential \
|
||||
libssl-dev libffi-dev git unzip default-jre -y
|
||||
|
||||
.. _install-ubuntu-xenial:
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Ubuntu 16.04 Xenial Xerus
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
We recommend adding the ``deadsnakes`` apt repository to install Python 3.7 or greater:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
sudo apt install software-properties-common
|
||||
sudo add-apt-repository ppa:deadsnakes/ppa
|
||||
sudo apt update
|
||||
|
||||
Now, install python, pip, git and java with the following commands:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
sudo apt install python3.7 python3.7-dev build-essential libssl-dev libffi-dev git \
|
||||
unzip default-jre curl -y
|
||||
curl https://bootstrap.pypa.io/get-pip.py | sudo python3.7
|
||||
|
||||
.. _install-python-pyenv:
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Installing Python with pyenv
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
On distributions where Python 3.7 needs to be compiled from source, we recommend the use of pyenv.
|
||||
This simplifies the compilation process and has the added bonus of simplifying setting up Red in a
|
||||
virtual environment.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
|
||||
|
||||
After this command, you may see a warning about 'pyenv' not being in the load path. Follow the
|
||||
instructions given to fix that, then close and reopen your shell.
|
||||
|
||||
Then run the following command:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
CONFIGURE_OPTS=--enable-optimizations pyenv install 3.7.2 -v
|
||||
|
||||
This may take a long time to complete, depending on your hardware. For some machines (such as
|
||||
Raspberry Pis and micro-tier VPSes), it may take over an hour; in this case, you may wish to remove
|
||||
the ``CONFIGURE_OPTS=--enable-optimizations`` part from the front of the command, which will
|
||||
drastically reduce the install time. However, be aware that this will make Python run about 10%
|
||||
slower.
|
||||
|
||||
After that is finished, run:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
pyenv global 3.7.2
|
||||
|
||||
Pyenv is now installed and your system should be configured to run Python 3.7.
|
||||
|
||||
------------------------------
|
||||
Creating a Virtual Environment
|
||||
------------------------------
|
||||
|
||||
We **strongly** recommend installing Red into a virtual environment. See the section
|
||||
`installing-in-virtual-environment`.
|
||||
|
||||
.. _installing-red-linux-mac:
|
||||
|
||||
--------------
|
||||
Installing Red
|
||||
--------------
|
||||
|
||||
Choose one of the following commands to install Red.
|
||||
|
||||
.. note::
|
||||
|
||||
If you're not inside an activated virtual environment, include the ``--user`` flag with all
|
||||
``python3.7 -m pip`` commands.
|
||||
|
||||
To install without MongoDB support:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
python3.7 -m pip install -U Red-DiscordBot
|
||||
|
||||
Or, to install with MongoDB support:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
python3.7 -m pip install -U Red-DiscordBot[mongo]
|
||||
|
||||
.. note::
|
||||
|
||||
To install the development version, replace ``Red-DiscordBot`` in the above commands with the
|
||||
following link:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=Red-DiscordBot
|
||||
|
||||
--------------------------
|
||||
Setting Up and Running Red
|
||||
--------------------------
|
||||
|
||||
After installation, set up your instance with the following command:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
redbot-setup
|
||||
|
||||
This will set the location where data will be stored, as well as your
|
||||
storage backend and the name of the instance (which will be used for
|
||||
running the bot).
|
||||
|
||||
Once done setting up the instance, run the following command to run Red:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
redbot <your instance name>
|
||||
|
||||
It will walk through the initial setup, asking for your token and a prefix.
|
||||
You can find out how to obtain a token with
|
||||
`this guide <https://discordpy.readthedocs.io/en/v1.0.1/discord.html#creating-a-bot-account>`_,
|
||||
section "Creating a Bot Account".
|
||||
|
||||
You may also run Red via the launcher, which allows you to restart the bot
|
||||
from discord, and enable auto-restart. You may also update the bot from the
|
||||
launcher menu. Use the following command to run the launcher:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
redbot-launcher
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
.. mac install guide
|
||||
|
||||
=====================
|
||||
Installing Red on Mac
|
||||
=====================
|
||||
|
||||
---------------------------
|
||||
Installing pre-requirements
|
||||
---------------------------
|
||||
|
||||
* Install Brew
|
||||
* In Finder or Spotlight, search for and open terminal. In the window that will open, paste this:
|
||||
:code:`/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"`
|
||||
and press enter.
|
||||
* After the installation, install the required packages by pasting the commands and pressing enter, one-by-one:
|
||||
* :code:`brew install python3 --with-brewed-openssl`
|
||||
* :code:`brew install git`
|
||||
* :code:`brew install ffmpeg --with-ffplay`
|
||||
* :code:`brew install opus`
|
||||
|
||||
--------------
|
||||
Installing Red
|
||||
--------------
|
||||
|
||||
Without audio:
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links red-discordbot`
|
||||
|
||||
With audio:
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links red-discordbot[voice]`
|
||||
|
||||
To install the development version (without audio):
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=red-discordbot`
|
||||
|
||||
To install the development version (with audio):
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=red-discordbot[voice]`
|
||||
|
||||
----------------------
|
||||
Setting up an instance
|
||||
----------------------
|
||||
|
||||
To set up an instance, run :code:`redbot-setup` and follow the steps there, providing the requested information
|
||||
or accepting the defaults. Keep in mind that the instance name will be the one you use when running the bot, so
|
||||
make it something you can remember
|
||||
|
||||
-----------
|
||||
Running Red
|
||||
-----------
|
||||
|
||||
Run :code:`redbot <your instance name>` and go through the initial setup (it will ask for the token and a prefix).
|
||||
@@ -1,53 +0,0 @@
|
||||
.. raspbian install guide
|
||||
|
||||
==================================
|
||||
Installing Red on Raspbian Stretch
|
||||
==================================
|
||||
|
||||
---------------------------
|
||||
Installing pre-requirements
|
||||
---------------------------
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
sudo apt-get install python3.5-dev python3-pip build-essential libssl-dev libffi-dev git libav-tools libopus-dev unzip -y
|
||||
|
||||
--------------
|
||||
Installing Red
|
||||
--------------
|
||||
|
||||
Without audio:
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links red-discordbot`
|
||||
|
||||
With audio:
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links red-discordbot[voice]`
|
||||
|
||||
To install the development version (without audio):
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=red-discordbot`
|
||||
|
||||
To install the development version (with audio):
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=red-discordbot[voice]`
|
||||
|
||||
----------------------
|
||||
Setting up an instance
|
||||
----------------------
|
||||
|
||||
Run :code:`redbot-setup` and follow the prompts. It will ask first for where you want to
|
||||
store the data (the default is :code:`~/.local/share/Red-DiscordBot`) and will then ask
|
||||
for confirmation of that selection. Next, it will ask you to choose your storage backend
|
||||
(the default here is JSON). It will then ask for a name for your instance. This can be
|
||||
anything as long as it does not contain spaces; however, keep in mind that this is the
|
||||
name you will use to run your bot, and so it should be something you can remember.
|
||||
|
||||
-----------
|
||||
Running Red
|
||||
-----------
|
||||
|
||||
Run :code:`redbot <your instance name>` and run through the initial setup. This will ask for
|
||||
your token and a prefix.
|
||||
|
||||
.. warning:: Audio will not work on Raspberry Pi's **below** 2B. This is a CPU problem and *cannot* be fixed.
|
||||
@@ -1,53 +0,0 @@
|
||||
.. ubuntu install guide
|
||||
|
||||
==============================
|
||||
Installing Red on Ubuntu 16.04
|
||||
==============================
|
||||
|
||||
.. warning:: For safety reasons, DO NOT install Red with a root user. Instead, make a new one.
|
||||
|
||||
-------------------------------
|
||||
Installing the pre-requirements
|
||||
-------------------------------
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
sudo apt install python3.5-dev python3-pip build-essential libssl-dev libffi-dev git ffmpeg libopus-dev unzip -y
|
||||
|
||||
------------------
|
||||
Installing the bot
|
||||
------------------
|
||||
|
||||
To install without audio:
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links red-discordbot`
|
||||
|
||||
To install with audio:
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links red-discordbot[voice]`
|
||||
|
||||
To install the development version (without audio):
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=red-discordbot`
|
||||
|
||||
To install the development version (with audio):
|
||||
|
||||
:code:`pip3 install -U --process-dependency-links git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=red-discordbot[voice]`
|
||||
|
||||
------------------------
|
||||
Setting up your instance
|
||||
------------------------
|
||||
|
||||
Run :code:`redbot-setup` and follow the prompts. It will ask first for where you want to
|
||||
store the data (the default is :code:`~/.local/share/Red-DiscordBot`) and will then ask
|
||||
for confirmation of that selection. Next, it will ask you to choose your storage backend
|
||||
(the default here is JSON). It will then ask for a name for your instance. This can be
|
||||
anything as long as it does not contain spaces; however, keep in mind that this is the
|
||||
name you will use to run your bot, and so it should be something you can remember.
|
||||
|
||||
-----------
|
||||
Running Red
|
||||
-----------
|
||||
|
||||
Run :code:`redbot <your instance name>` and run through the initial setup. This will ask for
|
||||
your token and a prefix.
|
||||
@@ -1,4 +1,4 @@
|
||||
.. windows installation docs
|
||||
.. _windows-install-guide:
|
||||
|
||||
=========================
|
||||
Installing Red on Windows
|
||||
@@ -8,36 +8,113 @@ Installing Red on Windows
|
||||
Needed Software
|
||||
---------------
|
||||
|
||||
* `Python <https://python.org/downloads/>`_ - Red needs at least Python 3.5
|
||||
The following software dependencies can all be installed quickly and easily through powershell,
|
||||
using a trusted package manager for windows called `Chocolatey <https://chocolatey.org>`_
|
||||
|
||||
.. attention:: Please note that 3.6 has issues on some versions of Windows.
|
||||
If you try using Red with 3.6 and experience issues, uninstall
|
||||
Python 3.6 and install the latest version of Python 3.5
|
||||
We also provide instructions for manually installing all of the dependencies.
|
||||
|
||||
******************************************
|
||||
Installing using powershell and chocolatey
|
||||
******************************************
|
||||
|
||||
To install via powershell, search "powershell" in the windows start menu,
|
||||
right-click on it and then click "Run as administrator"
|
||||
|
||||
Then run each of the following commands:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
Set-ExecutionPolicy Bypass -Scope Process -Force
|
||||
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
|
||||
choco install git --params "/GitOnlyOnPath /WindowsTerminal" -y
|
||||
choco install jre8 python -y; exit
|
||||
|
||||
|
||||
********************************
|
||||
Manually installing dependencies
|
||||
********************************
|
||||
|
||||
* `Python <https://www.python.org/downloads/>`_ - Red needs Python 3.7.0 or greater
|
||||
|
||||
.. note:: Please make sure that the box to add Python to PATH is CHECKED, otherwise
|
||||
you may run into issues when trying to run Red
|
||||
you may run into issues when trying to run Red.
|
||||
|
||||
* `Git <https://git-scm.com/download/win>`_
|
||||
|
||||
.. attention:: Please choose the option to "Run Git from the Windows Command Prompt" in Git's setup
|
||||
.. attention:: Please choose the option to "Run Git from the Windows Command Prompt" in Git's setup.
|
||||
|
||||
* `Java <https://java.com/en/download/manual.jsp>`_ - needed for Audio
|
||||
|
||||
.. attention:: Please choose the "Windows Online" installer.
|
||||
|
||||
.. _installing-red-windows:
|
||||
|
||||
--------------
|
||||
Installing Red
|
||||
--------------
|
||||
|
||||
.. attention:: You may need to restart your computer after installing dependencies
|
||||
for the PATH changes to take effect.
|
||||
|
||||
1. Open a command prompt (open Start, search for "command prompt", then click it)
|
||||
2. Run the appropriate command, depending on if you want audio or not
|
||||
2. Create and activate a virtual environment (strongly recommended), see the section `using-venv`
|
||||
3. Run **one** of the following commands, depending on what extras you want installed
|
||||
|
||||
* No audio: :code:`python -m pip install -U --process-dependency-links Red-DiscordBot`
|
||||
* Audio: :code:`python -m pip install -U --process-dependency-links Red-DiscordBot[voice]`
|
||||
* Development version (without audio): :code:`python -m pip install -U --process-dependency-links git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=red-discordbot`
|
||||
* Development version (with audio): :code:`python -m pip install -U --process-dependency-links git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=red-discordbot[voice]`
|
||||
.. note::
|
||||
|
||||
3. Once that has completed, run :code:`redbot-setup` to set up your instance
|
||||
If you're not inside an activated virtual environment, include the ``--user`` flag with all
|
||||
``pip`` commands.
|
||||
|
||||
* This will set the location where data will be stored, as well as your
|
||||
* No MongoDB support:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
python -m pip install -U Red-DiscordBot
|
||||
|
||||
* With MongoDB support:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
python -m pip install -U Red-DiscordBot[mongo]
|
||||
|
||||
.. note::
|
||||
|
||||
To install the development version, replace ``Red-DiscordBot`` in the above commands with the
|
||||
following link:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=Red-DiscordBot
|
||||
|
||||
--------------------------
|
||||
Setting Up and Running Red
|
||||
--------------------------
|
||||
|
||||
After installation, set up your instance with the following command:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
redbot-setup
|
||||
|
||||
This will set the location where data will be stored, as well as your
|
||||
storage backend and the name of the instance (which will be used for
|
||||
running the bot)
|
||||
running the bot).
|
||||
|
||||
4. Once done setting up the instance, run :code:`redbot <your instance name>` to run Red.
|
||||
It will walk through the initial setup, asking for your token and a prefix
|
||||
Once done setting up the instance, run the following command to run Red:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
redbot <your instance name>
|
||||
|
||||
It will walk through the initial setup, asking for your token and a prefix.
|
||||
You can find out how to obtain a token with
|
||||
`this guide <https://discordpy.readthedocs.io/en/v1.0.1/discord.html#creating-a-bot-account>`_,
|
||||
section "Creating a Bot Account".
|
||||
|
||||
You may also run Red via the launcher, which allows you to restart the bot
|
||||
from discord, and enable auto-restart. You may also update the bot from the
|
||||
launcher menu. Use the following command to run the launcher:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
redbot-launcher
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
sphinx==1.6.3
|
||||
sphinxcontrib-asyncio
|
||||
sphinx_rtd_theme
|
||||
git+https://github.com/Rapptz/discord.py@rewrite#egg=discord.py[voice]
|
||||
# We still need this because RTD is special
|
||||
setuptools==40.8.0
|
||||
|
||||
132
docs/venv_guide.rst
Normal file
132
docs/venv_guide.rst
Normal file
@@ -0,0 +1,132 @@
|
||||
.. _installing-in-virtual-environment:
|
||||
|
||||
=======================================
|
||||
Installing Red in a Virtual Environment
|
||||
=======================================
|
||||
Virtual environments allow you to isolate red's library dependencies, cog dependencies and python
|
||||
binaries from the rest of your system. It is strongly recommended you use this if you use python
|
||||
for more than just Red.
|
||||
|
||||
.. _using-venv:
|
||||
|
||||
--------------
|
||||
Using ``venv``
|
||||
--------------
|
||||
This is the quickest way to get your virtual environment up and running, as `venv` is shipped with
|
||||
python.
|
||||
|
||||
First, choose a directory where you would like to create your virtual environment. It's a good idea
|
||||
to keep it in a location which is easy to type out the path to. From now, we'll call it
|
||||
``path/to/venv/`` (or ``path\to\venv\`` on Windows).
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
``venv`` on Linux or Mac
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Create your virtual environment with the following command::
|
||||
|
||||
python3.7 -m venv path/to/venv/
|
||||
|
||||
And activate it with the following command::
|
||||
|
||||
source path/to/venv/bin/activate
|
||||
|
||||
.. important::
|
||||
|
||||
You must activate the virtual environment with the above command every time you open a new
|
||||
shell to run, install or update Red.
|
||||
|
||||
Continue reading `below <after-activating-virtual-environment>`.
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
``venv`` on Windows
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
Create your virtual environment with the following command::
|
||||
|
||||
python -m venv path\to\venv\
|
||||
|
||||
And activate it with the following command::
|
||||
|
||||
path\to\venv\Scripts\activate.bat
|
||||
|
||||
.. important::
|
||||
|
||||
You must activate the virtual environment with the above command every time you open a new
|
||||
Command Prompt to run, install or update Red.
|
||||
|
||||
Continue reading `below <after-activating-virtual-environment>`.
|
||||
|
||||
.. _using-pyenv-virtualenv:
|
||||
|
||||
--------------------------
|
||||
Using ``pyenv virtualenv``
|
||||
--------------------------
|
||||
|
||||
.. note::
|
||||
|
||||
This is for non-Windows users only.
|
||||
|
||||
Using ``pyenv virtualenv`` saves you the headache of remembering where you installed your virtual
|
||||
environments. If you haven't already, install pyenv with `pyenv-installer`_.
|
||||
|
||||
First, ensure your pyenv interpreter is set to python 3.7.0 or greater with the following command::
|
||||
|
||||
pyenv version
|
||||
|
||||
Now, create a virtual environment with the following command::
|
||||
|
||||
pyenv virtualenv <name>
|
||||
|
||||
Replace ``<name>`` with whatever you like. If you forget what you named it, use the command ``pyenv
|
||||
versions``.
|
||||
|
||||
Now activate your virtualenv with the following command::
|
||||
|
||||
pyenv shell <name>
|
||||
|
||||
.. important::
|
||||
|
||||
You must activate the virtual environment with the above command every time you open a new
|
||||
shell to run, install or update Red.
|
||||
|
||||
Continue reading `below <after-activating-virtual-environment>`.
|
||||
|
||||
.. _pyenv-installer: https://github.com/pyenv/pyenv-installer/blob/master/README.rst
|
||||
|
||||
----
|
||||
|
||||
.. _after-activating-virtual-environment:
|
||||
|
||||
Once activated, your ``PATH`` environment variable will be modified to use the virtual
|
||||
environment's python executables, as well as other executables like ``pip``.
|
||||
|
||||
From here, install Red using the commands listed on your installation guide (`Windows
|
||||
<installing-red-windows>` or `Non-Windows <installing-red-linux-mac>`).
|
||||
|
||||
.. note::
|
||||
|
||||
The alternative to activating the virtual environment each time you open a new shell is to
|
||||
provide the full path to the executable. This will automatically use the virtual environment's
|
||||
python interpreter and installed libraries.
|
||||
|
||||
--------------------------------------------
|
||||
Virtual Environments with Multiple Instances
|
||||
--------------------------------------------
|
||||
If you are running multiple instances of Red on the same machine, you have the option of either
|
||||
using the same virtual environment for all of them, or creating separate ones.
|
||||
|
||||
.. note::
|
||||
|
||||
This only applies for multiple instances of V3. If you are running a V2 instance as well,
|
||||
You **must** use separate virtual environments.
|
||||
|
||||
The advantages of using a *single* virtual environment for all of your V3 instances are:
|
||||
|
||||
- When updating Red, you will only need to update it once for all instances (however you will still need to restart all instances for the changes to take effect)
|
||||
- It will save space on your hard drive
|
||||
|
||||
On the other hand, you may wish to update each of your instances individually.
|
||||
|
||||
.. important::
|
||||
|
||||
Windows users with multiple instances should create *separate* virtual environments, as
|
||||
updating multiple running instances at once is likely to cause errors.
|
||||
@@ -1,33 +0,0 @@
|
||||
import subprocess
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
def main():
|
||||
interpreter = sys.executable
|
||||
print(interpreter)
|
||||
root_dir = os.getcwd()
|
||||
cogs = [i for i in os.listdir("redbot/cogs") if os.path.isdir(os.path.join("redbot/cogs", i))]
|
||||
for d in cogs:
|
||||
if "locales" in os.listdir(os.path.join("redbot/cogs", d)):
|
||||
os.chdir(os.path.join("redbot/cogs", d, "locales"))
|
||||
if "regen_messages.py" not in os.listdir(os.getcwd()):
|
||||
print("Directory 'locales' exists for {} but no 'regen_messages.py' is available!".format(d))
|
||||
exit(1)
|
||||
else:
|
||||
print("Running 'regen_messages.py' for {}".format(d))
|
||||
retval = subprocess.run([interpreter, "regen_messages.py"])
|
||||
if retval.returncode != 0:
|
||||
exit(1)
|
||||
os.chdir(root_dir)
|
||||
os.chdir("redbot/core/locales")
|
||||
print("Running 'regen_messages.py' for core")
|
||||
retval = subprocess.run([interpreter, "regen_messages.py"])
|
||||
if retval.returncode != 0:
|
||||
exit(1)
|
||||
os.chdir(root_dir)
|
||||
subprocess.run(["crowdin", "upload"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
42
make.bat
Normal file
42
make.bat
Normal file
@@ -0,0 +1,42 @@
|
||||
@echo off
|
||||
|
||||
if [%1] == [] goto help
|
||||
|
||||
REM This allows us to expand variables at execution
|
||||
setlocal ENABLEDELAYEDEXPANSION
|
||||
|
||||
REM This will set PYFILES as a list of tracked .py files
|
||||
set PYFILES=
|
||||
for /F "tokens=* USEBACKQ" %%A in (`git ls-files "*.py"`) do (
|
||||
set PYFILES=!PYFILES! %%A
|
||||
)
|
||||
|
||||
goto %1
|
||||
|
||||
:reformat
|
||||
black -l 99 !PYFILES!
|
||||
exit /B %ERRORLEVEL%
|
||||
|
||||
:stylecheck
|
||||
black -l 99 --check !PYFILES!
|
||||
exit /B %ERRORLEVEL%
|
||||
|
||||
:newenv
|
||||
py -3.7 -m venv --clear .venv
|
||||
.\.venv\Scripts\python -m pip install -U pip setuptools
|
||||
goto syncenv
|
||||
|
||||
:syncenv
|
||||
.\.venv\Scripts\python -m pip install -Ur .\tools\dev-requirements.txt
|
||||
exit /B %ERRORLEVEL%
|
||||
|
||||
:help
|
||||
echo Usage:
|
||||
echo make ^<command^>
|
||||
echo.
|
||||
echo Commands:
|
||||
echo reformat Reformat all .py files being tracked by git.
|
||||
echo stylecheck Check which tracked .py files need reformatting.
|
||||
echo newenv Create or replace this project's virtual environment.
|
||||
echo syncenv Sync this project's virtual environment to Red's latest
|
||||
echo dependencies.
|
||||
@@ -1,11 +1,180 @@
|
||||
import sys
|
||||
import typing
|
||||
import discord
|
||||
import re as _re
|
||||
import sys as _sys
|
||||
import warnings as _warnings
|
||||
from math import inf as _inf
|
||||
from typing import (
|
||||
ClassVar as _ClassVar,
|
||||
Dict as _Dict,
|
||||
List as _List,
|
||||
Optional as _Optional,
|
||||
Pattern as _Pattern,
|
||||
Tuple as _Tuple,
|
||||
Union as _Union,
|
||||
)
|
||||
|
||||
# Let's do all the dumb version checking in one place.
|
||||
|
||||
if discord.version_info.major < 1:
|
||||
print("You are not running the rewritten version of discord.py.\n\n"
|
||||
"In order to use Red v3 you MUST be running d.py version"
|
||||
" >= 1.0.0.")
|
||||
sys.exit(1)
|
||||
MIN_PYTHON_VERSION = (3, 7, 0)
|
||||
|
||||
__all__ = ["MIN_PYTHON_VERSION", "__version__", "version_info", "VersionInfo"]
|
||||
|
||||
if _sys.version_info < MIN_PYTHON_VERSION:
|
||||
print(
|
||||
f"Python {'.'.join(map(str, MIN_PYTHON_VERSION))} is required to run Red, but you have "
|
||||
f"{_sys.version}! Please update Python."
|
||||
)
|
||||
_sys.exit(1)
|
||||
|
||||
|
||||
class VersionInfo:
|
||||
ALPHA = "alpha"
|
||||
BETA = "beta"
|
||||
RELEASE_CANDIDATE = "release candidate"
|
||||
FINAL = "final"
|
||||
|
||||
_VERSION_STR_PATTERN: _ClassVar[_Pattern[str]] = _re.compile(
|
||||
r"^"
|
||||
r"(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<micro>0|[1-9]\d*)"
|
||||
r"(?:(?P<releaselevel>a|b|rc)(?P<serial>0|[1-9]\d*))?"
|
||||
r"(?:\.post(?P<post_release>0|[1-9]\d*))?"
|
||||
r"(?:\.dev(?P<dev_release>0|[1-9]\d*))?"
|
||||
r"$",
|
||||
flags=_re.IGNORECASE,
|
||||
)
|
||||
_RELEASE_LEVELS: _ClassVar[_List[str]] = [ALPHA, BETA, RELEASE_CANDIDATE, FINAL]
|
||||
_SHORT_RELEASE_LEVELS: _ClassVar[_Dict[str, str]] = {
|
||||
"a": ALPHA,
|
||||
"b": BETA,
|
||||
"rc": RELEASE_CANDIDATE,
|
||||
}
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
major: int,
|
||||
minor: int,
|
||||
micro: int,
|
||||
releaselevel: str,
|
||||
serial: _Optional[int] = None,
|
||||
post_release: _Optional[int] = None,
|
||||
dev_release: _Optional[int] = None,
|
||||
) -> None:
|
||||
self.major: int = major
|
||||
self.minor: int = minor
|
||||
self.micro: int = micro
|
||||
|
||||
if releaselevel not in self._RELEASE_LEVELS:
|
||||
raise TypeError(f"'releaselevel' must be one of: {', '.join(self._RELEASE_LEVELS)}")
|
||||
|
||||
self.releaselevel: str = releaselevel
|
||||
self.serial: _Optional[int] = serial
|
||||
self.post_release: _Optional[int] = post_release
|
||||
self.dev_release: _Optional[int] = dev_release
|
||||
|
||||
@classmethod
|
||||
def from_str(cls, version_str: str) -> "VersionInfo":
|
||||
"""Parse a string into a VersionInfo object.
|
||||
|
||||
Raises
|
||||
------
|
||||
ValueError
|
||||
If the version info string is invalid.
|
||||
|
||||
"""
|
||||
match = cls._VERSION_STR_PATTERN.match(version_str)
|
||||
if not match:
|
||||
raise ValueError(f"Invalid version string: {version_str}")
|
||||
|
||||
kwargs: _Dict[str, _Union[str, int]] = {}
|
||||
for key in ("major", "minor", "micro"):
|
||||
kwargs[key] = int(match[key])
|
||||
releaselevel = match["releaselevel"]
|
||||
if releaselevel is not None:
|
||||
kwargs["releaselevel"] = cls._SHORT_RELEASE_LEVELS[releaselevel]
|
||||
else:
|
||||
kwargs["releaselevel"] = cls.FINAL
|
||||
for key in ("serial", "post_release", "dev_release"):
|
||||
if match[key] is not None:
|
||||
kwargs[key] = int(match[key])
|
||||
return cls(**kwargs)
|
||||
|
||||
@classmethod
|
||||
def from_json(
|
||||
cls, data: _Union[_Dict[str, _Union[int, str]], _List[_Union[int, str]]]
|
||||
) -> "VersionInfo":
|
||||
if isinstance(data, _List):
|
||||
# For old versions, data was stored as a list:
|
||||
# [MAJOR, MINOR, MICRO, RELEASELEVEL, SERIAL]
|
||||
return cls(*data)
|
||||
else:
|
||||
return cls(**data)
|
||||
|
||||
def to_json(self) -> _Dict[str, _Union[int, str]]:
|
||||
return {
|
||||
"major": self.major,
|
||||
"minor": self.minor,
|
||||
"micro": self.micro,
|
||||
"releaselevel": self.releaselevel,
|
||||
"serial": self.serial,
|
||||
"post_release": self.post_release,
|
||||
"dev_release": self.dev_release,
|
||||
}
|
||||
|
||||
def _generate_comparison_tuples(
|
||||
self, other: "VersionInfo"
|
||||
) -> _List[
|
||||
_Tuple[int, int, int, int, _Union[int, float], _Union[int, float], _Union[int, float]]
|
||||
]:
|
||||
tups: _List[
|
||||
_Tuple[int, int, int, int, _Union[int, float], _Union[int, float], _Union[int, float]]
|
||||
] = []
|
||||
for obj in (self, other):
|
||||
tups.append(
|
||||
(
|
||||
obj.major,
|
||||
obj.minor,
|
||||
obj.micro,
|
||||
obj._RELEASE_LEVELS.index(obj.releaselevel),
|
||||
obj.serial if obj.serial is not None else _inf,
|
||||
obj.post_release if obj.post_release is not None else -_inf,
|
||||
obj.dev_release if obj.dev_release is not None else _inf,
|
||||
)
|
||||
)
|
||||
return tups
|
||||
|
||||
def __lt__(self, other: "VersionInfo") -> bool:
|
||||
tups = self._generate_comparison_tuples(other)
|
||||
return tups[0] < tups[1]
|
||||
|
||||
def __eq__(self, other: "VersionInfo") -> bool:
|
||||
tups = self._generate_comparison_tuples(other)
|
||||
return tups[0] == tups[1]
|
||||
|
||||
def __le__(self, other: "VersionInfo") -> bool:
|
||||
tups = self._generate_comparison_tuples(other)
|
||||
return tups[0] <= tups[1]
|
||||
|
||||
def __str__(self) -> str:
|
||||
ret = f"{self.major}.{self.minor}.{self.micro}"
|
||||
if self.releaselevel != self.FINAL:
|
||||
short = next(
|
||||
k for k, v in self._SHORT_RELEASE_LEVELS.items() if v == self.releaselevel
|
||||
)
|
||||
ret += f"{short}{self.serial}"
|
||||
if self.post_release is not None:
|
||||
ret += f".post{self.post_release}"
|
||||
if self.dev_release is not None:
|
||||
ret += f".dev{self.dev_release}"
|
||||
return ret
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return (
|
||||
"VersionInfo(major={major}, minor={minor}, micro={micro}, "
|
||||
"releaselevel={releaselevel}, serial={serial}, post={post_release}, "
|
||||
"dev={dev_release})".format(**self.to_json())
|
||||
)
|
||||
|
||||
|
||||
__version__ = "3.1.6"
|
||||
version_info = VersionInfo.from_str(__version__)
|
||||
|
||||
# Filter fuzzywuzzy slow sequence matcher warning
|
||||
_warnings.filterwarnings("ignore", module=r"fuzzywuzzy.*")
|
||||
|
||||
@@ -2,23 +2,42 @@
|
||||
|
||||
# Discord Version check
|
||||
|
||||
import sys
|
||||
import discord
|
||||
from redbot.core.bot import Red, ExitCodes
|
||||
from redbot.core.cog_manager import CogManagerUI
|
||||
from redbot.core.data_manager import load_basic_configuration, config_file
|
||||
from redbot.core.json_io import JsonIO
|
||||
from redbot.core.global_checks import init_global_checks
|
||||
from redbot.core.events import init_events
|
||||
from redbot.core.cli import interactive_config, confirm, parse_cli_flags, ask_sentry
|
||||
from redbot.core.core_commands import Core
|
||||
from redbot.core.dev_commands import Dev
|
||||
from redbot.core import rpc, __version__
|
||||
import asyncio
|
||||
import logging.handlers
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
|
||||
import discord
|
||||
|
||||
# Set the event loop policies here so any subsequent `get_event_loop()`
|
||||
# calls, in particular those as a result of the following imports,
|
||||
# return the correct loop object.
|
||||
if sys.platform == "win32":
|
||||
asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy())
|
||||
elif sys.implementation.name == "cpython":
|
||||
# Let's not force this dependency, uvloop is much faster on cpython
|
||||
try:
|
||||
import uvloop
|
||||
except ImportError:
|
||||
uvloop = None
|
||||
pass
|
||||
else:
|
||||
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
|
||||
|
||||
import redbot.logging
|
||||
from redbot.core.bot import Red, ExitCodes
|
||||
from redbot.core.cog_manager import CogManagerUI
|
||||
from redbot.core.global_checks import init_global_checks
|
||||
from redbot.core.events import init_events
|
||||
from redbot.core.cli import interactive_config, confirm, parse_cli_flags
|
||||
from redbot.core.core_commands import Core
|
||||
from redbot.core.dev_commands import Dev
|
||||
from redbot.core import __version__, modlog, bank, data_manager
|
||||
from signal import SIGTERM
|
||||
|
||||
|
||||
log = logging.getLogger("red.main")
|
||||
|
||||
#
|
||||
# Red - Discord Bot v3
|
||||
@@ -27,67 +46,26 @@ import os
|
||||
#
|
||||
|
||||
|
||||
def init_loggers(cli_flags):
|
||||
# d.py stuff
|
||||
dpy_logger = logging.getLogger("discord")
|
||||
dpy_logger.setLevel(logging.WARNING)
|
||||
console = logging.StreamHandler()
|
||||
console.setLevel(logging.WARNING)
|
||||
dpy_logger.addHandler(console)
|
||||
|
||||
# Red stuff
|
||||
|
||||
logger = logging.getLogger("red")
|
||||
|
||||
red_format = logging.Formatter(
|
||||
'%(asctime)s %(levelname)s %(module)s %(funcName)s %(lineno)d: '
|
||||
'%(message)s',
|
||||
datefmt="[%d/%m/%Y %H:%M]")
|
||||
|
||||
stdout_handler = logging.StreamHandler(sys.stdout)
|
||||
stdout_handler.setFormatter(red_format)
|
||||
|
||||
if cli_flags.debug:
|
||||
os.environ['PYTHONASYNCIODEBUG'] = '1'
|
||||
logger.setLevel(logging.DEBUG)
|
||||
else:
|
||||
logger.setLevel(logging.WARNING)
|
||||
|
||||
from redbot.core.data_manager import core_data_path
|
||||
logfile_path = core_data_path() / 'red.log'
|
||||
fhandler = logging.handlers.RotatingFileHandler(
|
||||
filename=str(logfile_path), encoding='utf-8', mode='a',
|
||||
maxBytes=10**7, backupCount=5)
|
||||
fhandler.setFormatter(red_format)
|
||||
|
||||
logger.addHandler(fhandler)
|
||||
logger.addHandler(stdout_handler)
|
||||
|
||||
# Sentry stuff
|
||||
sentry_logger = logging.getLogger("red.sentry")
|
||||
sentry_logger.setLevel(logging.WARNING)
|
||||
|
||||
return logger, sentry_logger
|
||||
|
||||
|
||||
async def _get_prefix_and_token(red, indict):
|
||||
"""
|
||||
Again, please blame <@269933075037814786> for this.
|
||||
:param indict:
|
||||
:return:
|
||||
"""
|
||||
indict['token'] = await red.db.token()
|
||||
indict['prefix'] = await red.db.prefix()
|
||||
indict['enable_sentry'] = await red.db.enable_sentry()
|
||||
indict["token"] = await red.db.token()
|
||||
indict["prefix"] = await red.db.prefix()
|
||||
|
||||
|
||||
def list_instances():
|
||||
if not config_file.exists():
|
||||
print("No instances have been configured! Configure one "
|
||||
"using `redbot-setup` before trying to run the bot!")
|
||||
if not data_manager.config_file.exists():
|
||||
print(
|
||||
"No instances have been configured! Configure one "
|
||||
"using `redbot-setup` before trying to run the bot!"
|
||||
)
|
||||
sys.exit(1)
|
||||
else:
|
||||
data = JsonIO(config_file)._load_json()
|
||||
with data_manager.config_file.open(encoding="utf-8") as fs:
|
||||
data = json.load(fs)
|
||||
text = "Configured Instances:\n\n"
|
||||
for instance_name in sorted(data.keys()):
|
||||
text += "{}\n".format(instance_name)
|
||||
@@ -95,50 +73,84 @@ def list_instances():
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
async def sigterm_handler(red, log):
|
||||
log.info("SIGTERM received. Quitting...")
|
||||
await red.shutdown(restart=False)
|
||||
|
||||
|
||||
def main():
|
||||
description = "Red V3"
|
||||
cli_flags = parse_cli_flags(sys.argv[1:])
|
||||
if cli_flags.list_instances:
|
||||
list_instances()
|
||||
elif not cli_flags.instance_name:
|
||||
elif cli_flags.version:
|
||||
print(description)
|
||||
print("Current Version: {}".format(__version__))
|
||||
sys.exit(0)
|
||||
elif not cli_flags.instance_name and not cli_flags.no_instance:
|
||||
print("Error: No instance name was provided!")
|
||||
sys.exit(1)
|
||||
load_basic_configuration(cli_flags.instance_name)
|
||||
log, sentry_log = init_loggers(cli_flags)
|
||||
description = "Red - Version {}".format(__version__)
|
||||
red = Red(cli_flags, description=description, pm_help=None)
|
||||
if cli_flags.no_instance:
|
||||
print(
|
||||
"\033[1m"
|
||||
"Warning: The data will be placed in a temporary folder and removed on next system "
|
||||
"reboot."
|
||||
"\033[0m"
|
||||
)
|
||||
cli_flags.instance_name = "temporary_red"
|
||||
data_manager.create_temp_config()
|
||||
data_manager.load_basic_configuration(cli_flags.instance_name)
|
||||
redbot.logging.init_logging(
|
||||
level=cli_flags.logging_level, location=data_manager.core_data_path() / "logs"
|
||||
)
|
||||
|
||||
log.debug("====Basic Config====")
|
||||
log.debug("Data Path: %s", data_manager._base_data_path())
|
||||
log.debug("Storage Type: %s", data_manager.storage_type())
|
||||
|
||||
red = Red(
|
||||
cli_flags=cli_flags, description=description, dm_help=None, fetch_offline_members=True
|
||||
)
|
||||
loop = asyncio.get_event_loop()
|
||||
loop.run_until_complete(red.maybe_update_config())
|
||||
init_global_checks(red)
|
||||
init_events(red, cli_flags)
|
||||
|
||||
red.add_cog(Core(red))
|
||||
red.add_cog(CogManagerUI())
|
||||
if cli_flags.dev:
|
||||
red.add_cog(Dev())
|
||||
loop = asyncio.get_event_loop()
|
||||
# noinspection PyProtectedMember
|
||||
loop.run_until_complete(modlog._init())
|
||||
# noinspection PyProtectedMember
|
||||
bank._init()
|
||||
|
||||
if os.name == "posix":
|
||||
loop.add_signal_handler(SIGTERM, lambda: asyncio.ensure_future(sigterm_handler(red, log)))
|
||||
tmp_data = {}
|
||||
loop.run_until_complete(_get_prefix_and_token(red, tmp_data))
|
||||
token = os.environ.get("RED_TOKEN", tmp_data['token'])
|
||||
prefix = cli_flags.prefix or tmp_data['prefix']
|
||||
if token is None or not prefix:
|
||||
token = os.environ.get("RED_TOKEN", tmp_data["token"])
|
||||
if cli_flags.token:
|
||||
token = cli_flags.token
|
||||
prefix = cli_flags.prefix or tmp_data["prefix"]
|
||||
if not (token and prefix):
|
||||
if cli_flags.no_prompt is False:
|
||||
new_token = interactive_config(red, token_set=bool(token),
|
||||
prefix_set=bool(prefix))
|
||||
new_token = interactive_config(red, token_set=bool(token), prefix_set=bool(prefix))
|
||||
if new_token:
|
||||
token = new_token
|
||||
else:
|
||||
log.critical("Token and prefix must be set in order to login.")
|
||||
sys.exit(1)
|
||||
loop.run_until_complete(_get_prefix_and_token(red, tmp_data))
|
||||
if tmp_data['enable_sentry']:
|
||||
red.enable_sentry()
|
||||
cleanup_tasks = True
|
||||
|
||||
if cli_flags.dry_run:
|
||||
loop.run_until_complete(red.http.close())
|
||||
sys.exit(0)
|
||||
try:
|
||||
loop.run_until_complete(red.start(token, bot=not cli_flags.not_bot))
|
||||
loop.run_until_complete(red.start(token, bot=True))
|
||||
except discord.LoginFailure:
|
||||
cleanup_tasks = False # No login happened, no need for this
|
||||
log.critical("This token doesn't seem to be valid. If it belongs to "
|
||||
"a user account, remember that the --not-bot flag "
|
||||
"must be used. For self-bot functionalities instead, "
|
||||
"--self-bot")
|
||||
db_token = red.db.token()
|
||||
log.critical("This token doesn't seem to be valid.")
|
||||
db_token = loop.run_until_complete(red.db.token())
|
||||
if db_token and not cli_flags.no_prompt:
|
||||
print("\nDo you want to reset the token? (y/n)")
|
||||
if confirm("> "):
|
||||
@@ -150,18 +162,18 @@ def main():
|
||||
red._shutdown_mode = ExitCodes.SHUTDOWN
|
||||
except Exception as e:
|
||||
log.critical("Fatal exception", exc_info=e)
|
||||
sentry_log.critical("Fatal Exception", exc_info=e)
|
||||
loop.run_until_complete(red.logout())
|
||||
finally:
|
||||
rpc.clean_up()
|
||||
if cleanup_tasks:
|
||||
pending = asyncio.Task.all_tasks(loop=red.loop)
|
||||
gathered = asyncio.gather(
|
||||
*pending, loop=red.loop, return_exceptions=True)
|
||||
gathered = asyncio.gather(*pending, loop=red.loop, return_exceptions=True)
|
||||
gathered.cancel()
|
||||
try:
|
||||
loop.run_until_complete(red.rpc.close())
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
sys.exit(red._shutdown_mode.value)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@@ -1,70 +1,79 @@
|
||||
import logging
|
||||
from typing import Tuple
|
||||
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
|
||||
from redbot.core import Config, checks
|
||||
|
||||
import logging
|
||||
|
||||
from redbot.core import Config, checks, commands
|
||||
from redbot.core.i18n import Translator, cog_i18n
|
||||
from redbot.core.utils.chat_formatting import box
|
||||
from .announcer import Announcer
|
||||
from .converters import MemberDefaultAuthor, SelfRole
|
||||
|
||||
log = logging.getLogger("red.admin")
|
||||
|
||||
GENERIC_FORBIDDEN = (
|
||||
T_ = Translator("Admin", __file__)
|
||||
|
||||
_ = lambda s: s
|
||||
GENERIC_FORBIDDEN = _(
|
||||
"I attempted to do something that Discord denied me permissions for."
|
||||
" Your command failed to successfully complete."
|
||||
)
|
||||
|
||||
HIERARCHY_ISSUE = (
|
||||
"I tried to add {role.name} to {member.display_name} but that role"
|
||||
" is higher than my highest role in the Discord heirarchy so I was"
|
||||
HIERARCHY_ISSUE = _(
|
||||
"I tried to {verb} {role.name} to {member.display_name} but that role"
|
||||
" is higher than my highest role in the Discord hierarchy so I was"
|
||||
" unable to successfully add it. Please give me a higher role and "
|
||||
"try again."
|
||||
)
|
||||
|
||||
USER_HIERARCHY_ISSUE = (
|
||||
"I tried to add {role.name} to {member.display_name} but that role"
|
||||
" is higher than your highest role in the Discord heirarchy so I was"
|
||||
USER_HIERARCHY_ISSUE = _(
|
||||
"I tried to {verb} {role.name} to {member.display_name} but that role"
|
||||
" is higher than your highest role in the Discord hierarchy so I was"
|
||||
" unable to successfully add it. Please get a higher role and "
|
||||
"try again."
|
||||
)
|
||||
|
||||
RUNNING_ANNOUNCEMENT = (
|
||||
ROLE_USER_HIERARCHY_ISSUE = _(
|
||||
"I tried to edit {role.name} but that role"
|
||||
" is higher than your highest role in the Discord hierarchy so I was"
|
||||
" unable to successfully add it. Please get a higher role and "
|
||||
"try again."
|
||||
)
|
||||
|
||||
RUNNING_ANNOUNCEMENT = _(
|
||||
"I am already announcing something. If you would like to make a"
|
||||
" different announcement please use `{prefix}announce cancel`"
|
||||
" first."
|
||||
)
|
||||
_ = T_
|
||||
|
||||
|
||||
class Admin:
|
||||
@cog_i18n(_)
|
||||
class Admin(commands.Cog):
|
||||
"""A collection of server administration utilities."""
|
||||
|
||||
def __init__(self, config=Config):
|
||||
self.conf = config.get_conf(self, 8237492837454039,
|
||||
force_registration=True)
|
||||
super().__init__()
|
||||
self.conf = config.get_conf(self, 8237492837454039, force_registration=True)
|
||||
|
||||
self.conf.register_global(
|
||||
serverlocked=False
|
||||
)
|
||||
self.conf.register_global(serverlocked=False)
|
||||
|
||||
self.conf.register_guild(
|
||||
announce_ignore=False,
|
||||
announce_channel=None, # Integer ID
|
||||
selfroles=[] # List of integer ID's
|
||||
selfroles=[], # List of integer ID's
|
||||
)
|
||||
|
||||
self.__current_announcer = None
|
||||
|
||||
def __unload(self):
|
||||
def cog_unload(self):
|
||||
try:
|
||||
self.__current_announcer.cancel()
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
async def complain(ctx: commands.Context, message: str,
|
||||
**kwargs):
|
||||
async def complain(ctx: commands.Context, message: str, **kwargs):
|
||||
await ctx.send(message.format(**kwargs))
|
||||
|
||||
def is_announcing(self) -> bool:
|
||||
@@ -78,8 +87,7 @@ class Admin:
|
||||
return self.__current_announcer.active or False
|
||||
|
||||
@staticmethod
|
||||
def pass_heirarchy_check(ctx: commands.Context,
|
||||
role: discord.Role) -> bool:
|
||||
def pass_hierarchy_check(ctx: commands.Context, role: discord.Role) -> bool:
|
||||
"""
|
||||
Determines if the bot has a higher role than the given one.
|
||||
:param ctx:
|
||||
@@ -89,8 +97,7 @@ class Admin:
|
||||
return ctx.guild.me.top_role > role
|
||||
|
||||
@staticmethod
|
||||
def pass_user_heirarchy_check(ctx: commands.Context,
|
||||
role: discord.Role) -> bool:
|
||||
def pass_user_hierarchy_check(ctx: commands.Context, role: discord.Role) -> bool:
|
||||
"""
|
||||
Determines if a user is allowed to add/remove/edit the given role.
|
||||
:param ctx:
|
||||
@@ -99,193 +106,201 @@ class Admin:
|
||||
"""
|
||||
return ctx.author.top_role > role
|
||||
|
||||
async def _addrole(self, ctx: commands.Context, member: discord.Member,
|
||||
role: discord.Role):
|
||||
async def _addrole(self, ctx: commands.Context, member: discord.Member, role: discord.Role):
|
||||
try:
|
||||
await member.add_roles(role)
|
||||
except discord.Forbidden:
|
||||
if not self.pass_heirarchy_check(ctx, role):
|
||||
await self.complain(ctx, HIERARCHY_ISSUE, role=role,
|
||||
member=member)
|
||||
if not self.pass_hierarchy_check(ctx, role):
|
||||
await self.complain(
|
||||
ctx, T_(HIERARCHY_ISSUE), role=role, member=member, verb=_("add")
|
||||
)
|
||||
else:
|
||||
await self.complain(ctx, GENERIC_FORBIDDEN)
|
||||
await self.complain(ctx, T_(GENERIC_FORBIDDEN))
|
||||
else:
|
||||
await ctx.send("I successfully added {role.name} to"
|
||||
" {member.display_name}".format(
|
||||
await ctx.send(
|
||||
_("I successfully added {role.name} to {member.display_name}").format(
|
||||
role=role, member=member
|
||||
))
|
||||
)
|
||||
)
|
||||
|
||||
async def _removerole(self, ctx: commands.Context, member: discord.Member,
|
||||
role: discord.Role):
|
||||
async def _removerole(self, ctx: commands.Context, member: discord.Member, role: discord.Role):
|
||||
try:
|
||||
await member.remove_roles(role)
|
||||
except discord.Forbidden:
|
||||
if not self.pass_heirarchy_check(ctx, role):
|
||||
await self.complain(ctx, HIERARCHY_ISSUE, role=role,
|
||||
member=member)
|
||||
if not self.pass_hierarchy_check(ctx, role):
|
||||
await self.complain(
|
||||
ctx, T_(HIERARCHY_ISSUE), role=role, member=member, verb=_("remove")
|
||||
)
|
||||
else:
|
||||
await self.complain(ctx, GENERIC_FORBIDDEN)
|
||||
await self.complain(ctx, T_(GENERIC_FORBIDDEN))
|
||||
else:
|
||||
await ctx.send("I successfully removed {role.name} from"
|
||||
" {member.display_name}".format(
|
||||
await ctx.send(
|
||||
_("I successfully removed {role.name} from {member.display_name}").format(
|
||||
role=role, member=member
|
||||
))
|
||||
)
|
||||
)
|
||||
|
||||
@commands.command()
|
||||
@commands.guild_only()
|
||||
@checks.admin_or_permissions(manage_roles=True)
|
||||
async def addrole(self, ctx: commands.Context, rolename: discord.Role,
|
||||
user: MemberDefaultAuthor=None):
|
||||
async def addrole(
|
||||
self, ctx: commands.Context, rolename: discord.Role, *, user: MemberDefaultAuthor = None
|
||||
):
|
||||
"""Add a role to a user.
|
||||
|
||||
If user is left blank it defaults to the author of the command.
|
||||
"""
|
||||
Adds a role to a user. If user is left blank it defaults to the
|
||||
author of the command.
|
||||
"""
|
||||
if self.pass_user_heirarchy_check(ctx, rolename):
|
||||
if user is None:
|
||||
user = ctx.author
|
||||
if self.pass_user_hierarchy_check(ctx, rolename):
|
||||
# noinspection PyTypeChecker
|
||||
await self._addrole(ctx, user, rolename)
|
||||
else:
|
||||
await self.complain(ctx, USER_HIERARCHY_ISSUE)
|
||||
await self.complain(
|
||||
ctx, T_(USER_HIERARCHY_ISSUE), member=user, role=rolename, verb=_("add")
|
||||
)
|
||||
|
||||
@commands.command()
|
||||
@commands.guild_only()
|
||||
@checks.admin_or_permissions(manage_roles=True)
|
||||
async def removerole(self, ctx: commands.Context, rolename: discord.Role,
|
||||
user: MemberDefaultAuthor=None):
|
||||
async def removerole(
|
||||
self, ctx: commands.Context, rolename: discord.Role, *, user: MemberDefaultAuthor = None
|
||||
):
|
||||
"""Remove a role from a user.
|
||||
|
||||
If user is left blank it defaults to the author of the command.
|
||||
"""
|
||||
Removes a role from a user. If user is left blank it defaults to the
|
||||
author of the command.
|
||||
"""
|
||||
if self.pass_user_heirarchy_check(ctx, rolename):
|
||||
if user is None:
|
||||
user = ctx.author
|
||||
if self.pass_user_hierarchy_check(ctx, rolename):
|
||||
# noinspection PyTypeChecker
|
||||
await self._removerole(ctx, user, rolename)
|
||||
else:
|
||||
await self.complain(ctx, USER_HIERARCHY_ISSUE)
|
||||
await self.complain(
|
||||
ctx, T_(USER_HIERARCHY_ISSUE), member=user, role=rolename, verb=_("remove")
|
||||
)
|
||||
|
||||
@commands.group()
|
||||
@commands.guild_only()
|
||||
@checks.admin_or_permissions(manage_roles=True)
|
||||
async def editrole(self, ctx: commands.Context):
|
||||
"""Edits roles settings"""
|
||||
if ctx.invoked_subcommand is None:
|
||||
await ctx.send_help()
|
||||
"""Edit role settings."""
|
||||
pass
|
||||
|
||||
@editrole.command(name="colour", aliases=["color", ])
|
||||
async def editrole_colour(self, ctx: commands.Context, role: discord.Role,
|
||||
value: discord.Colour):
|
||||
"""Edits a role's colour
|
||||
@editrole.command(name="colour", aliases=["color"])
|
||||
async def editrole_colour(
|
||||
self, ctx: commands.Context, role: discord.Role, value: discord.Colour
|
||||
):
|
||||
"""Edit a role's colour.
|
||||
|
||||
Use double quotes if the role contains spaces.
|
||||
Colour must be in hexadecimal format.
|
||||
\"http://www.w3schools.com/colors/colors_picker.asp\"
|
||||
Examples:
|
||||
!editrole colour \"The Transistor\" #ff0000
|
||||
!editrole colour Test #ff9900"""
|
||||
author = ctx.author
|
||||
reason = "{}({}) changed the colour of role '{}'".format(
|
||||
author.name, author.id, role.name)
|
||||
[Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)
|
||||
|
||||
if not self.pass_user_heirarchy_check(ctx, role):
|
||||
await self.complain(ctx, USER_HIERARCHY_ISSUE)
|
||||
Examples:
|
||||
`[p]editrole colour "The Transistor" #ff0000`
|
||||
`[p]editrole colour Test #ff9900`
|
||||
"""
|
||||
author = ctx.author
|
||||
reason = "{}({}) changed the colour of role '{}'".format(author.name, author.id, role.name)
|
||||
|
||||
if not self.pass_user_hierarchy_check(ctx, role):
|
||||
await self.complain(ctx, T_(ROLE_USER_HIERARCHY_ISSUE), role=role)
|
||||
return
|
||||
|
||||
try:
|
||||
await role.edit(reason=reason, color=value)
|
||||
except discord.Forbidden:
|
||||
await self.complain(ctx, GENERIC_FORBIDDEN)
|
||||
await self.complain(ctx, T_(GENERIC_FORBIDDEN))
|
||||
else:
|
||||
log.info(reason)
|
||||
await ctx.send("Done.")
|
||||
await ctx.send(_("Done."))
|
||||
|
||||
@editrole.command(name="name")
|
||||
@checks.admin_or_permissions(administrator=True)
|
||||
async def edit_role_name(self, ctx: commands.Context, role: discord.Role, *, name: str):
|
||||
"""Edits a role's name
|
||||
"""Edit a role's name.
|
||||
|
||||
Use double quotes if the role or the name contain spaces.
|
||||
|
||||
Examples:
|
||||
!editrole name \"The Transistor\" Test"""
|
||||
`[p]editrole name \"The Transistor\" Test`
|
||||
"""
|
||||
author = ctx.message.author
|
||||
old_name = role.name
|
||||
reason = "{}({}) changed the name of role '{}' to '{}'".format(
|
||||
author.name, author.id, old_name, name)
|
||||
author.name, author.id, old_name, name
|
||||
)
|
||||
|
||||
if not self.pass_user_heirarchy_check(ctx, role):
|
||||
await self.complain(ctx, USER_HIERARCHY_ISSUE)
|
||||
if not self.pass_user_hierarchy_check(ctx, role):
|
||||
await self.complain(ctx, T_(ROLE_USER_HIERARCHY_ISSUE), role=role)
|
||||
return
|
||||
|
||||
try:
|
||||
await role.edit(reason=reason, name=name)
|
||||
except discord.Forbidden:
|
||||
await self.complain(ctx, GENERIC_FORBIDDEN)
|
||||
await self.complain(ctx, T_(GENERIC_FORBIDDEN))
|
||||
else:
|
||||
log.info(reason)
|
||||
await ctx.send("Done.")
|
||||
await ctx.send(_("Done."))
|
||||
|
||||
@commands.group(invoke_without_command=True)
|
||||
@checks.is_owner()
|
||||
async def announce(self, ctx: commands.Context, message: str):
|
||||
"""
|
||||
Announces a message to all servers the bot is in.
|
||||
"""
|
||||
async def announce(self, ctx: commands.Context, *, message: str):
|
||||
"""Announce a message to all servers the bot is in."""
|
||||
if not self.is_announcing():
|
||||
announcer = Announcer(ctx, message, config=self.conf)
|
||||
announcer.start()
|
||||
|
||||
self.__current_announcer = announcer
|
||||
|
||||
await ctx.send("The announcement has begun.")
|
||||
await ctx.send(_("The announcement has begun."))
|
||||
else:
|
||||
prefix = ctx.prefix
|
||||
await self.complain(ctx, RUNNING_ANNOUNCEMENT,
|
||||
prefix=prefix)
|
||||
await self.complain(ctx, T_(RUNNING_ANNOUNCEMENT), prefix=prefix)
|
||||
|
||||
@announce.command(name="cancel")
|
||||
@checks.is_owner()
|
||||
async def announce_cancel(self, ctx):
|
||||
"""
|
||||
Cancels a running announce.
|
||||
"""
|
||||
"""Cancel a running announce."""
|
||||
try:
|
||||
self.__current_announcer.cancel()
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
await ctx.send("The current announcement has been cancelled.")
|
||||
await ctx.send(_("The current announcement has been cancelled."))
|
||||
|
||||
@announce.command(name="channel")
|
||||
@commands.guild_only()
|
||||
@checks.guildowner_or_permissions(administrator=True)
|
||||
async def announce_channel(self, ctx, channel: discord.TextChannel=None):
|
||||
"""
|
||||
Changes the channel on which the bot makes announcements.
|
||||
"""
|
||||
async def announce_channel(self, ctx, *, channel: discord.TextChannel = None):
|
||||
"""Change the channel to which the bot makes announcements."""
|
||||
if channel is None:
|
||||
channel = ctx.channel
|
||||
await self.conf.guild(ctx.guild).set("announce_channel", channel.id)
|
||||
await self.conf.guild(ctx.guild).announce_channel.set(channel.id)
|
||||
|
||||
await ctx.send("The announcement channel has been set to {}".format(
|
||||
channel.mention
|
||||
))
|
||||
await ctx.send(
|
||||
_("The announcement channel has been set to {channel.mention}").format(channel=channel)
|
||||
)
|
||||
|
||||
@announce.command(name="ignore")
|
||||
@commands.guild_only()
|
||||
@checks.guildowner_or_permissions(administrator=True)
|
||||
async def announce_ignore(self, ctx, guild: discord.Guild=None):
|
||||
"""
|
||||
Toggles whether the announcements will ignore the given server.
|
||||
Defaults to the current server if none is provided.
|
||||
"""
|
||||
if guild is None:
|
||||
async def announce_ignore(self, ctx):
|
||||
"""Toggle announcements being enabled this server."""
|
||||
ignored = await self.conf.guild(ctx.guild).announce_ignore()
|
||||
await self.conf.guild(ctx.guild).announce_ignore.set(not ignored)
|
||||
|
||||
if ignored: # Keeping original logic....
|
||||
await ctx.send(
|
||||
_("The server {guild.name} will receive announcements.").format(guild=ctx.guild)
|
||||
)
|
||||
else:
|
||||
await ctx.send(
|
||||
_("The server {guild.name} will not receive announcements.").format(
|
||||
guild=ctx.guild
|
||||
|
||||
ignored = await self.conf.guild(guild).announce_ignore()
|
||||
await self.conf.guild(guild).announce_ignore.set(not ignored)
|
||||
|
||||
verb = "will" if ignored else "will not"
|
||||
|
||||
await ctx.send("The server {} {} receive announcements.".format(
|
||||
guild.name, verb
|
||||
))
|
||||
)
|
||||
)
|
||||
|
||||
async def _valid_selfroles(self, guild: discord.Guild) -> Tuple[discord.Role]:
|
||||
"""
|
||||
@@ -300,50 +315,56 @@ class Admin:
|
||||
valid_role_ids = set(r.id for r in valid_roles)
|
||||
|
||||
if selfrole_ids != valid_role_ids:
|
||||
await self.conf.guild(guild).selfroles.set(valid_role_ids)
|
||||
await self.conf.guild(guild).selfroles.set(list(valid_role_ids))
|
||||
|
||||
# noinspection PyTypeChecker
|
||||
return valid_roles
|
||||
|
||||
@commands.guild_only()
|
||||
@commands.group(invoke_without_command=True)
|
||||
async def selfrole(self, ctx: commands.Context, selfrole: SelfRole):
|
||||
"""
|
||||
Add a role to yourself that server admins have configured as
|
||||
user settable.
|
||||
async def selfrole(self, ctx: commands.Context, *, selfrole: SelfRole):
|
||||
"""Add a role to yourself.
|
||||
|
||||
Server admins must have configured the role as user settable.
|
||||
|
||||
NOTE: The role is case sensitive!
|
||||
"""
|
||||
# noinspection PyTypeChecker
|
||||
await self._addrole(ctx, ctx.author, selfrole)
|
||||
|
||||
@selfrole.command(name="remove")
|
||||
async def selfrole_remove(self, ctx: commands.Context, selfrole: SelfRole):
|
||||
"""
|
||||
Removes a selfrole from yourself.
|
||||
async def selfrole_remove(self, ctx: commands.Context, *, selfrole: SelfRole):
|
||||
"""Remove a selfrole from yourself.
|
||||
|
||||
NOTE: The role is case sensitive!
|
||||
"""
|
||||
# noinspection PyTypeChecker
|
||||
await self._removerole(ctx, ctx.author, selfrole)
|
||||
|
||||
@selfrole.command(name="add")
|
||||
@commands.has_permissions(manage_roles=True)
|
||||
async def selfrole_add(self, ctx: commands.Context, role: discord.Role):
|
||||
"""
|
||||
Add a role to the list of available selfroles.
|
||||
@checks.admin_or_permissions(manage_roles=True)
|
||||
async def selfrole_add(self, ctx: commands.Context, *, role: discord.Role):
|
||||
"""Add a role to the list of available selfroles.
|
||||
|
||||
NOTE: The role is case sensitive!
|
||||
"""
|
||||
async with self.conf.guild(ctx.guild).selfroles() as curr_selfroles:
|
||||
if role.id not in curr_selfroles:
|
||||
curr_selfroles.append(role.id)
|
||||
|
||||
await ctx.send("The selfroles list has been successfully modified.")
|
||||
await ctx.send(_("The selfroles list has been successfully modified."))
|
||||
|
||||
@selfrole.command(name="delete")
|
||||
@commands.has_permissions(manage_roles=True)
|
||||
async def selfrole_delete(self, ctx: commands.Context, role: SelfRole):
|
||||
"""
|
||||
Removes a role from the list of available selfroles.
|
||||
@checks.admin_or_permissions(manage_roles=True)
|
||||
async def selfrole_delete(self, ctx: commands.Context, *, role: SelfRole):
|
||||
"""Remove a role from the list of available selfroles.
|
||||
|
||||
NOTE: The role is case sensitive!
|
||||
"""
|
||||
async with self.conf.guild(ctx.guild).selfroles() as curr_selfroles:
|
||||
curr_selfroles.remove(role.id)
|
||||
|
||||
await ctx.send("The selfroles list has been successfully modified.")
|
||||
await ctx.send(_("The selfroles list has been successfully modified."))
|
||||
|
||||
@selfrole.command(name="list")
|
||||
async def selfrole_list(self, ctx: commands.Context):
|
||||
@@ -353,7 +374,7 @@ class Admin:
|
||||
selfroles = await self._valid_selfroles(ctx.guild)
|
||||
fmt_selfroles = "\n".join(["+ " + r.name for r in selfroles])
|
||||
|
||||
msg = "Available Selfroles:\n{}".format(fmt_selfroles)
|
||||
msg = _("Available Selfroles:\n{selfroles}").format(selfroles=fmt_selfroles)
|
||||
await ctx.send(box(msg, "diff"))
|
||||
|
||||
async def _serverlock_check(self, guild: discord.Guild) -> bool:
|
||||
@@ -370,18 +391,19 @@ class Admin:
|
||||
@commands.command()
|
||||
@checks.is_owner()
|
||||
async def serverlock(self, ctx: commands.Context):
|
||||
"""
|
||||
Locks a bot to it's current servers only.
|
||||
"""
|
||||
"""Lock a bot to its current servers only."""
|
||||
serverlocked = await self.conf.serverlocked()
|
||||
await self.conf.serverlocked.set(not serverlocked)
|
||||
|
||||
verb = "is now" if not serverlocked else "is no longer"
|
||||
|
||||
await ctx.send("The bot {} serverlocked.".format(verb))
|
||||
if serverlocked:
|
||||
await ctx.send(_("The bot is no longer serverlocked."))
|
||||
else:
|
||||
await ctx.send(_("The bot is now serverlocked."))
|
||||
|
||||
# region Event Handlers
|
||||
async def on_guild_join(self, guild: discord.Guild):
|
||||
if await self._serverlock_check(guild):
|
||||
return
|
||||
|
||||
|
||||
# endregion
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import asyncio
|
||||
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
from redbot.core import commands
|
||||
from redbot.core.i18n import Translator
|
||||
|
||||
_ = Translator("Announcer", __file__)
|
||||
|
||||
|
||||
class Announcer:
|
||||
def __init__(self, ctx: commands.Context,
|
||||
message: str,
|
||||
config=None):
|
||||
def __init__(self, ctx: commands.Context, message: str, config=None):
|
||||
"""
|
||||
:param ctx:
|
||||
:param message:
|
||||
@@ -43,7 +44,10 @@ class Announcer:
|
||||
channel = guild.get_channel(channel_id)
|
||||
|
||||
if channel is None:
|
||||
channel = guild.default_channel
|
||||
channel = guild.system_channel
|
||||
|
||||
if channel is None:
|
||||
channel = guild.text_channels[0]
|
||||
|
||||
return channel
|
||||
|
||||
@@ -62,10 +66,9 @@ class Announcer:
|
||||
try:
|
||||
await channel.send(self.message)
|
||||
except discord.Forbidden:
|
||||
await bot_owner.send("I could not announce to guild: {}".format(
|
||||
g.id
|
||||
))
|
||||
await bot_owner.send(
|
||||
_("I could not announce to server: {server.id}").format(server=g)
|
||||
)
|
||||
await asyncio.sleep(0.5)
|
||||
|
||||
self.active = False
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
from redbot.core import commands
|
||||
from redbot.core.i18n import Translator
|
||||
|
||||
_ = Translator("AdminConverters", __file__)
|
||||
|
||||
|
||||
class MemberDefaultAuthor(commands.Converter):
|
||||
@@ -17,9 +20,9 @@ class MemberDefaultAuthor(commands.Converter):
|
||||
|
||||
class SelfRole(commands.Converter):
|
||||
async def convert(self, ctx: commands.Context, arg: str) -> discord.Role:
|
||||
admin = ctx.command.instance
|
||||
admin = ctx.command.cog
|
||||
if admin is None:
|
||||
raise commands.BadArgument("Admin is not loaded.")
|
||||
raise commands.BadArgument(_("The Admin cog is not loaded."))
|
||||
|
||||
conf = admin.conf
|
||||
selfroles = await conf.guild(ctx.guild).selfroles()
|
||||
@@ -28,6 +31,5 @@ class SelfRole(commands.Converter):
|
||||
role = await role_converter.convert(ctx, arg)
|
||||
|
||||
if role.id not in selfroles:
|
||||
raise commands.BadArgument("The provided role is not a valid"
|
||||
" selfrole.")
|
||||
raise commands.BadArgument(_("The provided role is not a valid selfrole."))
|
||||
return role
|
||||
|
||||
186
redbot/cogs/admin/locales/ar-SA.po
Normal file
186
redbot/cogs/admin/locales/ar-SA.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:12\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Arabic\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ar\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: ar_SA\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "حاولت القيام بشيء لا أملك تصريح من ديسكورد لفعله. فشل أمرك في إكمال نجاحه."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr "أنا بالفعل أُعلن شيئاً. إذا كنت ترغب في إصدار إعلان مختلف الرجاء إستخدام `{prefix}announce cancel` أولاً."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr "مجموعة من أدوات إدارة السيرفر."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr "لقد قمت بنجاح بإضافة {role.name} إلى {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr "لقد قمت بنجاح بإزالة {role.name} من {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr "تعديل إعدادات الرتبة."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "تم."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr "الإعلان عن رسالة إلى جميع السيرفرات المتواجد بها البوت."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr "تم البدء في الإعلان."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr "إلغاء إعلان جارٍ."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr "تم إلغاء الإعلان الحالي."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr "تعديل القناة التي يستخدمها البوت للإعلانات."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr "تم تحديث قناة الإعلانات إلى {channel.mention}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr "تم تمكين الإعلانات في السيرفر."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr "سيرفر {guild.name} سيتلقى إعلانات الآن."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr "سيرفر {guild.name} لن يتلقى إعلانات."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr "تم تحديث/تعديل قائمة الرتب الذاتية بنجاح."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr "قفل البوت للسيرفر الحالي فقط."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr "لم يعد البوت مقفول للسيرفر الحالي فقط."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr "لقد تم قفل البوت للسيرفر الحالي فقط."
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr "لم أتمكن من الإعلان في السيرفر: {server.id}"
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "لم يتم تحميل وحدة الأدمن cog."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "الرتبة المذكورة ليست على قائمة الرتب الذاتية."
|
||||
|
||||
186
redbot/cogs/admin/locales/bg-BG.po
Normal file
186
redbot/cogs/admin/locales/bg-BG.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:12\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: bg\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: bg_BG\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Завършено."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/cs-CZ.po
Normal file
186
redbot/cogs/admin/locales/cs-CZ.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-14 02:15\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Czech\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: cs\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: cs_CZ\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "Pokusil jsem se udělat něco, co mi Discord odepřel. Tvůj příkaz se nepodažilo úspěšně dokončit."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr "Už něco oznamuji. Pokud bys rád provedl jiné oznámení, nejdříve použij `{prefix}announce cancel`."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr "Kolekce nástrojů pro správu serveru."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr "Úspěšně jsem přidal {role.name} k {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr "Úspěšně jsem odstranil {role.name} od {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr "Upraví nastavení role."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Hotovo."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/da-DK.po
Normal file
186
redbot/cogs/admin/locales/da-DK.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:12\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Danish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: da\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: da_DK\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/de-DE.po
Normal file
186
redbot/cogs/admin/locales/de-DE.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:12\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: German\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: de\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: de_DE\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "Ich habe versucht etwas zu tun, für das mir Discord die Befugnis verweigerte. Dein Befehl konnte nicht erfolgreich ausgeführt werden."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr "Ich habe versucht {member.display_name} er Rolle: {role.name} {verb}, aber diese Rolle hat höhere Rechte als ich. Also war es nicht möglich die Rolle erfolgreich hinzuzufügen. Bitte geb mir eine höhere Rolle und versuche es erneut."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "Ich habe versucht die Rolle {role.name} an {member.display_name} zu {verb}, aber die Rolle ist höher als meine Rolle in der Discord Hierarchie, daher war es mir nicht möglich sie hinzuzufügen. Bitte gib mir eine höhere Rolle und versuche es erneut."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "Ich habe versucht {role.name} zu bearbeiten, aber die Rolle ist höher als deine höhste Rolle im Discord. Also konnte ich dies nicht erfolgreich hinzufügen. Versuche es mit einer höheren Rolle erneut."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr "Ich kündige bereits etwas an. Wenn du eine andere Ankündigung machen willst, benutze bitte zuerst `{prefix}announce cancel`."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr "Eine Sammlung von administrativen Server-Verwaltungsprogramme."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr "hinzuzufügen"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr "Ich habe erfolgreich {role.name} zu {member.display_name} hinzugefügt"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr "entfernen"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr "Ich habe erfolgreich {role.name} von {member.display_name} entfernt"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr "Bearbeiten der Rollen Einstellungen."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Erledigt."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr "Mache eine Ankündigung auf allen Servern auf denen der Bot ist."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr "Die Ankündigung hat begonnen."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr "Breche eine laufende Ankündigung ab."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr "Die aktuelle Ankündigung wurde abgebrochen."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr "Ändere den Kanal in dem der Bot Ankündigungen macht."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr "Der für Ankündigungen gewählte Kanal wurde festgelegt auf {channel.mention}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr "Schaltet Ankündigungen auf diesem Server ein oder aus."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr "Der Server {guild.name} wird Ankündigunen erhalten."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr "Der Server {guild.name} wird keine Ankündigunen erhalten."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr "Die Liste selbst auswählbarer Rollen wurde erfolgreich bearbeitet."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr "Sperrt den Bot neuen Servern beizutreten."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr "Der Bot ist nicht länger gesperrt neuen Servern beizutreten."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr "Der Bot ist jetzt gesperrt neuen Servern beizutreten."
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr "Ich konnte keine Ankündigung auf diesem Server machen: {server.id}"
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "Das Admin-Cog ist nicht geladen."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "Die vorausgesetzte Rolle ist keine berechtigte selbst auswählbare Rolle."
|
||||
|
||||
186
redbot/cogs/admin/locales/el-GR.po
Normal file
186
redbot/cogs/admin/locales/el-GR.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:12\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Greek\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: el\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: el_GR\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/en-PT.po
Normal file
186
redbot/cogs/admin/locales/en-PT.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-14 02:15\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Pirate English\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: en-PT\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: en_PT\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Done."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/es-ES.po
Normal file
186
redbot/cogs/admin/locales/es-ES.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-14 02:14\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: es-ES\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: es_ES\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "Intenté hacer algo que Discord me ha negado el permiso. Su comando no se pudo completar."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr "He intentado agregar {verb} {role.name} a {member.display_name} pero ese rol es más alto que mi rol en la jerarquía de Discord, por lo que no he podido añadirlo con éxito. Por favor dame un rol más alto y vuelva a intentarlo."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "He intentado agregar {verb} {role.name} a {member.display_name} pero ese rol es más alto que mi rol en la jerarquía de Discord, por lo que no he podido añadirlo con éxito. Por favor dame un rol más alto y vuelva a intentarlo."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "He intentado agregar {role.name} a pero ese rol es más alto que mi rol en la jerarquía de Discord, por lo que no he podido añadirlo con éxito. Por favor dame un rol más alto y vuelva a intentarlo."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr "Ya estoy anunciando algo. Si quieres hacer un anuncio diferente, por favor usa `{prefix}announce cancel` primero."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr "Una colección de utilidades de administración de servidores."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr "añadir"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr "He añadido con éxito {role.name} a {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr "eliminar"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr "He retirado con éxito {role.name} de {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr "Añadir un rol a un usuario.\\n\\n Si el usuario se deja en blanco, por defecto se convierte en autor del comando.\\n "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr "Eliminar un rol de un usuario.\\n\\n Si el usuario se deja en blanco, por defecto se convierte en autor del comando.\\n "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr "Editar configuración de rol."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Listo."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr "Anunciar un mensaje a todos los servidores en que el bot está."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr "El bot está bloqueado por el servidor."
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr "No pude anunciar en servidor: {server.id}"
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "El cog Admin no está cargado."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "El rol proporcionado no es un selfrole válido."
|
||||
|
||||
186
redbot/cogs/admin/locales/fi-FI.po
Normal file
186
redbot/cogs/admin/locales/fi-FI.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-14 02:15\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Finnish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: fi\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: fi_FI\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "Yritin tehdä jotain, jonka Discord kielsi minulle luvat. Komento epäonnistui onnistuneesti."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr "Yritin {verb} {role.name} kohtaan {member.display_name}, mutta tämä rooli on suurempi kuin korkein roolini Discord-hierarkiassa, joten en voinut lisätä sitä onnistuneesti. Anna minulle suurempi rooli ja yritä uudelleen."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "Yritin {verb} {role.name} kohtaan {member.display_name}, mutta tämä rooli on korkeampi kuin korkein rooli Discord-hierarkiassa, joten en voinut lisätä sitä onnistuneesti. Hanki suurempi rooli ja yritä uudelleen."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "Yritin muokata {role.name}, mutta tämä rooli on korkeampi kuin korkein rooli Discord-hierarkiassa, joten en voinut lisätä sitä onnistuneesti. Hanki suurempi rooli ja yritä uudelleen."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr "Olen jo ilmoittanut jotain. Jos haluat tehdä toisen ilmoituksen, käytä ensin \"{prefix} announce cancel\"."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr "Kokoelma palvelinhallintaohjelmia."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr "lisätä"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr "Lisäsin {role.name} onnistuneesti {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr "poistaa"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr "Olen poistanut {role.name} onnistuneesti {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr "Muokkaa rooliasetuksia."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Tehty."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr "Ilmoita viesti kaikille palvelimille, joihin botti on."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/fr-FR.po
Normal file
186
redbot/cogs/admin/locales/fr-FR.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:11\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: French\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: fr\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: fr_FR\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "J'ai tenté de faire quelque chose que pour lequel Discord m'a refusé les permissions. La commande a échoué."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr "J'ai essayé de {verb} {role.name} à {member.display_name} mais ce rôle est plus élevé que mon rôle le plus élevé dans la hiérarchie Discord, je n'ai donc pas réussi à l'ajouter. Donnez-moi un rôle plus élevé et réessayez."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "J'ai essayé de {verb} {role.name} à {member.display_name} mais ce rôle est plus élevé que votre rôle le plus élevé dans la hiérarchie Discord donc je n'ai pas réussi à l'ajouter. Essayez à nouveau avec un rôle plus élevé."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "J'ai essayé d'éditer {role.name} mais ce rôle est plus élevé que votre rôle le plus élevé dans la hiérarchie Discord et je n'ai donc pas réussi à l'ajouter. Essayez à nouveau avec un rôle plus élevé."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr "Je suis déjà en train d'annoncer quelque chose. Si tu souhaites faire une annonce différente, tu dois d'abord utiliser la commande `{prefix}announce cancel`."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr "Un ensemble d'utilitaires d'administration du serveur."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr "ajouter"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr "J'ai bien ajouté le rôle {role.name} à {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr "supprimer"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr "J'ai bien retiré le rôle {role.name} de {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr "Ajouter un rôle à un utilisateur.\\n\\n Si aucun utilisateur n'est mentionné dans la commande, celui-ci fera effet sur l'auteur.\\n "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr "Retirer un rôle à un utilisateur.\\n\\n Si aucun utilisateur n'est mentionné dans la commande, celui-ci fera effet sur l'auteur.\\n "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr "Modifier les paramètres d'un rôle."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr "Modifier la couleur d'un rôle.\\n\\n Utilise des guillemets si le nom du rôle contient des espaces.\\n La couleur doit être au format hexadécimal\\n [Sélecteur de couleur en ligne](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Exemples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Fait."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr "Modifier le nom d'un rôle.\\n\\n Utilise des guillemets si le nom du rôle contient des espaces.\\n\\n Exemples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr "Faire une annonce à tous les serveurs dans lesquels le bot se trouve."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr "L’annonce a commencé."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr "Interrompre une annonce en cours."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr "L'annonce actuelle a été interrompue."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr "Changer le salon dans lequel le bot fait des annonces."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr "Les annonces seront maintenant faites dans {channel.mention}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr "Activer ou désactiver les annonces sur ce serveur."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr "Le serveur {guild.name} recevra maintenant les annonces."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr "Le serveur {guild.name} ne recevra plus les annonces."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr "S'ajouter un rôle à soi-même.\\n\\n Les administrateurs du serveur doivent avoir configuré le rôle en tant qu'ajoutable par les utilisateurs.\\n\\n NOTE : Le nom du rôle est sensible aux majuscules et minuscules !\\n "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr "Se supprimer un auto-rôle.\\n\\n NOTE : Le rôle est sensible aux majuscules et minuscules !\\n "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr "Ajouter un rôle à la liste des auto-rôles disponibles.\\n\\n NOTE : Le nom du rôle est sensible aux majuscules et minuscules !\\n "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr "La liste des auto-rôles a été modifiée avec succès."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr "Supprimer un rôle de la liste des auto-rôles.\\n\\n NOTE : Le nom du rôle est sensible aux majuscules et minuscules !\\n "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr "\\n Liste de tous les auto-rôles disponibles.\\n "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr "Auto-rôles disponibles :\\n{selfroles}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr "Verrouiller un bot sur ses serveurs actuels uniquement."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr "Le bot n'est plus verrouillé sur ses serveurs actuels."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr "Le bot est maintenant verrouillé sur ses serveurs actuels."
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr "Je n'ai pas pu faire d'annonce dans le serveur: {server.id}"
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "Le cog Admin n'est pas chargé."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "Le rôle fourni n'est pas un auto-rôle valide."
|
||||
|
||||
186
redbot/cogs/admin/locales/hu-HU.po
Normal file
186
redbot/cogs/admin/locales/hu-HU.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:13\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Hungarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: hu\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: hu_HU\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Kész."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/id-ID.po
Normal file
186
redbot/cogs/admin/locales/id-ID.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:14\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Indonesian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: id\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: id_ID\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr "menambahkan"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr "menghapus"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Selesai."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/it-IT.po
Normal file
186
redbot/cogs/admin/locales/it-IT.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:13\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Italian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: it\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: it_IT\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "Ho cercato di fare qualcosa ma Discord mi ha negato i permessi per farla. Il tuo comando non è stato completato con successo."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr "Ho cercato di {verb} {role.name} al gruppo {member.display_name} ma quel ruolo è più elevato del mio livello nella gerarchia di Discord quindi non sono stato in grado di aggiungerlo. prova a darmi un ruolo più alto e riprova."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "Ho cercato di {verb} {role.name} al gruppo {member.display_name} ma quel ruolo è più elevato del tuo livello nella gerarchia di Discord quindi non sono stato in grado di aggiungerlo. Raggiungi un ruolo più alto e riprova."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "Ho cercato di modificare {role.name} ma quel ruolo è più elevato del tuo livello nella gerarchia di Discord quindi non sono stato in grado di aggiungerlo. Raggiungi un ruolo più alto e riprova."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr "Sto già annunciando qualcosa. Se desideri fare un annuncio diverso, usa prima `{prefix}announce cancel`."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr "Una collezione di servizi di amministrazione del server."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr "aggiungere"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr "Ho aggiunto con successo {role.name} al gruppo {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr "rimuovere"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr "Ho rimosso con successo {role.name} dal gruppo {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr "Modifica impostazioni ruolo."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Fatto."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr "Invia un annuncio a tutti i server in cui si trova il bot."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr "L'annuncio è partito."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr "Cancella un annuncio in corso."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr "L'annuncio in corso è stato cancellato."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr "Modifica il canale in cui il bot invia gli annunci."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr "Il canale per gli annunci è stato impostato su {channel.mention}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr "Attiva/disattiva gli annunci in questo server."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr "Il server {guild.name} riceverà gli annunci."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr "Il server {guild.name} non riceverà gli annunci."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr "La lista dei ruoli autoassegnabili e stata modificata."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr "Blocca un bot ai suoi server attuali."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr "Il bot non è più bloccato ai server."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr "Il bot è bloccato ai server."
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr "Non ho potuto annunciare al server: {server.id}"
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "Il cog Admin non è caricato."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "Il ruolo fornito non è un ruolo autoassegnabile valido."
|
||||
|
||||
186
redbot/cogs/admin/locales/ja-JP.po
Normal file
186
redbot/cogs/admin/locales/ja-JP.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:13\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Japanese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ja\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: ja_JP\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "私は不和が私に権限を拒否した何かをしようとしました。コマンドを正常に完了できませんでした。"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/ko-KR.po
Normal file
186
redbot/cogs/admin/locales/ko-KR.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:13\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Korean\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ko\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: ko_KR\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "다 했어요."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/lol-US.po
Normal file
186
redbot/cogs/admin/locales/lol-US.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:14\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: LOLCAT\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: lol\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: lol_US\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "Discord sayed I can't do sometingz. Ur command faild 2 complete."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR ORGANIZATION
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2018-02-18 14:42+AKST\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: ENCODING\n"
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
|
||||
186
redbot/cogs/admin/locales/nl-NL.po
Normal file
186
redbot/cogs/admin/locales/nl-NL.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:13\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Dutch\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: nl\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: nl_NL\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "Ik probeerde iets te doen, maar Discord weigerde mij toestemming te geven. Je command is geslaagd te mislukken."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr "Ik ben al iets aan het aankondigen. Als je iets anders wilt aankondigen, voer dan eerst deze command uit: '{prefix}announce cancel'."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr "Een collectie van de server administratie voorzieningen."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr "Ik heb succesvol {role.name} toegevoegd aan {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr "Ik heb succesvol {role.name} verwijderd van {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr "Rol instellingen bewerken."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Klaar."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr "Kondig een bericht aan in alle servers."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr "De aankondiging is begonnen."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr "Annuleer een huidige aankondiging."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr "De huidige aankondiging is geannuleerd."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr "Bewerk het kanaal waar de bot aankondigingen maakt."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr "Het aankondigingskanaal is aangepast naar {channel.mention}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr "Aankondigingen zijn geactiveerd in deze server."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr "De server {guild.name} ontvangt aankondigingen."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr "De server {guild.name} ontvangt geen aankondigingen."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr "De selfroles lijst is succesvol aangepast."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr "Vergrendel de bot voor alleen deze server."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr "De bot is niet langer vergrendeld."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr "De bot is vergrendeld."
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr "Ik kan geen bericht aankondigen in: {server.id}"
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "De admin cog is niet geladen."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "De ingevulde rol is geen beschikbare selfrole."
|
||||
|
||||
186
redbot/cogs/admin/locales/no-NO.po
Normal file
186
redbot/cogs/admin/locales/no-NO.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:13\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Norwegian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: no\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: no_NO\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Ferdig."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/pl-PL.po
Normal file
186
redbot/cogs/admin/locales/pl-PL.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:13\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Polish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: pl\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: pl_PL\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr "Spróbowałam {verb} {role.name} na {member.display_name}, ale ta rola jest wyższa niż moja najwyższa rola w hierarchii Discorda, więc nie mogłam jej dodać. Daj mi proszę wyższą rolę i spróbuj ponownie."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "Spróbowałam {verb} {role.name} na {member.display_name}, ale ta rola jest wyższa niż twoja najwyższa rola w hierarchii Discorda, więc nie mogłam jej dodać. Uzyskaj proszę wyższą rolę i spróbuj ponownie."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "Spróbowałam zmienić {role.name}, ale ta rola jest wyższa niż twoja najwyższa rola w hierarchii Discorda, więc nie mogłam jej dodać. Uzyskaj proszę wyższą rolę i spróbuj ponownie."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr "dodać"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr "usunąć"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Gotowe."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "Moduł Admin nie jest załadowany."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/pt-BR.po
Normal file
186
redbot/cogs/admin/locales/pt-BR.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:14\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: pt-BR\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: pt_BR\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "Eu tentei fazer algo que o Discord me negou as permissões. Seu comando falhou em ser completado com sucesso."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr "Eu já estou anunciando algo. Se quer fazer um anúncio diferente, por favor use `{prefix}announce cancel` primeiro."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr "Uma coleção de ferramentas de administração para o servidor."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr "Eu adicionei com sucesso {role.name} de {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr "Eu removi com sucesso {role.name} de {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr "Edite as configurações de cargo."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Concluído."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/pt-PT.po
Normal file
186
redbot/cogs/admin/locales/pt-PT.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:13\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Portuguese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: pt-PT\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: pt_PT\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "Tentei fazer uma coisa que o Discord negou permissão para fazer. O comando não foi concluído."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr "Já estou a anunciar algo. Se queres fazer um anúncio diferente usa `{prefix}announce cancel` antes de usares este comando."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr "Uma coleção de utilidades para administração de servidores."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr "Adicionei com sucesso {role.name} a {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr "Removi com sucesso {role.name} de {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Concluído."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr "Anuncia uma mensagem para todos os servidores em que o bot está."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr "O anúncio foi iniciado."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr "Cancelar um anúncio em curso."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr "O anúncio atual foi cancelado."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr "Mude o canal para o qual o bot faz os anúncios."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr "O canal de anúncio foi definido para {channel.mention}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr "Ativar ou Desativar os anúncios neste servidor."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr "O servidor {guild.name} vai receber anúncios."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr "O servidor {guild.name} não vai receber anúncios."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr "A lista de cargos definíveis foi modificada com sucesso."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr "Bloquear o bot aos servidores atuais."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr "O bot já não está bloqueado aos servidores atuais."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr "O bot está agora bloqueado aos servidores atuais."
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr "Não me foi possível anunciar no servidor: {server.id}"
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "O cog 'Admin' não está carregado."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "O cargo indicado não é um cargo definível válido."
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
import subprocess
|
||||
|
||||
TO_TRANSLATE = [
|
||||
'../admin.py'
|
||||
]
|
||||
|
||||
|
||||
def regen_messages():
|
||||
subprocess.run(
|
||||
['pygettext', '-n'] + TO_TRANSLATE
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
regen_messages()
|
||||
186
redbot/cogs/admin/locales/ro-RO.po
Normal file
186
redbot/cogs/admin/locales/ro-RO.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-14 02:09\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Romanian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ro\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: ro_RO\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/ru-RU.po
Normal file
186
redbot/cogs/admin/locales/ru-RU.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:13\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Russian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ru\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: ru_RU\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "Я попыталась сделать что-то, в чем Discord отказал мне в разрешениях. Ваша команда не была выполнена успешно."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr "Я попытался изменить {role.name}, но эта роль выше Вашей в иерархии Discord, поэтому я не смог добавить её. Повысьте роль и попробуйте еще раз."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr "Я уже что-то объявляю. Если вы хотите сделать другое объявление, сначала используйте `{prefix}announce cancel`."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr "Набор утилит администрирования сервера."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr "добавить"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr "Я успешно добавила роль {role.name} пользователю {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr "удалить"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr "Я успешно забрала роль {role.name} у пользователя {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr "Изменение параметров роли."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Готово."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr "Объявить сообщение на всех серверах, к которым подключен бот."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr "Объявление началось."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr "Отменить текущее объявление."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr "Текущее объявление было отменено."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr "Изменить канал, на котором бот делает объявления."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr "Канал объявления был установлен на {channel.mention}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr "Переключить объявления, когда этот сервер включен."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr "Сервер {guild.name} будет получать объявления."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr "Сервер {guild.name} не будет получать объявления."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr "Список ролей был изменен успешно."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr "Зафиксировать бота только на его текущих серверах."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr "Бот больше не зафиксирован на сервере."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr "Бот теперь зафиксирован на сервере."
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr "Я не могу объявить на сервере: {server.id}"
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr "Модуль Admin не загружен."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr "Предоставленная роль не является допустимой ролью."
|
||||
|
||||
186
redbot/cogs/admin/locales/sk-SK.po
Normal file
186
redbot/cogs/admin/locales/sk-SK.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:14\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Slovak\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: sk\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: sk_SK\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/sv-SE.po
Normal file
186
redbot/cogs/admin/locales/sv-SE.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:14\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Swedish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: sv-SE\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: sv_SE\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr "Jag försökte göra något som Discord nekade mig behörighet till. Ditt kommando kunde inte slutföras."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr "En samling administrationsverktyg för servern."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr "Redigera rollinställningar."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Klart."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/tr-TR.po
Normal file
186
redbot/cogs/admin/locales/tr-TR.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:14\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Turkish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: tr\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: tr_TR\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "Tamamdır."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/zh-CN.po
Normal file
186
redbot/cogs/admin/locales/zh-CN.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:14\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: zh-CN\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: zh_CN\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr "完成。"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
186
redbot/cogs/admin/locales/zh-TW.po
Normal file
186
redbot/cogs/admin/locales/zh-TW.po
Normal file
@@ -0,0 +1,186 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-14 02:15\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Chinese Traditional\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: zh-TW\n"
|
||||
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
|
||||
"Language: zh_TW\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:17
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:22
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than my highest role in the Discord hierarchy so I was unable to successfully add it. Please give me a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:29
|
||||
msgid "I tried to {verb} {role.name} to {member.display_name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:36
|
||||
msgid "I tried to edit {role.name} but that role is higher than your highest role in the Discord hierarchy so I was unable to successfully add it. Please get a higher role and try again."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:53
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:115 redbot/cogs/admin/admin.py:160
|
||||
msgid "add"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:121
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:132 redbot/cogs/admin/admin.py:180
|
||||
msgid "remove"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:138
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:149
|
||||
#, docstring
|
||||
msgid "Add a role to a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:169
|
||||
#, docstring
|
||||
msgid "Remove a role from a user.\\n\\n If user is left blank it defaults to the author of the command.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:187
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:194
|
||||
#, docstring
|
||||
msgid "Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:217 redbot/cogs/admin/admin.py:245
|
||||
msgid "Done."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:222
|
||||
#, docstring
|
||||
msgid "Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Examples:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:250
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:257
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:265
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:271
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:277
|
||||
#, docstring
|
||||
msgid "Change the channel to which the bot makes announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:283
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:290
|
||||
#, docstring
|
||||
msgid "Toggle announcements being enabled this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:296
|
||||
msgid "The server {guild.name} will receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:300
|
||||
msgid "The server {guild.name} will not receive announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:326
|
||||
#, docstring
|
||||
msgid "Add a role to yourself.\\n\\n Server admins must have configured the role as user settable.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:337
|
||||
#, docstring
|
||||
msgid "Remove a selfrole from yourself.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:347
|
||||
#, docstring
|
||||
msgid "Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:355 redbot/cogs/admin/admin.py:367
|
||||
msgid "The selfroles list has been successfully modified."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:360
|
||||
#, docstring
|
||||
msgid "Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:371
|
||||
#, docstring
|
||||
msgid "\\n Lists all available selfroles.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:377
|
||||
msgid "Available Selfroles:\\n{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:394
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:399
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:401
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to server: {server.id}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:25
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:34
|
||||
msgid "The provided role is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from .alias import Alias
|
||||
from discord.ext import commands
|
||||
from redbot.core.bot import Red
|
||||
|
||||
|
||||
def setup(bot: commands.Bot):
|
||||
def setup(bot: Red):
|
||||
bot.add_cog(Alias(bot))
|
||||
|
||||
@@ -1,41 +1,53 @@
|
||||
from copy import copy
|
||||
from re import search
|
||||
from typing import Generator, Tuple, Iterable
|
||||
from re import findall, search
|
||||
from string import Formatter
|
||||
from typing import Generator, Tuple, Iterable, Optional
|
||||
|
||||
import discord
|
||||
from redbot.core import Config
|
||||
from redbot.core.i18n import CogI18n
|
||||
from discord.ext.commands.view import StringView
|
||||
from redbot.core import Config, commands, checks
|
||||
from redbot.core.i18n import Translator, cog_i18n
|
||||
from redbot.core.utils.chat_formatting import box
|
||||
from discord.ext import commands
|
||||
|
||||
from redbot.core.bot import Red
|
||||
from .alias_entry import AliasEntry
|
||||
|
||||
_ = CogI18n("Alias", __file__)
|
||||
_ = Translator("Alias", __file__)
|
||||
|
||||
|
||||
class Alias:
|
||||
"""
|
||||
Alias
|
||||
class _TrackingFormatter(Formatter):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.max = -1
|
||||
|
||||
Aliases are per server shortcuts for commands. They
|
||||
def get_value(self, key, args, kwargs):
|
||||
if isinstance(key, int):
|
||||
self.max = max((key, self.max))
|
||||
return super().get_value(key, args, kwargs)
|
||||
|
||||
|
||||
class ArgParseError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
@cog_i18n(_)
|
||||
class Alias(commands.Cog):
|
||||
"""Create aliases for commands.
|
||||
|
||||
Aliases are alternative names shortcuts for commands. They
|
||||
can act as both a lambda (storing arguments for repeated use)
|
||||
or as simply a shortcut to saying "x y z".
|
||||
|
||||
When run, aliases will accept any additional arguments
|
||||
and append them to the stored alias
|
||||
and append them to the stored alias.
|
||||
"""
|
||||
|
||||
default_global_settings = {
|
||||
"entries": []
|
||||
}
|
||||
default_global_settings = {"entries": []}
|
||||
|
||||
default_guild_settings = {
|
||||
"enabled": False,
|
||||
"entries": [] # Going to be a list of dicts
|
||||
}
|
||||
default_guild_settings = {"enabled": False, "entries": []} # Going to be a list of dicts
|
||||
|
||||
def __init__(self, bot: Red):
|
||||
super().__init__()
|
||||
self.bot = bot
|
||||
self._aliases = Config.get_conf(self, 8927348724)
|
||||
|
||||
@@ -49,16 +61,22 @@ class Alias:
|
||||
return (AliasEntry.from_json(d) for d in (await self._aliases.entries()))
|
||||
|
||||
async def loaded_aliases(self, guild: discord.Guild) -> Generator[AliasEntry, None, None]:
|
||||
return (AliasEntry.from_json(d, bot=self.bot)
|
||||
for d in (await self._aliases.guild(guild).entries()))
|
||||
return (
|
||||
AliasEntry.from_json(d, bot=self.bot)
|
||||
for d in (await self._aliases.guild(guild).entries())
|
||||
)
|
||||
|
||||
async def loaded_global_aliases(self) -> Generator[AliasEntry, None, None]:
|
||||
return (AliasEntry.from_json(d, bot=self.bot) for d in (await self._aliases.entries()))
|
||||
|
||||
async def is_alias(self, guild: discord.Guild, alias_name: str,
|
||||
server_aliases: Iterable[AliasEntry]=()) -> (bool, AliasEntry):
|
||||
async def is_alias(
|
||||
self,
|
||||
guild: Optional[discord.Guild],
|
||||
alias_name: str,
|
||||
server_aliases: Iterable[AliasEntry] = (),
|
||||
) -> Tuple[bool, Optional[AliasEntry]]:
|
||||
|
||||
if not server_aliases:
|
||||
if not server_aliases and guild is not None:
|
||||
server_aliases = await self.unloaded_aliases(guild)
|
||||
|
||||
global_aliases = await self.unloaded_global_aliases()
|
||||
@@ -76,10 +94,28 @@ class Alias:
|
||||
|
||||
@staticmethod
|
||||
def is_valid_alias_name(alias_name: str) -> bool:
|
||||
return not bool(search(r'\s', alias_name)) and alias_name.isprintable()
|
||||
return not bool(search(r"\s", alias_name)) and alias_name.isprintable()
|
||||
|
||||
async def add_alias(
|
||||
self, ctx: commands.Context, alias_name: str, command: str, global_: bool = False
|
||||
) -> AliasEntry:
|
||||
indices = findall(r"{(\d*)}", command)
|
||||
if indices:
|
||||
try:
|
||||
indices = [int(a[0]) for a in indices]
|
||||
except IndexError:
|
||||
raise ArgParseError(_("Arguments must be specified with a number."))
|
||||
low = min(indices)
|
||||
indices = [a - low for a in indices]
|
||||
high = max(indices)
|
||||
gaps = set(indices).symmetric_difference(range(high + 1))
|
||||
if gaps:
|
||||
raise ArgParseError(
|
||||
_("Arguments must be sequential. Missing arguments: ")
|
||||
+ ", ".join(str(i + low) for i in gaps)
|
||||
)
|
||||
command = command.format(*(f"{{{i}}}" for i in range(-low, high + low + 1)))
|
||||
|
||||
async def add_alias(self, ctx: commands.Context, alias_name: str,
|
||||
command: Tuple[str], global_: bool=False) -> AliasEntry:
|
||||
alias = AliasEntry(alias_name, command, ctx.author, global_=global_)
|
||||
|
||||
if global_:
|
||||
@@ -93,8 +129,9 @@ class Alias:
|
||||
|
||||
return alias
|
||||
|
||||
async def delete_alias(self, ctx: commands.Context, alias_name: str,
|
||||
global_: bool=False) -> bool:
|
||||
async def delete_alias(
|
||||
self, ctx: commands.Context, alias_name: str, global_: bool = False
|
||||
) -> bool:
|
||||
if global_:
|
||||
settings = self._aliases
|
||||
else:
|
||||
@@ -120,16 +157,15 @@ class Alias:
|
||||
"""
|
||||
content = message.content
|
||||
prefix_list = await self.bot.command_prefix(self.bot, message)
|
||||
prefixes = sorted(prefix_list,
|
||||
key=lambda pfx: len(pfx),
|
||||
reverse=True)
|
||||
prefixes = sorted(prefix_list, key=lambda pfx: len(pfx), reverse=True)
|
||||
for p in prefixes:
|
||||
if content.startswith(p):
|
||||
return p
|
||||
raise ValueError(_("No prefix found."))
|
||||
|
||||
def get_extra_args_from_alias(self, message: discord.Message, prefix: str,
|
||||
alias: AliasEntry) -> str:
|
||||
def get_extra_args_from_alias(
|
||||
self, message: discord.Message, prefix: str, alias: AliasEntry
|
||||
) -> str:
|
||||
"""
|
||||
When an alias is executed by a user in chat this function tries
|
||||
to get any extra arguments passed in with the call.
|
||||
@@ -140,11 +176,22 @@ class Alias:
|
||||
:return:
|
||||
"""
|
||||
known_content_length = len(prefix) + len(alias.name)
|
||||
extra = message.content[known_content_length:].strip()
|
||||
extra = message.content[known_content_length:]
|
||||
view = StringView(extra)
|
||||
view.skip_ws()
|
||||
extra = []
|
||||
while not view.eof:
|
||||
prev = view.index
|
||||
word = view.get_quoted_word()
|
||||
if len(word) < view.index - prev:
|
||||
word = "".join((view.buffer[prev], word, view.buffer[view.index - 1]))
|
||||
extra.append(word)
|
||||
view.skip_ws()
|
||||
return extra
|
||||
|
||||
async def maybe_call_alias(self, message: discord.Message,
|
||||
aliases: Iterable[AliasEntry]=None):
|
||||
async def maybe_call_alias(
|
||||
self, message: discord.Message, aliases: Iterable[AliasEntry] = None
|
||||
):
|
||||
try:
|
||||
prefix = await self.get_prefix(message)
|
||||
except ValueError:
|
||||
@@ -155,160 +202,201 @@ class Alias:
|
||||
except IndexError:
|
||||
return False
|
||||
|
||||
is_alias, alias = await self.is_alias(message.guild, potential_alias, server_aliases=aliases)
|
||||
is_alias, alias = await self.is_alias(
|
||||
message.guild, potential_alias, server_aliases=aliases
|
||||
)
|
||||
|
||||
if is_alias:
|
||||
await self.call_alias(message, prefix, alias)
|
||||
|
||||
async def call_alias(self, message: discord.Message, prefix: str,
|
||||
alias: AliasEntry):
|
||||
async def call_alias(self, message: discord.Message, prefix: str, alias: AliasEntry):
|
||||
new_message = copy(message)
|
||||
try:
|
||||
args = self.get_extra_args_from_alias(message, prefix, alias)
|
||||
except commands.BadArgument as bae:
|
||||
return
|
||||
|
||||
trackform = _TrackingFormatter()
|
||||
command = trackform.format(alias.command, *args)
|
||||
|
||||
# noinspection PyDunderSlots
|
||||
new_message.content = "{}{} {}".format(prefix, alias.command, args)
|
||||
new_message.content = "{}{} {}".format(
|
||||
prefix, command, " ".join(args[trackform.max + 1 :])
|
||||
)
|
||||
await self.bot.process_commands(new_message)
|
||||
|
||||
@commands.group()
|
||||
@commands.guild_only()
|
||||
async def alias(self, ctx: commands.Context):
|
||||
"""Manage per-server aliases for commands"""
|
||||
if ctx.invoked_subcommand is None:
|
||||
await ctx.send_help()
|
||||
"""Manage command aliases."""
|
||||
pass
|
||||
|
||||
@alias.group(name="global")
|
||||
async def global_(self, ctx: commands.Context):
|
||||
"""
|
||||
Manage global aliases.
|
||||
"""
|
||||
if ctx.invoked_subcommand is None or \
|
||||
isinstance(ctx.invoked_subcommand, commands.Group):
|
||||
await ctx.send_help()
|
||||
"""Manage global aliases."""
|
||||
pass
|
||||
|
||||
@checks.mod_or_permissions(manage_guild=True)
|
||||
@alias.command(name="add")
|
||||
@commands.guild_only()
|
||||
async def _add_alias(self, ctx: commands.Context,
|
||||
alias_name: str, *, command):
|
||||
"""
|
||||
Add an alias for a command.
|
||||
"""
|
||||
async def _add_alias(self, ctx: commands.Context, alias_name: str, *, command):
|
||||
"""Add an alias for a command."""
|
||||
# region Alias Add Validity Checking
|
||||
is_command = self.is_command(alias_name)
|
||||
if is_command:
|
||||
await ctx.send(_("You attempted to create a new alias"
|
||||
" with the name {} but that"
|
||||
" name is already a command on this bot.").format(alias_name))
|
||||
await ctx.send(
|
||||
_(
|
||||
"You attempted to create a new alias"
|
||||
" with the name {name} but that"
|
||||
" name is already a command on this bot."
|
||||
).format(name=alias_name)
|
||||
)
|
||||
return
|
||||
|
||||
is_alias, something_useless = await self.is_alias(ctx.guild, alias_name)
|
||||
if is_alias:
|
||||
await ctx.send(_("You attempted to create a new alias"
|
||||
" with the name {} but that"
|
||||
" alias already exists on this server.").format(alias_name))
|
||||
await ctx.send(
|
||||
_(
|
||||
"You attempted to create a new alias"
|
||||
" with the name {name} but that"
|
||||
" alias already exists on this server."
|
||||
).format(name=alias_name)
|
||||
)
|
||||
return
|
||||
|
||||
is_valid_name = self.is_valid_alias_name(alias_name)
|
||||
if not is_valid_name:
|
||||
await ctx.send(_("You attempted to create a new alias"
|
||||
" with the name {} but that"
|
||||
await ctx.send(
|
||||
_(
|
||||
"You attempted to create a new alias"
|
||||
" with the name {name} but that"
|
||||
" name is an invalid alias name. Alias"
|
||||
" names may not contain spaces.").format(alias_name))
|
||||
" names may not contain spaces."
|
||||
).format(name=alias_name)
|
||||
)
|
||||
return
|
||||
# endregion
|
||||
|
||||
# At this point we know we need to make a new alias
|
||||
# and that the alias name is valid.
|
||||
|
||||
try:
|
||||
await self.add_alias(ctx, alias_name, command)
|
||||
except ArgParseError as e:
|
||||
return await ctx.send(" ".join(e.args))
|
||||
|
||||
await ctx.send(_("A new alias with the trigger `{}`"
|
||||
" has been created.").format(alias_name))
|
||||
await ctx.send(
|
||||
_("A new alias with the trigger `{name}` has been created.").format(name=alias_name)
|
||||
)
|
||||
|
||||
@checks.is_owner()
|
||||
@global_.command(name="add")
|
||||
async def _add_global_alias(self, ctx: commands.Context,
|
||||
alias_name: str, *, command):
|
||||
"""
|
||||
Add a global alias for a command.
|
||||
"""
|
||||
async def _add_global_alias(self, ctx: commands.Context, alias_name: str, *, command):
|
||||
"""Add a global alias for a command."""
|
||||
# region Alias Add Validity Checking
|
||||
is_command = self.is_command(alias_name)
|
||||
if is_command:
|
||||
await ctx.send(_("You attempted to create a new global alias"
|
||||
" with the name {} but that"
|
||||
" name is already a command on this bot.").format(alias_name))
|
||||
await ctx.send(
|
||||
_(
|
||||
"You attempted to create a new global alias"
|
||||
" with the name {name} but that"
|
||||
" name is already a command on this bot."
|
||||
).format(name=alias_name)
|
||||
)
|
||||
return
|
||||
|
||||
is_alias, something_useless = await self.is_alias(ctx.guild, alias_name)
|
||||
if is_alias:
|
||||
await ctx.send(_("You attempted to create a new global alias"
|
||||
" with the name {} but that"
|
||||
" alias already exists on this server.").format(alias_name))
|
||||
await ctx.send(
|
||||
_(
|
||||
"You attempted to create a new global alias"
|
||||
" with the name {name} but that"
|
||||
" alias already exists on this server."
|
||||
).format(name=alias_name)
|
||||
)
|
||||
return
|
||||
|
||||
is_valid_name = self.is_valid_alias_name(alias_name)
|
||||
if not is_valid_name:
|
||||
await ctx.send(_("You attempted to create a new global alias"
|
||||
" with the name {} but that"
|
||||
await ctx.send(
|
||||
_(
|
||||
"You attempted to create a new global alias"
|
||||
" with the name {name} but that"
|
||||
" name is an invalid alias name. Alias"
|
||||
" names may not contain spaces.").format(alias_name))
|
||||
" names may not contain spaces."
|
||||
).format(name=alias_name)
|
||||
)
|
||||
return
|
||||
# endregion
|
||||
|
||||
try:
|
||||
await self.add_alias(ctx, alias_name, command, global_=True)
|
||||
except ArgParseError as e:
|
||||
return await ctx.send(" ".join(e.args))
|
||||
|
||||
await ctx.send(_("A new global alias with the trigger `{}`"
|
||||
" has been created.").format(alias_name))
|
||||
await ctx.send(
|
||||
_("A new global alias with the trigger `{name}` has been created.").format(
|
||||
name=alias_name
|
||||
)
|
||||
)
|
||||
|
||||
@alias.command(name="help")
|
||||
@commands.guild_only()
|
||||
async def _help_alias(self, ctx: commands.Context, alias_name: str):
|
||||
"""Tries to execute help for the base command of the alias"""
|
||||
is_alias, alias = self.is_alias(ctx.guild, alias_name=alias_name)
|
||||
"""Try to execute help for the base command of the alias."""
|
||||
is_alias, alias = await self.is_alias(ctx.guild, alias_name=alias_name)
|
||||
if is_alias:
|
||||
base_cmd = alias.command[0]
|
||||
if self.is_command(alias.command):
|
||||
base_cmd = alias.command
|
||||
else:
|
||||
base_cmd = alias.command.rsplit(" ", 1)[0]
|
||||
|
||||
new_msg = copy(ctx.message)
|
||||
new_msg.content = "{}help {}".format(ctx.prefix, base_cmd)
|
||||
new_msg.content = _("{prefix}help {command}").format(
|
||||
prefix=ctx.prefix, command=base_cmd
|
||||
)
|
||||
await self.bot.process_commands(new_msg)
|
||||
else:
|
||||
ctx.send(_("No such alias exists."))
|
||||
await ctx.send(_("No such alias exists."))
|
||||
|
||||
@alias.command(name="show")
|
||||
@commands.guild_only()
|
||||
async def _show_alias(self, ctx: commands.Context, alias_name: str):
|
||||
"""Shows what command the alias executes."""
|
||||
"""Show what command the alias executes."""
|
||||
is_alias, alias = await self.is_alias(ctx.guild, alias_name)
|
||||
|
||||
if is_alias:
|
||||
await ctx.send(_("The `{}` alias will execute the"
|
||||
" command `{}`").format(alias_name, alias.command))
|
||||
await ctx.send(
|
||||
_("The `{alias_name}` alias will execute the command `{command}`").format(
|
||||
alias_name=alias_name, command=alias.command
|
||||
)
|
||||
)
|
||||
else:
|
||||
await ctx.send(_("There is no alias with the name `{}`").format(alias_name))
|
||||
await ctx.send(_("There is no alias with the name `{name}`").format(name=alias_name))
|
||||
|
||||
@alias.command(name="del")
|
||||
@checks.mod_or_permissions(manage_guild=True)
|
||||
@alias.command(name="delete", aliases=["del", "remove"])
|
||||
@commands.guild_only()
|
||||
async def _del_alias(self, ctx: commands.Context, alias_name: str):
|
||||
"""
|
||||
Deletes an existing alias on this server.
|
||||
"""
|
||||
"""Delete an existing alias on this server."""
|
||||
aliases = await self.unloaded_aliases(ctx.guild)
|
||||
try:
|
||||
next(aliases)
|
||||
except StopIteration:
|
||||
await ctx.send(_("There are no aliases on this guild."))
|
||||
await ctx.send(_("There are no aliases on this server."))
|
||||
return
|
||||
|
||||
if await self.delete_alias(ctx, alias_name):
|
||||
await ctx.send(_("Alias with the name `{}` was successfully"
|
||||
" deleted.").format(alias_name))
|
||||
await ctx.send(
|
||||
_("Alias with the name `{name}` was successfully deleted.").format(name=alias_name)
|
||||
)
|
||||
else:
|
||||
await ctx.send(_("Alias with name `{}` was not found.").format(alias_name))
|
||||
await ctx.send(_("Alias with name `{name}` was not found.").format(name=alias_name))
|
||||
|
||||
@global_.command(name="del")
|
||||
@checks.is_owner()
|
||||
@global_.command(name="delete", aliases=["del", "remove"])
|
||||
async def _del_global_alias(self, ctx: commands.Context, alias_name: str):
|
||||
"""
|
||||
Deletes an existing global alias.
|
||||
"""
|
||||
"""Delete an existing global alias."""
|
||||
aliases = await self.unloaded_global_aliases()
|
||||
try:
|
||||
next(aliases)
|
||||
@@ -317,18 +405,19 @@ class Alias:
|
||||
return
|
||||
|
||||
if await self.delete_alias(ctx, alias_name, global_=True):
|
||||
await ctx.send(_("Alias with the name `{}` was successfully"
|
||||
" deleted.").format(alias_name))
|
||||
await ctx.send(
|
||||
_("Alias with the name `{name}` was successfully deleted.").format(name=alias_name)
|
||||
)
|
||||
else:
|
||||
await ctx.send(_("Alias with name `{}` was not found.").format(alias_name))
|
||||
await ctx.send(_("Alias with name `{name}` was not found.").format(name=alias_name))
|
||||
|
||||
@alias.command(name="list")
|
||||
@commands.guild_only()
|
||||
async def _list_alias(self, ctx: commands.Context):
|
||||
"""
|
||||
Lists the available aliases on this server.
|
||||
"""
|
||||
names = [_("Aliases:"), ] + sorted(["+ " + a.name for a in (await self.unloaded_aliases(ctx.guild))])
|
||||
"""List the available aliases on this server."""
|
||||
names = [_("Aliases:")] + sorted(
|
||||
["+ " + a.name for a in (await self.unloaded_aliases(ctx.guild))]
|
||||
)
|
||||
if len(names) == 0:
|
||||
await ctx.send(_("There are no aliases on this server."))
|
||||
else:
|
||||
@@ -336,15 +425,16 @@ class Alias:
|
||||
|
||||
@global_.command(name="list")
|
||||
async def _list_global_alias(self, ctx: commands.Context):
|
||||
"""
|
||||
Lists the available global aliases on this bot.
|
||||
"""
|
||||
names = [_("Aliases:"), ] + sorted(["+ " + a.name for a in await self.unloaded_global_aliases()])
|
||||
"""List the available global aliases on this bot."""
|
||||
names = [_("Aliases:")] + sorted(
|
||||
["+ " + a.name for a in await self.unloaded_global_aliases()]
|
||||
)
|
||||
if len(names) == 0:
|
||||
await ctx.send(_("There are no aliases on this server."))
|
||||
else:
|
||||
await ctx.send(box("\n".join(names), "diff"))
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_message(self, message: discord.Message):
|
||||
aliases = list(await self.unloaded_global_aliases())
|
||||
if message.guild is not None:
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
from typing import Tuple
|
||||
from discord.ext import commands
|
||||
|
||||
import discord
|
||||
from redbot.core import commands
|
||||
|
||||
|
||||
class AliasEntry:
|
||||
def __init__(self, name: str, command: Tuple[str],
|
||||
creator: discord.Member, global_: bool=False):
|
||||
def __init__(
|
||||
self, name: str, command: Tuple[str], creator: discord.Member, global_: bool = False
|
||||
):
|
||||
super().__init__()
|
||||
self.has_real_data = False
|
||||
self.name = name
|
||||
@@ -43,13 +44,12 @@ class AliasEntry:
|
||||
"creator": creator,
|
||||
"guild": guild,
|
||||
"global": self.global_,
|
||||
"uses": self.uses
|
||||
"uses": self.uses,
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_json(cls, data: dict, bot: commands.Bot = None):
|
||||
ret = cls(data["name"], data["command"],
|
||||
data["creator"], global_=data["global"])
|
||||
ret = cls(data["name"], data["command"], data["creator"], global_=data["global"])
|
||||
|
||||
if bot:
|
||||
ret.has_real_data = True
|
||||
|
||||
154
redbot/cogs/alias/locales/ar-SA.po
Normal file
154
redbot/cogs/alias/locales/ar-SA.po
Normal file
@@ -0,0 +1,154 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:12\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Arabic\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: ar\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: ar_SA\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
#, docstring
|
||||
msgid "Create aliases for commands.\\n\\n Aliases are alternative names shortcuts for commands. They\\n can act as both a lambda (storing arguments for repeated use)\\n or as simply a shortcut to saying \\\"x y z\\\".\\n\\n When run, aliases will accept any additional arguments\\n and append them to the stored alias.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:107
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:114
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:164
|
||||
msgid "No prefix found."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:231
|
||||
#, docstring
|
||||
msgid "Manage command aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:236
|
||||
#, docstring
|
||||
msgid "Manage global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:243
|
||||
#, docstring
|
||||
msgid "Add an alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:248
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:259
|
||||
msgid "You attempted to create a new alias with the name {name} but that alias already exists on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:270
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:289
|
||||
msgid "A new alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:295
|
||||
#, docstring
|
||||
msgid "Add a global alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:300
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:311
|
||||
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:322
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:338
|
||||
msgid "A new global alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:346
|
||||
#, docstring
|
||||
msgid "Try to execute help for the base command of the alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:355
|
||||
msgid "{prefix}help {command}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:360
|
||||
msgid "No such alias exists."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:365
|
||||
#, docstring
|
||||
msgid "Show what command the alias executes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:370
|
||||
msgid "The `{alias_name}` alias will execute the command `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:375
|
||||
msgid "There is no alias with the name `{name}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:381
|
||||
#, docstring
|
||||
msgid "Delete an existing alias on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:386 redbot/cogs/alias/alias.py:422
|
||||
#: redbot/cogs/alias/alias.py:433
|
||||
msgid "There are no aliases on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:391 redbot/cogs/alias/alias.py:409
|
||||
msgid "Alias with the name `{name}` was successfully deleted."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:394 redbot/cogs/alias/alias.py:412
|
||||
msgid "Alias with name `{name}` was not found."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:399
|
||||
#, docstring
|
||||
msgid "Delete an existing global alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:404
|
||||
msgid "There are no aliases on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:417
|
||||
#, docstring
|
||||
msgid "List the available aliases on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:418 redbot/cogs/alias/alias.py:429
|
||||
msgid "Aliases:"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:428
|
||||
#, docstring
|
||||
msgid "List the available global aliases on this bot."
|
||||
msgstr ""
|
||||
|
||||
154
redbot/cogs/alias/locales/bg-BG.po
Normal file
154
redbot/cogs/alias/locales/bg-BG.po
Normal file
@@ -0,0 +1,154 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:12\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: bg\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: bg_BG\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
#, docstring
|
||||
msgid "Create aliases for commands.\\n\\n Aliases are alternative names shortcuts for commands. They\\n can act as both a lambda (storing arguments for repeated use)\\n or as simply a shortcut to saying \\\"x y z\\\".\\n\\n When run, aliases will accept any additional arguments\\n and append them to the stored alias.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:107
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:114
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:164
|
||||
msgid "No prefix found."
|
||||
msgstr "Няма намерен префикс."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:231
|
||||
#, docstring
|
||||
msgid "Manage command aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:236
|
||||
#, docstring
|
||||
msgid "Manage global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:243
|
||||
#, docstring
|
||||
msgid "Add an alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:248
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:259
|
||||
msgid "You attempted to create a new alias with the name {name} but that alias already exists on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:270
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:289
|
||||
msgid "A new alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:295
|
||||
#, docstring
|
||||
msgid "Add a global alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:300
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:311
|
||||
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:322
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:338
|
||||
msgid "A new global alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:346
|
||||
#, docstring
|
||||
msgid "Try to execute help for the base command of the alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:355
|
||||
msgid "{prefix}help {command}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:360
|
||||
msgid "No such alias exists."
|
||||
msgstr "Този псевдоним не съществува."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:365
|
||||
#, docstring
|
||||
msgid "Show what command the alias executes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:370
|
||||
msgid "The `{alias_name}` alias will execute the command `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:375
|
||||
msgid "There is no alias with the name `{name}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:381
|
||||
#, docstring
|
||||
msgid "Delete an existing alias on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:386 redbot/cogs/alias/alias.py:422
|
||||
#: redbot/cogs/alias/alias.py:433
|
||||
msgid "There are no aliases on this server."
|
||||
msgstr "Няма използвани псевдоними на този сървър."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:391 redbot/cogs/alias/alias.py:409
|
||||
msgid "Alias with the name `{name}` was successfully deleted."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:394 redbot/cogs/alias/alias.py:412
|
||||
msgid "Alias with name `{name}` was not found."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:399
|
||||
#, docstring
|
||||
msgid "Delete an existing global alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:404
|
||||
msgid "There are no aliases on this bot."
|
||||
msgstr "Няма псевдоними положени към този бот."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:417
|
||||
#, docstring
|
||||
msgid "List the available aliases on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:418 redbot/cogs/alias/alias.py:429
|
||||
msgid "Aliases:"
|
||||
msgstr "Псевдоними:"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:428
|
||||
#, docstring
|
||||
msgid "List the available global aliases on this bot."
|
||||
msgstr ""
|
||||
|
||||
154
redbot/cogs/alias/locales/cs-CZ.po
Normal file
154
redbot/cogs/alias/locales/cs-CZ.po
Normal file
@@ -0,0 +1,154 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-14 02:15\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Czech\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: cs\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: cs_CZ\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
#, docstring
|
||||
msgid "Create aliases for commands.\\n\\n Aliases are alternative names shortcuts for commands. They\\n can act as both a lambda (storing arguments for repeated use)\\n or as simply a shortcut to saying \\\"x y z\\\".\\n\\n When run, aliases will accept any additional arguments\\n and append them to the stored alias.\\n "
|
||||
msgstr "Vytvořit aliasy pro příkazy n n Aliasy jsou alternativní zkratky pro příkazy. Mohou působit jako lambda (ukládání argumentů pro opakované použití) n nebo jednoduše jako zkratka pro vyslovení \"xyz\" n n Při spuštění budou aliasy přijímat další argumenty a připojovat je k uložený alias. \\ t "
|
||||
|
||||
#: redbot/cogs/alias/alias.py:107
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Argumenty musí být zadány s číslem."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:114
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Argumenty musí být sekvenční. Chybějící argumenty: "
|
||||
|
||||
#: redbot/cogs/alias/alias.py:164
|
||||
msgid "No prefix found."
|
||||
msgstr "Nebyl nalezen žádný prefix."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:231
|
||||
#, docstring
|
||||
msgid "Manage command aliases."
|
||||
msgstr "Spravovat aliasy příkazů."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:236
|
||||
#, docstring
|
||||
msgid "Manage global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:243
|
||||
#, docstring
|
||||
msgid "Add an alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:248
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:259
|
||||
msgid "You attempted to create a new alias with the name {name} but that alias already exists on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:270
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:289
|
||||
msgid "A new alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:295
|
||||
#, docstring
|
||||
msgid "Add a global alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:300
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:311
|
||||
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:322
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:338
|
||||
msgid "A new global alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:346
|
||||
#, docstring
|
||||
msgid "Try to execute help for the base command of the alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:355
|
||||
msgid "{prefix}help {command}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:360
|
||||
msgid "No such alias exists."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:365
|
||||
#, docstring
|
||||
msgid "Show what command the alias executes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:370
|
||||
msgid "The `{alias_name}` alias will execute the command `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:375
|
||||
msgid "There is no alias with the name `{name}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:381
|
||||
#, docstring
|
||||
msgid "Delete an existing alias on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:386 redbot/cogs/alias/alias.py:422
|
||||
#: redbot/cogs/alias/alias.py:433
|
||||
msgid "There are no aliases on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:391 redbot/cogs/alias/alias.py:409
|
||||
msgid "Alias with the name `{name}` was successfully deleted."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:394 redbot/cogs/alias/alias.py:412
|
||||
msgid "Alias with name `{name}` was not found."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:399
|
||||
#, docstring
|
||||
msgid "Delete an existing global alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:404
|
||||
msgid "There are no aliases on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:417
|
||||
#, docstring
|
||||
msgid "List the available aliases on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:418 redbot/cogs/alias/alias.py:429
|
||||
msgid "Aliases:"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:428
|
||||
#, docstring
|
||||
msgid "List the available global aliases on this bot."
|
||||
msgstr ""
|
||||
|
||||
154
redbot/cogs/alias/locales/da-DK.po
Normal file
154
redbot/cogs/alias/locales/da-DK.po
Normal file
@@ -0,0 +1,154 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:12\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Danish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: da\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: da_DK\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
#, docstring
|
||||
msgid "Create aliases for commands.\\n\\n Aliases are alternative names shortcuts for commands. They\\n can act as both a lambda (storing arguments for repeated use)\\n or as simply a shortcut to saying \\\"x y z\\\".\\n\\n When run, aliases will accept any additional arguments\\n and append them to the stored alias.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:107
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:114
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:164
|
||||
msgid "No prefix found."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:231
|
||||
#, docstring
|
||||
msgid "Manage command aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:236
|
||||
#, docstring
|
||||
msgid "Manage global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:243
|
||||
#, docstring
|
||||
msgid "Add an alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:248
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:259
|
||||
msgid "You attempted to create a new alias with the name {name} but that alias already exists on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:270
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:289
|
||||
msgid "A new alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:295
|
||||
#, docstring
|
||||
msgid "Add a global alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:300
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:311
|
||||
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:322
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:338
|
||||
msgid "A new global alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:346
|
||||
#, docstring
|
||||
msgid "Try to execute help for the base command of the alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:355
|
||||
msgid "{prefix}help {command}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:360
|
||||
msgid "No such alias exists."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:365
|
||||
#, docstring
|
||||
msgid "Show what command the alias executes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:370
|
||||
msgid "The `{alias_name}` alias will execute the command `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:375
|
||||
msgid "There is no alias with the name `{name}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:381
|
||||
#, docstring
|
||||
msgid "Delete an existing alias on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:386 redbot/cogs/alias/alias.py:422
|
||||
#: redbot/cogs/alias/alias.py:433
|
||||
msgid "There are no aliases on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:391 redbot/cogs/alias/alias.py:409
|
||||
msgid "Alias with the name `{name}` was successfully deleted."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:394 redbot/cogs/alias/alias.py:412
|
||||
msgid "Alias with name `{name}` was not found."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:399
|
||||
#, docstring
|
||||
msgid "Delete an existing global alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:404
|
||||
msgid "There are no aliases on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:417
|
||||
#, docstring
|
||||
msgid "List the available aliases on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:418 redbot/cogs/alias/alias.py:429
|
||||
msgid "Aliases:"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:428
|
||||
#, docstring
|
||||
msgid "List the available global aliases on this bot."
|
||||
msgstr ""
|
||||
|
||||
154
redbot/cogs/alias/locales/de-DE.po
Normal file
154
redbot/cogs/alias/locales/de-DE.po
Normal file
@@ -0,0 +1,154 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:12\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: German\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: de\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: de_DE\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
#, docstring
|
||||
msgid "Create aliases for commands.\\n\\n Aliases are alternative names shortcuts for commands. They\\n can act as both a lambda (storing arguments for repeated use)\\n or as simply a shortcut to saying \\\"x y z\\\".\\n\\n When run, aliases will accept any additional arguments\\n and append them to the stored alias.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:107
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Argumente müssen mit einer Nummer bestimmt werden."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:114
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Argumente müssen sequentiell sein. Fehlende Argumente: "
|
||||
|
||||
#: redbot/cogs/alias/alias.py:164
|
||||
msgid "No prefix found."
|
||||
msgstr "Kein Präfix wurde gefunden."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:231
|
||||
#, docstring
|
||||
msgid "Manage command aliases."
|
||||
msgstr "Verwalte die Alias Befehle."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:236
|
||||
#, docstring
|
||||
msgid "Manage global aliases."
|
||||
msgstr "Verwalte die globalen Aliasse."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:243
|
||||
#, docstring
|
||||
msgid "Add an alias for a command."
|
||||
msgstr "Füge einen Alias für einen Befehl hinzu."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:248
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr "Du hast versucht, einen neuen Alias mit dem Namen {name} zu erstellen, aber dieser Name ist bereits ein Befehl für diesen Bot."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:259
|
||||
msgid "You attempted to create a new alias with the name {name} but that alias already exists on this server."
|
||||
msgstr "Du hast versucht einen neuen Alias mit dem Namen {name} zu erstellen, aber dieser Alias existiert bereits auf dem Server."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:270
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr "Du hast versucht einen neuen Alias mit dem Namen {name} zu erstellen, aber dieser Name ist ein ungültiger Alias-Name. Alias-Namen dürfen keine Leerzeichen enthalten."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:289
|
||||
msgid "A new alias with the trigger `{name}` has been created."
|
||||
msgstr "Ein neuer alias mit dem Trigger `{name}` wurde erstellt."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:295
|
||||
#, docstring
|
||||
msgid "Add a global alias for a command."
|
||||
msgstr "Füge einen globalen Alias für einen Befehl hinzu."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:300
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr "Du hast versucht, einen neuen globalen Alias mit dem Namen {name} zu erstellen, aber dieser Name ist bereits ein Befehl für diesen Bot."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:311
|
||||
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
|
||||
msgstr "Du hast versucht, einen neuen globalen Alias mit dem Namen {name} zu erstellen, dieser ist jedoch bereits auf diesem Server vorhanden."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:322
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr "Du hast versucht, einen neuen globalen Alias mit dem Namen {name} zu erstellen, dieser Name ist jedoch ein ungültiger Alias-Name. Alias-Namen dürfen keine Leerzeichen enthalten."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:338
|
||||
msgid "A new global alias with the trigger `{name}` has been created."
|
||||
msgstr "Ein neuer globaler Alias mit dem Trigger `{name}` wurde erstellt."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:346
|
||||
#, docstring
|
||||
msgid "Try to execute help for the base command of the alias."
|
||||
msgstr "Versuche die Hilfe für den Basisbefehl des Alias auszuführen."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:355
|
||||
msgid "{prefix}help {command}"
|
||||
msgstr "{prefix}help {command}"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:360
|
||||
msgid "No such alias exists."
|
||||
msgstr "So ein Alias ist nicht vorhanden."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:365
|
||||
#, docstring
|
||||
msgid "Show what command the alias executes."
|
||||
msgstr "Zeige den Befehl, welchen der Alias ausführt."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:370
|
||||
msgid "The `{alias_name}` alias will execute the command `{command}`"
|
||||
msgstr "Der Alias '{alias_name}' führt den Befehl '{command}' aus"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:375
|
||||
msgid "There is no alias with the name `{name}`"
|
||||
msgstr "Kein Alias mit dem Namen '{name}' gefunden"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:381
|
||||
#, docstring
|
||||
msgid "Delete an existing alias on this server."
|
||||
msgstr "Lösche einen bereits existierenden Alias auf diesem Server."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:386 redbot/cogs/alias/alias.py:422
|
||||
#: redbot/cogs/alias/alias.py:433
|
||||
msgid "There are no aliases on this server."
|
||||
msgstr "Es gibt keine Aliasse auf diesem Server."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:391 redbot/cogs/alias/alias.py:409
|
||||
msgid "Alias with the name `{name}` was successfully deleted."
|
||||
msgstr "Der Alias mit dem Namen '{name}' wurde erfolgreich gelöscht."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:394 redbot/cogs/alias/alias.py:412
|
||||
msgid "Alias with name `{name}` was not found."
|
||||
msgstr "Kein Alias mit dem Namen '{name}' gefunden."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:399
|
||||
#, docstring
|
||||
msgid "Delete an existing global alias."
|
||||
msgstr "Lösche einen bereits existierenden globalen Alias."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:404
|
||||
msgid "There are no aliases on this bot."
|
||||
msgstr "Es gibt keine Aliasse in diesem Bot."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:417
|
||||
#, docstring
|
||||
msgid "List the available aliases on this server."
|
||||
msgstr "Zeige die auf diesem Server verfügbaren Alias."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:418 redbot/cogs/alias/alias.py:429
|
||||
msgid "Aliases:"
|
||||
msgstr "Aliasse:"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:428
|
||||
#, docstring
|
||||
msgid "List the available global aliases on this bot."
|
||||
msgstr "Zeige die verfügbaren globalen Alias von diesem Bot."
|
||||
|
||||
154
redbot/cogs/alias/locales/el-GR.po
Normal file
154
redbot/cogs/alias/locales/el-GR.po
Normal file
@@ -0,0 +1,154 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-06 16:12\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Greek\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: el\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: el_GR\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
#, docstring
|
||||
msgid "Create aliases for commands.\\n\\n Aliases are alternative names shortcuts for commands. They\\n can act as both a lambda (storing arguments for repeated use)\\n or as simply a shortcut to saying \\\"x y z\\\".\\n\\n When run, aliases will accept any additional arguments\\n and append them to the stored alias.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:107
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:114
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:164
|
||||
msgid "No prefix found."
|
||||
msgstr "Δεν βρέθηκε πρόθεμα."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:231
|
||||
#, docstring
|
||||
msgid "Manage command aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:236
|
||||
#, docstring
|
||||
msgid "Manage global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:243
|
||||
#, docstring
|
||||
msgid "Add an alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:248
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:259
|
||||
msgid "You attempted to create a new alias with the name {name} but that alias already exists on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:270
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:289
|
||||
msgid "A new alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:295
|
||||
#, docstring
|
||||
msgid "Add a global alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:300
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:311
|
||||
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:322
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:338
|
||||
msgid "A new global alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:346
|
||||
#, docstring
|
||||
msgid "Try to execute help for the base command of the alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:355
|
||||
msgid "{prefix}help {command}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:360
|
||||
msgid "No such alias exists."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:365
|
||||
#, docstring
|
||||
msgid "Show what command the alias executes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:370
|
||||
msgid "The `{alias_name}` alias will execute the command `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:375
|
||||
msgid "There is no alias with the name `{name}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:381
|
||||
#, docstring
|
||||
msgid "Delete an existing alias on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:386 redbot/cogs/alias/alias.py:422
|
||||
#: redbot/cogs/alias/alias.py:433
|
||||
msgid "There are no aliases on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:391 redbot/cogs/alias/alias.py:409
|
||||
msgid "Alias with the name `{name}` was successfully deleted."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:394 redbot/cogs/alias/alias.py:412
|
||||
msgid "Alias with name `{name}` was not found."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:399
|
||||
#, docstring
|
||||
msgid "Delete an existing global alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:404
|
||||
msgid "There are no aliases on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:417
|
||||
#, docstring
|
||||
msgid "List the available aliases on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:418 redbot/cogs/alias/alias.py:429
|
||||
msgid "Aliases:"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:428
|
||||
#, docstring
|
||||
msgid "List the available global aliases on this bot."
|
||||
msgstr ""
|
||||
|
||||
154
redbot/cogs/alias/locales/en-PT.po
Normal file
154
redbot/cogs/alias/locales/en-PT.po
Normal file
@@ -0,0 +1,154 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2019-07-05 22:33+0200\n"
|
||||
"PO-Revision-Date: 2019-07-14 02:15\n"
|
||||
"Last-Translator: Robert Jansen (Kowlin)\n"
|
||||
"Language-Team: Pirate English\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: crowdin.com\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Language: en-PT\n"
|
||||
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
|
||||
"Language: en_PT\n"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:35
|
||||
#, docstring
|
||||
msgid "Create aliases for commands.\\n\\n Aliases are alternative names shortcuts for commands. They\\n can act as both a lambda (storing arguments for repeated use)\\n or as simply a shortcut to saying \\\"x y z\\\".\\n\\n When run, aliases will accept any additional arguments\\n and append them to the stored alias.\\n "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:107
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:114
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:164
|
||||
msgid "No prefix found."
|
||||
msgstr "Arrr, no prefix found capt'n!"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:231
|
||||
#, docstring
|
||||
msgid "Manage command aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:236
|
||||
#, docstring
|
||||
msgid "Manage global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:243
|
||||
#, docstring
|
||||
msgid "Add an alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:248
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:259
|
||||
msgid "You attempted to create a new alias with the name {name} but that alias already exists on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:270
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:289
|
||||
msgid "A new alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:295
|
||||
#, docstring
|
||||
msgid "Add a global alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:300
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:311
|
||||
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:322
|
||||
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:338
|
||||
msgid "A new global alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:346
|
||||
#, docstring
|
||||
msgid "Try to execute help for the base command of the alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:355
|
||||
msgid "{prefix}help {command}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:360
|
||||
msgid "No such alias exists."
|
||||
msgstr "Yer scummy alias don't exist, matey!"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:365
|
||||
#, docstring
|
||||
msgid "Show what command the alias executes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:370
|
||||
msgid "The `{alias_name}` alias will execute the command `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:375
|
||||
msgid "There is no alias with the name `{name}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:381
|
||||
#, docstring
|
||||
msgid "Delete an existing alias on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:386 redbot/cogs/alias/alias.py:422
|
||||
#: redbot/cogs/alias/alias.py:433
|
||||
msgid "There are no aliases on this server."
|
||||
msgstr "Alas! Thar be no aliases on this guild."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:391 redbot/cogs/alias/alias.py:409
|
||||
msgid "Alias with the name `{name}` was successfully deleted."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:394 redbot/cogs/alias/alias.py:412
|
||||
msgid "Alias with name `{name}` was not found."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:399
|
||||
#, docstring
|
||||
msgid "Delete an existing global alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:404
|
||||
msgid "There are no aliases on this bot."
|
||||
msgstr "Shiver me timbers! Thar be no aliases on this bot."
|
||||
|
||||
#: redbot/cogs/alias/alias.py:417
|
||||
#, docstring
|
||||
msgid "List the available aliases on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:418 redbot/cogs/alias/alias.py:429
|
||||
msgid "Aliases:"
|
||||
msgstr "Yar Aliases:"
|
||||
|
||||
#: redbot/cogs/alias/alias.py:428
|
||||
#, docstring
|
||||
msgid "List the available global aliases on this bot."
|
||||
msgstr ""
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user