mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-17 22:10:23 +01:00
Compare commits
992 Commits
v1.12.0
...
protocol-v
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
494447741a | ||
|
|
7b174d25cb | ||
|
|
bbb03a08e9 | ||
|
|
b884b0be01 | ||
|
|
94e2c7e4bb | ||
|
|
ed2a0abd22 | ||
|
|
e92403bce1 | ||
|
|
5de315f4d1 | ||
|
|
acca0b956e | ||
|
|
cac4cba224 | ||
|
|
dec157d606 | ||
|
|
483d75354e | ||
|
|
a227cbe328 | ||
|
|
610ecf352b | ||
|
|
1b992d8201 | ||
|
|
505409b9f3 | ||
|
|
3451e11406 | ||
|
|
c3418c2621 | ||
|
|
0aeee14472 | ||
|
|
9c48a4c021 | ||
|
|
8c314fe461 | ||
|
|
581211e12f | ||
|
|
6a17e32dec | ||
|
|
3ae983001d | ||
|
|
3454a24b3c | ||
|
|
3731dc4eb1 | ||
|
|
a8df6d6298 | ||
|
|
7af1c873a3 | ||
|
|
eb18c182a6 | ||
|
|
9197a0db1e | ||
|
|
4fc6944377 | ||
|
|
2679f37dec | ||
|
|
05c9fe2735 | ||
|
|
ff8dfa049d | ||
|
|
4d66978338 | ||
|
|
160e0ab1f5 | ||
|
|
b323df2fe0 | ||
|
|
6ada231bc8 | ||
|
|
0514383ab0 | ||
|
|
702ca164ad | ||
|
|
c2cd7de891 | ||
|
|
33fd4a1c2b | ||
|
|
ce449e918d | ||
|
|
2aef7a5b0d | ||
|
|
d8a48cf0a7 | ||
|
|
f9a8ebfce9 | ||
|
|
68118e438b | ||
|
|
802f566b17 | ||
|
|
1bda92e3fc | ||
|
|
7ed002a138 | ||
|
|
c8db839e63 | ||
|
|
de404102c0 | ||
|
|
86cc80348d | ||
|
|
a688aaae51 | ||
|
|
4fea12c83e | ||
|
|
3811e0a3df | ||
|
|
349330917d | ||
|
|
32cfe96f48 | ||
|
|
10a6ca6173 | ||
|
|
8ba261048b | ||
|
|
6fa88823c8 | ||
|
|
488ea3949b | ||
|
|
beebe53a71 | ||
|
|
510737726c | ||
|
|
366ad5cd69 | ||
|
|
0002c3f499 | ||
|
|
0efe27b1f2 | ||
|
|
b3511f71e0 | ||
|
|
d567c4ae22 | ||
|
|
6c87bed5f6 | ||
|
|
0a96c92300 | ||
|
|
b3caa40189 | ||
|
|
cec0079573 | ||
|
|
1e2e16b4bb | ||
|
|
efd1e88bbf | ||
|
|
a254520485 | ||
|
|
1eca5b3dae | ||
|
|
2eb8c05e4b | ||
|
|
6c404b81fb | ||
|
|
83ba2e234b | ||
|
|
94499da3d6 | ||
|
|
c38b2d2319 | ||
|
|
f65922297d | ||
|
|
b47f1769e4 | ||
|
|
5e88c585cb | ||
|
|
2093418de8 | ||
|
|
7721c58dd3 | ||
|
|
eabc6f4763 | ||
|
|
e52ecfaf3f | ||
|
|
f4381ba366 | ||
|
|
8d41cdefa9 | ||
|
|
dee1d44722 | ||
|
|
df139928b6 | ||
|
|
c01699f706 | ||
|
|
182397b171 | ||
|
|
9c3fa7758a | ||
|
|
c2565a2f99 | ||
|
|
480a64aaa7 | ||
|
|
b5a30006e2 | ||
|
|
d75d9fdd33 | ||
|
|
9d946d1c76 | ||
|
|
d9b8e929e6 | ||
|
|
23d66ae86c | ||
|
|
645d647248 | ||
|
|
e3c9dafa08 | ||
|
|
f28bd75f5e | ||
|
|
7122bdc796 | ||
|
|
73d9752eba | ||
|
|
0037a03886 | ||
|
|
bfea9d3906 | ||
|
|
ef5f671410 | ||
|
|
e1e2d20c6a | ||
|
|
420f9fe495 | ||
|
|
cb91e7564e | ||
|
|
59242d31aa | ||
|
|
ac5c560c54 | ||
|
|
0283ffd04d | ||
|
|
c4e58160cf | ||
|
|
72fd9f6546 | ||
|
|
b91c4790d1 | ||
|
|
7655265ce2 | ||
|
|
f69b1cebb1 | ||
|
|
1cedc4a0d6 | ||
|
|
38e9f1d556 | ||
|
|
188bb6b3eb | ||
|
|
c4190dde0f | ||
|
|
d0e428e9c8 | ||
|
|
3952849f30 | ||
|
|
0e5e47f410 | ||
|
|
e020b85bf5 | ||
|
|
401d1eed1a | ||
|
|
989107d9b5 | ||
|
|
4b8897d9bc | ||
|
|
beea56b3c6 | ||
|
|
cf7e0cfd2d | ||
|
|
6155c4600f | ||
|
|
d108c7d031 | ||
|
|
2f515bac07 | ||
|
|
df1efe5f96 | ||
|
|
1aa520b7a0 | ||
|
|
500ca6658e | ||
|
|
b01a47cbc1 | ||
|
|
57dce269c3 | ||
|
|
9bd6f6864a | ||
|
|
e31a47cd40 | ||
|
|
37642f4313 | ||
|
|
441dd86d29 | ||
|
|
9b308e4b07 | ||
|
|
9b4e9882b0 | ||
|
|
d679218859 | ||
|
|
73e7aec5a4 | ||
|
|
f9f85fc425 | ||
|
|
95a372df85 | ||
|
|
ddf3812cdc | ||
|
|
ca3be1f336 | ||
|
|
4093c98794 | ||
|
|
132e32eb5c | ||
|
|
fd5095a379 | ||
|
|
632daa0e94 | ||
|
|
d72b0d1616 | ||
|
|
52650436c3 | ||
|
|
485fbd2f14 | ||
|
|
bf6ae6d6d0 | ||
|
|
0da4f7ee8d | ||
|
|
990508a533 | ||
|
|
554e67116f | ||
|
|
f52f98fb89 | ||
|
|
3775301f24 | ||
|
|
692d94bf8c | ||
|
|
88818a5bbf | ||
|
|
dd20293145 | ||
|
|
f272daaf37 | ||
|
|
03827fa695 | ||
|
|
565f9726f7 | ||
|
|
661a0f5068 | ||
|
|
6b3eb0144e | ||
|
|
c01b0fbd8c | ||
|
|
1a150d8f66 | ||
|
|
5b458fc7ca | ||
|
|
b232b95f76 | ||
|
|
ac4a500402 | ||
|
|
75bcb0f484 | ||
|
|
4bc77d064b | ||
|
|
205d3f9d12 | ||
|
|
c5f7b66c3a | ||
|
|
f402d7271a | ||
|
|
b19f0a686c | ||
|
|
7823144bd9 | ||
|
|
38322ec308 | ||
|
|
6fb29e8408 | ||
|
|
aafb7739a9 | ||
|
|
f983f536c6 | ||
|
|
4e28e575cf | ||
|
|
02d38caf47 | ||
|
|
91e8e3905c | ||
|
|
a578f92bcc | ||
|
|
c9bf6d0fe1 | ||
|
|
f8c8038a06 | ||
|
|
cffbb32585 | ||
|
|
b484f309e2 | ||
|
|
9589fa327c | ||
|
|
18bf865d83 | ||
|
|
0d629f0696 | ||
|
|
dc8d721c46 | ||
|
|
1f0c6f3d60 | ||
|
|
d5dda26f97 | ||
|
|
603908c10a | ||
|
|
3455c27a8d | ||
|
|
c5ffd8cc74 | ||
|
|
41f8da2e7c | ||
|
|
2856333d05 | ||
|
|
88cae4158a | ||
|
|
2477849bb5 | ||
|
|
b192605450 | ||
|
|
05e753c73b | ||
|
|
94810fd637 | ||
|
|
310039e875 | ||
|
|
54c9f877a6 | ||
|
|
fb278fc2f0 | ||
|
|
10f168b824 | ||
|
|
a2a7bb3da5 | ||
|
|
f9ad826bfe | ||
|
|
48cc317c6e | ||
|
|
da12e94733 | ||
|
|
10a30e665e | ||
|
|
764ed7f814 | ||
|
|
ddd4e03942 | ||
|
|
b172d10683 | ||
|
|
3caa387ac6 | ||
|
|
2444ed5c88 | ||
|
|
9c051386d5 | ||
|
|
b93c826d35 | ||
|
|
95ab071254 | ||
|
|
4d912ca300 | ||
|
|
13c870597e | ||
|
|
7effc89291 | ||
|
|
9a7560049a | ||
|
|
ffe3670ff5 | ||
|
|
2801ffa622 | ||
|
|
ed1223645e | ||
|
|
2150701f32 | ||
|
|
ac6eb31c69 | ||
|
|
0ced71be39 | ||
|
|
310c6fd33f | ||
|
|
17437897f9 | ||
|
|
40f131a6bb | ||
|
|
7a0f607434 | ||
|
|
22b02f1407 | ||
|
|
969c5d4a2b | ||
|
|
572bc29742 | ||
|
|
039710493a | ||
|
|
b602c04463 | ||
|
|
7e7ea7a697 | ||
|
|
1f054c7ecb | ||
|
|
1e5246f9ad | ||
|
|
a651d154ce | ||
|
|
bd3d3f2e39 | ||
|
|
e32a55460f | ||
|
|
9ee1a882ec | ||
|
|
625b0815bb | ||
|
|
babb9d7c55 | ||
|
|
bd026cb1ae | ||
|
|
b842057f26 | ||
|
|
f9d6912b4a | ||
|
|
223c108cc6 | ||
|
|
f0ae2887b8 | ||
|
|
96ab8d05aa | ||
|
|
5505628c8d | ||
|
|
058581333e | ||
|
|
910b9b8864 | ||
|
|
bb8a9b2563 | ||
|
|
bbc2e95688 | ||
|
|
873ec51978 | ||
|
|
795d4183ca | ||
|
|
5b8550f060 | ||
|
|
44cd71895b | ||
|
|
d8fe6e42dc | ||
|
|
86b16629f8 | ||
|
|
90f8bb99c0 | ||
|
|
c5e5e24bdf | ||
|
|
87f6ac59b1 | ||
|
|
84c19754e7 | ||
|
|
955e00fd9d | ||
|
|
e18392ab41 | ||
|
|
ecf39727cc | ||
|
|
307abaa8cc | ||
|
|
e0fec86628 | ||
|
|
d788a8e913 | ||
|
|
63bd3fc597 | ||
|
|
f76d35bcf2 | ||
|
|
8ed80bcb39 | ||
|
|
35a4ca2fe9 | ||
|
|
b9583ed838 | ||
|
|
781b3f1a9a | ||
|
|
71cd602da9 | ||
|
|
5b8bb3e426 | ||
|
|
de4619689b | ||
|
|
9b151b2316 | ||
|
|
ec3b5dd95a | ||
|
|
5de6d8857a | ||
|
|
b110aec6ed | ||
|
|
8b7f6566cc | ||
|
|
a7d2b8a1fe | ||
|
|
9d41955bca | ||
|
|
52b2d670e5 | ||
|
|
f05c1dae69 | ||
|
|
63bd252fba | ||
|
|
1789ecb45c | ||
|
|
75d7ae9272 | ||
|
|
63a741cfb3 | ||
|
|
5c2afe5eac | ||
|
|
ebe5ed22bb | ||
|
|
2a5fe2b8f4 | ||
|
|
3c6c40b177 | ||
|
|
5c0266d8c4 | ||
|
|
b2423baeec | ||
|
|
a3120a62cf | ||
|
|
3e2ed21d3d | ||
|
|
b81405a8cc | ||
|
|
ec98945a5f | ||
|
|
b9105ef9c6 | ||
|
|
b99279a83c | ||
|
|
67875f7e1f | ||
|
|
106c20e2a6 | ||
|
|
22f8011686 | ||
|
|
fa251ece63 | ||
|
|
6cda369872 | ||
|
|
09410ff1c5 | ||
|
|
0843497dd4 | ||
|
|
77cb4b55cb | ||
|
|
a4d84a66dd | ||
|
|
e93ef0d7fd | ||
|
|
4652c68ba7 | ||
|
|
8c2fc57728 | ||
|
|
3887fc678b | ||
|
|
429e124f34 | ||
|
|
864af61055 | ||
|
|
88dfbf213f | ||
|
|
516b62ea68 | ||
|
|
451c7fd4b6 | ||
|
|
9b4ae4c04a | ||
|
|
2d24153933 | ||
|
|
71e50bbf4e | ||
|
|
6a4a9e26a2 | ||
|
|
9b09ee0e93 | ||
|
|
12ba589d69 | ||
|
|
c75f3d278d | ||
|
|
87a7a59903 | ||
|
|
317c67713e | ||
|
|
6e9caddcd1 | ||
|
|
acd9576489 | ||
|
|
1796b65d34 | ||
|
|
4588a4fdcf | ||
|
|
7c0cfc33ea | ||
|
|
30a86ed553 | ||
|
|
effe39895e | ||
|
|
b69769bb84 | ||
|
|
0c4cd840a0 | ||
|
|
fe452762b7 | ||
|
|
ad96b0e0db | ||
|
|
9b8ac89e13 | ||
|
|
9149db1fec | ||
|
|
793c5eaa79 | ||
|
|
57de99d21c | ||
|
|
dd8386d93d | ||
|
|
3a01e95380 | ||
|
|
2580306db9 | ||
|
|
0164e51f9f | ||
|
|
e291a60964 | ||
|
|
547bb4966d | ||
|
|
4ee2c09065 | ||
|
|
3d2cb6288a | ||
|
|
aea04de094 | ||
|
|
105fb79c5b | ||
|
|
b565e56864 | ||
|
|
8ce2a5fc20 | ||
|
|
21e81f961c | ||
|
|
0dfce49f9c | ||
|
|
e4b5d0b4f2 | ||
|
|
d372720749 | ||
|
|
f31d30cd02 | ||
|
|
f9a804e014 | ||
|
|
19b63bfaa7 | ||
|
|
69333f59af | ||
|
|
f2912e9fe0 | ||
|
|
a4dec7e3ab | ||
|
|
1d7e0c6341 | ||
|
|
6f7ab5861e | ||
|
|
2c4f04462f | ||
|
|
a121098513 | ||
|
|
a67762bc32 | ||
|
|
cdccc64653 | ||
|
|
2b1912a964 | ||
|
|
89cd31ed28 | ||
|
|
cb50b3f441 | ||
|
|
3ff6e1bb64 | ||
|
|
aeb44faf5c | ||
|
|
80bd52fcfa | ||
|
|
5362488584 | ||
|
|
f15c7f12b3 | ||
|
|
2f02edbc3c | ||
|
|
0722cc4715 | ||
|
|
bd8736db38 | ||
|
|
8c1ecdc13c | ||
|
|
39da440aef | ||
|
|
ccccba8128 | ||
|
|
27c27b497e | ||
|
|
2b1f840eb1 | ||
|
|
cf2504f881 | ||
|
|
cc119c55d5 | ||
|
|
1e0190abef | ||
|
|
fa26855671 | ||
|
|
4eaa630b1c | ||
|
|
ca7ba9be34 | ||
|
|
acf12e3dd8 | ||
|
|
6f375482a0 | ||
|
|
592d9c82c5 | ||
|
|
b1c0beb713 | ||
|
|
c9250a01a2 | ||
|
|
1a2a381ae3 | ||
|
|
c44bf48c01 | ||
|
|
f736f0b382 | ||
|
|
1ce33faaea | ||
|
|
71b205a889 | ||
|
|
c6c13725f8 | ||
|
|
e635348693 | ||
|
|
32ea04a872 | ||
|
|
647713f3fa | ||
|
|
661284cfc5 | ||
|
|
7162051905 | ||
|
|
29f96b199c | ||
|
|
0921230976 | ||
|
|
eaea6f63f6 | ||
|
|
d3d677daf2 | ||
|
|
7a5dbd9ff5 | ||
|
|
360e172e53 | ||
|
|
72590b3462 | ||
|
|
216eba6847 | ||
|
|
7beef91c3f | ||
|
|
3cc7ec63e8 | ||
|
|
a3541d887b | ||
|
|
014e31533d | ||
|
|
c506f8063d | ||
|
|
292bbe3449 | ||
|
|
5fce45580a | ||
|
|
7ca334264f | ||
|
|
fd5f9822bd | ||
|
|
3ecac97d7e | ||
|
|
cbede89af3 | ||
|
|
7a31c9f06e | ||
|
|
b734defbfa | ||
|
|
973075cfbc | ||
|
|
924d332c2c | ||
|
|
06932602ab | ||
|
|
e9fd49e234 | ||
|
|
08530bb33f | ||
|
|
90bcd65a00 | ||
|
|
602c09e1f9 | ||
|
|
8d4f20865f | ||
|
|
186321e646 | ||
|
|
bc6f22ebdb | ||
|
|
61f9be99e9 | ||
|
|
3d3fa8655d | ||
|
|
f2e4664d93 | ||
|
|
d860f8c799 | ||
|
|
57b2a55320 | ||
|
|
7257e6b2aa | ||
|
|
af1f7249a7 | ||
|
|
52a2e5d61d | ||
|
|
687b9b74c0 | ||
|
|
af968c6ae5 | ||
|
|
0e07ffa1d9 | ||
|
|
65fc06128c | ||
|
|
3a9d83a44b | ||
|
|
47e30a67be | ||
|
|
23046bab9a | ||
|
|
7ad72b324d | ||
|
|
9780f5b975 | ||
|
|
2abe244b6e | ||
|
|
dec8040c09 | ||
|
|
6a289fbac9 | ||
|
|
4d6b687183 | ||
|
|
1c2540d3e1 | ||
|
|
96ebe7b5f7 | ||
|
|
2258452c3e | ||
|
|
b9aac424cd | ||
|
|
666e0eaff9 | ||
|
|
8bf40d04c9 | ||
|
|
053ff510bb | ||
|
|
d98313b5f6 | ||
|
|
b10ad7b6ff | ||
|
|
ef734b622e | ||
|
|
c02686bfc8 | ||
|
|
66aa443b7a | ||
|
|
102d4b0247 | ||
|
|
97d7a85060 | ||
|
|
99cf47ee08 | ||
|
|
ce91288607 | ||
|
|
3c32d8600f | ||
|
|
e76214a25c | ||
|
|
7b90863971 | ||
|
|
79eed9ae60 | ||
|
|
6a486e35bb | ||
|
|
54b87fd176 | ||
|
|
764a2b1210 | ||
|
|
e72f3e4ffe | ||
|
|
9b3f4b98d1 | ||
|
|
0b498acdcf | ||
|
|
0d047f4eb9 | ||
|
|
87552c559c | ||
|
|
8b1fc5c85f | ||
|
|
ba1bb5283a | ||
|
|
7dc0eaf070 | ||
|
|
a15c50bf62 | ||
|
|
7f72181ec8 | ||
|
|
756a717eb8 | ||
|
|
fcf8fd51cb | ||
|
|
3dd806dcb8 | ||
|
|
2d34b8cc99 | ||
|
|
69860e582b | ||
|
|
c126cd8572 | ||
|
|
f5f5f76b12 | ||
|
|
97fdb2b431 | ||
|
|
17f843f991 | ||
|
|
7a88c4cc34 | ||
|
|
bf04ee8d74 | ||
|
|
e074b0bf9f | ||
|
|
4f20b4d38c | ||
|
|
34d85b5205 | ||
|
|
f8d341014a | ||
|
|
faccb191ec | ||
|
|
627ecaf6bb | ||
|
|
e2e33dfb1e | ||
|
|
2f0a331f02 | ||
|
|
44a3352003 | ||
|
|
d43f5dcf4c | ||
|
|
c46a07727d | ||
|
|
4fb271c684 | ||
|
|
28151f86da | ||
|
|
9fda2c1ff4 | ||
|
|
3fdc638b27 | ||
|
|
8a11193fc8 | ||
|
|
6d3a92b851 | ||
|
|
879104ccde | ||
|
|
8e75646ac0 | ||
|
|
daed76d5d6 | ||
|
|
72def7dfa6 | ||
|
|
a39ca51e06 | ||
|
|
d5342a40ba | ||
|
|
87b1148fa8 | ||
|
|
fcd4445a89 | ||
|
|
5e8614e15b | ||
|
|
382a9c4187 | ||
|
|
c0c6c652be | ||
|
|
c4bb467ea5 | ||
|
|
acad245b4a | ||
|
|
1b2b308a7e | ||
|
|
930ffd074f | ||
|
|
a51ec591ee | ||
|
|
6fea46b6e2 | ||
|
|
0e8ee31b90 | ||
|
|
cd80c2638c | ||
|
|
0a690c5710 | ||
|
|
1c5fad6dae | ||
|
|
f73468d5e7 | ||
|
|
fe4c048198 | ||
|
|
93862e9e66 | ||
|
|
3b24de4cb3 | ||
|
|
fcf3e0770b | ||
|
|
45223cded6 | ||
|
|
8654623217 | ||
|
|
7f54a24438 | ||
|
|
c610eb1430 | ||
|
|
13aaf07bf5 | ||
|
|
9eb1fcd4e5 | ||
|
|
239195d8a9 | ||
|
|
d6e36c3166 | ||
|
|
c1660a1ace | ||
|
|
46639be32d | ||
|
|
4541caa4f8 | ||
|
|
6f738c2b44 | ||
|
|
cd2e68cb2d | ||
|
|
1970214a24 | ||
|
|
efedd6212a | ||
|
|
7f4b1043ad | ||
|
|
15e01d1223 | ||
|
|
196796084c | ||
|
|
9f78bd7a12 | ||
|
|
3cb6cfe87d | ||
|
|
53e1b349ae | ||
|
|
5b746d53e7 | ||
|
|
b24ce97602 | ||
|
|
2b70e86f21 | ||
|
|
8394a0fd58 | ||
|
|
7b95ebbb6a | ||
|
|
8ef75be3e3 | ||
|
|
e1ecc36d04 | ||
|
|
0ac49d63d9 | ||
|
|
2c33595507 | ||
|
|
4170abfd6b | ||
|
|
0a6cfb37c2 | ||
|
|
332a16c868 | ||
|
|
fba67196e1 | ||
|
|
805dcd7ca2 | ||
|
|
43ce5f8af3 | ||
|
|
27da232556 | ||
|
|
16aae51726 | ||
|
|
49e3a368f8 | ||
|
|
bd09ba92e5 | ||
|
|
8a6a58ee43 | ||
|
|
f3440ebfca | ||
|
|
851424a7ca | ||
|
|
8b1dadb7f8 | ||
|
|
cf9afa1974 | ||
|
|
bd640a1107 | ||
|
|
5e46cf9b09 | ||
|
|
9c082c37cb | ||
|
|
4e6cb52577 | ||
|
|
82e5bc225e | ||
|
|
11b5eb6481 | ||
|
|
76910ad5b6 | ||
|
|
9e9a2a5048 | ||
|
|
f426e105a0 | ||
|
|
75ff4d7dea | ||
|
|
a0c0ef1ba4 | ||
|
|
fb0870297b | ||
|
|
1d0fd0284a | ||
|
|
accf48f38b | ||
|
|
a5de54f877 | ||
|
|
ee4d78cae3 | ||
|
|
41bc6ca2c4 | ||
|
|
af17c6e31c | ||
|
|
413259a2b8 | ||
|
|
e299cafce7 | ||
|
|
708df46ebe | ||
|
|
69fae1a7e4 | ||
|
|
67b8cb8977 | ||
|
|
667bc67f04 | ||
|
|
77347d0a99 | ||
|
|
fc69e891eb | ||
|
|
3100d803c7 | ||
|
|
208c821eaf | ||
|
|
e0b2ae8d8e | ||
|
|
af7ecd2f10 | ||
|
|
ba28abe56d | ||
|
|
f24c14d712 | ||
|
|
e5733f4029 | ||
|
|
744e4428ae | ||
|
|
d0ee312cd3 | ||
|
|
f0703e21c5 | ||
|
|
23fb904fa6 | ||
|
|
5738ebeb54 | ||
|
|
cb51c239f2 | ||
|
|
f8a7cf7378 | ||
|
|
198d05875f | ||
|
|
3ecd703ea3 | ||
|
|
e48c7cd717 | ||
|
|
6a7bc1c5fb | ||
|
|
26ff02dc72 | ||
|
|
a39f0ef592 | ||
|
|
4e513cf38a | ||
|
|
c288750556 | ||
|
|
13efbc9967 | ||
|
|
4960b92545 | ||
|
|
e1c05e59c9 | ||
|
|
3780a58ffb | ||
|
|
b3ed89f5fd | ||
|
|
629b5ce37e | ||
|
|
b53a60c278 | ||
|
|
289dada5f7 | ||
|
|
2fa68e3b1a | ||
|
|
fc224ccaab | ||
|
|
15020b4657 | ||
|
|
6b43d26f52 | ||
|
|
54e6ac2a99 | ||
|
|
7e54d7aa35 | ||
|
|
29a124c412 | ||
|
|
68e5d7adec | ||
|
|
39ee3980d6 | ||
|
|
a7600b4bbe | ||
|
|
596486ddc3 | ||
|
|
ebfc369ade | ||
|
|
91a2e1a90e | ||
|
|
a251032f02 | ||
|
|
fc89516e3f | ||
|
|
c9689f11d3 | ||
|
|
ada8f22e8c | ||
|
|
6db3604e94 | ||
|
|
b4cc8d88cd | ||
|
|
25ea634787 | ||
|
|
d939614782 | ||
|
|
ede060a646 | ||
|
|
1894cd9b81 | ||
|
|
89fea9d375 | ||
|
|
0a7778bdd4 | ||
|
|
2523889990 | ||
|
|
17ec8fde2c | ||
|
|
f9e99fa341 | ||
|
|
580f786095 | ||
|
|
f2a6f888fb | ||
|
|
8c331088ca | ||
|
|
e1e4abeb33 | ||
|
|
c241551d3b | ||
|
|
f6d3cc0ea4 | ||
|
|
de04629745 | ||
|
|
a6b7770342 | ||
|
|
5995834bc6 | ||
|
|
fca6d7944f | ||
|
|
aee47b299a | ||
|
|
a6436716ea | ||
|
|
376390c45f | ||
|
|
3d2ec0bb97 | ||
|
|
c360e0c2f9 | ||
|
|
ae8913904f | ||
|
|
a5f94ee5ca | ||
|
|
eac4e2f188 | ||
|
|
cc6fa97cae | ||
|
|
232b35f938 | ||
|
|
23502c9074 | ||
|
|
8ee5d32d4f | ||
|
|
5fa5e999f8 | ||
|
|
3f4f8aface | ||
|
|
25d289c6f6 | ||
|
|
86da15bedd | ||
|
|
644504ff02 | ||
|
|
988cbb63e1 | ||
|
|
99120676bb | ||
|
|
e21246a91b | ||
|
|
c7f95ccecc | ||
|
|
4b843ba16f | ||
|
|
a097b19293 | ||
|
|
5b85ed318a | ||
|
|
48538b28be | ||
|
|
8d319e4280 | ||
|
|
2e6b562f1e | ||
|
|
31ccc860d3 | ||
|
|
868dedd194 | ||
|
|
805328317f | ||
|
|
0dca13e9c2 | ||
|
|
8aef689f05 | ||
|
|
d202be5b4f | ||
|
|
e330865990 | ||
|
|
035f624758 | ||
|
|
ebb32e7891 | ||
|
|
c7f3e6b626 | ||
|
|
0721bee146 | ||
|
|
6f70397bd7 | ||
|
|
d43bdb41d1 | ||
|
|
3b8e6e15c3 | ||
|
|
4d9bc30d1f | ||
|
|
6cebc7f069 | ||
|
|
64679b37cc | ||
|
|
5cd9e1bf86 | ||
|
|
1d26aac8b8 | ||
|
|
b09749ff00 | ||
|
|
64a20f5616 | ||
|
|
3f21096d47 | ||
|
|
603c526287 | ||
|
|
f321b426b1 | ||
|
|
157b921e14 | ||
|
|
a8409fbd49 | ||
|
|
63e5d383d9 | ||
|
|
a3d4240435 | ||
|
|
b174c2d25c | ||
|
|
e65ddc98b5 | ||
|
|
4da9a1eb38 | ||
|
|
85ca5b190a | ||
|
|
80c0d579e3 | ||
|
|
a97e97b9c3 | ||
|
|
106d52a47f | ||
|
|
a8e6520559 | ||
|
|
7ba4a864fd | ||
|
|
7a4b68e816 | ||
|
|
d95e644720 | ||
|
|
f55cc66723 | ||
|
|
3b0459a0a5 | ||
|
|
91f0bce628 | ||
|
|
c6449c106b | ||
|
|
b692dd87cd | ||
|
|
15391da51e | ||
|
|
35d10f764a | ||
|
|
7e5cb72a59 | ||
|
|
d1f29e2649 | ||
|
|
20fa751c63 | ||
|
|
172e688805 | ||
|
|
b70e03a7b0 | ||
|
|
f326f53d4f | ||
|
|
15ce23da4c | ||
|
|
f552cea523 | ||
|
|
b32da57faf | ||
|
|
a41769e61c | ||
|
|
f6ce0e655d | ||
|
|
dfab231afd | ||
|
|
183b0ed3f1 | ||
|
|
810e2c0b8d | ||
|
|
dc6b49cacb | ||
|
|
05a6413e44 | ||
|
|
9998e86b3b | ||
|
|
fcd6dc88d0 | ||
|
|
3ff8154bbd | ||
|
|
6421f10f81 | ||
|
|
c20e331306 | ||
|
|
0d86781cb5 | ||
|
|
58311b6cf6 | ||
|
|
4f0dc44307 | ||
|
|
3a7e99a503 | ||
|
|
a9f9d19b4e | ||
|
|
bd86e58daf | ||
|
|
9047210c67 | ||
|
|
26d6d0bed1 | ||
|
|
bd94fbc2b1 | ||
|
|
1703233f48 | ||
|
|
d349754d9e | ||
|
|
50260e137a | ||
|
|
e114b16d7a | ||
|
|
cf5aeace6b | ||
|
|
c9ca72d0f3 | ||
|
|
31f347daad | ||
|
|
59bdc970e6 | ||
|
|
96cb29aab0 | ||
|
|
692e2ead0b | ||
|
|
9210baf518 | ||
|
|
8a018a5f81 | ||
|
|
4e39caf8ae | ||
|
|
10a47a2912 | ||
|
|
c838ad153d | ||
|
|
69d14cc6dd | ||
|
|
3d938e7bf8 | ||
|
|
bf6fc502c4 | ||
|
|
8945ebcb81 | ||
|
|
b990312088 | ||
|
|
c940a73359 | ||
|
|
9385c8e3ee | ||
|
|
ed79f37b3e | ||
|
|
07e9b67e8d | ||
|
|
edc26a5b66 | ||
|
|
32cf07d732 | ||
|
|
fe6d64ccbc | ||
|
|
f86d74d8b9 | ||
|
|
7c4201f282 | ||
|
|
09681e6ccf | ||
|
|
8775e7e652 | ||
|
|
288a25f0a3 | ||
|
|
1a7036a68b | ||
|
|
65ff0bbd4f | ||
|
|
2c98dd5f9d | ||
|
|
e81a1dbb65 | ||
|
|
c1fb17f9a7 | ||
|
|
d4d8d98fe2 | ||
|
|
ca694fd166 | ||
|
|
f10708e734 | ||
|
|
abcca134dc | ||
|
|
45acf80987 | ||
|
|
c6cd6c5705 | ||
|
|
4df925e76a | ||
|
|
740388492f | ||
|
|
a876c53b55 | ||
|
|
551b18cd4f | ||
|
|
9bf3517db1 | ||
|
|
00552d7183 | ||
|
|
ddffc904f4 | ||
|
|
8778f00b69 | ||
|
|
81f3fbdcfc | ||
|
|
69dd8e4d06 | ||
|
|
a54f8f00d2 | ||
|
|
0fe954816f | ||
|
|
3ce6321707 | ||
|
|
ba5e1eaa4f | ||
|
|
35618de1a7 | ||
|
|
3a35b77d5f | ||
|
|
c38db4f765 | ||
|
|
d8978fb142 | ||
|
|
b716977237 | ||
|
|
97a7f02feb | ||
|
|
d3ebda7370 | ||
|
|
808c4909a4 | ||
|
|
93b688d00e | ||
|
|
dd973abe88 | ||
|
|
6fdd486589 | ||
|
|
c87ebc93c7 | ||
|
|
eb2c3e5626 | ||
|
|
81f8cfe3da | ||
|
|
ac889db16b | ||
|
|
8cd3d43322 | ||
|
|
d79a34c466 | ||
|
|
4de53d5316 | ||
|
|
397e062a3c | ||
|
|
4f3ca4d899 | ||
|
|
4f303a85ce | ||
|
|
e5c12a49e5 | ||
|
|
3fbb6faf28 | ||
|
|
ed91d3f2c8 | ||
|
|
fb58e23914 | ||
|
|
e479fad792 | ||
|
|
a8627d33c4 | ||
|
|
75ae29c1dd | ||
|
|
ae17481d36 | ||
|
|
3871a02ccc | ||
|
|
da2e0e78d2 | ||
|
|
30b042b809 | ||
|
|
dbc4d8403d | ||
|
|
abe4abb674 | ||
|
|
8cc1864aa7 | ||
|
|
4db0efe32d | ||
|
|
2ee2cd528f | ||
|
|
b52dba5c92 | ||
|
|
6d8880db43 | ||
|
|
e906bea470 | ||
|
|
cf180e093c | ||
|
|
8fb07f8131 | ||
|
|
3ec9fc4098 | ||
|
|
3304ffe978 | ||
|
|
745b2716cd | ||
|
|
1f3554ff00 | ||
|
|
6415ba82c4 | ||
|
|
86e1cdd541 | ||
|
|
b39ce25c5d | ||
|
|
8662aa9595 | ||
|
|
5f787d73a5 | ||
|
|
ea77ad4e58 | ||
|
|
447cf66b35 | ||
|
|
8f55ab1340 | ||
|
|
63e16ec0a2 | ||
|
|
33a1bf6cde | ||
|
|
0f9cb86d13 | ||
|
|
357f931ca2 | ||
|
|
8d62ead329 | ||
|
|
81306fff3c | ||
|
|
b6440eed7a | ||
|
|
fddb783ee9 | ||
|
|
a9130fad18 | ||
|
|
d2932cf6fa | ||
|
|
0274c2bd83 | ||
|
|
af2663d6da | ||
|
|
78e0b9834c | ||
|
|
ad2d7a6991 | ||
|
|
cead89f0ba | ||
|
|
148ccb6165 | ||
|
|
6bed51ef1c | ||
|
|
24dcae2193 | ||
|
|
240f563ab0 | ||
|
|
1f4db132d5 | ||
|
|
c289b904e6 | ||
|
|
c37b2f2ed3 | ||
|
|
dcdd41c7ce | ||
|
|
962b7f73d3 | ||
|
|
dd8d4f206a | ||
|
|
c12e1d19a7 | ||
|
|
b4a9bb10e5 | ||
|
|
c326141572 | ||
|
|
438d19bb64 | ||
|
|
697a6597f3 | ||
|
|
745a9589e9 | ||
|
|
c20cd52854 | ||
|
|
45d7e37ae8 | ||
|
|
b48b6d75e5 | ||
|
|
f8fa659642 | ||
|
|
7addc5a0e2 | ||
|
|
b3962c1694 | ||
|
|
1c671c32f1 | ||
|
|
a6d7ea8ae3 | ||
|
|
fe30e06db2 | ||
|
|
5c60539235 | ||
|
|
6cd3ac5b9b | ||
|
|
b71e0eb179 | ||
|
|
d2cfe6b946 | ||
|
|
d8486e887a | ||
|
|
3567feee17 | ||
|
|
2024b836dc | ||
|
|
02804fe9c4 | ||
|
|
b2fbeb053a | ||
|
|
4732bed3db | ||
|
|
0d19bb3d46 | ||
|
|
73d14e4516 | ||
|
|
2cb0bdea9a | ||
|
|
802931465e | ||
|
|
a967253afa | ||
|
|
48dd3c5b48 | ||
|
|
3f4ae4b03b | ||
|
|
9887bb4fa2 | ||
|
|
7211dde7b9 | ||
|
|
756dfd8ae6 | ||
|
|
f9d92db5d5 | ||
|
|
e71ae80cbc | ||
|
|
cbfbcee50f | ||
|
|
c18f2e1fdd | ||
|
|
777ca03264 | ||
|
|
aecdf739fd | ||
|
|
5eaa14e746 | ||
|
|
9aeb291e9b | ||
|
|
d87f8c525d | ||
|
|
7875b11b47 |
@@ -14,6 +14,8 @@
|
|||||||
"exports": "always-multiline",
|
"exports": "always-multiline",
|
||||||
"functions": "never"
|
"functions": "never"
|
||||||
}],
|
}],
|
||||||
|
"no-return-await": "off",
|
||||||
|
"no-constant-condition": "off",
|
||||||
"no-empty": ["error", { "allowEmptyCatch": true }],
|
"no-empty": ["error", { "allowEmptyCatch": true }],
|
||||||
"no-underscore-dangle": "off",
|
"no-underscore-dangle": "off",
|
||||||
"no-console": "off",
|
"no-console": "off",
|
||||||
@@ -41,6 +43,7 @@
|
|||||||
}],
|
}],
|
||||||
"no-else-return": [ "error", { "allowElseIf": true } ],
|
"no-else-return": [ "error", { "allowElseIf": true } ],
|
||||||
"operator-linebreak": [ "error", "after" ],
|
"operator-linebreak": [ "error", "after" ],
|
||||||
|
"arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }],
|
||||||
|
|
||||||
// ES6
|
// ES6
|
||||||
"prefer-rest-params": "off",
|
"prefer-rest-params": "off",
|
||||||
|
|||||||
2
.github/ISSUE_TEMPLATE.md
vendored
2
.github/ISSUE_TEMPLATE.md
vendored
@@ -10,6 +10,8 @@
|
|||||||
- **NodeBB version:**
|
- **NodeBB version:**
|
||||||
- **NodeBB git hash:**
|
- **NodeBB git hash:**
|
||||||
<!-- (to find your git hash, execute `git rev-parse HEAD` from the main NodeBB directory) -->
|
<!-- (to find your git hash, execute `git rev-parse HEAD` from the main NodeBB directory) -->
|
||||||
|
- **Installed NodeBB Plugins:**
|
||||||
|
<!-- (to find installed plugins run ./nodebb plugins) -->
|
||||||
- **Database type:** mongo, redis, or postgres
|
- **Database type:** mongo, redis, or postgres
|
||||||
- **Database version:**
|
- **Database version:**
|
||||||
<!-- `mongod --version`, `redis-server --version`, or `postgres --version` -->
|
<!-- `mongod --version`, `redis-server --version`, or `postgres --version` -->
|
||||||
|
|||||||
25
.travis.yml
25
.travis.yml
@@ -4,6 +4,11 @@ services:
|
|||||||
- postgresql
|
- postgresql
|
||||||
before_install:
|
before_install:
|
||||||
- cp install/package.json package.json
|
- cp install/package.json package.json
|
||||||
|
- sudo apt-get update
|
||||||
|
- sudo apt-get --yes remove postgresql\*
|
||||||
|
- sudo apt-get install -y postgresql-12 postgresql-client-12
|
||||||
|
- sudo cp /etc/postgresql/{9.6,12}/main/pg_hba.conf
|
||||||
|
- sudo service postgresql restart 12
|
||||||
before_script:
|
before_script:
|
||||||
- sleep 15 # wait for mongodb to be ready
|
- sleep 15 # wait for mongodb to be ready
|
||||||
- "mongo mydb_test --eval 'db.createUser({user:\"travis\", pwd: \"test\", roles: []});'"
|
- "mongo mydb_test --eval 'db.createUser({user:\"travis\", pwd: \"test\", roles: []});'"
|
||||||
@@ -14,24 +19,28 @@ after_success:
|
|||||||
- "npm run coveralls"
|
- "npm run coveralls"
|
||||||
language: node_js
|
language: node_js
|
||||||
sudo: false
|
sudo: false
|
||||||
dist: trusty
|
dist: xenial
|
||||||
env:
|
env:
|
||||||
- CXX=g++-4.8 DB=mongodb TEST_ENV=production
|
global:
|
||||||
- CXX=g++-4.8 DB=mongodb TEST_ENV=development
|
- PGUSER=postgres
|
||||||
- CXX=g++-4.8 DB=redis TEST_ENV=production
|
- PGPORT=5432
|
||||||
- CXX=g++-4.8 DB=postgres TEST_ENV=production
|
- CXX=g++-4.8
|
||||||
|
jobs:
|
||||||
|
- "DB=mongodb TEST_ENV=production"
|
||||||
|
- "DB=mongodb TEST_ENV=development"
|
||||||
|
- "DB=redis TEST_ENV=production"
|
||||||
|
- "DB=postgres TEST_ENV=production"
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
- ubuntu-toolchain-r-test
|
- ubuntu-toolchain-r-test
|
||||||
- mongodb-3.4-trusty
|
- mongodb-4.0-xenial
|
||||||
packages:
|
packages:
|
||||||
- g++-4.8
|
- g++-4.8
|
||||||
- mongodb-org-server
|
- mongodb-org-server
|
||||||
postgresql: "9.5"
|
|
||||||
node_js:
|
node_js:
|
||||||
|
- "12"
|
||||||
- "10"
|
- "10"
|
||||||
- "8"
|
|
||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|||||||
50
.tx/config
50
.tx/config
@@ -2650,6 +2650,56 @@ trans.zh_CN = public/language/zh-CN/admin/manage/users.json
|
|||||||
trans.zh_TW = public/language/zh-TW/admin/manage/users.json
|
trans.zh_TW = public/language/zh-TW/admin/manage/users.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
|
[nodebb.admin-manage-digest]
|
||||||
|
file_filter = public/language/<lang>/admin/manage/digest.json
|
||||||
|
source_file = public/language/en-GB/admin/manage/digest.json
|
||||||
|
source_lang = en_GB
|
||||||
|
trans.ar = public/language/ar/admin/manage/digest.json
|
||||||
|
trans.bg = public/language/bg/admin/manage/digest.json
|
||||||
|
trans.bn = public/language/bn/admin/manage/digest.json
|
||||||
|
trans.cs = public/language/cs/admin/manage/digest.json
|
||||||
|
trans.da = public/language/da/admin/manage/digest.json
|
||||||
|
trans.de = public/language/de/admin/manage/digest.json
|
||||||
|
trans.el = public/language/el/admin/manage/digest.json
|
||||||
|
trans.en@pirate = public/language/en-x-pirate/admin/manage/digest.json
|
||||||
|
trans.en_US = public/language/en-US/admin/manage/digest.json
|
||||||
|
trans.es = public/language/es/admin/manage/digest.json
|
||||||
|
trans.et = public/language/et/admin/manage/digest.json
|
||||||
|
trans.fa_IR = public/language/fa-IR/admin/manage/digest.json
|
||||||
|
trans.fi = public/language/fi/admin/manage/digest.json
|
||||||
|
trans.fr = public/language/fr/admin/manage/digest.json
|
||||||
|
trans.gl = public/language/gl/admin/manage/digest.json
|
||||||
|
trans.he = public/language/he/admin/manage/digest.json
|
||||||
|
trans.hr = public/language/hr/admin/manage/digest.json
|
||||||
|
trans.hu = public/language/hu/admin/manage/digest.json
|
||||||
|
trans.id = public/language/id/admin/manage/digest.json
|
||||||
|
trans.it = public/language/it/admin/manage/digest.json
|
||||||
|
trans.ja = public/language/ja/admin/manage/digest.json
|
||||||
|
trans.ko = public/language/ko/admin/manage/digest.json
|
||||||
|
trans.lt = public/language/lt/admin/manage/digest.json
|
||||||
|
trans.lv = public/language/lv/admin/manage/digest.json
|
||||||
|
trans.ms = public/language/ms/admin/manage/digest.json
|
||||||
|
trans.nb = public/language/nb/admin/manage/digest.json
|
||||||
|
trans.nl = public/language/nl/admin/manage/digest.json
|
||||||
|
trans.pl = public/language/pl/admin/manage/digest.json
|
||||||
|
trans.pt_BR = public/language/pt-BR/admin/manage/digest.json
|
||||||
|
trans.pt_PT = public/language/pt-PT/admin/manage/digest.json
|
||||||
|
trans.ro = public/language/ro/admin/manage/digest.json
|
||||||
|
trans.ru = public/language/ru/admin/manage/digest.json
|
||||||
|
trans.rw = public/language/rw/admin/manage/digest.json
|
||||||
|
trans.sc = public/language/sc/admin/manage/digest.json
|
||||||
|
trans.sk = public/language/sk/admin/manage/digest.json
|
||||||
|
trans.sl = public/language/sl/admin/manage/digest.json
|
||||||
|
trans.sr = public/language/sr/admin/manage/digest.json
|
||||||
|
trans.sv = public/language/sv/admin/manage/digest.json
|
||||||
|
trans.th = public/language/th/admin/manage/digest.json
|
||||||
|
trans.tr = public/language/tr/admin/manage/digest.json
|
||||||
|
trans.uk = public/language/uk/admin/manage/digest.json
|
||||||
|
trans.vi = public/language/vi/admin/manage/digest.json
|
||||||
|
trans.zh_CN = public/language/zh-CN/admin/manage/digest.json
|
||||||
|
trans.zh_TW = public/language/zh-TW/admin/manage/digest.json
|
||||||
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.admin-settings-advanced]
|
[nodebb.admin-settings-advanced]
|
||||||
file_filter = public/language/<lang>/admin/settings/advanced.json
|
file_filter = public/language/<lang>/admin/settings/advanced.json
|
||||||
source_file = public/language/en-GB/admin/settings/advanced.json
|
source_file = public/language/en-GB/admin/settings/advanced.json
|
||||||
|
|||||||
952
CHANGELOG.md
952
CHANGELOG.md
@@ -1,3 +1,955 @@
|
|||||||
|
### 1.13.0 (2019-11-13)
|
||||||
|
|
||||||
|
##### Chores
|
||||||
|
|
||||||
|
* incrementing version number - v1.13.0 (c38b2d23)
|
||||||
|
* incrementing version number - v1.12.2 (810e2c0b)
|
||||||
|
* **deps:**
|
||||||
|
* update dependency jsdom to v15.2.1 (9d946d1c)
|
||||||
|
* update dependency eslint to v6.6.0 (d0e428e9)
|
||||||
|
* update dependency lint-staged to v9.4.2 (#7954) (d108c7d0)
|
||||||
|
* update dependency mocha to v6.2.2 (#7984) (e31a47cd)
|
||||||
|
* update dependency coveralls to v3.0.7 (#7961) (9b308e4b)
|
||||||
|
* update dependency jsdom to v15.2.0 (#7971) (9b4e9882)
|
||||||
|
* update dependency husky to v3.0.9 (fd5095a3)
|
||||||
|
* update dependency husky to v3.0.8 (88cae415)
|
||||||
|
* update dependency lint-staged to v9.4.1 (a2a7bb3d)
|
||||||
|
* update node.js to v8.16.1 (f9ad826b)
|
||||||
|
* update node:8.16.0 docker digest to bb12612 (48cc317c)
|
||||||
|
* update dependency eslint to v6.5.1 (da12e947)
|
||||||
|
* update dependency husky to v3.0.7 (10a30e66)
|
||||||
|
* update commitlint monorepo to v8.2.0 (ddd4e039)
|
||||||
|
* update dependency mocha to v6.2.1 (b172d106)
|
||||||
|
* update dependency lint-staged to v9.2.3 (ccccba81)
|
||||||
|
* update dependency coveralls to v3.0.6 (#7820) (2b1f840e)
|
||||||
|
* update dependency husky to v3.0.3 (cbede89a)
|
||||||
|
* update dependency lint-staged to v9 (f2e4664d)
|
||||||
|
* update dependency eslint-plugin-import to v2.18.2 (#7779) (57b2a553)
|
||||||
|
* update dependency eslint to v6.1.0 (#7783) (7257e6b2)
|
||||||
|
* update dependency husky to v3.0.2 (7ad72b32)
|
||||||
|
* update node:8.16.0 docker digest to c671dc2 (e76214a2)
|
||||||
|
* update dependency mocha to v6.2.0 (d43f5dcf)
|
||||||
|
* update node:8.16.0 docker digest to 310db2a (c46a0772)
|
||||||
|
* update dependency husky to v3.0.1 (28151f86)
|
||||||
|
* update dependency eslint-plugin-import to v2.18.1 (9fda2c1f)
|
||||||
|
* update commitlint monorepo to v8.1.0 (f73468d5)
|
||||||
|
* update dependency coveralls to v3.0.5 (5b746d53)
|
||||||
|
* update dependency husky to v2.7.0 (1d0fd028)
|
||||||
|
* update dependency eslint to v6.0.1 (77347d0a)
|
||||||
|
* update dependency husky to v2.6.0 (fc69e891)
|
||||||
|
* update dependency eslint-plugin-import to v2.18.0 (744e4428)
|
||||||
|
* update dependency husky to v2.5.0 (4960b925)
|
||||||
|
* update dependency lint-staged to v8.2.1 (2fa68e3b)
|
||||||
|
* update node:8.16.0 docker digest to 06adec3 (fc224cca)
|
||||||
|
* update dependency husky to v2.4.1 (17ec8fde)
|
||||||
|
* update node:8.16.0 docker digest to d5ad3f5 (f9e99fa3)
|
||||||
|
* update node:8.16.0 docker digest to 75b524a (5995834b)
|
||||||
|
* update node:8.16.0 docker digest to b9a98ae (fca6d794)
|
||||||
|
* update dependency lint-staged to v8.2.0 (376390c4)
|
||||||
|
* update dependency husky to v2.4.0 (3d2ec0bb)
|
||||||
|
* update dependency coveralls to v3.0.4 (c360e0c2)
|
||||||
|
* update dependency eslint-plugin-import to v2.17.3 (eac4e2f1)
|
||||||
|
* update node:8.16.0 docker digest to 957cab2 (cc6fa97c)
|
||||||
|
* update commitlint monorepo to v8 (80532831)
|
||||||
|
|
||||||
|
##### Documentation Changes
|
||||||
|
|
||||||
|
* updated changelog (183b0ed3)
|
||||||
|
|
||||||
|
##### New Features
|
||||||
|
|
||||||
|
* displaying one-click unsubscribe link in email footer (#8024) (df139928)
|
||||||
|
* #7467, pass query params when redirecting to posts (480a64aa)
|
||||||
|
* use helpers.setupAdminPageRoute (b5a30006)
|
||||||
|
* wip, better digest handling (+ eventual digest resend logic) (#7995) (645d6472)
|
||||||
|
* add action:messaging.save (ac5c560c)
|
||||||
|
* #7957, allow post queue based on group (1cedc4a0)
|
||||||
|
* add filter:topics.unreadCutoff (e020b85b)
|
||||||
|
* Add filter:topic.delete and filter:topic.restore (#7946) (#7989) (989107d9)
|
||||||
|
* no more session cookie for guests (#7982) (cf7e0cfd)
|
||||||
|
* Implement WICG change-password-url (#7072) (#7990) (df1efe5f)
|
||||||
|
* log errors from mubsub (b01a47cb)
|
||||||
|
* upgrade to sitemap5 (#7980) (d6792188)
|
||||||
|
* #7964, change all categories at once (485fbd2f)
|
||||||
|
* closes #7952, translate widget-settings (990508a5)
|
||||||
|
* remove ability to delete events from acp (554e6711)
|
||||||
|
* resetting theme will reset skin (03827fa6)
|
||||||
|
* disable timeout on launch route (4bc77d06)
|
||||||
|
* add new hook to get custom category tids for unread (b1926054)
|
||||||
|
* adding filter:login.check and loginFormEntry[] for the filter:login.build hook (#7861) (94810fd6)
|
||||||
|
* #7932, redirect to group details after creation (2444ed5c)
|
||||||
|
* add new hook filteR:topics.getSortedTids (b93c826d)
|
||||||
|
* bypass cropper for gifs (9a756004)
|
||||||
|
* deprecate file.isFileTypeAllowed (ffe3670f)
|
||||||
|
* send notification to group owners when someone leaves (ed122364)
|
||||||
|
* add failing test for pagination (#7924) (22b02f14)
|
||||||
|
* refactor getSortedSetRange to allow big arrays (b602c044)
|
||||||
|
* add new test (1e5246f9)
|
||||||
|
* add rss feed url for tags (bbc2e956)
|
||||||
|
* add sm2x avatar class #7813 (35a4ca2f)
|
||||||
|
* #7090, abililty to hide widgets (71cd602d)
|
||||||
|
* #7760, body-parser config (5de6d885)
|
||||||
|
* actually cache duh (f05c1dae)
|
||||||
|
* cache tags:topic:count (63bd252f)
|
||||||
|
* increase search timeouts (1789ecb4)
|
||||||
|
* make handleSearch public (ebe5ed22)
|
||||||
|
* increase size of local cache (b81405a8)
|
||||||
|
* don't hardcode numberic fields in user search (09410ff1)
|
||||||
|
* allow only watching core (451c7fd4)
|
||||||
|
* client-side taskbar.update method, deprecates .updateTitle() (9b09ee0e)
|
||||||
|
* option to restrict group leaving, closes #7770 (1796b65d)
|
||||||
|
* preserver querystring when changing category sort (ad96b0e0)
|
||||||
|
* html sanitization on all filter:parse.* hooks, closes #7872 (2580306d)
|
||||||
|
* up socket.io-adapter-mongo (3d2cb628)
|
||||||
|
* update LESS to v3.x, #7855 (#7867) (aea04de0)
|
||||||
|
* up psql socket.io adapter (b565e568)
|
||||||
|
* add client side hook for quick search&normal search (f31d30cd)
|
||||||
|
* allow floating pinned topics to top in getSortedTopics (1d7e0c63)
|
||||||
|
* promisify recent.getData (6f7ab586)
|
||||||
|
* faster initial stat loading (89cd31ed)
|
||||||
|
* cache stats, mongo count sucks (cb50b3f4)
|
||||||
|
* dashboard stats (3ff6e1bb)
|
||||||
|
* add filter:search.getPosts (aeb44faf)
|
||||||
|
* add image and imageClass to post summaries (80bd52fc)
|
||||||
|
* #7842, make isInvited, isPending work with uids (fa268556)
|
||||||
|
* convert search controller to async/await (acf12e3d)
|
||||||
|
* notification on membership acceptance, closes #7835 (1a2a381a)
|
||||||
|
* additional events logged for various group actions (1ce33faa)
|
||||||
|
* async (e6353486)
|
||||||
|
* async/await controllers/admin/dashboard (32ea04a8)
|
||||||
|
* async/await admin/controllers (72590b34)
|
||||||
|
* async/await (7beef91c)
|
||||||
|
* async/await refactor (3cc7ec63)
|
||||||
|
* async/await controllers/accounts (a3541d88)
|
||||||
|
* rewrite getRawPost to async/await (b734defb)
|
||||||
|
* added new filter hook filter:post.getRawPost (973075cf)
|
||||||
|
* convert categories controller to async/await (e9fd49e2)
|
||||||
|
* new client-side hooks for chat minimize and close (3d3fa865)
|
||||||
|
* test psql without defineProperty (#7815) (af1f7249)
|
||||||
|
* fire updateRemainingLength hook for chats (af968c6a)
|
||||||
|
* send pids into filter:post.getFields hook (0e07ffa1)
|
||||||
|
* move cache tpl (65fc0612)
|
||||||
|
* async refactor (3a9d83a4)
|
||||||
|
* move group privs above user, add labels (47e30a67)
|
||||||
|
* widgets/index.js (dec8040c)
|
||||||
|
* use promise version (4d6b6871)
|
||||||
|
* #7743, meta/dependencies (1c2540d3)
|
||||||
|
* #7743, widgets/admin (96ebe7b5)
|
||||||
|
* #7743, meta/languages and languages (c02686bf)
|
||||||
|
* added filter:tags.getAll plugin hook (66aa443b)
|
||||||
|
* #7743, events (102d4b02)
|
||||||
|
* #7743 meta/errors (97d7a850)
|
||||||
|
* get rid of async.eachSeries (99cf47ee)
|
||||||
|
* #7743 meta/tags.js (7b908639)
|
||||||
|
* #7743 meta/templates.js (79eed9ae)
|
||||||
|
* #7743 navigation (764a2b12)
|
||||||
|
* #7743 account/posts controller (e72f3e4f)
|
||||||
|
* #7743 finish topics controller (9b3f4b98)
|
||||||
|
* #7743, webserver (0d047f4e)
|
||||||
|
* #7743 meta/themes.js (7dc0eaf0)
|
||||||
|
* #7743, meta/sounds (a15c50bf)
|
||||||
|
* #7743 , meta/cachebuster, meta/configs (7f72181e)
|
||||||
|
* convert src/messaging/* to async/await (#7778) (756a717e)
|
||||||
|
* #7743 meta/blacklist (fcf8fd51)
|
||||||
|
* #7743 meta/index (69860e58)
|
||||||
|
* #7743 plugins (c126cd85)
|
||||||
|
* #7743 plugins/data (f5f5f76b)
|
||||||
|
* dont waste whitespace (17f843f9)
|
||||||
|
* switch to promise.all (34d85b52)
|
||||||
|
* #7743, privileges (faccb191)
|
||||||
|
* #7743 , search.js (6d3a92b8)
|
||||||
|
* shorter name (8e75646a)
|
||||||
|
* cache group:members for priv groups (daed76d5)
|
||||||
|
* #7743 finish groups (72def7df)
|
||||||
|
* #7743, groups/index, invite, leave,membership (a39ca51e)
|
||||||
|
* #7743,groups/index,join (d5342a40)
|
||||||
|
* #7743, groups/delete,ownership,posts,user (fcd4445a)
|
||||||
|
* #7743 groups/cover,create,data (5e8614e1)
|
||||||
|
* #7743, finish post module (c0c6c652)
|
||||||
|
* #7743 posts/diff, posts/edit (c4bb467e)
|
||||||
|
* #7743, posts module (1b2b308a)
|
||||||
|
* #7743, finish user module (a51ec591)
|
||||||
|
* #7743 (6fea46b6)
|
||||||
|
* #7743 (cd80c263)
|
||||||
|
* #7743 (0a690c57)
|
||||||
|
* #7743 (1c5fad6d)
|
||||||
|
* #7743 (fe4c0481)
|
||||||
|
* #7743 categories (fcf3e077)
|
||||||
|
* #7743, user/digest, user/email, user/follow (c610eb14)
|
||||||
|
* #7743, user/create, user/data, user/delete (d6e36c31)
|
||||||
|
* #7743 , user/block, user/categories (4541caa4)
|
||||||
|
* #7743 notifications (6f738c2b)
|
||||||
|
* remove unused code, add 2 tests (cd2e68cb)
|
||||||
|
* #7743 user/ban, up mubsub (1970214a)
|
||||||
|
* #7743, user/approval, user/auth (b24ce976)
|
||||||
|
* #7743, posts/votes (8ef75be3)
|
||||||
|
* #7743 posts (e1ecc36d)
|
||||||
|
* #7743 user/admin.js (2c335955)
|
||||||
|
* add utils.promiseParallel (4170abfd)
|
||||||
|
* #7743, posts/user.js (0a6cfb37)
|
||||||
|
* added new admin option newbiePostEditDuration (#7737) (8a6a58ee)
|
||||||
|
* returning category data in tags page (75ff4d7d)
|
||||||
|
* ACP analytics API route (#7725) (a0c0ef1b)
|
||||||
|
* closes #7718 (ee4d78ca)
|
||||||
|
* add status to post summaries (41bc6ca2)
|
||||||
|
* use arrow functions (3100d803)
|
||||||
|
* ability to sort watched topics, closes #3735 (f24c14d7)
|
||||||
|
* use fewer system resources to draw the progress bar (d0ee312c)
|
||||||
|
* removed series from upgrade script (23fb904f)
|
||||||
|
* remove duped zadds, these are already in topics.onNewPostMade (cb51c239)
|
||||||
|
* log data on error (f8a7cf73)
|
||||||
|
* cleanup, use bulk (198d0587)
|
||||||
|
* #7707, added sortedSetAddBulk (3ecd703e)
|
||||||
|
* change widget-* to data-widget-* (#7703) (13efbc99)
|
||||||
|
* shorter setsCard (3780a58f)
|
||||||
|
* show best & latest posts on profile (b53a60c2)
|
||||||
|
* use db.sortedSetsAdd (7e54d7aa)
|
||||||
|
* use db.sortedSetsAdd (29a124c4)
|
||||||
|
* dont log action:plugins.fireHook (a7600b4b)
|
||||||
|
* upgrade to connect-mongo 3.0.0, closes #7693 (ebfc369a)
|
||||||
|
* add hook for user notifications, closes #7672 (ede060a6)
|
||||||
|
* user/notifications refactor (580f7860)
|
||||||
|
* send new post/topic event in batches (8c331088)
|
||||||
|
* allowing count to be passed to ./nodebb events (f6d3cc0e)
|
||||||
|
* awaitable websockets (#7645) (aee47b29)
|
||||||
|
* hooks can now return promise or call callbacks (a6436716)
|
||||||
|
* fallback strings for ACP events (99120676)
|
||||||
|
* design revamp of ACP events page (#7664) (c7f95cce)
|
||||||
|
* optimize group rename (48538b28)
|
||||||
|
* allow multiple scores in sortedSetsAdd (31ccc860)
|
||||||
|
* optimize copy privileges (0dca13e9)
|
||||||
|
* on category search reveal children and parents (0721bee1)
|
||||||
|
* async3 upgrade (#7639) (4d9bc30d)
|
||||||
|
* #7627, close chat on ajaxify on mobile (6cebc7f0)
|
||||||
|
* update meta tags on ajaxify (#7580), fixes #7544 (a41769e6)
|
||||||
|
|
||||||
|
##### Bug Fixes
|
||||||
|
|
||||||
|
* **deps:**
|
||||||
|
* update dependency mongodb to v3.3.4 (#8032) (2093418d)
|
||||||
|
* update dependency nodebb-theme-vanilla to v11.1.10 (c01699f7)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.27 (182397b1)
|
||||||
|
* update dependency nodebb-plugin-spam-be-gone to v0.6.7 (#8027) (c2565a2f)
|
||||||
|
* update dependency nodebb-theme-slick to v1.2.27 (#8020) (7122bdc7)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.26 (#8019) (73d9752e)
|
||||||
|
* update dependency connect-mongo to v3.1.2 (#8013) (bfea9d39)
|
||||||
|
* update dependency postcss to v7.0.21 (#7998) (ef5f6714)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.17 (#8009) (e1e2d20c)
|
||||||
|
* update dependency sharp to v0.23.2 (#8005) (420f9fe4)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.25 (#8012) (cb91e756)
|
||||||
|
* update dependency connect-mongo to v3.1.1 (#8006) (7655265c)
|
||||||
|
* update dependency connect-mongo to v3.1.0 (#7994) (401d1eed)
|
||||||
|
* bump persona (6155c460)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.23 (#7986) (9bd6f686)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.22 (#7965) (bf6ae6d6)
|
||||||
|
* update dependency nodebb-rewards-essentials to v0.1.2 (#7962) (692d94bf)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.21 (#7956) (1a150d8f)
|
||||||
|
* update dependency nodebb-plugin-spam-be-gone to v0.6.6 (#7944) (cffbb325)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.20 (#7943) (9589fa32)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.19 (#7942) (0d629f06)
|
||||||
|
* update dependency connect-redis to v4.0.3 (#7933) (2856333d)
|
||||||
|
* update dependency spider-detector to v2 (310039e8)
|
||||||
|
* update socket.io packages to v2.3.0 (764ed7f8)
|
||||||
|
* update dependency sharp to v0.23.1 (#7928) (17437897)
|
||||||
|
* update dependency nodebb-plugin-dbsearch to v4.0.6 (#7918) (44cd7189)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.16 (#7917) (d8fe6e42)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.15 (#7916) (c5e5e24b)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.14 (#7914) (e18392ab)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.18 (#7906) (8ed80bcb)
|
||||||
|
* update dependency nodebb-rewards-essentials to v0.1.1 (#7905) (5b8bb3e4)
|
||||||
|
* update dependency connect-redis to v4 (#7869) (8b7f6566)
|
||||||
|
* update dependency nodebb-plugin-mentions to v2.7.3 (#7899) (b2423bae)
|
||||||
|
* update dependency nodebb-plugin-mentions to v2.7.2 (#7898) (a3120a62)
|
||||||
|
* update dependency nodebb-plugin-dbsearch to v4.0.5 (#7896) (106c20e2)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.13 (#7895) (fa251ece)
|
||||||
|
* update dependency nodebb-plugin-mentions to v2.7.1 (8c2fc577)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.12 (#7889) (429e124f)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.11 (#7888) (516b62ea)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.10 (6a4a9e26)
|
||||||
|
* update dependency nodebb-plugin-dbsearch to v4.0.4 (#7883) (12ba589d)
|
||||||
|
* update dependency postcss to v7.0.18 (c75f3d27)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.17 (317c6771)
|
||||||
|
* update dependency nodebb-theme-vanilla to v11.1.8 (6e9caddc)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.9 (effe3989)
|
||||||
|
* update dependency nodebb-plugin-mentions to v2.7.0 (b69769bb)
|
||||||
|
* update dependency benchpressjs to v2 (#7876) (9149db1f)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.8 (793c5eaa)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.7 (57de99d2)
|
||||||
|
* update dependency mongodb to v3.3.2 (#7871) (4ee2c090)
|
||||||
|
* update dependency nodebb-plugin-spam-be-gone to v0.6.5 (#7865) (8ce2a5fc)
|
||||||
|
* update dependency mongodb to v3.3.1 (#7862) (0dfce49f)
|
||||||
|
* update dependency connect-pg-simple to v6 [security] (#7864) (e4b5d0b4)
|
||||||
|
* update dependency nodebb-plugin-mentions to v2.6.1 (a1210985)
|
||||||
|
* update dependency nodebb-plugin-mentions to v2.6.0 (cdccc646)
|
||||||
|
* update dependency rimraf to v3 (#7843) (2f02edbc)
|
||||||
|
* update dependency rimraf to v2.7.1 (#7838) (cf2504f8)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.16 (#7848) (ca7ba9be)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.15 (#7845) (b1c0beb7)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.14 (#7837) (661284cf)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.13 (eaea6f63)
|
||||||
|
* update dependency sitemap to v4 (d3d677da)
|
||||||
|
* update dependency commander to v3 (7a5dbd9f)
|
||||||
|
* update dependency mongodb to v3.3.0 (360e172e)
|
||||||
|
* update dependency nodebb-plugin-markdown to v8.10.4 (61f9be99)
|
||||||
|
* update dependency nodebb-plugin-markdown to v8.10.3 (d860f8c7)
|
||||||
|
* update dependency sharp to v0.23.0 (#7806) (2258452c)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.12 (#7799) (b9aac424)
|
||||||
|
* update dependency nodebb-plugin-dbsearch to v4 (#7797) (d98313b5)
|
||||||
|
* update dependency nodebb-plugin-dbsearch to v3.0.8 (#7796) (ef734b62)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.11 (8b1fc5c8)
|
||||||
|
* update dependency nodebb-theme-vanilla to v11.1.7 (ba1bb528)
|
||||||
|
* update dependency nodebb-theme-vanilla to v11.1.6 (#7784) (7a88c4cc)
|
||||||
|
* update dependency nodebb-theme-slick to v1.2.26 (#7782) (e074b0bf)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.10 (#7781) (4f20b4d3)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.6 (3fdc638b)
|
||||||
|
* update dependency connect-redis to v3.4.2 (8a11193f)
|
||||||
|
* update dependency nodebb-plugin-mentions to v2.5.4 (45223cde)
|
||||||
|
* update dependency nodebb-plugin-markdown to v8.10.2 (86546232)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.9 (#7759) (c1660a1a)
|
||||||
|
* update dependency nodebb-plugin-dbsearch to v3.0.7 (#7758) (efedd621)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.5 (7f4b1043)
|
||||||
|
* update dependency nodebb-theme-vanilla to v11.1.5 (#7756) (15e01d12)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.8 (#7755) (19679608)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.7 (#7754) (3cb6cfe8)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.3.3 (8394a0fd)
|
||||||
|
* update dependency nodebb-theme-vanilla to v11.1.4 (#7741) (43ce5f8a)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.5 (27da2325)
|
||||||
|
* update dependency validator to v11.1.0 (#7738) (bd09ba92)
|
||||||
|
* bump composer-default (851424a7)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.4 (f426e105)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.16 (#7723) (fb087029)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.3 (413259a2)
|
||||||
|
* update dependency nodebb-theme-lavender to v5.0.11 (#7705) (208c821e)
|
||||||
|
* update dependency nodebb-theme-vanilla to v11.1.3 (#7714) (e0b2ae8d)
|
||||||
|
* update dependency nodebb-theme-slick to v1.2.25 (#7713) (af7ecd2f)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.2 (#7712) (e5733f40)
|
||||||
|
* update dependency nodebb-plugin-mentions to v2.5.3 (26ff02dc)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.1 (4e513cf3)
|
||||||
|
* update dependency nodebb-theme-vanilla to v11.1.2 (c2887505)
|
||||||
|
* update dependency nodebb-theme-vanilla to v11.1.1 (#7700) (b3ed89f5)
|
||||||
|
* update dependency nodebb-theme-slick to v1.2.24 (#7699) (629b5ce3)
|
||||||
|
* update to eslint@6 (289dada5)
|
||||||
|
* update dependency nodebb-plugin-emoji to v3 (15020b46)
|
||||||
|
* update dependency nodebb-plugin-emoji to v3 (6b43d26f)
|
||||||
|
* update dependency nodebb-theme-persona to v10.1.0 (fc89516e)
|
||||||
|
* update dependency nodebb-theme-vanilla to v11.1.0 (c9689f11)
|
||||||
|
* update dependency nodebb-theme-persona to v10.0.1 (#7687) (ada8f22e)
|
||||||
|
* update dependency nodebb-theme-vanilla to v11.0.1 (#7688) (6db3604e)
|
||||||
|
* update dependency nodebb-theme-vanilla to v11 (89fea9d3)
|
||||||
|
* update dependency nodebb-theme-persona to v10 (0a7778bd)
|
||||||
|
* update dependency nodebb-theme-lavender to v5.0.10 (#7682) (e1e4abeb)
|
||||||
|
* update dependency nodebb-plugin-markdown to v8.10.0 (de046297)
|
||||||
|
* update dependency postcss to v7.0.17 (ae891390)
|
||||||
|
* update dependency nodebb-rewards-essentials to v0.0.14 (#7671) (3f4f8afa)
|
||||||
|
* update dependency mongodb to v3.2.7 (#7665) (988cbb63)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.15 (e21246a9)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.38 (#7652) (d202be5b)
|
||||||
|
* update dependency nodebb-theme-vanilla to v10.1.34 (#7653) (e3308659)
|
||||||
|
* update dependency nodebb-theme-vanilla to v10.1.33 (#7651) (6f70397b)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.37 (#7650) (d43bdb41)
|
||||||
|
* update dependency async to v3.0.1 (#7649) (3b8e6e15)
|
||||||
|
* update dependency mongodb to v3.2.6 (#7616) (3f21096d)
|
||||||
|
* update dependency validator to v11 (a3d42404)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.14 (#7635) (b174c2d2)
|
||||||
|
* update dependency nodebb-theme-vanilla to v10.1.32 (#7631) (85ca5b19)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.13 (d1f29e26)
|
||||||
|
* update dependency nodebb-plugin-spam-be-gone to v0.6.3 (#7614) (20fa751c)
|
||||||
|
* crash if post doesn't have topic data (eabc6f47)
|
||||||
|
* don't touch objects that don't have the required fields (e52ecfaf)
|
||||||
|
* add missing await to sendValidationEmail (f4381ba3)
|
||||||
|
* #8007 added tfoot to clear new group button (dee1d447)
|
||||||
|
* tests (e3c9dafa)
|
||||||
|
* #8018, allow absolute urls in notification.path (0037a038)
|
||||||
|
* #8010, fix isBanned call (59242d31)
|
||||||
|
* #8003, check children recursively (c4e58160)
|
||||||
|
* dont show delete topics on unread (b91c4790)
|
||||||
|
* #8000, tweak wording; password reset success (3952849f)
|
||||||
|
* parseInt cutoff (0e5e47f4)
|
||||||
|
* lint (4b8897d9)
|
||||||
|
* convert param to string in slugify (441dd86d)
|
||||||
|
* cli/reset.js (#7979) (f9f85fc4)
|
||||||
|
* #7977, fix undefined url (#7978) (95a372df)
|
||||||
|
* passwords always expiring upon login (ddf3812c)
|
||||||
|
* #7974 (#7976) (ca3be1f3)
|
||||||
|
* delete follower/followingCount as well (d72b0d16)
|
||||||
|
* event tests (0da4f7ee)
|
||||||
|
* #7958, give rewards one by one (3775301f)
|
||||||
|
* rewards page acp not loading rewards (88818a5b)
|
||||||
|
* #7929, use fixed bootswatch (dd202931)
|
||||||
|
* #7960, dont try to save size for non images (f272daaf)
|
||||||
|
* #7941, validate some input fields (565f9726)
|
||||||
|
* don't show deleted topics on unread (661a0f50)
|
||||||
|
* #7951, don't send notification for system messages (c01b0fbd)
|
||||||
|
* #7953, allow icon only group badges (5b458fc7)
|
||||||
|
* remove 0 fields (ac4a5004)
|
||||||
|
* remove unused data from post/topic/user hashes (75bcb0f4)
|
||||||
|
* groups not visible on widget panes (205d3f9d)
|
||||||
|
* new nav items will show group select (c5f7b66c)
|
||||||
|
* move post and change owner (f402d727)
|
||||||
|
* 404 on new groups with spaces (b19f0a68)
|
||||||
|
* #7940, run upgrade scripts on startup (7823144b)
|
||||||
|
* #7949, delete old user notifs (38322ec3)
|
||||||
|
* tests (6fb29e84)
|
||||||
|
* check threshold before setting bookmark (f983f536)
|
||||||
|
* mongo collection stats (4e28e575)
|
||||||
|
* #7947, disable unused cookie (91e8e390)
|
||||||
|
* #7945, show watched categories in ignored categories (c9bf6d0f)
|
||||||
|
* db.init calls (18bf865d)
|
||||||
|
* #7938, escape username in registration queue (d5dda26f)
|
||||||
|
* #7901, handle group names that are translation keys (3455c27a)
|
||||||
|
* fix the order of groups on user profile (41f8da2e)
|
||||||
|
* #7935, ACP digest wording (54c9f877)
|
||||||
|
* #7934, return tids (10f168b8)
|
||||||
|
* tests (3caa387a)
|
||||||
|
* tests (9c051386)
|
||||||
|
* remove jquery (95ab0712)
|
||||||
|
* picture not showing up in change modal (13c87059)
|
||||||
|
* profile page meta tags getting escaped twice (7effc892)
|
||||||
|
* missing await (2150701f)
|
||||||
|
* potential for XSS here (40f131a6)
|
||||||
|
* account/categories (7a0f6074)
|
||||||
|
* redis tests (1f054c7e)
|
||||||
|
* #7921, dont create wrong entries in db for flag (a651d154)
|
||||||
|
* #7913, dont allow urls in fullname/location, validate birthday (babb9d7c)
|
||||||
|
* upgrade scripts (bd026cb1)
|
||||||
|
* only allow png/jpg/bmp in cover/profile images (96ab8d05)
|
||||||
|
* #7919, add useUnifiedTopology (910b9b88)
|
||||||
|
* crash in feed (873ec519)
|
||||||
|
* lang key (795d4183)
|
||||||
|
* time cutoff and lang string (5b8550f0)
|
||||||
|
* returned data (87f6ac59)
|
||||||
|
* dont send all category data back to recent&unread etc (955e00fd)
|
||||||
|
* #7912 (ecf39727)
|
||||||
|
* only return necessary data for categories (307abaa8)
|
||||||
|
* dont crash if callback is undefined (e0fec866)
|
||||||
|
* #7800, dont crash on resize (781b3f1a)
|
||||||
|
* change params (de461968)
|
||||||
|
* remove dupe code (9b151b23)
|
||||||
|
* #7894, translate log in to view (2a5fe2b8)
|
||||||
|
* minor typo (b99279a8)
|
||||||
|
* #7893, check private upload setting (0843497d)
|
||||||
|
* #7892, handle string 'true'/'false' (77cb4b55)
|
||||||
|
* dont show deleted topics in digest (4652c68b)
|
||||||
|
* #7824, update timeago settings on userlanguage change (3887fc67)
|
||||||
|
* don't move theme/plugin to top if its already active (acd95764)
|
||||||
|
* #7853, dissociation on post purge (30a86ed5)
|
||||||
|
* added comment back (0c4cd840)
|
||||||
|
* inability for plugins to actually alter parser sanitization config (fe452762)
|
||||||
|
* htmlentity instead of url encoding for room rename system message (9b8ac89e)
|
||||||
|
* page count for filters (e291a609)
|
||||||
|
* #7866, show correct title based on digest interval (547bb496)
|
||||||
|
* #7780 (21e81f96)
|
||||||
|
* pinned tids showing on page > 1 (f2912e9f)
|
||||||
|
* #7860, allow running single upgrade scripts from plugins (a4dec7e3)
|
||||||
|
* reset should not automatically build assets (a67762bc)
|
||||||
|
* update morgan and lodash (2b1912a9)
|
||||||
|
* #7842, groups.invite works with an array of uids (1e0190ab)
|
||||||
|
* #7844, add uid to events, log plugin install/uninstall events (592d9c82)
|
||||||
|
* removed console.logs (c44bf48c)
|
||||||
|
* broken tests from 71b205a889da1ee8dd326b0891d122a522084f54 (f736f0b3)
|
||||||
|
* typo (c6c13725)
|
||||||
|
* category description getting translated in ACP (647713f3)
|
||||||
|
* #7791 (71620519)
|
||||||
|
* #7831, fix pagination (014e3153)
|
||||||
|
* remove empty line (292bbe34)
|
||||||
|
* remove useless catchs and empty line (5fce4558)
|
||||||
|
* #7823, fix topic move readding pids when topic is deleted (fd5f9822)
|
||||||
|
* #7826, fix order of categories on recent dropdown (3ecac97d)
|
||||||
|
* redis pubsub not being required correctly (8d4f2086)
|
||||||
|
* mongo.close using wrong client (186321e6)
|
||||||
|
* digest not sending topics (bc6f22eb)
|
||||||
|
* #7816, adding GDPR and TOU interstitials earlier on route reloading (52a2e5d6)
|
||||||
|
* #7809, dont check postDelay if submitting from queue (9780f5b9)
|
||||||
|
* newPostEditDuration (2abe244b)
|
||||||
|
* #7789 (6a289fba)
|
||||||
|
* #7798, fix nested post selection (666e0eaf)
|
||||||
|
* #7788, fix on topic move and new post (8bf40d04)
|
||||||
|
* #7788, fix another edge case (053ff510)
|
||||||
|
* topicData passed to action:topic.edit (b10ad7b6)
|
||||||
|
* derpy catch (ce912886)
|
||||||
|
* #7788 No new posts (#7793) (3c32d860)
|
||||||
|
* user urls in subfolder install (6a486e35)
|
||||||
|
* #7765 (0b498acd)
|
||||||
|
* tests (87552c55)
|
||||||
|
* revert requires (3dd806dc)
|
||||||
|
* #7763, parse about me on all profile pages (f8d34101)
|
||||||
|
* status and groupTitle, if its not set (e2e33dfb)
|
||||||
|
* don't return promise (2f0a331f)
|
||||||
|
* socket.io methods calling callbacks twice if method returns promise (44a33520)
|
||||||
|
* tests (87b1148f)
|
||||||
|
* tests (930ffd07)
|
||||||
|
* #7601 removed check for another user when sending messages (0e8ee31b)
|
||||||
|
* mongodb tests (3b24de4c)
|
||||||
|
* getTopicsFromSet (13aaf07b)
|
||||||
|
* #7762, allow array for isBanned (9eb1fcd4)
|
||||||
|
* add flag for change post owner (46639be3)
|
||||||
|
* sitemap ajaxify (9f78bd7a)
|
||||||
|
* #7751, make necro separator a partial (2b70e86f)
|
||||||
|
* #7748, if reputation system is disabled, dont check min reputation (7b95ebbb)
|
||||||
|
* remove left over code, use proper names (0ac49d63)
|
||||||
|
* compatibility conditional (fba67196)
|
||||||
|
* private upload img replacement should happen before img wrapping (16aae517)
|
||||||
|
* #7423 private uploads are linked to login page, for guests (49e3a368)
|
||||||
|
* typo (f3440ebf)
|
||||||
|
* #7722, hsts deprecation warnings (8b1dadb7)
|
||||||
|
* upgrade script #7720 (accf48f3)
|
||||||
|
* indents (a5de54f8)
|
||||||
|
* remove debug code that should not have made it in (af17c6e3)
|
||||||
|
* dont display post tools if there are no options (708df46e)
|
||||||
|
* output span in buildAvatar helper instead of div (69fae1a7)
|
||||||
|
* restore uid in teasers userObj (67b8cb89)
|
||||||
|
* dont allow edit if post is deleted by someone else (667bc67f)
|
||||||
|
* dont show delete posts on profile (e48c7cd7)
|
||||||
|
* on new post add it to cid::uid::pids (6a7bc1c5)
|
||||||
|
* #5570, create per category user post zsets (a39f0ef5)
|
||||||
|
* restrict drag drop to pin icon, closes #7702 (e1c05e59)
|
||||||
|
* remove dupe code (68e5d7ad)
|
||||||
|
* get uids directly for csv (39ee3980)
|
||||||
|
* typo (a251032f)
|
||||||
|
* id/for (b4cc8d88)
|
||||||
|
* #7659 add option to change cookie link url (25ea6347)
|
||||||
|
* middle vertical-align for .avatar elements (1894cd9b)
|
||||||
|
* dependency checker always triggering dep upgrade, hopefully (c241551d)
|
||||||
|
* #7483, show latest undeleted message as teaser (644504ff)
|
||||||
|
* #7567, allow invite and approval at the same time (4b843ba1)
|
||||||
|
* #7625, on group rename update nav/widget items (5b85ed31)
|
||||||
|
* psql error (8d319e42)
|
||||||
|
* try to fix psql :dog: (2e6b562f)
|
||||||
|
* no need for moderate bit for global mods and admins (8aef689f)
|
||||||
|
* attribute name so it works for both templates (ebb32e78)
|
||||||
|
* #7647, fix getModeratorUids (64679b37)
|
||||||
|
* #7644 (5cd9e1bf)
|
||||||
|
* bad usage of async requisition (603c5262)
|
||||||
|
* 7638, returnTo accidentally saved into user hash (f321b426)
|
||||||
|
* #7634, make strip exif configurable (157b921e)
|
||||||
|
* #7636, use reputation threshold for post queue (a8409fbd)
|
||||||
|
* #7623, wait for lastonline to update on /users (63e5d383)
|
||||||
|
* https://github.com/barisusakli/nodebb-plugin-dbsearch/issues/53 (e65ddc98)
|
||||||
|
* #7593, unable to set account password if no password set (80c0d579)
|
||||||
|
* incorrect pathname format for app.previousUrl (a97e97b9)
|
||||||
|
* #7598, use notice element instead of alert (106d52a4)
|
||||||
|
* #7620, allow adding new fields into user objects for posts (a8e65205)
|
||||||
|
* #7629, new filter hook for room rename (7ba4a864)
|
||||||
|
* #7628, log email send errors (7a4b68e8)
|
||||||
|
* {username} not working in notification.tpl (f55cc667)
|
||||||
|
* do not prevent nbb from starting (3b0459a0)
|
||||||
|
* #7624, default open state on stateless flags (91f0bce6)
|
||||||
|
* #7431, add /unread link to topic route (15391da5)
|
||||||
|
* #7619 (35d10f76)
|
||||||
|
* #7618 save pathname into app.previousUrl ins. of entire url (7e5cb72a)
|
||||||
|
* handle missing timestamps (172e6888)
|
||||||
|
* broken test for meta tags on ajaxify (b70e03a7)
|
||||||
|
* #7613 (15ce23da)
|
||||||
|
* #7600, removing nbsp from email CTAs (#7606) (f552cea5)
|
||||||
|
* #7604 shortened CTA text and added custom text for some notifs (#7605) (b32da57f)
|
||||||
|
* **style:**
|
||||||
|
* requiring parens in block bodies (29f96b19)
|
||||||
|
* updated code to follow new eslint recommendations (09212309)
|
||||||
|
|
||||||
|
##### Refactors
|
||||||
|
|
||||||
|
* use arrow function (6b3eb014)
|
||||||
|
* async/await (02d38caf)
|
||||||
|
* remove log, topics.exists (f8c8038a)
|
||||||
|
* async/await (dc8d721c)
|
||||||
|
* async/await mongo (1f0c6f3d)
|
||||||
|
* async/await socket.io/index (603908c1)
|
||||||
|
* async/await image.js (c5ffd8cc)
|
||||||
|
* remove var (05e753c7)
|
||||||
|
* async/await flags.js (ac6eb31c)
|
||||||
|
* async/await flags (0ced71be)
|
||||||
|
* shorter map (572bc297)
|
||||||
|
* remove logs (03971049)
|
||||||
|
* dont modify key (7e7ea7a6)
|
||||||
|
* remove logs (e32a5546)
|
||||||
|
* async/await flags (9ee1a882)
|
||||||
|
* shorter, new Date doesnt throw (625b0815)
|
||||||
|
* remove temp var (b842057f)
|
||||||
|
* async/await file (f9d6912b)
|
||||||
|
* async/await analytics (223c108c)
|
||||||
|
* change to const (5505628c)
|
||||||
|
* returned fields (86b16629)
|
||||||
|
* async/await emailer (63bd3fc5)
|
||||||
|
* async/await routes/feeds (ec3b5dd9)
|
||||||
|
* async/await rewards (b110aec6)
|
||||||
|
* async/await socket.io (a7d2b8a1)
|
||||||
|
* async/await (52b2d670)
|
||||||
|
* async/await (75d7ae92)
|
||||||
|
* async/await socket.io/topics (5c2afe5e)
|
||||||
|
* async/await controllers/user.js (3c6c40b1)
|
||||||
|
* async/await uploads (5c0266d8)
|
||||||
|
* move tos parsing to /tos (3e2ed21d)
|
||||||
|
* remove commented out code (ec98945a)
|
||||||
|
* async/await controllers/authentication (b9105ef9)
|
||||||
|
* remove async from isPasswordValid, function is sync (22f80116)
|
||||||
|
* make categories.buildForSelectCategories non async (6cda3698)
|
||||||
|
* remove dupe code (a4d84a66)
|
||||||
|
* async/await socket.io/posts (e93ef0d7)
|
||||||
|
* async/await socket.io/admin (88dfbf21)
|
||||||
|
* socket.io/admin/categories async/await (71e50bbf)
|
||||||
|
* admin groups.join socket async/await (4588a4fd)
|
||||||
|
* password async/await (dd8386d9)
|
||||||
|
* sitemap to async/await (0164e51f)
|
||||||
|
* remove hook assign (d3727207)
|
||||||
|
* async/await users (f9a804e0)
|
||||||
|
* remove empty line (19b63bfa)
|
||||||
|
* remove vars (69333f59)
|
||||||
|
* async/await controllers (2c4f0446)
|
||||||
|
* async/await controllers/tags (53624885)
|
||||||
|
* async/await (f15c7f12)
|
||||||
|
* globalmods/groups (0722cc47)
|
||||||
|
* controllers/category.js (bd8736db)
|
||||||
|
* use arrow func (27c27b49)
|
||||||
|
* async/await controllers/api (4eaa630b)
|
||||||
|
* async/await admin/controllers (6f375482)
|
||||||
|
* async/await, remove dupe code for homepage routes (c9250a01)
|
||||||
|
* async/await for src/socket.io/groups.js (71b205a8)
|
||||||
|
* rewrote SocketPosts.getRawPost in await style (08530bb3)
|
||||||
|
* replace avatar conditional code with buildAvatar helper (#7681) (25238899)
|
||||||
|
|
||||||
|
##### Reverts
|
||||||
|
|
||||||
|
* accidental removal of some needed translation source strings (868dedd1)
|
||||||
|
|
||||||
|
#### 1.12.2 (2019-05-15)
|
||||||
|
|
||||||
|
##### Chores
|
||||||
|
|
||||||
|
* incrementing version number - v1.12.2 (22db818e)
|
||||||
|
* bump themes #7576 (d349754d)
|
||||||
|
* bump themes (59bdc970)
|
||||||
|
* bump themes (abcca134)
|
||||||
|
* bump themes (551b18cd)
|
||||||
|
* incrementing version number - v1.12.1 (dd973abe)
|
||||||
|
* **deps:**
|
||||||
|
* update dependency lint-staged to v8.1.7 (dc6b49ca)
|
||||||
|
* update commitlint monorepo (9998e86b)
|
||||||
|
* update dependency jsdom to v15.1.0 (fcd6dc88)
|
||||||
|
* update dependency mocha to v6.1.4 (3ff8154b)
|
||||||
|
* update node:8.16.0 docker digest to b5484d1 (6421f10f)
|
||||||
|
* update dependency husky to v2.3.0 (c20e3313)
|
||||||
|
* update dependency nyc to v14.1.1 (#7584) (9047210c)
|
||||||
|
* update dependency eslint to v5.16.0 (692e2ead)
|
||||||
|
* update dependency nyc to v14 (9210baf5)
|
||||||
|
* update dependency husky to v2.2.0 (8a018a5f)
|
||||||
|
* update dependency lint-staged to v8.1.6 (4e39caf8)
|
||||||
|
* update dependency husky to v2.1.0 (65ff0bbd)
|
||||||
|
* update dependency husky to v2 (e81a1dbb)
|
||||||
|
* update dependency eslint-plugin-import to v2.17.2 (#7546) (c1fb17f9)
|
||||||
|
* update dependency jsdom to v15 (#7556) (d4d8d98f)
|
||||||
|
* update dependency jsdom to v14.1.0 (#7555) (ca694fd1)
|
||||||
|
* update node.js to v8.16.0 (#7554) (f10708e7)
|
||||||
|
* update dependency eslint-plugin-import to v2.17.1 (69dd8e4d)
|
||||||
|
* update dependency mocha to v6.1.2 (b7169772)
|
||||||
|
|
||||||
|
##### Documentation Changes
|
||||||
|
|
||||||
|
* updated changelog (93b688d0)
|
||||||
|
|
||||||
|
##### New Features
|
||||||
|
|
||||||
|
* let theme know downvoting is disabled, closes https://github.com/NodeBB/NodeBB/pull/7568 (bd94fbc2)
|
||||||
|
* closes #7583 (cf5aeace)
|
||||||
|
* #7319 (9385c8e3)
|
||||||
|
* add node12 to travis (1a7036a6)
|
||||||
|
* allow file uploading on registration interstitial (ddffc904)
|
||||||
|
* #7527 (ba5e1eaa)
|
||||||
|
* #7515 (c38db4f7)
|
||||||
|
|
||||||
|
##### Bug Fixes
|
||||||
|
|
||||||
|
* #7599 image size measurement erroring out on missing path (0d86781c)
|
||||||
|
* #7590 updated chat and post edit and delete timeout labels in ACP (4f0dc443)
|
||||||
|
* tests (3a7e99a5)
|
||||||
|
* #7586, switchTimeagoLanguage shouldn't discriminate against languages w/o shorthands (1703233f)
|
||||||
|
* #7576 "Disable password changes" can be sidestepped (50260e13)
|
||||||
|
* if editing password is disabled in ACP, prevent direct access via route/socket (related: #7576) (e114b16d)
|
||||||
|
* #7582 (c9ca72d0)
|
||||||
|
* #7461 (96cb29aa)
|
||||||
|
* increase batch size (3d938e7b)
|
||||||
|
* #7564 (bf6fc502)
|
||||||
|
* group cover upload not working for s3 upload (#7571) (8945ebcb)
|
||||||
|
* test (b9903120)
|
||||||
|
* #7539 (c940a733)
|
||||||
|
* #7565 (07e9b67e)
|
||||||
|
* #7464 (32cf07d7)
|
||||||
|
* #7147 (fe6d64cc)
|
||||||
|
* #7424 (f86d74d8)
|
||||||
|
* #7562 (09681e6c)
|
||||||
|
* node12 tests (8775e7e6)
|
||||||
|
* add post queue to /compose POST route (c6cd6c57)
|
||||||
|
* remove redis object cache (4df925e7)
|
||||||
|
* #7545 (74038849)
|
||||||
|
* failing test from 00552d7183f0416a0caa113fe2f1e658659648f7 (9bf3517d)
|
||||||
|
* fire filter:register.complete for users approved via registration queue (00552d71)
|
||||||
|
* #7540 (8778f00b)
|
||||||
|
* more graceful error handling and output for cli/reset (d3ebda73)
|
||||||
|
* #6438 only apply whitelist when fields request empty (#7528) (808c4909)
|
||||||
|
* **deps:**
|
||||||
|
* update dependency nodebb-theme-vanilla to v10.1.31 (#7589) (a9f9d19b)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.36 (#7588) (bd86e58d)
|
||||||
|
* update dependency mongodb to v3.2.4 (#7581) (26d6d0be)
|
||||||
|
* update dependency postcss to v7.0.16 (10a47a29)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.33 (#7563) (7c4201f2)
|
||||||
|
* update dependency sharp to v0.22.1 (#7561) (288a25f0)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.12 (#7538) (a54f8f00)
|
||||||
|
* update dependency mongodb to v3.2.3 (97a7f02f)
|
||||||
|
|
||||||
|
#### 1.12.1 (2019-04-10)
|
||||||
|
|
||||||
|
##### Chores
|
||||||
|
|
||||||
|
* incrementing version number - v1.12.1 (dd973abe)
|
||||||
|
* comment cleanup (6bed51ef)
|
||||||
|
* bump persona (1f4db132)
|
||||||
|
* bump themes, fix: https://github.com/NodeBB/NodeBB/issues/7446 (0d19bb3d)
|
||||||
|
* incrementing version number - v1.12.0 (d87f8c52)
|
||||||
|
* **deps:**
|
||||||
|
* update dependency lint-staged to v8.1.5 (ae17481d)
|
||||||
|
* update node:8.15.1 docker digest to 918f0be (5f787d73)
|
||||||
|
* update node:8.15.1 docker digest to 3d43ad1 (ea77ad4e)
|
||||||
|
* update dependency grunt to v1.0.4 (a9130fad)
|
||||||
|
* update dependency eslint to v5.15.3 (d2932cf6)
|
||||||
|
* update dependency mocha to v6.0.2 (#7408) (1c671c32)
|
||||||
|
* update dependency eslint to v5.15.1 (d8486e88)
|
||||||
|
* update node:8.15.1 docker digest to c151597 (2cb0bdea)
|
||||||
|
* update dependency jsdom to v14 (a967253a)
|
||||||
|
|
||||||
|
##### Documentation Changes
|
||||||
|
|
||||||
|
* updating changelog (9aeb291e)
|
||||||
|
|
||||||
|
##### New Features
|
||||||
|
|
||||||
|
* #7515 (ac889db1)
|
||||||
|
* update unban logic/invocation and refactor User.bans module (3fbb6faf)
|
||||||
|
* add original sessionID to static:user.loggedOut (abe4abb6)
|
||||||
|
* #7501 (2ee2cd52)
|
||||||
|
* allow multiple cids for getActiveUsers (81306fff)
|
||||||
|
* manual password expiry. closes #7471 (24dcae21)
|
||||||
|
* #7358 (7211dde7)
|
||||||
|
|
||||||
|
##### Bug Fixes
|
||||||
|
|
||||||
|
* don't crash if templateData is undefined (eb2c3e56)
|
||||||
|
* clear children before building tree (397e062a)
|
||||||
|
* upgrade script date (4f3ca4d8)
|
||||||
|
* #7519 (ed91d3f2)
|
||||||
|
* #7517 (e479fad7)
|
||||||
|
* #7470 Properly handle recompilation of email templates (75ae29c1)
|
||||||
|
* resolve CORS error on uploading via URL (3871a02c)
|
||||||
|
* #7461 (dbc4d840)
|
||||||
|
* #7491 (8cc1864a)
|
||||||
|
* #7476 (4db0efe3)
|
||||||
|
* #7508 (b52dba5c)
|
||||||
|
* escape search snippet closes #7506 (e906bea4)
|
||||||
|
* #7490 once again (3ec9fc40)
|
||||||
|
* #7502 (3304ffe9)
|
||||||
|
* #7503 (1f3554ff)
|
||||||
|
* #7493, adding robots noindex meta tag to compose and reset routes (6415ba82)
|
||||||
|
* #7490, handling of image sizes if no size saved in db (86e1cdd5)
|
||||||
|
* #7494 (8f55ab13)
|
||||||
|
* #6911, email throttling options set (63e16ec0)
|
||||||
|
* throttling email output to 2 messages every second, fixes #6911 (33a1bf6c)
|
||||||
|
* #7469 missing email logos, occasionally (8d62ead3)
|
||||||
|
* #7487 (fddb783e)
|
||||||
|
* #7485 (78e0b983)
|
||||||
|
* move upload_url to prestart so it is defined in upgrade scripts (ad2d7a69)
|
||||||
|
* #7342 (cead89f0)
|
||||||
|
* #7477 (240f563a)
|
||||||
|
* #7473 (c289b904)
|
||||||
|
* #7378 (c37b2f2e)
|
||||||
|
* #7454 (dcdd41c7)
|
||||||
|
* #7472 (962b7f73)
|
||||||
|
* remove async.series, dont crash if postAtIndex is undefined (dd8d4f20)
|
||||||
|
* tests (c12e1d19)
|
||||||
|
* #7468 (b4a9bb10)
|
||||||
|
* #7444 Re-factor handling of og:image tags (#7463) (697a6597)
|
||||||
|
* tests (45d7e37a)
|
||||||
|
* callbacks (b48b6d75)
|
||||||
|
* return early if keys is empty (7addc5a0)
|
||||||
|
* return early if keys is empty (b3962c16)
|
||||||
|
* prevent infinite loops if category is already in children (b71e0eb1)
|
||||||
|
* #7448 (4732bed3)
|
||||||
|
* return early if there are not blocked uids (73d14e45)
|
||||||
|
* #7008 (756dfd8a)
|
||||||
|
* typo (f9d92db5)
|
||||||
|
* tests (e71ae80c)
|
||||||
|
* #7406 (cbfbcee5)
|
||||||
|
* #7432 (777ca032)
|
||||||
|
* change user/system cpu usage (aecdf739)
|
||||||
|
* strip exif data on image uploads (5eaa14e7)
|
||||||
|
* **deps:**
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.29 (e5c12a49)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.11 (30b042b8)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.10 (cf180e09)
|
||||||
|
* update dependency html-to-text to v5 (b39ce25c)
|
||||||
|
* update dependency semver to v6 (8662aa95)
|
||||||
|
* update dependency spdx-license-list to v6 (447cf66b)
|
||||||
|
* update dependency nodebb-widget-essentials to v4.0.17 (#7489) (0f9cb86d)
|
||||||
|
* update dependency mongodb to v3.2.2 (#7482) (357f931c)
|
||||||
|
* update dependency nodemailer to v6 (0274c2bd)
|
||||||
|
* update dependency sharp to v0.22.0 (#7466) (c3261415)
|
||||||
|
* update dependency nodebb-theme-slick to v1.2.23 (#7460) (c20cd528)
|
||||||
|
* update dependency nodebb-theme-vanilla to v10.1.25 (fe30e06d)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.27 (5c605392)
|
||||||
|
* update dependency connect-redis to v3.4.1 (02804fe9)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.9 (#7442) (80293146)
|
||||||
|
* update dependency nodebb-theme-vanilla to v10.1.23 (#7438) (48dd3c5b)
|
||||||
|
* update dependency nodebb-theme-slick to v1.2.22 (#7437) (3f4ae4b0)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.25 (#7436) (9887bb4f)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.8 (#7435) (c18f2e1f)
|
||||||
|
|
||||||
|
### 1.12.0 (2019-03-06)
|
||||||
|
|
||||||
|
##### Chores
|
||||||
|
|
||||||
|
* incrementing version number - v1.12.0 (d87f8c52)
|
||||||
|
* incrementing version number - v1.11.2 (757bff27)
|
||||||
|
* **deps:**
|
||||||
|
* update node:8.15.1 docker digest to 287b8a5 (0b8d1833)
|
||||||
|
* update node.js to v8.15.1 (ae89db28)
|
||||||
|
* update dependency mocha to v6 (#7387) (30bdb1a1)
|
||||||
|
* update dependency coveralls to v3.0.3 (#7397) (cf74904c)
|
||||||
|
* update dependency eslint to v5.14.1 (4df9c206)
|
||||||
|
* update dependency jsdom to v13.2.0 (cb5e3d83)
|
||||||
|
* update node:8.15.0 docker digest to a8a9d8e (edcb5314)
|
||||||
|
* update dependency nyc to v13.3.0 (a78f5da5)
|
||||||
|
* update dependency lint-staged to v8.1.4 (18c90913)
|
||||||
|
* update dependency eslint to v5.14.0 (9d8d2d0d)
|
||||||
|
* update commitlint monorepo (aed5b29d)
|
||||||
|
* update dependency eslint-plugin-import to v2.16.0 (e0fa6965)
|
||||||
|
* update dependency @commitlint/cli to v7.4.0 (362d9397)
|
||||||
|
* update dependency lint-staged to v8.1.1 (96644350)
|
||||||
|
|
||||||
|
##### Documentation Changes
|
||||||
|
|
||||||
|
* updated changelog (aec2f210)
|
||||||
|
|
||||||
|
##### New Features
|
||||||
|
|
||||||
|
* admin/groups style change (2b6f1a05)
|
||||||
|
* add process cpu usage to admin (db477538)
|
||||||
|
* pass options to digest (23da3009)
|
||||||
|
* revamp email templates to be more style agnostic (#7375) (f32a9922)
|
||||||
|
* lower search timeout (fc830c0f)
|
||||||
|
* quick search (8a0e1280)
|
||||||
|
* add vote status to getPostData API call (eafe76de)
|
||||||
|
* make topic search a function (d2b83967)
|
||||||
|
* quick search (c01d43e0)
|
||||||
|
* check overide (ba90bf31)
|
||||||
|
* check CI failure (f2d7f75e)
|
||||||
|
* logging password resets and errors into event log (0c09b740)
|
||||||
|
* add `action:alert.new`, `action:alert.update` hooks (daadcc48)
|
||||||
|
* allow themes to define custom classes for categories via filter:admin.category.get (5031bfe8)
|
||||||
|
* show more unread notifs (d75a0d77)
|
||||||
|
* pass topic creation data to action:topic.save (cd2f72fb)
|
||||||
|
* textcomplete over jquery-textcomplete, closes #7309 (02a8ed9b)
|
||||||
|
* new hook filter:privileges.posts.edit (f659ef4d)
|
||||||
|
* new hook type: `response` (a23854e3)
|
||||||
|
|
||||||
|
##### Bug Fixes
|
||||||
|
|
||||||
|
* **deps:**
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.24 (0f2d3181)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.7 (#7411) (9ebc900a)
|
||||||
|
* bump markdown (82c8ee3f)
|
||||||
|
* bump markdown (7ce5a81f)
|
||||||
|
* bump persona (a0b71f09)
|
||||||
|
* update dependency nodebb-theme-vanilla to v10.1.21 (#7404) (699eddcb)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.22 (#7403) (d87751ea)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.21 (#7401) (f721155d)
|
||||||
|
* update dependency nodebb-theme-slick to v1.2.21 (#7398) (f6e55651)
|
||||||
|
* update dependency nodebb-widget-essentials to v4.0.14 (#7399) (f812e0b7)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.19 (#7392) (deff7b34)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.6 (#7389) (fab32a49)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.18 (042b81a0)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.17 (#7379) (546e04e1)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.5 (#7374) (d0874f34)
|
||||||
|
* update dependency async to v2.6.2 (#7365) (264eadde)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.4 (30ff4582)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.16 (65df6711)
|
||||||
|
* update dependency nodebb-plugin-markdown to v8.9.0 (07b29d59)
|
||||||
|
* bump contenteditable to v0.1.1, #7325 (fbbe2ab7)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.3 (#7341) (176efb5f)
|
||||||
|
* update dependency nodebb-theme-persona to v9.1.15 (#7295) (8f69ffd4)
|
||||||
|
* update dependency nodebb-theme-slick to v1.2.20 (#7197) (a82bd3d0)
|
||||||
|
* update dependency nodebb-theme-lavender to v5.0.9 (#7322) (b350be27)
|
||||||
|
* update dependency nodebb-plugin-composer-default to v6.2.2 (99f82fb3)
|
||||||
|
* update dependency winston to v3.2.1 (#7317) (7e872d32)
|
||||||
|
* update dependency nodebb-plugin-markdown to v8.8.8 (#7314) (9cf81afe)
|
||||||
|
* update dependency nodebb-plugin-dbsearch to v3.0.6 (#7305) (d48ef6d8)
|
||||||
|
* update dependency nodebb-plugin-dbsearch to v3.0.5 (#7304) (57e3f162)
|
||||||
|
* update dependency nodebb-theme-vanilla to v10.1.19 (#7301) (443dcee4)
|
||||||
|
* update dependency winston to v3.2.0 (#7299) (6f957cb9)
|
||||||
|
* update dependency nodebb-plugin-spam-be-gone to v0.6.0 (247ac828)
|
||||||
|
* #7413 (684175f7)
|
||||||
|
* #7414 (e331f6b5)
|
||||||
|
* l2spread @baris nib (0360f6e1)
|
||||||
|
* restored email logo to all outgoing emails (6c1f9c3c)
|
||||||
|
* die hydra!!! (ad6c8dcc)
|
||||||
|
* incorrect teaserPost logic (97313508)
|
||||||
|
* normalized font sizes for paragraphs in digest (43c4eb23)
|
||||||
|
* removed notification subheader translation string (6f272e34)
|
||||||
|
* broken 50% border radius on emails, failing tests (d3a10628)
|
||||||
|
* hook names getting objectified by winston (6472a065)
|
||||||
|
* failing tests from revamped-emails branch (3a7f1c19)
|
||||||
|
* #7395 (03305db8)
|
||||||
|
* mounting of all-route middlewares to router instead of app (d722f3b8)
|
||||||
|
* incorrect returnTo set in registerComplete (f972f752)
|
||||||
|
* search.api not working on subfolder (158f68eb)
|
||||||
|
* tests for #7385 (7a534453)
|
||||||
|
* #7385 better handling for errors in Adv>Databases (57069a5c)
|
||||||
|
* no relative path needed in req.session.returnTo (949b10f1)
|
||||||
|
* don't refresh page when enabling/disabling categories (d5ece9a4)
|
||||||
|
* #7373 (c2e7ae7f)
|
||||||
|
* autocomplete not triggered if chat switched (ab0e547d)
|
||||||
|
* #7366 (6c2f48f1)
|
||||||
|
* #7357 (45c322ae)
|
||||||
|
* #7359 (2996a5dc)
|
||||||
|
* re-introducing indeterminate checkbox state to ACP privs (e8f3c256)
|
||||||
|
* #7354 (c6ad8fae)
|
||||||
|
* uid check (efd7d953)
|
||||||
|
* uid checks (c24dcf78)
|
||||||
|
* only allow numbers as scores (#7356) (5917dec2)
|
||||||
|
* #7231, missing success alert on group name change in ACP (0fffcb38)
|
||||||
|
* remove debug logs (fe63fca8)
|
||||||
|
* don't use same db as prod values (39e35275)
|
||||||
|
* database 0 was being replaced with undefined because 0 is falsy (bcd62586)
|
||||||
|
* #7352 (2e2c3ac1)
|
||||||
|
* #7261, banned users still get digests (aca05560)
|
||||||
|
* #7346, panel-header widget colours in ACP (91a7b907)
|
||||||
|
* #7350 (8c68780e)
|
||||||
|
* eslint failure from daadcc4889a91b9bbd279d49db348610cc079ccc (96b6ce1f)
|
||||||
|
* prevent crash if results.stats or results.serverStatus is undefined (fab52b84)
|
||||||
|
* move `action:alert.update` to after translator (d864da1a)
|
||||||
|
* #7098 (fc6767e1)
|
||||||
|
* #7232 (70d9c6c4)
|
||||||
|
* #7229 (e59b907d)
|
||||||
|
* #7339 (12c58990)
|
||||||
|
* #7338 (8e3bf581)
|
||||||
|
* dont crash if userData is undefined #7262 (56a493d8)
|
||||||
|
* #7240 (a2f08e7d)
|
||||||
|
* give default privs on new install to guests/spiders (cd120990)
|
||||||
|
* #6806 (c72da559)
|
||||||
|
* #7334 (ae779ea4)
|
||||||
|
* closes #7217 (9d1fcf4e)
|
||||||
|
* merge post notifs (6e69a9ab)
|
||||||
|
* don't crash if body doesn't have `skin-` (f6cfbbb5)
|
||||||
|
* #7324 (c7abf07a)
|
||||||
|
* allow regular groups to local login (0366cfd8)
|
||||||
|
* #7316 (5353960a)
|
||||||
|
* #7306 (8aebe884)
|
||||||
|
* #7312 (7a4a8ea4)
|
||||||
|
* #7311, missing dependencies (263e58df)
|
||||||
|
* #7300 (920efad0)
|
||||||
|
* #6848 (70f8b418)
|
||||||
|
* #7298 privilege header misalignment (df6f75eb)
|
||||||
|
* #7211 (cf918078)
|
||||||
|
* #7215 (7a9780f6)
|
||||||
|
* #7296, local login privilege available to registered-users only (7fb3c168)
|
||||||
|
* #7094 (d03220cd)
|
||||||
|
|
||||||
#### 1.11.2 (2019-01-24)
|
#### 1.11.2 (2019-01-24)
|
||||||
|
|
||||||
##### Chores
|
##### Chores
|
||||||
|
|||||||
13
Dockerfile
13
Dockerfile
@@ -1,20 +1,23 @@
|
|||||||
# The base image is the latest 8.x node (LTS)
|
FROM node:lts
|
||||||
FROM node:8.15.1@sha256:287b8a533675e0c72cb374b5e5ab580961b2a203600e1758b95c475390bd9f9a
|
|
||||||
|
|
||||||
RUN mkdir -p /usr/src/app
|
RUN mkdir -p /usr/src/app
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
ARG NODE_ENV
|
ARG NODE_ENV
|
||||||
ENV NODE_ENV $NODE_ENV
|
ENV NODE_ENV $NODE_ENV
|
||||||
|
|
||||||
COPY install/package.json /usr/src/app/package.json
|
COPY install/package.json /usr/src/app/package.json
|
||||||
RUN npm install && npm cache clean --force
|
|
||||||
|
RUN npm install --only=prod && \
|
||||||
|
npm cache clean --force
|
||||||
|
|
||||||
COPY . /usr/src/app
|
COPY . /usr/src/app
|
||||||
|
|
||||||
ENV NODE_ENV=production \
|
ENV NODE_ENV=production \
|
||||||
daemon=false \
|
daemon=false \
|
||||||
silent=false
|
silent=false
|
||||||
|
|
||||||
|
EXPOSE 4567
|
||||||
|
|
||||||
CMD ./nodebb start
|
CMD ./nodebb start
|
||||||
|
|
||||||
# the default port for NodeBB is exposed outside the container
|
|
||||||
EXPOSE 4567
|
|
||||||
218
Gruntfile.js
218
Gruntfile.js
@@ -1,5 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
|
||||||
|
var async = require('async');
|
||||||
var fork = require('child_process').fork;
|
var fork = require('child_process').fork;
|
||||||
var env = process.env;
|
var env = process.env;
|
||||||
var worker;
|
var worker;
|
||||||
@@ -10,6 +12,26 @@ var running = 0;
|
|||||||
|
|
||||||
env.NODE_ENV = env.NODE_ENV || 'development';
|
env.NODE_ENV = env.NODE_ENV || 'development';
|
||||||
|
|
||||||
|
|
||||||
|
var nconf = require('nconf');
|
||||||
|
nconf.file({
|
||||||
|
file: 'config.json',
|
||||||
|
});
|
||||||
|
|
||||||
|
nconf.defaults({
|
||||||
|
base_dir: __dirname,
|
||||||
|
views_dir: './build/public/templates',
|
||||||
|
});
|
||||||
|
var winston = require('winston');
|
||||||
|
winston.configure({
|
||||||
|
transports: [
|
||||||
|
new winston.transports.Console({
|
||||||
|
handleExceptions: true,
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
var db = require('./src/database');
|
||||||
|
|
||||||
module.exports = function (grunt) {
|
module.exports = function (grunt) {
|
||||||
var args = [];
|
var args = [];
|
||||||
var initArgs = ['--build'];
|
var initArgs = ['--build'];
|
||||||
@@ -70,80 +92,116 @@ module.exports = function (grunt) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
grunt.initConfig({
|
grunt.initConfig({
|
||||||
watch: {
|
watch: {},
|
||||||
lessUpdated_Client: {
|
|
||||||
files: [
|
|
||||||
'public/less/*.less',
|
|
||||||
'!public/less/admin/**/*.less',
|
|
||||||
'node_modules/nodebb-*/**/*.less',
|
|
||||||
'!node_modules/nodebb-*/node_modules/**',
|
|
||||||
'!node_modules/nodebb-*/.git/**',
|
|
||||||
],
|
|
||||||
options: {
|
|
||||||
interval: 1000,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
lessUpdated_Admin: {
|
|
||||||
files: [
|
|
||||||
'public/less/admin/**/*.less',
|
|
||||||
'node_modules/nodebb-*/**/*.less',
|
|
||||||
'!node_modules/nodebb-*/node_modules/**',
|
|
||||||
'!node_modules/nodebb-*/.git/**',
|
|
||||||
],
|
|
||||||
options: {
|
|
||||||
interval: 1000,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
clientUpdated: {
|
|
||||||
files: [
|
|
||||||
'public/src/**/*.js',
|
|
||||||
'node_modules/nodebb-*/**/*.js',
|
|
||||||
'!node_modules/nodebb-*/node_modules/**',
|
|
||||||
'node_modules/benchpressjs/build/benchpress.js',
|
|
||||||
'!node_modules/nodebb-*/.git/**',
|
|
||||||
],
|
|
||||||
options: {
|
|
||||||
interval: 1000,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
serverUpdated: {
|
|
||||||
files: ['*.js', 'install/*.js', 'src/**/*.js'],
|
|
||||||
options: {
|
|
||||||
interval: 1000,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
templatesUpdated: {
|
|
||||||
files: [
|
|
||||||
'src/views/**/*.tpl',
|
|
||||||
'node_modules/nodebb-*/**/*.tpl',
|
|
||||||
'!node_modules/nodebb-*/node_modules/**',
|
|
||||||
'!node_modules/nodebb-*/.git/**',
|
|
||||||
],
|
|
||||||
options: {
|
|
||||||
interval: 1000,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
langUpdated: {
|
|
||||||
files: [
|
|
||||||
'public/language/en-GB/*.json',
|
|
||||||
'public/language/en-GB/**/*.json',
|
|
||||||
'node_modules/nodebb-*/**/*.json',
|
|
||||||
'!node_modules/nodebb-*/node_modules/**',
|
|
||||||
'!node_modules/nodebb-*/.git/**',
|
|
||||||
'!node_modules/nodebb-*/plugin.json',
|
|
||||||
'!node_modules/nodebb-*/package.json',
|
|
||||||
'!node_modules/nodebb-*/theme.json',
|
|
||||||
],
|
|
||||||
options: {
|
|
||||||
interval: 1000,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||||
|
|
||||||
grunt.registerTask('default', ['watch']);
|
grunt.registerTask('default', ['watch']);
|
||||||
|
|
||||||
|
grunt.registerTask('init', function () {
|
||||||
|
var done = this.async();
|
||||||
|
async.waterfall([
|
||||||
|
function (next) {
|
||||||
|
db.init(next);
|
||||||
|
},
|
||||||
|
function (next) {
|
||||||
|
db.getSortedSetRange('plugins:active', 0, -1, next);
|
||||||
|
},
|
||||||
|
function (plugins, next) {
|
||||||
|
addBaseThemes(plugins, next);
|
||||||
|
},
|
||||||
|
function (plugins, next) {
|
||||||
|
if (!plugins.includes('nodebb-plugin-composer-default')) {
|
||||||
|
plugins.push('nodebb-plugin-composer-default');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.argv.includes('--core')) {
|
||||||
|
plugins = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
const lessUpdated_Client = plugins.map(p => 'node_modules/' + p + '/**/*.less');
|
||||||
|
const lessUpdated_Admin = plugins.map(p => 'node_modules/' + p + '/**/*.less');
|
||||||
|
const clientUpdated = plugins.map(p => 'node_modules/' + p + '/**/*.js');
|
||||||
|
const templatesUpdated = plugins.map(p => 'node_modules/' + p + '/**/*.tpl');
|
||||||
|
const langUpdated = plugins.map(p => 'node_modules/' + p + '/**/*.json');
|
||||||
|
|
||||||
|
grunt.config(['watch'], {
|
||||||
|
lessUpdated_Client: {
|
||||||
|
files: [
|
||||||
|
'public/less/*.less',
|
||||||
|
'!public/less/admin/**/*.less',
|
||||||
|
...lessUpdated_Client,
|
||||||
|
'!node_modules/nodebb-*/node_modules/**',
|
||||||
|
'!node_modules/nodebb-*/.git/**',
|
||||||
|
],
|
||||||
|
options: {
|
||||||
|
interval: 1000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
lessUpdated_Admin: {
|
||||||
|
files: [
|
||||||
|
'public/less/admin/**/*.less',
|
||||||
|
...lessUpdated_Admin,
|
||||||
|
'!node_modules/nodebb-*/node_modules/**',
|
||||||
|
'!node_modules/nodebb-*/.git/**',
|
||||||
|
],
|
||||||
|
options: {
|
||||||
|
interval: 1000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
clientUpdated: {
|
||||||
|
files: [
|
||||||
|
'public/src/**/*.js',
|
||||||
|
...clientUpdated,
|
||||||
|
'!node_modules/nodebb-*/node_modules/**',
|
||||||
|
'node_modules/benchpressjs/build/benchpress.js',
|
||||||
|
'!node_modules/nodebb-*/.git/**',
|
||||||
|
],
|
||||||
|
options: {
|
||||||
|
interval: 1000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
serverUpdated: {
|
||||||
|
files: ['*.js', 'install/*.js', 'src/**/*.js', '!src/upgrades/**'],
|
||||||
|
options: {
|
||||||
|
interval: 1000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
templatesUpdated: {
|
||||||
|
files: [
|
||||||
|
'src/views/**/*.tpl',
|
||||||
|
...templatesUpdated,
|
||||||
|
'!node_modules/nodebb-*/node_modules/**',
|
||||||
|
'!node_modules/nodebb-*/.git/**',
|
||||||
|
],
|
||||||
|
options: {
|
||||||
|
interval: 1000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
langUpdated: {
|
||||||
|
files: [
|
||||||
|
'public/language/en-GB/*.json',
|
||||||
|
'public/language/en-GB/**/*.json',
|
||||||
|
...langUpdated,
|
||||||
|
'!node_modules/nodebb-*/node_modules/**',
|
||||||
|
'!node_modules/nodebb-*/.git/**',
|
||||||
|
'!node_modules/nodebb-*/plugin.json',
|
||||||
|
'!node_modules/nodebb-*/package.json',
|
||||||
|
'!node_modules/nodebb-*/theme.json',
|
||||||
|
],
|
||||||
|
options: {
|
||||||
|
interval: 1000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
next();
|
||||||
|
},
|
||||||
|
], done);
|
||||||
|
});
|
||||||
|
|
||||||
|
grunt.task.run('init');
|
||||||
|
|
||||||
env.NODE_ENV = 'development';
|
env.NODE_ENV = 'development';
|
||||||
|
|
||||||
if (grunt.option('skip')) {
|
if (grunt.option('skip')) {
|
||||||
@@ -164,3 +222,25 @@ module.exports = function (grunt) {
|
|||||||
|
|
||||||
grunt.event.on('watch', update);
|
grunt.event.on('watch', update);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function addBaseThemes(plugins, callback) {
|
||||||
|
const themeId = plugins.find(p => p.startsWith('nodebb-theme-'));
|
||||||
|
if (!themeId) {
|
||||||
|
return setImmediate(callback, null, plugins);
|
||||||
|
}
|
||||||
|
function getBaseRecursive(themeId) {
|
||||||
|
try {
|
||||||
|
const baseTheme = require(themeId + '/theme').baseTheme;
|
||||||
|
|
||||||
|
if (baseTheme) {
|
||||||
|
plugins.push(baseTheme);
|
||||||
|
getBaseRecursive(baseTheme);
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getBaseRecursive(themeId);
|
||||||
|
callback(null, plugins);
|
||||||
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
|
|||||||
|
|
||||||
NodeBB requires the following software to be installed:
|
NodeBB requires the following software to be installed:
|
||||||
|
|
||||||
* A version of Node.js at least 6 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
|
* A version of Node.js at least 8 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
|
||||||
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
|
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
|
||||||
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
|
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
|
||||||
|
|
||||||
|
|||||||
30
app.js
30
app.js
@@ -21,25 +21,24 @@
|
|||||||
|
|
||||||
require('./require-main');
|
require('./require-main');
|
||||||
|
|
||||||
var nconf = require('nconf');
|
const nconf = require('nconf');
|
||||||
nconf.argv().env({
|
nconf.argv().env({
|
||||||
separator: '__',
|
separator: '__',
|
||||||
});
|
});
|
||||||
|
|
||||||
var async = require('async');
|
const winston = require('winston');
|
||||||
var winston = require('winston');
|
const path = require('path');
|
||||||
var path = require('path');
|
|
||||||
|
|
||||||
var file = require('./src/file');
|
const file = require('./src/file');
|
||||||
|
|
||||||
global.env = process.env.NODE_ENV || 'production';
|
global.env = process.env.NODE_ENV || 'production';
|
||||||
|
|
||||||
// Alternate configuration file support
|
// Alternate configuration file support
|
||||||
var configFile = path.resolve(__dirname, nconf.any(['config', 'CONFIG']) || 'config.json');
|
const configFile = path.resolve(__dirname, nconf.any(['config', 'CONFIG']) || 'config.json');
|
||||||
|
|
||||||
var configExists = file.existsSync(configFile) || (nconf.get('url') && nconf.get('secret') && nconf.get('database'));
|
const configExists = file.existsSync(configFile) || (nconf.get('url') && nconf.get('secret') && nconf.get('database'));
|
||||||
|
|
||||||
var prestart = require('./src/prestart');
|
const prestart = require('./src/prestart');
|
||||||
prestart.loadConfig(configFile);
|
prestart.loadConfig(configFile);
|
||||||
prestart.setupWinston();
|
prestart.setupWinston();
|
||||||
prestart.versionCheck();
|
prestart.versionCheck();
|
||||||
@@ -60,30 +59,19 @@ if (nconf.get('setup') || nconf.get('install')) {
|
|||||||
} else if (nconf.get('upgrade')) {
|
} else if (nconf.get('upgrade')) {
|
||||||
require('./src/cli/upgrade').upgrade(true);
|
require('./src/cli/upgrade').upgrade(true);
|
||||||
} else if (nconf.get('reset')) {
|
} else if (nconf.get('reset')) {
|
||||||
var options = {
|
require('./src/cli/reset').reset({
|
||||||
theme: nconf.get('t'),
|
theme: nconf.get('t'),
|
||||||
plugin: nconf.get('p'),
|
plugin: nconf.get('p'),
|
||||||
widgets: nconf.get('w'),
|
widgets: nconf.get('w'),
|
||||||
settings: nconf.get('s'),
|
settings: nconf.get('s'),
|
||||||
all: nconf.get('a'),
|
all: nconf.get('a'),
|
||||||
};
|
|
||||||
|
|
||||||
async.series([
|
|
||||||
async.apply(require('./src/cli/reset').reset, options),
|
|
||||||
require('./src/meta/build').buildAll,
|
|
||||||
], function (err) {
|
|
||||||
if (err) {
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
|
|
||||||
process.exit(0);
|
|
||||||
});
|
});
|
||||||
} else if (nconf.get('activate')) {
|
} else if (nconf.get('activate')) {
|
||||||
require('./src/cli/manage').activate(nconf.get('activate'));
|
require('./src/cli/manage').activate(nconf.get('activate'));
|
||||||
} else if (nconf.get('plugins')) {
|
} else if (nconf.get('plugins')) {
|
||||||
require('./src/cli/manage').listPlugins();
|
require('./src/cli/manage').listPlugins();
|
||||||
} else if (nconf.get('build')) {
|
} else if (nconf.get('build')) {
|
||||||
require('./src/meta/build').build(nconf.get('build'));
|
require('./src/cli/manage').build(nconf.get('build'));
|
||||||
} else if (nconf.get('events')) {
|
} else if (nconf.get('events')) {
|
||||||
require('./src/cli/manage').listEvents();
|
require('./src/cli/manage').listEvents();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
24
docker-compose.yml
Normal file
24
docker-compose.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
version: '3.5'
|
||||||
|
|
||||||
|
services:
|
||||||
|
node:
|
||||||
|
build: .
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
expose:
|
||||||
|
- 4567 # use a reverse proxy like Traefik
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: mongo:bionic
|
||||||
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- 27017
|
||||||
|
environment:
|
||||||
|
MONGO_INITDB_ROOT_USERNAME: root
|
||||||
|
MONGO_INITDB_ROOT_PASSWORD: root
|
||||||
|
volumes:
|
||||||
|
- mongo:/data/db
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
mongo:
|
||||||
@@ -11,6 +11,7 @@
|
|||||||
"initialPostDelay": 10,
|
"initialPostDelay": 10,
|
||||||
"newbiePostDelay": 120,
|
"newbiePostDelay": 120,
|
||||||
"postEditDuration": 0,
|
"postEditDuration": 0,
|
||||||
|
"newbiePostEditDuration": 3600,
|
||||||
"postDeleteDuration": 0,
|
"postDeleteDuration": 0,
|
||||||
"enablePostHistory": 1,
|
"enablePostHistory": 1,
|
||||||
"postCacheSize": 10485760,
|
"postCacheSize": 10485760,
|
||||||
@@ -19,6 +20,8 @@
|
|||||||
"chatDeleteDuration": 0,
|
"chatDeleteDuration": 0,
|
||||||
"chatMessageDelay": 200,
|
"chatMessageDelay": 200,
|
||||||
"newbiePostDelayThreshold": 3,
|
"newbiePostDelayThreshold": 3,
|
||||||
|
"postQueueReputationThreshold": 0,
|
||||||
|
"groupsExemptFromPostQueue": ["administrators", "Global Moderators"],
|
||||||
"minimumPostLength": 8,
|
"minimumPostLength": 8,
|
||||||
"maximumPostLength": 32767,
|
"maximumPostLength": 32767,
|
||||||
"minimumTagsPerTopic": 0,
|
"minimumTagsPerTopic": 0,
|
||||||
@@ -27,12 +30,15 @@
|
|||||||
"maximumTagLength": 15,
|
"maximumTagLength": 15,
|
||||||
"allowTopicsThumbnail": 0,
|
"allowTopicsThumbnail": 0,
|
||||||
"registrationType": "normal",
|
"registrationType": "normal",
|
||||||
|
"registrationApprovalType": "normal",
|
||||||
"allowAccountDelete": 1,
|
"allowAccountDelete": 1,
|
||||||
"allowFileUploads": 0,
|
"allowFileUploads": 0,
|
||||||
|
"privateUploads": 0,
|
||||||
"allowedFileExtensions": "png,jpg,bmp",
|
"allowedFileExtensions": "png,jpg,bmp",
|
||||||
"allowUserHomePage": 1,
|
"allowUserHomePage": 1,
|
||||||
"allowMultipleBadges": 0,
|
"allowMultipleBadges": 0,
|
||||||
"maximumFileSize": 2048,
|
"maximumFileSize": 2048,
|
||||||
|
"stripEXIFData": 1,
|
||||||
"resizeImageWidthThreshold": 2000,
|
"resizeImageWidthThreshold": 2000,
|
||||||
"resizeImageWidth": 760,
|
"resizeImageWidth": 760,
|
||||||
"rejectImageWidth": 5000,
|
"rejectImageWidth": 5000,
|
||||||
@@ -95,10 +101,13 @@
|
|||||||
"feeds:disableSitemap": 0,
|
"feeds:disableSitemap": 0,
|
||||||
"sitemapTopics": 500,
|
"sitemapTopics": 500,
|
||||||
"maintenanceMode": 0,
|
"maintenanceMode": 0,
|
||||||
|
"maintenanceModeStatus": 503,
|
||||||
"votesArePublic": 0,
|
"votesArePublic": 0,
|
||||||
"maximumInvites": 0,
|
"maximumInvites": 0,
|
||||||
"username:disableEdit": 0,
|
"username:disableEdit": 0,
|
||||||
"email:disableEdit": 0,
|
"email:disableEdit": 0,
|
||||||
|
"email:sendmail:rateLimit": 2,
|
||||||
|
"email:sendmail:rateDelta": 1000,
|
||||||
"hideFullname": 0,
|
"hideFullname": 0,
|
||||||
"allowGuestHandles": 0,
|
"allowGuestHandles": 0,
|
||||||
"disableRecentCategoryFilter": 0,
|
"disableRecentCategoryFilter": 0,
|
||||||
@@ -117,5 +126,7 @@
|
|||||||
"eventLoopInterval": 500,
|
"eventLoopInterval": 500,
|
||||||
"onlineCutoff": 30,
|
"onlineCutoff": 30,
|
||||||
"timeagoCutoff": 30,
|
"timeagoCutoff": 30,
|
||||||
"categoryWatchState": "watching"
|
"necroThreshold": 7,
|
||||||
|
"categoryWatchState": "watching",
|
||||||
|
"submitPluginUsage": 1
|
||||||
}
|
}
|
||||||
@@ -83,6 +83,7 @@ function saveDatabaseConfig(config, databaseConfig, callback) {
|
|||||||
username: databaseConfig['postgres:username'],
|
username: databaseConfig['postgres:username'],
|
||||||
password: databaseConfig['postgres:password'],
|
password: databaseConfig['postgres:password'],
|
||||||
database: databaseConfig['postgres:database'],
|
database: databaseConfig['postgres:database'],
|
||||||
|
ssl: databaseConfig['postgres:ssl'],
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
return callback(new Error('unknown database : ' + config.database));
|
return callback(new Error('unknown database : ' + config.database));
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "nodebb",
|
"name": "nodebb",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"description": "NodeBB Forum",
|
"description": "NodeBB Forum",
|
||||||
"version": "1.12.0",
|
"version": "1.13.0",
|
||||||
"homepage": "http://www.nodebb.org",
|
"homepage": "http://www.nodebb.org",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@@ -31,26 +31,25 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ace-builds": "^1.2.9",
|
"ace-builds": "^1.2.9",
|
||||||
"archiver": "^3.0.0",
|
"archiver": "^3.0.0",
|
||||||
"async": "2.6.2",
|
"async": "^3.0.1",
|
||||||
"autoprefixer": "^9.4.6",
|
"autoprefixer": "^9.4.6",
|
||||||
"bcryptjs": "2.4.3",
|
"bcryptjs": "2.4.3",
|
||||||
"benchpressjs": "^1.2.5",
|
"benchpressjs": "^2.0.0",
|
||||||
"body-parser": "^1.18.2",
|
"body-parser": "^1.18.2",
|
||||||
"bootstrap": "^3.4.0",
|
"bootstrap": "^3.4.0",
|
||||||
"bootswatch": "^3",
|
"bootswatch": "git://github.com/thomaspark/bootswatch.git#c41a8f066feb8950c6f9c6bcf5a3c37d1085404e",
|
||||||
"chart.js": "^2.7.1",
|
"chart.js": "^2.7.1",
|
||||||
"cli-graph": "^3.2.2",
|
"cli-graph": "^3.2.2",
|
||||||
"clipboard": "^2.0.1",
|
"clipboard": "^2.0.1",
|
||||||
"colors": "^1.1.2",
|
"colors": "^1.1.2",
|
||||||
"commander": "^2.12.2",
|
"commander": "^3.0.0",
|
||||||
"compression": "^1.7.1",
|
"compression": "^1.7.1",
|
||||||
"connect-ensure-login": "^0.1.1",
|
"connect-ensure-login": "^0.1.1",
|
||||||
"connect-flash": "^0.1.1",
|
"connect-flash": "^0.1.1",
|
||||||
"connect-mongo": "2.0.3",
|
"connect-mongo": "3.2.0",
|
||||||
"connect-multiparty": "^2.1.0",
|
"connect-multiparty": "^2.1.0",
|
||||||
"connect-pg-simple": "^5.0.0",
|
"connect-pg-simple": "^6.0.0",
|
||||||
"connect-redis": "3.4.0",
|
"connect-redis": "4.0.3",
|
||||||
"continuation-local-storage": "^3.2.1",
|
|
||||||
"cookie-parser": "^1.4.3",
|
"cookie-parser": "^1.4.3",
|
||||||
"cron": "^1.3.0",
|
"cron": "^1.3.0",
|
||||||
"cropperjs": "^1.2.2",
|
"cropperjs": "^1.2.2",
|
||||||
@@ -62,90 +61,90 @@
|
|||||||
"express-useragent": "^1.0.12",
|
"express-useragent": "^1.0.12",
|
||||||
"graceful-fs": "^4.1.11",
|
"graceful-fs": "^4.1.11",
|
||||||
"helmet": "^3.11.0",
|
"helmet": "^3.11.0",
|
||||||
"html-to-text": "^4.0.0",
|
"html-to-text": "^5.0.0",
|
||||||
"ipaddr.js": "^1.5.4",
|
"ipaddr.js": "^1.5.4",
|
||||||
"jquery": "^3.2.1",
|
"jquery": "^3.2.1",
|
||||||
"jsesc": "2.5.2",
|
"jsesc": "2.5.2",
|
||||||
"json-2-csv": "^3.0.0",
|
"json-2-csv": "^3.0.0",
|
||||||
"jsonwebtoken": "^8.4.0",
|
"jsonwebtoken": "^8.4.0",
|
||||||
"less": "^2.7.3",
|
"less": "^3.10.3",
|
||||||
"lodash": "^4.17.10",
|
"lodash": "^4.17.15",
|
||||||
"logrotate-stream": "^0.2.5",
|
"logrotate-stream": "^0.2.5",
|
||||||
"lru-cache": "5.1.1",
|
"lru-cache": "5.1.1",
|
||||||
"material-design-lite": "^1.3.0",
|
"material-design-lite": "^1.3.0",
|
||||||
"mime": "^2.2.0",
|
"mime": "^2.2.0",
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"mongodb": "3.1.13",
|
"mongodb": "3.4.0",
|
||||||
"morgan": "^1.9.0",
|
"morgan": "^1.9.1",
|
||||||
"mousetrap": "^1.6.1",
|
"mousetrap": "^1.6.1",
|
||||||
"mubsub-nbb": "^1.5.0",
|
"mubsub-nbb": "^1.5.1",
|
||||||
"nconf": "^0.10.0",
|
"nconf": "^0.10.0",
|
||||||
"nodebb-plugin-composer-default": "6.2.7",
|
"nodebb-plugin-composer-default": "6.3.20",
|
||||||
"nodebb-plugin-dbsearch": "3.0.6",
|
"nodebb-plugin-dbsearch": "4.0.7",
|
||||||
"nodebb-plugin-emoji": "^2.2.5",
|
"nodebb-plugin-emoji": "^3.0.0",
|
||||||
"nodebb-plugin-emoji-android": "2.0.0",
|
"nodebb-plugin-emoji-android": "2.0.0",
|
||||||
"nodebb-plugin-markdown": "8.9.2",
|
"nodebb-plugin-markdown": "8.11.0",
|
||||||
"nodebb-plugin-mentions": "2.5.2",
|
"nodebb-plugin-mentions": "2.7.3",
|
||||||
"nodebb-plugin-soundpack-default": "1.0.0",
|
"nodebb-plugin-soundpack-default": "1.0.0",
|
||||||
"nodebb-plugin-spam-be-gone": "0.6.1",
|
"nodebb-plugin-spam-be-gone": "0.6.7",
|
||||||
"nodebb-rewards-essentials": "0.0.13",
|
"nodebb-rewards-essentials": "0.1.2",
|
||||||
"nodebb-theme-lavender": "5.0.9",
|
"nodebb-theme-lavender": "5.0.11",
|
||||||
"nodebb-theme-persona": "9.1.24",
|
"nodebb-theme-persona": "10.1.30",
|
||||||
"nodebb-theme-slick": "1.2.21",
|
"nodebb-theme-slick": "1.2.28",
|
||||||
"nodebb-theme-vanilla": "10.1.21",
|
"nodebb-theme-vanilla": "11.1.12",
|
||||||
"nodebb-widget-essentials": "4.0.14",
|
"nodebb-widget-essentials": "4.0.17",
|
||||||
"nodemailer": "^5.0.0",
|
"nodemailer": "^6.0.0",
|
||||||
"passport": "^0.4.0",
|
"passport": "^0.4.0",
|
||||||
"passport-local": "1.0.0",
|
"passport-local": "1.0.0",
|
||||||
"pg": "^7.4.0",
|
"pg": "^7.4.0",
|
||||||
"pg-cursor": "^2.0.0",
|
"pg-cursor": "^2.0.0",
|
||||||
"postcss": "7.0.14",
|
"postcss": "7.0.21",
|
||||||
"postcss-clean": "1.1.0",
|
"postcss-clean": "1.1.0",
|
||||||
"promise-polyfill": "^8.0.0",
|
"promise-polyfill": "^8.0.0",
|
||||||
"prompt": "^1.0.0",
|
"prompt": "^1.0.0",
|
||||||
"redis": "2.8.0",
|
"redis": "2.8.0",
|
||||||
"request": "2.88.0",
|
"request": "2.88.0",
|
||||||
"rimraf": "2.6.3",
|
"rimraf": "3.0.0",
|
||||||
"rss": "^1.2.2",
|
"rss": "^1.2.2",
|
||||||
"sanitize-html": "^1.16.3",
|
"sanitize-html": "^1.16.3",
|
||||||
"semver": "^5.4.1",
|
"semver": "^7.0.0",
|
||||||
"serve-favicon": "^2.4.5",
|
"serve-favicon": "^2.4.5",
|
||||||
"sharp": "0.21.3",
|
"sharp": "0.23.4",
|
||||||
"sitemap": "^2.0.0",
|
"sitemap": "^5.0.0",
|
||||||
"socket.io": "2.2.0",
|
"socket.io": "2.3.0",
|
||||||
"socket.io-adapter-cluster": "^1.0.1",
|
"socket.io-adapter-cluster": "^1.0.1",
|
||||||
"socket.io-adapter-mongo": "^2.0.1",
|
"socket.io-adapter-mongo": "^2.0.4",
|
||||||
"socket.io-adapter-postgres": "^1.2.0",
|
"socket.io-adapter-postgres": "^1.2.1",
|
||||||
"socket.io-client": "2.2.0",
|
"socket.io-client": "2.3.0",
|
||||||
"socket.io-redis": "5.2.0",
|
"socket.io-redis": "5.2.0",
|
||||||
"socketio-wildcard": "2.0.0",
|
"socketio-wildcard": "2.0.0",
|
||||||
"spdx-license-list": "^5.0.0",
|
"spdx-license-list": "^6.0.0",
|
||||||
"spider-detector": "1.0.19",
|
"spider-detector": "2.0.0",
|
||||||
"textcomplete": "^0.17.1",
|
"textcomplete": "^0.17.1",
|
||||||
"textcomplete.contenteditable": "^0.1.1",
|
"textcomplete.contenteditable": "^0.1.1",
|
||||||
"toobusy-js": "^0.5.1",
|
"toobusy-js": "^0.5.1",
|
||||||
"uglify-es": "^3.3.9",
|
"uglify-es": "^3.3.9",
|
||||||
"validator": "10.11.0",
|
"validator": "12.1.0",
|
||||||
"winston": "3.2.1",
|
"winston": "3.2.1",
|
||||||
"xml": "^1.0.1",
|
"xml": "^1.0.1",
|
||||||
"xregexp": "^4.1.1",
|
"xregexp": "^4.1.1",
|
||||||
"zxcvbn": "^4.4.2"
|
"zxcvbn": "^4.4.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@commitlint/cli": "7.5.2",
|
"@commitlint/cli": "8.2.0",
|
||||||
"@commitlint/config-angular": "7.5.0",
|
"@commitlint/config-angular": "8.2.0",
|
||||||
"coveralls": "3.0.3",
|
"coveralls": "3.0.9",
|
||||||
"eslint": "5.14.1",
|
"eslint": "6.7.0",
|
||||||
"eslint-config-airbnb-base": "13.1.0",
|
"eslint-config-airbnb-base": "14.0.0",
|
||||||
"eslint-plugin-import": "2.16.0",
|
"eslint-plugin-import": "2.18.2",
|
||||||
"grunt": "1.0.3",
|
"grunt": "1.0.4",
|
||||||
"grunt-contrib-watch": "1.1.0",
|
"grunt-contrib-watch": "1.1.0",
|
||||||
"husky": "1.3.1",
|
"husky": "3.1.0",
|
||||||
"jsdom": "13.2.0",
|
"jsdom": "15.2.1",
|
||||||
"lint-staged": "8.1.4",
|
"lint-staged": "9.4.2",
|
||||||
"mocha": "6.0.1",
|
"mocha": "6.2.2",
|
||||||
"mocha-lcov-reporter": "1.3.0",
|
"mocha-lcov-reporter": "1.3.0",
|
||||||
"nyc": "13.3.0",
|
"nyc": "14.1.1",
|
||||||
"smtp-server": "3.5.0"
|
"smtp-server": "3.5.0"
|
||||||
},
|
},
|
||||||
"bugs": {
|
"bugs": {
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ var scripts = [
|
|||||||
'public/vendor/xregexp/unicode/unicode-base.js',
|
'public/vendor/xregexp/unicode/unicode-base.js',
|
||||||
'public/src/utils.js',
|
'public/src/utils.js',
|
||||||
'public/src/installer/install.js',
|
'public/src/installer/install.js',
|
||||||
|
'node_modules/zxcvbn/dist/zxcvbn.js',
|
||||||
];
|
];
|
||||||
|
|
||||||
var installing = false;
|
var installing = false;
|
||||||
@@ -131,6 +132,7 @@ function welcome(req, res) {
|
|||||||
success: success,
|
success: success,
|
||||||
values: req.body,
|
values: req.body,
|
||||||
minimumPasswordLength: defaults.minimumPasswordLength,
|
minimumPasswordLength: defaults.minimumPasswordLength,
|
||||||
|
minimumPasswordStrength: defaults.minimumPasswordStrength,
|
||||||
installing: installing,
|
installing: installing,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -181,7 +183,7 @@ function install(req, res) {
|
|||||||
function launch(req, res) {
|
function launch(req, res) {
|
||||||
res.json({});
|
res.json({});
|
||||||
server.close();
|
server.close();
|
||||||
|
req.setTimeout(0);
|
||||||
var child;
|
var child;
|
||||||
|
|
||||||
if (!nconf.get('launchCmd')) {
|
if (!nconf.get('launchCmd')) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"alert.confirm-rebuild-and-restart": "Are you sure you wish to rebuild and restart NodeBB?",
|
"alert.confirm-rebuild-and-restart": "هل أنت متأكد إنك تريد إعادة بناء وتشغيل الـ NodeBB؟",
|
||||||
"alert.confirm-restart": "هل تريد بالتأكيد إعادة تشغيل NodeBB؟",
|
"alert.confirm-restart": "هل تريد بالتأكيد إعادة تشغيل NodeBB؟",
|
||||||
|
|
||||||
"acp-title": "لوحة تحكم إدارة NodeBB | %1",
|
"acp-title": "لوحة تحكم إدارة NodeBB | %1",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"posts-in-cache": "المشاركات المخزنة مؤقتاً",
|
"posts-in-cache": "المشاركات المخزنة مؤقتاً",
|
||||||
"average-post-size": "متوسط حجم المشاركة",
|
"average-post-size": "متوسط حجم المشاركة",
|
||||||
"length-to-max": "الطول / أقصى حد",
|
"length-to-max": "الطول / أقصى حد",
|
||||||
"percent-full": "%1% Full",
|
"percent-full": "1% كاملة",
|
||||||
"post-cache-size": "حجم التخزين المؤقت للمشاركات",
|
"post-cache-size": "حجم التخزين المؤقت للمشاركات",
|
||||||
"items-in-cache": "العناصر في التخزين المؤقت",
|
"items-in-cache": "العناصر في التخزين المؤقت",
|
||||||
"control-panel": "لوحة التحكم",
|
"control-panel": "لوحة التحكم",
|
||||||
|
|||||||
@@ -2,5 +2,10 @@
|
|||||||
"events": "أحداث",
|
"events": "أحداث",
|
||||||
"no-events": "لا توجد أحداث",
|
"no-events": "لا توجد أحداث",
|
||||||
"control-panel": "لوحة تحكم الأحداث",
|
"control-panel": "لوحة تحكم الأحداث",
|
||||||
"delete-events": "حذف الأحداث"
|
"filters": "Filters",
|
||||||
|
"filters-apply": "Apply Filters",
|
||||||
|
"filter-type": "Event Type",
|
||||||
|
"filter-start": "Start Date",
|
||||||
|
"filter-end": "End Date",
|
||||||
|
"filter-perPage": "Per Page"
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
"custom-js.enable": "تفعيل Javascript المخصصة",
|
"custom-js.enable": "تفعيل Javascript المخصصة",
|
||||||
|
|
||||||
"custom-header": "ترويسة مخصصة",
|
"custom-header": "ترويسة مخصصة",
|
||||||
"custom-header.description": "أدخل HTML الخاصة بك هنا (مثل العلامات الوصفية، وما إلى ذلك)، والتي سيتم إلحاقها الى<code><head></code> في تصميم المنتدى. يسمح باستخدام علامات النص البرمجي، ولكن سيتم تعطيلها؛ لتوفر تبويبة\n<a href=\"#custom-header\" data-toggle=\"tab\">Javascript المخصصة</a>",
|
"custom-header.description": "Enter custom HTML here (ex. Meta Tags, etc.), which will be appended to the <code><head></code> section of your forum's markup. Script tags are allowed, but are discouraged, as the <a href=\"#custom-js\" data-toggle=\"tab\">Custom Javascript</a> tab is available.",
|
||||||
"custom-header.enable": "تفعيل الترويسة المخصصة",
|
"custom-header.enable": "تفعيل الترويسة المخصصة",
|
||||||
|
|
||||||
"custom-css.livereload": "تفعيل إعادة التحميل المباشرة",
|
"custom-css.livereload": "تفعيل إعادة التحميل المباشرة",
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
"online": "online",
|
"online": "online",
|
||||||
"git": "git",
|
"git": "git",
|
||||||
"memory": "memory",
|
"memory": "memory",
|
||||||
"load": "load",
|
"load": "system load",
|
||||||
|
"cpu-usage": "cpu usage",
|
||||||
"uptime": "uptime",
|
"uptime": "uptime",
|
||||||
|
|
||||||
"registered": "Registered",
|
"registered": "Registered",
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
"plugin-search": "البحث عن الإضافات",
|
"plugin-search": "البحث عن الإضافات",
|
||||||
"plugin-search-placeholder": "جاري البحث عن الإضافات...",
|
"plugin-search-placeholder": "جاري البحث عن الإضافات...",
|
||||||
|
"submit-anonymous-usage": "Submit anonymous plugin usage data.",
|
||||||
"reorder-plugins": "إعادة ترتيب الإضافات",
|
"reorder-plugins": "إعادة ترتيب الإضافات",
|
||||||
"order-active": "ترتيب الإضافات المفعلة",
|
"order-active": "ترتيب الإضافات المفعلة",
|
||||||
"dev-interested": "هل انته مهتم ببرمجة إضافات لـNodeBB؟",
|
"dev-interested": "هل انته مهتم ببرمجة إضافات لـNodeBB؟",
|
||||||
@@ -29,6 +30,8 @@
|
|||||||
"plugin-item.more-info": "لمزيد من المعلومات:",
|
"plugin-item.more-info": "لمزيد من المعلومات:",
|
||||||
"plugin-item.unknown": "غير معروف",
|
"plugin-item.unknown": "غير معروف",
|
||||||
"plugin-item.unknown-explanation": "تعذر تحديد حالة هذه الإضافة، ربما بسبب خطأ في الإعدادات.",
|
"plugin-item.unknown-explanation": "تعذر تحديد حالة هذه الإضافة، ربما بسبب خطأ في الإعدادات.",
|
||||||
|
"plugin-item.compatible": "This plugin works on NodeBB %1",
|
||||||
|
"plugin-item.not-compatible": "This plugin has no compatibility data, make sure it works before installing on your production environment.",
|
||||||
|
|
||||||
"alert.enabled": "الإضافة مفعلة",
|
"alert.enabled": "الإضافة مفعلة",
|
||||||
"alert.disabled": "الإضافة معطلة",
|
"alert.disabled": "الإضافة معطلة",
|
||||||
|
|||||||
@@ -18,5 +18,13 @@
|
|||||||
"alert.update-success": "Successfully updated widgets",
|
"alert.update-success": "Successfully updated widgets",
|
||||||
"alert.clone-success": "Successfully cloned widgets",
|
"alert.clone-success": "Successfully cloned widgets",
|
||||||
|
|
||||||
"error.select-clone": "Please select a page to clone from"
|
"error.select-clone": "Please select a page to clone from",
|
||||||
|
|
||||||
|
"title": "Title",
|
||||||
|
"title.placeholder": "Title (only shown on some containers)",
|
||||||
|
"container": "Container",
|
||||||
|
"container.placeholder": "Drag and drop a container or enter HTML here.",
|
||||||
|
"show-to-groups": "Show to groups",
|
||||||
|
"hide-from-groups": "Hide from groups",
|
||||||
|
"hide-on-mobile": "Hide on mobile"
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
"forum-traffic": "Forum Traffic",
|
"forum-traffic": "Forum Traffic",
|
||||||
"page-views": "مشاهدات الصفحات",
|
"page-views": "مشاهدات الصفحات",
|
||||||
"unique-visitors": "زائرين فريدين",
|
"unique-visitors": "زائرين فريدين",
|
||||||
"users": "أعضاء",
|
"new-users": "New Users",
|
||||||
"posts": "مشاركات",
|
"posts": "مشاركات",
|
||||||
"topics": "مواضيع",
|
"topics": "مواضيع",
|
||||||
"page-views-seven": "آخر 7 ايام",
|
"page-views-seven": "آخر 7 ايام",
|
||||||
@@ -14,9 +14,12 @@
|
|||||||
"page-views-custom-help": "أدخل نطاقا زمنيا لمرات مشاهدة الصفحات التي ترغب في عرضها. إذا لم يظهر منتقي التاريخ، فإن التنسيق المقبول هو <code>YYYY-MM-DD</code>",
|
"page-views-custom-help": "أدخل نطاقا زمنيا لمرات مشاهدة الصفحات التي ترغب في عرضها. إذا لم يظهر منتقي التاريخ، فإن التنسيق المقبول هو <code>YYYY-MM-DD</code>",
|
||||||
"page-views-custom-error": "الرجاء إدخال نطاق تاريخ صالح بالتنسيق <code>YYYY-MM-DD</code>",
|
"page-views-custom-error": "الرجاء إدخال نطاق تاريخ صالح بالتنسيق <code>YYYY-MM-DD</code>",
|
||||||
|
|
||||||
"stats.day": "يوم",
|
"stats.yesterday": "Yesterday",
|
||||||
"stats.week": "إسبوع",
|
"stats.today": "Today",
|
||||||
"stats.month": "شهر",
|
"stats.last-week": "Last Week",
|
||||||
|
"stats.this-week": "This Week",
|
||||||
|
"stats.last-month": "Last Month",
|
||||||
|
"stats.this-month": "This Month",
|
||||||
"stats.all": "كل الوقت",
|
"stats.all": "كل الوقت",
|
||||||
|
|
||||||
"updates": "تحديثات",
|
"updates": "تحديثات",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
"parent-category": "Parent Category",
|
"parent-category": "Parent Category",
|
||||||
"optional-parent-category": "(Optional) Parent Category",
|
"optional-parent-category": "(Optional) Parent Category",
|
||||||
"parent-category-none": "(None)",
|
"parent-category-none": "(None)",
|
||||||
|
"copy-parent": "Copy Parent",
|
||||||
"copy-settings": "Copy Settings From",
|
"copy-settings": "Copy Settings From",
|
||||||
"optional-clone-settings": "(Optional) Clone Settings From Category",
|
"optional-clone-settings": "(Optional) Clone Settings From Category",
|
||||||
"clone-children": "Clone Children Categories And Settings",
|
"clone-children": "Clone Children Categories And Settings",
|
||||||
@@ -44,7 +45,12 @@
|
|||||||
"privileges.search-group": "Add Group",
|
"privileges.search-group": "Add Group",
|
||||||
"privileges.copy-to-children": "Copy to Children",
|
"privileges.copy-to-children": "Copy to Children",
|
||||||
"privileges.copy-from-category": "Copy from Category",
|
"privileges.copy-from-category": "Copy from Category",
|
||||||
|
"privileges.copy-privileges-to-all-categories": "Copy to All Categories",
|
||||||
|
"privileges.copy-group-privileges-to-children": "Copy this group's privileges to the children of this category.",
|
||||||
|
"privileges.copy-group-privileges-to-all-categories": "Copy this group's privileges to all categories.",
|
||||||
|
"privileges.copy-group-privileges-from": "Copy this group's privileges from another category.",
|
||||||
"privileges.inherit": "If the <code>registered-users</code> group is granted a specific privilege, all other groups receive an <strong>implicit privilege</strong>, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the <code>registered-users</code> user group, and so, privileges for additional groups need not be explicitly granted.",
|
"privileges.inherit": "If the <code>registered-users</code> group is granted a specific privilege, all other groups receive an <strong>implicit privilege</strong>, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the <code>registered-users</code> user group, and so, privileges for additional groups need not be explicitly granted.",
|
||||||
|
"privileges.copy-success": "Privileges copied!",
|
||||||
|
|
||||||
"analytics.back": "Back to Categories List",
|
"analytics.back": "Back to Categories List",
|
||||||
"analytics.title": "Analytics for \"%1\" category",
|
"analytics.title": "Analytics for \"%1\" category",
|
||||||
|
|||||||
21
public/language/ar/admin/manage/digest.json
Normal file
21
public/language/ar/admin/manage/digest.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"lead": "A listing of digest delivery stats and times is displayed below.",
|
||||||
|
"disclaimer": "Please be advised that email delivery is not guaranteed, due to the nature of email technology. Many variables factor into whether an email sent to the recipient server is ultimately delivered into the user's inbox, including server reputation, blacklisted IP addresses, and whether DKIM/SPF/DMARC is configured.",
|
||||||
|
"disclaimer-continued": "A successful delivery means the message was sent successfully by NodeBB and acknowledged by the recipient server. It does not mean the email landed in the inbox. For best results, we recommend using a third-party email delivery service such as <a href=\"https://sendgrid.com/why-sendgrid/\">SendGrid</a>.",
|
||||||
|
|
||||||
|
"user": "User",
|
||||||
|
"subscription": "Subscription Type",
|
||||||
|
"last-delivery": "Last successful delivery",
|
||||||
|
"default": "System default",
|
||||||
|
"default-help": "<em>System default</em> means the user has not explicitly overridden the global forum setting for digests, which is currently: "<strong>%1</strong>"",
|
||||||
|
"resend": "Resend Digest",
|
||||||
|
"resend-all-confirm": "Are you sure you wish to mnually execute this digest run?",
|
||||||
|
"resent-single": "Manual digest resend completed",
|
||||||
|
"resent-day": "Daily digest resent",
|
||||||
|
"resent-week": "Weekly digest resent",
|
||||||
|
"resent-month": "Monthly digest resent",
|
||||||
|
"null": "<em>Never</em>",
|
||||||
|
"manual-run": "Manual digest run:",
|
||||||
|
|
||||||
|
"no-delivery-data": "No delivery data found"
|
||||||
|
}
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "اسم المجموعة",
|
"name": "اسم المجموعة",
|
||||||
|
"badge": "Badge",
|
||||||
|
"properties": "Properties",
|
||||||
"description": "Group Description",
|
"description": "Group Description",
|
||||||
"member-count": "Member Count",
|
"member-count": "Member Count",
|
||||||
"system": "System Group",
|
"system": "System",
|
||||||
|
"hidden": "Hidden",
|
||||||
|
"private": "Private",
|
||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"search-placeholder": "Search",
|
"search-placeholder": "Search",
|
||||||
"create": "Create Group",
|
"create": "Create Group",
|
||||||
@@ -17,10 +21,12 @@
|
|||||||
"edit.user-title": "Title of Members",
|
"edit.user-title": "Title of Members",
|
||||||
"edit.icon": "Group Icon",
|
"edit.icon": "Group Icon",
|
||||||
"edit.label-color": "Group Label Color",
|
"edit.label-color": "Group Label Color",
|
||||||
|
"edit.text-color": "Group Text Color",
|
||||||
"edit.show-badge": "Show Badge",
|
"edit.show-badge": "Show Badge",
|
||||||
"edit.private-details": "If enabled, joining of groups requires approval from a group owner.",
|
"edit.private-details": "If enabled, joining of groups requires approval from a group owner.",
|
||||||
"edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.",
|
"edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.",
|
||||||
"edit.disable-requests": "Disable join requests",
|
"edit.disable-join": "Disable join requests",
|
||||||
|
"edit.disable-leave": "Disallow users from leaving the group",
|
||||||
"edit.hidden": "Hidden",
|
"edit.hidden": "Hidden",
|
||||||
"edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
|
"edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
|
||||||
"edit.add-user": "Add User to Group",
|
"edit.add-user": "Add User to Group",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"post-queue": "Post Queue",
|
"post-queue": "Post Queue",
|
||||||
"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings → Post → Posting Restrictions</a> and enable <strong>Post Queue</strong>.",
|
"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings → Post → Post Queue</a> and enable <strong>Post Queue</strong>.",
|
||||||
"user": "User",
|
"user": "User",
|
||||||
"category": "Category",
|
"category": "Category",
|
||||||
"title": "Title",
|
"title": "Title",
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"global": "Global",
|
"global": "Global",
|
||||||
"global.no-users": "No user-specific global privileges.",
|
"global.no-users": "No user-specific global privileges.",
|
||||||
|
"group-privileges": "Group Privileges",
|
||||||
|
"user-privileges": "User Privileges",
|
||||||
"chat": "Chat",
|
"chat": "Chat",
|
||||||
"upload-images": "Upload Images",
|
"upload-images": "Upload Images",
|
||||||
"upload-files": "Upload Files",
|
"upload-files": "Upload Files",
|
||||||
@@ -15,7 +16,7 @@
|
|||||||
"view-groups": "View Groups",
|
"view-groups": "View Groups",
|
||||||
"allow-local-login": "Local Login",
|
"allow-local-login": "Local Login",
|
||||||
"allow-group-creation": "Group Create",
|
"allow-group-creation": "Group Create",
|
||||||
|
"view-users-info": "View Users Info",
|
||||||
"find-category": "Find Category",
|
"find-category": "Find Category",
|
||||||
"access-category": "Access Category",
|
"access-category": "Access Category",
|
||||||
"access-topics": "Access Topics",
|
"access-topics": "Access Topics",
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
"validate-email": "Validate Email",
|
"validate-email": "Validate Email",
|
||||||
"send-validation-email": "Send Validation Email",
|
"send-validation-email": "Send Validation Email",
|
||||||
"password-reset-email": "Send Password Reset Email",
|
"password-reset-email": "Send Password Reset Email",
|
||||||
|
"force-password-reset": "Force Password Reset & Log User Out",
|
||||||
"ban": "Ban User(s)",
|
"ban": "Ban User(s)",
|
||||||
"temp-ban": "Ban User(s) Temporarily",
|
"temp-ban": "Ban User(s) Temporarily",
|
||||||
"unban": "Unban User(s)",
|
"unban": "Unban User(s)",
|
||||||
@@ -14,6 +15,8 @@
|
|||||||
"delete": "Delete User(s)",
|
"delete": "Delete User(s)",
|
||||||
"purge": "Delete User(s) and Content",
|
"purge": "Delete User(s) and Content",
|
||||||
"download-csv": "Download CSV",
|
"download-csv": "Download CSV",
|
||||||
|
"manage-groups": "Manage Groups",
|
||||||
|
"add-group": "Add Group",
|
||||||
"invite": "Invite",
|
"invite": "Invite",
|
||||||
"new": "New User",
|
"new": "New User",
|
||||||
|
|
||||||
@@ -27,6 +30,11 @@
|
|||||||
"pills.banned": "Banned",
|
"pills.banned": "Banned",
|
||||||
"pills.search": "User Search",
|
"pills.search": "User Search",
|
||||||
|
|
||||||
|
"50-per-page": "50 per page",
|
||||||
|
"100-per-page": "100 per page",
|
||||||
|
"250-per-page": "250 per page",
|
||||||
|
"500-per-page": "500 per page",
|
||||||
|
|
||||||
"search.uid": "By User ID",
|
"search.uid": "By User ID",
|
||||||
"search.uid-placeholder": "Enter a user ID to search",
|
"search.uid-placeholder": "Enter a user ID to search",
|
||||||
"search.username": "By User Name",
|
"search.username": "By User Name",
|
||||||
@@ -81,7 +89,9 @@
|
|||||||
"alerts.confirm-remove-moderator": "Do you really want to remove this moderator?",
|
"alerts.confirm-remove-moderator": "Do you really want to remove this moderator?",
|
||||||
"alerts.remove-moderator-success": "User is no longer moderator.",
|
"alerts.remove-moderator-success": "User is no longer moderator.",
|
||||||
"alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?",
|
"alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?",
|
||||||
|
"alerts.confirm-force-password-reset": "Are you sure you want to force the password reset and log out these user(s)?",
|
||||||
"alerts.validate-email-success": "Emails validated",
|
"alerts.validate-email-success": "Emails validated",
|
||||||
|
"alerts.validate-force-password-reset-success": "User(s) passwords have been reset and their existing sessions have been revoked.",
|
||||||
"alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?",
|
"alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?",
|
||||||
"alerts.confirm-delete": "<b>Warning!</b><br/>Do you really want to delete user(s)?<br/> This action is not reversable! Only the user account will be deleted, their posts and topics will remain.",
|
"alerts.confirm-delete": "<b>Warning!</b><br/>Do you really want to delete user(s)?<br/> This action is not reversable! Only the user account will be deleted, their posts and topics will remain.",
|
||||||
"alerts.delete-success": "User(s) Deleted!",
|
"alerts.delete-success": "User(s) Deleted!",
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
"manage/groups": "المجموعات",
|
"manage/groups": "المجموعات",
|
||||||
"manage/ip-blacklist": "قائمة حظر عناوين IP",
|
"manage/ip-blacklist": "قائمة حظر عناوين IP",
|
||||||
"manage/uploads": "Uploads",
|
"manage/uploads": "Uploads",
|
||||||
|
"manage/digest": "Digests",
|
||||||
|
|
||||||
"section-settings": "إعدادات",
|
"section-settings": "إعدادات",
|
||||||
"settings/general": "عامة",
|
"settings/general": "عامة",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"maintenance-mode": "Maintenance Mode",
|
"maintenance-mode": "Maintenance Mode",
|
||||||
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
|
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
|
||||||
|
"maintenance-mode.status": "Maintenance Mode Status Code",
|
||||||
"maintenance-mode.message": "Maintenance Message",
|
"maintenance-mode.message": "Maintenance Message",
|
||||||
"headers": "Headers",
|
"headers": "Headers",
|
||||||
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
|
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
|
||||||
|
|||||||
@@ -6,6 +6,6 @@
|
|||||||
"max-length": "Maximum length of chat messages",
|
"max-length": "Maximum length of chat messages",
|
||||||
"max-room-size": "Maximum number of users in chat rooms",
|
"max-room-size": "Maximum number of users in chat rooms",
|
||||||
"delay": "Time between chat messages in milliseconds",
|
"delay": "Time between chat messages in milliseconds",
|
||||||
"restrictions.seconds-edit-after": "Number of seconds before users are allowed to edit chat messages after posting. (0 disabled)",
|
"restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)",
|
||||||
"restrictions.seconds-delete-after": "Number of seconds before users are allowed to delete chat messages after posting. (0 disabled)"
|
"restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)"
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
"consent.message": "Notification message",
|
"consent.message": "Notification message",
|
||||||
"consent.acceptance": "Acceptance message",
|
"consent.acceptance": "Acceptance message",
|
||||||
"consent.link-text": "Policy Link Text",
|
"consent.link-text": "Policy Link Text",
|
||||||
|
"consent.link-url": "Policy Link URL",
|
||||||
"consent.blank-localised-default": "Leave blank to use NodeBB localised defaults",
|
"consent.blank-localised-default": "Leave blank to use NodeBB localised defaults",
|
||||||
"settings": "Settings",
|
"settings": "Settings",
|
||||||
"cookie-domain": "Session cookie domain",
|
"cookie-domain": "Session cookie domain",
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
|
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
|
||||||
"from": "From Name",
|
"from": "From Name",
|
||||||
"from-help": "The from name to display in the email.",
|
"from-help": "The from name to display in the email.",
|
||||||
|
"sendmail-rate-limit": "Send <em>X</em> emails...",
|
||||||
|
"sendmail-rate-delta": "... every <em>X</em> milliseconds",
|
||||||
|
"sendmail-rate-help": "Instructs the NodeBB mailer to limit the number of messages sent at once in order to not overwhelm email receiving services. These options do not apply if SMTP Transport is enabled (below).",
|
||||||
|
|
||||||
"smtp-transport": "SMTP Transport",
|
"smtp-transport": "SMTP Transport",
|
||||||
"smtp-transport.enabled": "Use an external email server to send emails",
|
"smtp-transport.enabled": "Use an external email server to send emails",
|
||||||
@@ -30,8 +33,8 @@
|
|||||||
"testing.select": "Select Email Template",
|
"testing.select": "Select Email Template",
|
||||||
"testing.send": "Send Test Email",
|
"testing.send": "Send Test Email",
|
||||||
"testing.send-help": "The test email will be sent to the currently logged in user's email address.",
|
"testing.send-help": "The test email will be sent to the currently logged in user's email address.",
|
||||||
"subscriptions": "Email Subscriptions",
|
"subscriptions": "Email Digests",
|
||||||
"subscriptions.disable": "Disable subscriber notification emails",
|
"subscriptions.disable": "Disable email digests",
|
||||||
"subscriptions.hour": "Digest Hour",
|
"subscriptions.hour": "Digest Hour",
|
||||||
"subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>"
|
"subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>"
|
||||||
}
|
}
|
||||||
@@ -7,19 +7,22 @@
|
|||||||
"sorting.most-posts": "Most Posts",
|
"sorting.most-posts": "Most Posts",
|
||||||
"sorting.topic-default": "Default Topic Sorting",
|
"sorting.topic-default": "Default Topic Sorting",
|
||||||
"length": "Post Length",
|
"length": "Post Length",
|
||||||
|
"post-queue": "Post Queue",
|
||||||
"restrictions": "Posting Restrictions",
|
"restrictions": "Posting Restrictions",
|
||||||
"restrictions-new": "New User Restrictions",
|
"restrictions-new": "New User Restrictions",
|
||||||
"restrictions.post-queue": "Enable post queue",
|
"restrictions.post-queue": "Enable post queue",
|
||||||
|
"restrictions.post-queue-rep-threshold": "Reputation required to bypass post queue",
|
||||||
|
"restrictions.groups-exempt-from-post-queue": "Select groups that should be exempt from the post queue",
|
||||||
"restrictions-new.post-queue": "Enable new user restrictions",
|
"restrictions-new.post-queue": "Enable new user restrictions",
|
||||||
"restrictions.post-queue-help": "Enabling post queue will put the posts of new users in a queue for approval.",
|
"restrictions.post-queue-help": "Enabling post queue will put the posts of new users in a queue for approval",
|
||||||
"restrictions-new.post-queue-help": "Enabling new user restrictions will set restrictions on posts created by new users.",
|
"restrictions-new.post-queue-help": "Enabling new user restrictions will set restrictions on posts created by new users",
|
||||||
"restrictions.seconds-between": "Seconds between posts",
|
"restrictions.seconds-between": "Number of seconds between posts",
|
||||||
"restrictions.seconds-between-new": "Seconds between posts for new users",
|
"restrictions.seconds-between-new": "Seconds between posts for new users",
|
||||||
"restrictions.rep-threshold": "Reputation threshold before these restrictions are lifted",
|
"restrictions.rep-threshold": "Reputation threshold before these restrictions are lifted",
|
||||||
"restrictions.seconds-defore-new": "Seconds before new user can post",
|
"restrictions.seconds-before-new": "Seconds before a new user can make their first post",
|
||||||
"restrictions.seconds-edit-after": "Number of seconds before users are allowed to edit posts after posting. (0 disabled)",
|
"restrictions.seconds-edit-after": "Number of seconds a post remains editable (set to 0 to disable)",
|
||||||
"restrictions.seconds-delete-after": "Number of seconds before users are allowed to delete posts after posting. (0 disabled)",
|
"restrictions.seconds-delete-after": "Number of seconds a post remains deletable (set to 0 to disable)",
|
||||||
"restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)",
|
"restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics (set to 0 to disable)",
|
||||||
"restrictions.min-title-length": "Minimum Title Length",
|
"restrictions.min-title-length": "Minimum Title Length",
|
||||||
"restrictions.max-title-length": "Maximum Title Length",
|
"restrictions.max-title-length": "Maximum Title Length",
|
||||||
"restrictions.min-post-length": "Minimum Post Length",
|
"restrictions.min-post-length": "Minimum Post Length",
|
||||||
@@ -29,6 +32,8 @@
|
|||||||
"timestamp": "Timestamp",
|
"timestamp": "Timestamp",
|
||||||
"timestamp.cut-off": "Date cut-off (in days)",
|
"timestamp.cut-off": "Date cut-off (in days)",
|
||||||
"timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).<br /><em>(Default: <code>30</code>, or one month). Set to 0 to always display dates, leave blank to always display relative times.</em>",
|
"timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).<br /><em>(Default: <code>30</code>, or one month). Set to 0 to always display dates, leave blank to always display relative times.</em>",
|
||||||
|
"timestamp.necro-threshold": "Necro Threshold (in days)",
|
||||||
|
"timestamp.necro-threshold-help": "A message will be shown between posts if the time between them is longer than the necro threshold. (Default: <code>7</code>, or one week). Set to 0 to disable.</em>",
|
||||||
"teaser": "Teaser Post",
|
"teaser": "Teaser Post",
|
||||||
"teaser.last-post": "Last – Show the latest post, including the original post, if no replies",
|
"teaser.last-post": "Last – Show the latest post, including the original post, if no replies",
|
||||||
"teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies",
|
"teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies",
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
"posts": "المشاركات",
|
"posts": "المشاركات",
|
||||||
"allow-files": "السماح للأعضاء بتحميل الملفات الإعتيادية",
|
"allow-files": "السماح للأعضاء بتحميل الملفات الإعتيادية",
|
||||||
"private": "جعل الملفات التي تم رفعها خاصة",
|
"private": "جعل الملفات التي تم رفعها خاصة",
|
||||||
|
"strip-exif-data": "Strip EXIF Data",
|
||||||
"private-extensions": "File extensions to make private",
|
"private-extensions": "File extensions to make private",
|
||||||
"private-uploads-extensions-help": "Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
|
"private-uploads-extensions-help": "Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
|
||||||
"resize-image-width-threshold": "Resize images if they are wider than specified width",
|
"resize-image-width-threshold": "Resize images if they are wider than specified width",
|
||||||
|
|||||||
@@ -34,13 +34,15 @@
|
|||||||
"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
|
"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
|
||||||
"registration": "تسجيل المستخدم",
|
"registration": "تسجيل المستخدم",
|
||||||
"registration-type": "نوع التسجيل",
|
"registration-type": "نوع التسجيل",
|
||||||
|
"registration-approval-type": "Registration Approval Type",
|
||||||
"registration-type.normal": "عادي",
|
"registration-type.normal": "عادي",
|
||||||
"registration-type.admin-approval": "بموافقة الإدارة",
|
"registration-type.admin-approval": "بموافقة الإدارة",
|
||||||
"registration-type.admin-approval-ip": "بموافقة الإدارة لعناوين IP",
|
"registration-type.admin-approval-ip": "بموافقة الإدارة لعناوين IP",
|
||||||
"registration-type.invite-only": "بالدعوات فقط",
|
"registration-type.invite-only": "بالدعوات فقط",
|
||||||
"registration-type.admin-invite-only": "بالدعوات من قبل الإدارة فقط",
|
"registration-type.admin-invite-only": "بالدعوات من قبل الإدارة فقط",
|
||||||
"registration-type.disabled": "لا يوجد تسجيل",
|
"registration-type.disabled": "لا يوجد تسجيل",
|
||||||
"registration-type.help": "عادي - بإمكان المستخدمين التسجيل من خلال صفحة /التسجيل.<br/>\nبموافقة الإدارة - يتم وضع قائمة تسجيلات المستخدمين في <a href=\"%1/admin/manage/registration\">قائمة إنتظار موافقة</a> الإدارة.<br/>\nبموافقة الإدارة لعناوين IP - عادي بالنسبة للمستخدمين الجدد، ويتطلب موافقة الإدارة للتسجيل من عناوين IP تم التسجيل بإستخدامها مسبقاً.<br/>\nبالدعوات فقط - بإمكان المستخدمين إرسال دعوات من خلال صفحة <a href=\"%1/users\" target=\"_blank\">الأعضاء</a>.<br/>\nبالدعوات من قبل الإدارة فقط - فقط المراء بإمكانهم إرسال الدعوات من خلال صفحة <a href=\"%1/users\" target=\"_blank\">الأعضاء</a> و صفحات <a href=\"%1/admin/manage/users\">الإدارة/المشرفين/الأعضاء</a>.<br/>\nلا يوجد تسجيل - إغلاق خيار التسجيل بالكامل.<br/>",
|
"registration-type.help": "Normal - Users can register from the /register page.<br/>\nInvite Only - Users can invite others from the <a href=\"%1/users\" target=\"_blank\">users</a> page.<br/>\nAdmin Invite Only - Only administrators can invite others from <a href=\"%1/users\" target=\"_blank\">users</a> and <a href=\"%1/admin/manage/users\">admin/manage/users</a> pages.<br/>\nNo registration - No user registration.<br/>",
|
||||||
|
"registration-approval-type.help": "Normal - Users are registered immediately.<br/>\nAdmin Approval - User registrations are placed in an <a href=\"%1/admin/manage/registration\">approval queue</a> for administrators.<br/>\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.<br/>",
|
||||||
"registration.max-invites": "الحد الأقصى للدعوات لكل عضو",
|
"registration.max-invites": "الحد الأقصى للدعوات لكل عضو",
|
||||||
"max-invites": "الحد الأقصى للدعوات لكل عضو",
|
"max-invites": "الحد الأقصى للدعوات لكل عضو",
|
||||||
"max-invites-help": "0 لعدم تحديد قيود، الإدارة تحصل على دعوات لامحدودة <br> هذا الخيار يعمل فقط عند تحديد خيار \"بالدعوات فقط\"",
|
"max-invites-help": "0 لعدم تحديد قيود، الإدارة تحصل على دعوات لامحدودة <br> هذا الخيار يعمل فقط عند تحديد خيار \"بالدعوات فقط\"",
|
||||||
|
|||||||
@@ -10,9 +10,9 @@
|
|||||||
"watch": "تابع",
|
"watch": "تابع",
|
||||||
"ignore": "تجاهل",
|
"ignore": "تجاهل",
|
||||||
"watching": "متابع",
|
"watching": "متابع",
|
||||||
"not-watching": "Not Watching",
|
"not-watching": "لست متابع",
|
||||||
"ignoring": "متجاهل",
|
"ignoring": "متجاهل",
|
||||||
"watching.description": "Show topics in unread and recent",
|
"watching.description": "أظهر المواضيع في الغير مقروء و الحديث",
|
||||||
"not-watching.description": "Do not show topics in unread, show in recent",
|
"not-watching.description": "Do not show topics in unread, show in recent",
|
||||||
"ignoring.description": "Do not show topics in unread and recent",
|
"ignoring.description": "Do not show topics in unread and recent",
|
||||||
"watching.message": "You are now watching updates from this category and all subcategories",
|
"watching.message": "You are now watching updates from this category and all subcategories",
|
||||||
|
|||||||
@@ -13,14 +13,13 @@
|
|||||||
"welcome.cta": "انقر هنا لتفعيل عنوان بريدك الإلكتروني",
|
"welcome.cta": "انقر هنا لتفعيل عنوان بريدك الإلكتروني",
|
||||||
"invitation.text1": "%1 قام بدعوتك للانضمام لـ %2",
|
"invitation.text1": "%1 قام بدعوتك للانضمام لـ %2",
|
||||||
"invitation.text2": "Your invitation will expire in %1 days.",
|
"invitation.text2": "Your invitation will expire in %1 days.",
|
||||||
"invitation.ctr": "إضغط هنا لإنشاء حسابك",
|
"invitation.cta": "Click here to create your account.",
|
||||||
"reset.text1": "لقد توصلنا بطلب إعادة تعيين كلمة المرور الخاصة بك، ربما لكونك قد نسيتها, إن لم يكن الأمر كذلك، المرجو تجاهل هذه الرسالة.",
|
"reset.text1": "لقد توصلنا بطلب إعادة تعيين كلمة المرور الخاصة بك، ربما لكونك قد نسيتها, إن لم يكن الأمر كذلك، المرجو تجاهل هذه الرسالة.",
|
||||||
"reset.text2": "لمواصلة طلب إعاة تعيين كلمة المرور، الرجاء تتبع هذا الرابط.",
|
"reset.text2": "لمواصلة طلب إعاة تعيين كلمة المرور، الرجاء تتبع هذا الرابط.",
|
||||||
"reset.cta": "انقر هنا لإعادة تعيين كلمة السر الخاصة بك.",
|
"reset.cta": "انقر هنا لإعادة تعيين كلمة السر الخاصة بك.",
|
||||||
"reset.notify.subject": "تم تغيير كلمة المرور بنجاح",
|
"reset.notify.subject": "تم تغيير كلمة المرور بنجاح",
|
||||||
"reset.notify.text1": "نحيطك علما أن كلمة مرورك قد تم تغييرها في %1",
|
"reset.notify.text1": "نحيطك علما أن كلمة مرورك قد تم تغييرها في %1",
|
||||||
"reset.notify.text2": "إن لم يكن لديك علم بهذا، المرجو إشعار مدبر النظام بأسرع مايمكن.",
|
"reset.notify.text2": "إن لم يكن لديك علم بهذا، المرجو إشعار مدبر النظام بأسرع مايمكن.",
|
||||||
"digest.notifications": "لديك تنبيهات غير مقروءة من طرف %1:",
|
|
||||||
"digest.latest_topics": "آخر المستجدات من %1",
|
"digest.latest_topics": "آخر المستجدات من %1",
|
||||||
"digest.cta": "انقر هنا لمشاهدة %1",
|
"digest.cta": "انقر هنا لمشاهدة %1",
|
||||||
"digest.unsub.info": "تم إرسال هذا الإشعار بآخر المستجدات وفقا لخيارات تسجيلكم.",
|
"digest.unsub.info": "تم إرسال هذا الإشعار بآخر المستجدات وفقا لخيارات تسجيلكم.",
|
||||||
@@ -28,15 +27,23 @@
|
|||||||
"digest.week": "أسبوع",
|
"digest.week": "أسبوع",
|
||||||
"digest.month": "شهر",
|
"digest.month": "شهر",
|
||||||
"digest.subject": "إستهلاك ل",
|
"digest.subject": "إستهلاك ل",
|
||||||
"digest.title": "Your Daily Digest",
|
"digest.title.day": "Your Daily Digest",
|
||||||
|
"digest.title.week": "Your Weekly Digest",
|
||||||
|
"digest.title.month": "Your Monthly Digest",
|
||||||
"notif.chat.subject": "هناك محادثة جديدة من %1",
|
"notif.chat.subject": "هناك محادثة جديدة من %1",
|
||||||
"notif.chat.cta": "انقر هنا لمتابعة المحادثة",
|
"notif.chat.cta": "انقر هنا لمتابعة المحادثة",
|
||||||
"notif.chat.unsub.info": "تم إرسال هذا الإشعار بوجودة محادثة جديدة وفقا لخيارات تسجيلك.",
|
"notif.chat.unsub.info": "تم إرسال هذا الإشعار بوجودة محادثة جديدة وفقا لخيارات تسجيلك.",
|
||||||
"notif.post.cta": "انقر هنا لقراءة الموضوع بأكمله",
|
|
||||||
"notif.post.unsub.info": "تم إشعارك بهذه المشاركة بناءً على الخيارات التي سبق وأن حددتها.",
|
"notif.post.unsub.info": "تم إشعارك بهذه المشاركة بناءً على الخيارات التي سبق وأن حددتها.",
|
||||||
"notif.cta": "Click here to go to forum",
|
"notif.post.unsub.one-click": "Alternatively, unsubscribe from future emails like this, by clicking",
|
||||||
|
"notif.cta": "To the forum",
|
||||||
|
"notif.cta-new-reply": "View Post",
|
||||||
|
"notif.cta-new-chat": "View Chat",
|
||||||
|
"notif.test.short": "Testing Notifications",
|
||||||
|
"notif.test.long": "This is a test of the notifications email. Send help!",
|
||||||
"test.text1": "هذه رسالة تجريبية للتأكد من صحة إعدادت الرسائل الإلكترونية في منتدى NodeBB خاصتك.",
|
"test.text1": "هذه رسالة تجريبية للتأكد من صحة إعدادت الرسائل الإلكترونية في منتدى NodeBB خاصتك.",
|
||||||
"unsub.cta": "انقر هنا لتغيير تلك الإعدادات",
|
"unsub.cta": "انقر هنا لتغيير تلك الإعدادات",
|
||||||
|
"unsubscribe": "unsubscribe",
|
||||||
|
"unsub.success": "You will no longer receive emails from the <strong>%1</strong> mailing list",
|
||||||
"banned.subject": "You have been banned from %1",
|
"banned.subject": "You have been banned from %1",
|
||||||
"banned.text1": "The user %1 has been banned from %2.",
|
"banned.text1": "The user %1 has been banned from %2.",
|
||||||
"banned.text2": "This ban will last until %1.",
|
"banned.text2": "This ban will last until %1.",
|
||||||
|
|||||||
@@ -11,6 +11,9 @@
|
|||||||
"invalid-uid": "مستخدم غير موجود",
|
"invalid-uid": "مستخدم غير موجود",
|
||||||
"invalid-username": "اسم المستخدم غير مقبول",
|
"invalid-username": "اسم المستخدم غير مقبول",
|
||||||
"invalid-email": "البريد الاكتروني غير مقبول",
|
"invalid-email": "البريد الاكتروني غير مقبول",
|
||||||
|
"invalid-fullname": "Invalid Fullname",
|
||||||
|
"invalid-location": "Invalid Location",
|
||||||
|
"invalid-birthday": "Invalid Birthday",
|
||||||
"invalid-title": "Invalid title",
|
"invalid-title": "Invalid title",
|
||||||
"invalid-user-data": "بيانات المستخدم غير صحيحة",
|
"invalid-user-data": "بيانات المستخدم غير صحيحة",
|
||||||
"invalid-password": "كلمة السر غير مقبولة",
|
"invalid-password": "كلمة السر غير مقبولة",
|
||||||
@@ -23,13 +26,14 @@
|
|||||||
"invalid-pagination-value": "رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
|
"invalid-pagination-value": "رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
|
||||||
"username-taken": "اسم المستخدم مأخوذ",
|
"username-taken": "اسم المستخدم مأخوذ",
|
||||||
"email-taken": "البريد الالكتروني مأخوذ",
|
"email-taken": "البريد الالكتروني مأخوذ",
|
||||||
"email-not-confirmed": "عنوان بريدك الإلكتروني غير مفعل بعد. انقر هنا لتفعيله من فضلك.",
|
"email-not-confirmed": "You are unable to post until your email is confirmed, please click here to confirm your email.",
|
||||||
"email-not-confirmed-chat": "لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
|
"email-not-confirmed-chat": "لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
|
||||||
"email-not-confirmed-email-sent": "بريدك الإلكتروني غير مفعل. رجاءًا تفحص صندوق البريد عن رسالة التفعيل.",
|
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You won't be able to post or chat until your email is confirmed.",
|
||||||
"no-email-to-confirm": "هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.",
|
"no-email-to-confirm": "هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.",
|
||||||
"email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.",
|
"email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.",
|
||||||
"confirm-email-already-sent": "لقد تم ارسال بريد التأكيد، الرجاء اﻹنتظار 1% دقائق لإعادة اﻹرسال",
|
"confirm-email-already-sent": "لقد تم ارسال بريد التأكيد، الرجاء اﻹنتظار 1% دقائق لإعادة اﻹرسال",
|
||||||
"sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
|
"sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
|
||||||
|
"digest-not-enabled": "This user does not have digests enabled, or the system default is not configured to send digests",
|
||||||
"username-too-short": "اسم المستخدم قصير.",
|
"username-too-short": "اسم المستخدم قصير.",
|
||||||
"username-too-long": "اسم المستخدم طويل",
|
"username-too-long": "اسم المستخدم طويل",
|
||||||
"password-too-long": "كلمة السر طويلة ",
|
"password-too-long": "كلمة السر طويلة ",
|
||||||
@@ -99,6 +103,8 @@
|
|||||||
"group-needs-owner": "هذه المجموعة تتطلب مالك واحد على اﻷقل",
|
"group-needs-owner": "هذه المجموعة تتطلب مالك واحد على اﻷقل",
|
||||||
"group-already-invited": "المستخدم سبق وأن تمت دعوته",
|
"group-already-invited": "المستخدم سبق وأن تمت دعوته",
|
||||||
"group-already-requested": "سبق وتم تسجيل طلب العضوية",
|
"group-already-requested": "سبق وتم تسجيل طلب العضوية",
|
||||||
|
"group-join-disabled": "You are not able to join this group at this time",
|
||||||
|
"group-leave-disabled": "You are not able to leave this group at this time",
|
||||||
"post-already-deleted": "سبق وتم حذف هذا الرد",
|
"post-already-deleted": "سبق وتم حذف هذا الرد",
|
||||||
"post-already-restored": "سبق وتم إلغاء حذف هذا الرد",
|
"post-already-restored": "سبق وتم إلغاء حذف هذا الرد",
|
||||||
"topic-already-deleted": "سبق وتم حذف هذا الموضوع",
|
"topic-already-deleted": "سبق وتم حذف هذا الموضوع",
|
||||||
@@ -144,7 +150,6 @@
|
|||||||
"invite-maximum-met": "لقد قمت بدعوة الحد الأقصى من الأشخاص (%1 من %2)",
|
"invite-maximum-met": "لقد قمت بدعوة الحد الأقصى من الأشخاص (%1 من %2)",
|
||||||
"no-session-found": "لم دخول مسجل!",
|
"no-session-found": "لم دخول مسجل!",
|
||||||
"not-in-room": "المستخدم غير موجود في الغرفة.",
|
"not-in-room": "المستخدم غير موجود في الغرفة.",
|
||||||
"no-users-in-room": "لا يوجد مستخدمين في الغرفة.",
|
|
||||||
"cant-kick-self": "لا يمكنك طرد نفسك من المجموعة.",
|
"cant-kick-self": "لا يمكنك طرد نفسك من المجموعة.",
|
||||||
"no-users-selected": "لا يوجد مستخدم محدد.",
|
"no-users-selected": "لا يوجد مستخدم محدد.",
|
||||||
"invalid-home-page-route": "Invalid home page route",
|
"invalid-home-page-route": "Invalid home page route",
|
||||||
|
|||||||
@@ -48,7 +48,6 @@
|
|||||||
"alert.banned.message": "لقد تم حظر حسابك. سيتم تسجيل الخروج.",
|
"alert.banned.message": "لقد تم حظر حسابك. سيتم تسجيل الخروج.",
|
||||||
"alert.unfollow": "أنت لا تتابع %1 بعد الآن!",
|
"alert.unfollow": "أنت لا تتابع %1 بعد الآن!",
|
||||||
"alert.follow": "أنت الآن تتابع %1!",
|
"alert.follow": "أنت الآن تتابع %1!",
|
||||||
"online": "المتواجدون حاليًّا",
|
|
||||||
"users": "الأعضاء",
|
"users": "الأعضاء",
|
||||||
"topics": "المواضيع",
|
"topics": "المواضيع",
|
||||||
"posts": "المشاركات",
|
"posts": "المشاركات",
|
||||||
@@ -60,6 +59,8 @@
|
|||||||
"downvoted": "مصوت بالسالب",
|
"downvoted": "مصوت بالسالب",
|
||||||
"views": "المشاهدات",
|
"views": "المشاهدات",
|
||||||
"reputation": "السمعة",
|
"reputation": "السمعة",
|
||||||
|
"lastpost": "Last post",
|
||||||
|
"firstpost": "First post",
|
||||||
"read_more": "اقرأ المزيد",
|
"read_more": "اقرأ المزيد",
|
||||||
"more": "المزيد",
|
"more": "المزيد",
|
||||||
"posted_ago_by_guest": "كتب %1 بواسطة زائر",
|
"posted_ago_by_guest": "كتب %1 بواسطة زائر",
|
||||||
@@ -77,6 +78,7 @@
|
|||||||
"recentposts": "آخر المشاركات",
|
"recentposts": "آخر المشاركات",
|
||||||
"recentips": "آخر عناوين ال IP التي سجلت الدخول",
|
"recentips": "آخر عناوين ال IP التي سجلت الدخول",
|
||||||
"moderator_tools": "أدوات المشرف",
|
"moderator_tools": "أدوات المشرف",
|
||||||
|
"online": "المتواجدون حاليًّا",
|
||||||
"away": "غير متواجد",
|
"away": "غير متواجد",
|
||||||
"dnd": "عدم الإزعاج",
|
"dnd": "عدم الإزعاج",
|
||||||
"invisible": "مخفي",
|
"invisible": "مخفي",
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
"details.latest_posts": "آخر المشاركات",
|
"details.latest_posts": "آخر المشاركات",
|
||||||
"details.private": "خاص",
|
"details.private": "خاص",
|
||||||
"details.disableJoinRequests": "Disable join requests",
|
"details.disableJoinRequests": "Disable join requests",
|
||||||
|
"details.disableLeave": "Disallow users from leaving the group",
|
||||||
"details.grant": "منح/سحب المِلكية",
|
"details.grant": "منح/سحب المِلكية",
|
||||||
"details.kick": "طرد",
|
"details.kick": "طرد",
|
||||||
"details.kick_confirm": "Are you sure you want to remove this member from the group?",
|
"details.kick_confirm": "Are you sure you want to remove this member from the group?",
|
||||||
@@ -36,7 +37,8 @@
|
|||||||
"details.description": "الوصف",
|
"details.description": "الوصف",
|
||||||
"details.badge_preview": "معاينة الوسام",
|
"details.badge_preview": "معاينة الوسام",
|
||||||
"details.change_icon": "تغيير الأيقونة",
|
"details.change_icon": "تغيير الأيقونة",
|
||||||
"details.change_colour": "تغيير اللون",
|
"details.change_label_colour": "Change Label Colour",
|
||||||
|
"details.change_text_colour": "Change Text Colour",
|
||||||
"details.badge_text": "نص الوسام",
|
"details.badge_text": "نص الوسام",
|
||||||
"details.userTitleEnabled": "إظهار الوسام",
|
"details.userTitleEnabled": "إظهار الوسام",
|
||||||
"details.private_help": "في حالة تفعيل الخيار، الانضمام إلى المجموعة يستلزم قبول مالكها",
|
"details.private_help": "في حالة تفعيل الخيار، الانضمام إلى المجموعة يستلزم قبول مالكها",
|
||||||
@@ -47,9 +49,11 @@
|
|||||||
"event.updated": "تم تحديث بيانات المجموعة",
|
"event.updated": "تم تحديث بيانات المجموعة",
|
||||||
"event.deleted": "تم حذف المجموعة %1",
|
"event.deleted": "تم حذف المجموعة %1",
|
||||||
"membership.accept-invitation": "اقبل الدعوة",
|
"membership.accept-invitation": "اقبل الدعوة",
|
||||||
|
"membership.accept.notification_title": "You are now a member of <strong>%1</strong>",
|
||||||
"membership.invitation-pending": "الدعوة بانتظار القبول",
|
"membership.invitation-pending": "الدعوة بانتظار القبول",
|
||||||
"membership.join-group": "انظم للمجموعة",
|
"membership.join-group": "انظم للمجموعة",
|
||||||
"membership.leave-group": "غادر المجموعة",
|
"membership.leave-group": "غادر المجموعة",
|
||||||
|
"membership.leave.notification_title": "<strong>%1</strong> has left group <strong>%2</strong>",
|
||||||
"membership.reject": "رفض",
|
"membership.reject": "رفض",
|
||||||
"new-group.group_name": "اسم المجموعة",
|
"new-group.group_name": "اسم المجموعة",
|
||||||
"upload-group-cover": "Upload group cover",
|
"upload-group-cover": "Upload group cover",
|
||||||
|
|||||||
@@ -34,6 +34,9 @@
|
|||||||
"chat.kick": "Kick",
|
"chat.kick": "Kick",
|
||||||
"chat.show-ip": "Show IP",
|
"chat.show-ip": "Show IP",
|
||||||
"chat.owner": "Room Owner",
|
"chat.owner": "Room Owner",
|
||||||
|
"chat.system.user-join": "%1 has joined the room",
|
||||||
|
"chat.system.user-leave": "%1 has left the room",
|
||||||
|
"chat.system.room-rename": "%2 has renamed this room: %1",
|
||||||
"composer.compose": "اكتب",
|
"composer.compose": "اكتب",
|
||||||
"composer.show_preview": "عرض المعاينة",
|
"composer.show_preview": "عرض المعاينة",
|
||||||
"composer.hide_preview": "إخفاء المعاينة",
|
"composer.hide_preview": "إخفاء المعاينة",
|
||||||
|
|||||||
@@ -5,20 +5,20 @@
|
|||||||
"mark_all_read": "اجعل كل التنبيهات مقروءة",
|
"mark_all_read": "اجعل كل التنبيهات مقروءة",
|
||||||
"back_to_home": "عودة إلى %1",
|
"back_to_home": "عودة إلى %1",
|
||||||
"outgoing_link": "رابط خارجي",
|
"outgoing_link": "رابط خارجي",
|
||||||
"outgoing_link_message": "You are now leaving %1",
|
"outgoing_link_message": "أنت تغادر اﻻن %1",
|
||||||
"continue_to": "استمر إلى %1",
|
"continue_to": "استمر إلى %1",
|
||||||
"return_to": "عودة إى %1",
|
"return_to": "عودة إى %1",
|
||||||
"new_notification": "You have a new notification",
|
"new_notification": "لديك تنبيه جديد",
|
||||||
"you_have_unread_notifications": "لديك تنبيهات غير مقروءة.",
|
"you_have_unread_notifications": "لديك تنبيهات غير مقروءة.",
|
||||||
"all": "All",
|
"all": "الكل",
|
||||||
"topics": "Topics",
|
"topics": "مواضيع",
|
||||||
"replies": "Replies",
|
"replies": "ردود",
|
||||||
"chat": "Chats",
|
"chat": "محادثات",
|
||||||
"follows": "Follows",
|
"follows": "متابعون",
|
||||||
"upvote": "Upvotes",
|
"upvote": "الموافقين",
|
||||||
"new-flags": "New Flags",
|
"new-flags": "New Flags",
|
||||||
"my-flags": "Flags assigned to me",
|
"my-flags": "Flags assigned to me",
|
||||||
"bans": "Bans",
|
"bans": "الحظر",
|
||||||
"new_message_from": "رسالة جديدة من <strong>%1</strong>",
|
"new_message_from": "رسالة جديدة من <strong>%1</strong>",
|
||||||
"upvoted_your_post_in": "<strong>%1</strong> أضاف صوتًا إيجابيا إلى مشاركتك في <strong>%2</strong>.",
|
"upvoted_your_post_in": "<strong>%1</strong> أضاف صوتًا إيجابيا إلى مشاركتك في <strong>%2</strong>.",
|
||||||
"upvoted_your_post_in_dual": "<strong>%1</strong> and <strong>%2</strong> have upvoted your post in <strong>%3</strong>.",
|
"upvoted_your_post_in_dual": "<strong>%1</strong> and <strong>%2</strong> have upvoted your post in <strong>%3</strong>.",
|
||||||
@@ -40,17 +40,17 @@
|
|||||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||||
"new_register_multiple": "There are <strong>%1</strong> registration requests awaiting review.",
|
"new_register_multiple": "There are <strong>%1</strong> registration requests awaiting review.",
|
||||||
"flag_assigned_to_you": "<strong>Flag %1</strong> has been assigned to you",
|
"flag_assigned_to_you": "تم تخصيص العلامة 1% لك",
|
||||||
"post_awaiting_review": "Post awaiting review",
|
"post_awaiting_review": "Post awaiting review",
|
||||||
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
|
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
|
||||||
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
|
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
|
||||||
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
|
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
|
||||||
"email-confirm-sent": "تم إرسال بريد التفعيل.",
|
"email-confirm-sent": "تم إرسال بريد التفعيل.",
|
||||||
"none": "None",
|
"none": "None",
|
||||||
"notification_only": "Notification Only",
|
"notification_only": "التنبيهات فقط",
|
||||||
"email_only": "Email Only",
|
"email_only": "البريد الالكتروني فقط",
|
||||||
"notification_and_email": "Notification & Email",
|
"notification_and_email": "التنبيهات والبريد اﻻلكتروني",
|
||||||
"notificationType_upvote": "When someone upvotes your post",
|
"notificationType_upvote": "عندما يوافقك احدهم على منشورك",
|
||||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||||
"notificationType_follow": "When someone starts following you",
|
"notificationType_follow": "When someone starts following you",
|
||||||
|
|||||||
@@ -43,6 +43,7 @@
|
|||||||
"account/following": "People %1 follows",
|
"account/following": "People %1 follows",
|
||||||
"account/followers": "People who follow %1",
|
"account/followers": "People who follow %1",
|
||||||
"account/posts": "Posts made by %1",
|
"account/posts": "Posts made by %1",
|
||||||
|
"account/latest-posts": "Latest posts made by %1",
|
||||||
"account/topics": "Topics created by %1",
|
"account/topics": "Topics created by %1",
|
||||||
"account/groups": "%1's Groups",
|
"account/groups": "%1's Groups",
|
||||||
"account/watched_categories": "%1's Watched Categories",
|
"account/watched_categories": "%1's Watched Categories",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"repeat_password": "تأكيد كلمة المرور",
|
"repeat_password": "تأكيد كلمة المرور",
|
||||||
"enter_email": "يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
|
"enter_email": "يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
|
||||||
"enter_email_address": "ادخل عنوان البريد الإلكتروني",
|
"enter_email_address": "ادخل عنوان البريد الإلكتروني",
|
||||||
"password_reset_sent": "A password reset email has been sent to the specified address. Please note that only one email will be sent per minute.",
|
"password_reset_sent": "If the specified address corresponds to an existing user account, a password reset email was sent. Please note that only one email will be sent per minute.",
|
||||||
"invalid_email": "بريد إلكتروني غير صالح أو غير موجود",
|
"invalid_email": "بريد إلكتروني غير صالح أو غير موجود",
|
||||||
"password_too_short": "كلمة المرور التي أدخلتها قصيرة، الرجاء اختر كلمة مرور مختلفة",
|
"password_too_short": "كلمة المرور التي أدخلتها قصيرة، الرجاء اختر كلمة مرور مختلفة",
|
||||||
"passwords_do_not_match": "كلمتا السر التي أدخلتهما غير متطابقتان",
|
"passwords_do_not_match": "كلمتا السر التي أدخلتهما غير متطابقتان",
|
||||||
|
|||||||
@@ -18,11 +18,13 @@
|
|||||||
"last_reply_time": "Last reply",
|
"last_reply_time": "Last reply",
|
||||||
"reply-as-topic": "رد بموضوع",
|
"reply-as-topic": "رد بموضوع",
|
||||||
"guest-login-reply": "يجب عليك تسجيل الدخول للرد",
|
"guest-login-reply": "يجب عليك تسجيل الدخول للرد",
|
||||||
|
"login-to-view": "🔒 Log in to view",
|
||||||
"edit": "تعديل",
|
"edit": "تعديل",
|
||||||
"delete": "حذف",
|
"delete": "حذف",
|
||||||
"purge": "تطهير",
|
"purge": "تطهير",
|
||||||
"restore": "استعادة",
|
"restore": "استعادة",
|
||||||
"move": "نقل",
|
"move": "نقل",
|
||||||
|
"change-owner": "Change Owner",
|
||||||
"fork": "فرع",
|
"fork": "فرع",
|
||||||
"link": "رابط",
|
"link": "رابط",
|
||||||
"share": "نشر",
|
"share": "نشر",
|
||||||
@@ -64,6 +66,7 @@
|
|||||||
"thread_tools.move": "نقل الموضوع",
|
"thread_tools.move": "نقل الموضوع",
|
||||||
"thread_tools.move-posts": "Move Posts",
|
"thread_tools.move-posts": "Move Posts",
|
||||||
"thread_tools.move_all": "نقل الكل",
|
"thread_tools.move_all": "نقل الكل",
|
||||||
|
"thread_tools.change_owner": "Change Owner",
|
||||||
"thread_tools.select_category": "Select Category",
|
"thread_tools.select_category": "Select Category",
|
||||||
"thread_tools.fork": "إنشاء فرع الموضوع",
|
"thread_tools.fork": "إنشاء فرع الموضوع",
|
||||||
"thread_tools.delete": "حذف الموضوع",
|
"thread_tools.delete": "حذف الموضوع",
|
||||||
@@ -98,6 +101,7 @@
|
|||||||
"delete_posts_instruction": "Click the posts you want to delete/purge",
|
"delete_posts_instruction": "Click the posts you want to delete/purge",
|
||||||
"merge_topics_instruction": "Click the topics you want to merge",
|
"merge_topics_instruction": "Click the topics you want to merge",
|
||||||
"move_posts_instruction": "Click the posts you want to move",
|
"move_posts_instruction": "Click the posts you want to move",
|
||||||
|
"change_owner_instruction": "Click the posts you want to assign to another user",
|
||||||
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
|
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
|
||||||
"composer.handle_placeholder": "اﻹسم",
|
"composer.handle_placeholder": "اﻹسم",
|
||||||
"composer.discard": "نبذ التغييرات",
|
"composer.discard": "نبذ التغييرات",
|
||||||
@@ -129,5 +133,7 @@
|
|||||||
"diffs.description": "This post has <strong>%1</strong> revisions. Click one of the revisions below to see the post content at that point in time.",
|
"diffs.description": "This post has <strong>%1</strong> revisions. Click one of the revisions below to see the post content at that point in time.",
|
||||||
"diffs.no-revisions-description": "This post has <strong>%1</strong> revisions.",
|
"diffs.no-revisions-description": "This post has <strong>%1</strong> revisions.",
|
||||||
"diffs.current-revision": "current revision",
|
"diffs.current-revision": "current revision",
|
||||||
"diffs.original-revision": "original revision"
|
"diffs.original-revision": "original revision",
|
||||||
|
"timeago_later": "%1 later",
|
||||||
|
"timeago_earlier": "%1 earlier"
|
||||||
}
|
}
|
||||||
@@ -26,6 +26,7 @@
|
|||||||
"reputation": "السمعة",
|
"reputation": "السمعة",
|
||||||
"bookmarks": "Bookmarks",
|
"bookmarks": "Bookmarks",
|
||||||
"watched_categories": "Watched categories",
|
"watched_categories": "Watched categories",
|
||||||
|
"change_all": "Change All",
|
||||||
"watched": "متابع",
|
"watched": "متابع",
|
||||||
"ignored": "تم تجاهله",
|
"ignored": "تم تجاهله",
|
||||||
"default-category-watch-state": "Default category watch state",
|
"default-category-watch-state": "Default category watch state",
|
||||||
@@ -124,6 +125,7 @@
|
|||||||
"follow_topics_you_reply_to": "متابعة المواضيع التي تقوم بالرد عليها",
|
"follow_topics_you_reply_to": "متابعة المواضيع التي تقوم بالرد عليها",
|
||||||
"follow_topics_you_create": "متابعة المواضيع التي تقوم بإنشائها",
|
"follow_topics_you_create": "متابعة المواضيع التي تقوم بإنشائها",
|
||||||
"grouptitle": "عنوان المجموعة",
|
"grouptitle": "عنوان المجموعة",
|
||||||
|
"group-order-help": "Select a group and use the arrows to order titles",
|
||||||
"no-group-title": "لا يوجد عنوان للمجموعة",
|
"no-group-title": "لا يوجد عنوان للمجموعة",
|
||||||
"select-skin": "إختر سمة",
|
"select-skin": "إختر سمة",
|
||||||
"select-homepage": "إختر الصفحة الرئيسية",
|
"select-homepage": "إختر الصفحة الرئيسية",
|
||||||
|
|||||||
@@ -2,5 +2,10 @@
|
|||||||
"events": "Събития",
|
"events": "Събития",
|
||||||
"no-events": "Няма събития",
|
"no-events": "Няма събития",
|
||||||
"control-panel": "Контролен панел за събитията",
|
"control-panel": "Контролен панел за събитията",
|
||||||
"delete-events": "Изтриване на събитията"
|
"filters": "Филтри",
|
||||||
|
"filters-apply": "Прилагане на филтрите",
|
||||||
|
"filter-type": "Вид събитие",
|
||||||
|
"filter-start": "Начална дата",
|
||||||
|
"filter-end": "Крайна дата",
|
||||||
|
"filter-perPage": "На страница"
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
"custom-js.enable": "Включване на персонализирания код на Javascript",
|
"custom-js.enable": "Включване на персонализирания код на Javascript",
|
||||||
|
|
||||||
"custom-header": "Персонализирана заглавна част",
|
"custom-header": "Персонализирана заглавна част",
|
||||||
"custom-header.description": "Въведете своя персонализиран код HTML тук (напр. елементи „meta“ и т.н.), те ще бъдат добавени към секцията <code><head></code> в кода на Вашия форум. Ползването на елементи „script“ е позволено, но непрепоръчително, тъй като за това можете да ползвате раздела <a href=\"#custom-header\" data-toggle=\"tab\">Персонализиран код на Javascript</a>.",
|
"custom-header.description": "Въведете своя персонализиран код HTML тук (напр. елементи „meta“ и т.н.), те ще бъдат добавени към секцията <code><head></code> в кода на Вашия форум. Ползването на елементи „script“ е позволено, но непрепоръчително, тъй като за това можете да ползвате раздела <a href=\"#custom-js\" data-toggle=\"tab\">Персонализиран код на Javascript</a>.",
|
||||||
"custom-header.enable": "Включване на персонализирана заглавна част",
|
"custom-header.enable": "Включване на персонализирана заглавна част",
|
||||||
|
|
||||||
"custom-css.livereload": "Включване на моменталното презареждане",
|
"custom-css.livereload": "Включване на моменталното презареждане",
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
"online": "на линия",
|
"online": "на линия",
|
||||||
"git": "git",
|
"git": "git",
|
||||||
"memory": "памет",
|
"memory": "памет",
|
||||||
"load": "натоварване",
|
"load": "натоварване на системата",
|
||||||
|
"cpu-usage": "използване на процесора",
|
||||||
"uptime": "активно време",
|
"uptime": "активно време",
|
||||||
|
|
||||||
"registered": "Регистрирани",
|
"registered": "Регистрирани",
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
"plugin-search": "Търсене на добавки",
|
"plugin-search": "Търсене на добавки",
|
||||||
"plugin-search-placeholder": "Търсене на добавка…",
|
"plugin-search-placeholder": "Търсене на добавка…",
|
||||||
|
"submit-anonymous-usage": "Изпращане на анонимни данни за употребата на добавката",
|
||||||
"reorder-plugins": "Пренареждане на добавките",
|
"reorder-plugins": "Пренареждане на добавките",
|
||||||
"order-active": "Подреждане на включените добавки",
|
"order-active": "Подреждане на включените добавки",
|
||||||
"dev-interested": "Искате ли да пишете добавки за NodeBB?",
|
"dev-interested": "Искате ли да пишете добавки за NodeBB?",
|
||||||
@@ -29,6 +30,8 @@
|
|||||||
"plugin-item.more-info": "За повече информация",
|
"plugin-item.more-info": "За повече информация",
|
||||||
"plugin-item.unknown": "Неизвестно",
|
"plugin-item.unknown": "Неизвестно",
|
||||||
"plugin-item.unknown-explanation": "Състоянието на тази добавка не може да бъде определено, може би поради грешка в конфигурацията.",
|
"plugin-item.unknown-explanation": "Състоянието на тази добавка не може да бъде определено, може би поради грешка в конфигурацията.",
|
||||||
|
"plugin-item.compatible": "Тази добавка работи с NodeBB %1",
|
||||||
|
"plugin-item.not-compatible": "Тази добавка няма информация за съвместимост. Уверете се, че работи, преди да я инсталирате на истинския си сървър.",
|
||||||
|
|
||||||
"alert.enabled": "Добавката е включена",
|
"alert.enabled": "Добавката е включена",
|
||||||
"alert.disabled": "Добавката е изключена",
|
"alert.disabled": "Добавката е изключена",
|
||||||
|
|||||||
@@ -18,5 +18,13 @@
|
|||||||
"alert.update-success": "Джаджите са обновени успешно",
|
"alert.update-success": "Джаджите са обновени успешно",
|
||||||
"alert.clone-success": "Джаджите са клонирани успешно",
|
"alert.clone-success": "Джаджите са клонирани успешно",
|
||||||
|
|
||||||
"error.select-clone": "Изберете страница, от която да клонирате"
|
"error.select-clone": "Изберете страница, от която да клонирате",
|
||||||
|
|
||||||
|
"title": "Заглавие",
|
||||||
|
"title.placeholder": "Заглавие (показва се само в някои контейнери)",
|
||||||
|
"container": "Контейнер",
|
||||||
|
"container.placeholder": "Завлачете и пуснете контейнер или въведете HTML тук.",
|
||||||
|
"show-to-groups": "Показване на групите",
|
||||||
|
"hide-from-groups": "Скриване от групите",
|
||||||
|
"hide-on-mobile": "Скриване на мобилни устройства"
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
"forum-traffic": "Трафик на форума",
|
"forum-traffic": "Трафик на форума",
|
||||||
"page-views": "Преглеждания на страниците",
|
"page-views": "Преглеждания на страниците",
|
||||||
"unique-visitors": "Уникални посетители",
|
"unique-visitors": "Уникални посетители",
|
||||||
"users": "Потребители",
|
"new-users": "Нови потребители",
|
||||||
"posts": "Публикации",
|
"posts": "Публикации",
|
||||||
"topics": "Теми",
|
"topics": "Теми",
|
||||||
"page-views-seven": "Последните 7 дни",
|
"page-views-seven": "Последните 7 дни",
|
||||||
@@ -14,9 +14,12 @@
|
|||||||
"page-views-custom-help": "Въведете интервал от дати, за които искате да видите преглежданията на страниците. Ако не се появи календар за избор, можете да въведете датите във формат: <code>ГГГГ-ММ-ДД</code>",
|
"page-views-custom-help": "Въведете интервал от дати, за които искате да видите преглежданията на страниците. Ако не се появи календар за избор, можете да въведете датите във формат: <code>ГГГГ-ММ-ДД</code>",
|
||||||
"page-views-custom-error": "Моля, въведете правилен интервал от дати във формата: <code>ГГГГ-ММ-ДД</code>",
|
"page-views-custom-error": "Моля, въведете правилен интервал от дати във формата: <code>ГГГГ-ММ-ДД</code>",
|
||||||
|
|
||||||
"stats.day": "Ден",
|
"stats.yesterday": "Вчера",
|
||||||
"stats.week": "Седмица",
|
"stats.today": "Днес",
|
||||||
"stats.month": "Месец",
|
"stats.last-week": "Миналата седмица",
|
||||||
|
"stats.this-week": "Тази седмица",
|
||||||
|
"stats.last-month": "Миналия месец",
|
||||||
|
"stats.this-month": "Този месец",
|
||||||
"stats.all": "От началото",
|
"stats.all": "От началото",
|
||||||
|
|
||||||
"updates": "Обновления",
|
"updates": "Обновления",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
"parent-category": "Базова категория",
|
"parent-category": "Базова категория",
|
||||||
"optional-parent-category": "(Незадължително) Базова категория",
|
"optional-parent-category": "(Незадължително) Базова категория",
|
||||||
"parent-category-none": "(Няма)",
|
"parent-category-none": "(Няма)",
|
||||||
|
"copy-parent": "Копиране на базовата",
|
||||||
"copy-settings": "Копиране на настройките от",
|
"copy-settings": "Копиране на настройките от",
|
||||||
"optional-clone-settings": "(Незадължително) Копиране на настройките от категория",
|
"optional-clone-settings": "(Незадължително) Копиране на настройките от категория",
|
||||||
"clone-children": "Клониране на дъщерните категории и настройки",
|
"clone-children": "Клониране на дъщерните категории и настройки",
|
||||||
@@ -44,7 +45,12 @@
|
|||||||
"privileges.search-group": "Добавяне на група",
|
"privileges.search-group": "Добавяне на група",
|
||||||
"privileges.copy-to-children": "Копиране в наследниците",
|
"privileges.copy-to-children": "Копиране в наследниците",
|
||||||
"privileges.copy-from-category": "Копиране от категория",
|
"privileges.copy-from-category": "Копиране от категория",
|
||||||
|
"privileges.copy-privileges-to-all-categories": "Копиране във всички категории",
|
||||||
|
"privileges.copy-group-privileges-to-children": "Копиране на правомощията на тази група в поделементите на тази категория.",
|
||||||
|
"privileges.copy-group-privileges-to-all-categories": "Копиране на правомощията на тази група във всички категории.",
|
||||||
|
"privileges.copy-group-privileges-from": "Копиране на правомощията на тази група от друга категория.",
|
||||||
"privileges.inherit": "Ако групата на <code>регистрираните потребители</code> получи дадено правомощие, всички останали групи го получават като <strong>подразбиращо се правомощие</strong>, дори то да не им е специално дадено. Вие виждате това подразбиращо се правомощие, защото всички потребители са членове на групата на <code>регистрираните потребители</code>, така че няма нужда да се дават едни и същи правомощия на още групи.",
|
"privileges.inherit": "Ако групата на <code>регистрираните потребители</code> получи дадено правомощие, всички останали групи го получават като <strong>подразбиращо се правомощие</strong>, дори то да не им е специално дадено. Вие виждате това подразбиращо се правомощие, защото всички потребители са членове на групата на <code>регистрираните потребители</code>, така че няма нужда да се дават едни и същи правомощия на още групи.",
|
||||||
|
"privileges.copy-success": "Правомощията са копирани!",
|
||||||
|
|
||||||
"analytics.back": "Назад към списъка с категориите",
|
"analytics.back": "Назад към списъка с категориите",
|
||||||
"analytics.title": "Аналитични данни за категорията „%1“",
|
"analytics.title": "Аналитични данни за категорията „%1“",
|
||||||
|
|||||||
21
public/language/bg/admin/manage/digest.json
Normal file
21
public/language/bg/admin/manage/digest.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"lead": "По-долу са показани статистики и времена за разпращането на резюмета.",
|
||||||
|
"disclaimer": "Имайте предвид, че при доставката на е-поща няма гаранции, поради същността на технологията за е-пощата. Много неща влияят на това дали едно изпратено е-писмо настина достига до получателя си, като: репутация на сървъра, блокирани IP адреси или това дали е настроено DKIM/SPF/DMARC.",
|
||||||
|
"disclaimer-continued": "Успешната доставка означава, че съобщението е изпратено успешно от NodeBB и потвърдено от сървъра на получателя. Това не означава, че писмото е достигнало до входящата кутия на получателя. За да имате по-добри резултати, препоръчвам използването на специализирана услуга за изпращане на е-писма, като <a href=\"https://sendgrid.com/why-sendgrid/\">SendGrid</a>.",
|
||||||
|
|
||||||
|
"user": "Потребител",
|
||||||
|
"subscription": "Вид на абонамента",
|
||||||
|
"last-delivery": "Последна успешна доставка",
|
||||||
|
"default": "По подразбиране за системата",
|
||||||
|
"default-help": "<em>По подразбиране за системата</em> означава, че потребителят не е избрал ръчно друга настройка за глобалния форум за резюметата, която в момента е;„%1</strong>“",
|
||||||
|
"resend": "Повторно изпращане на резюмето",
|
||||||
|
"resend-all-confirm": "Наистина ли искате да предизвикате ръчно изпращането на резюмето?",
|
||||||
|
"resent-single": "Ръчното повторно разпращане на резюмето е завършено",
|
||||||
|
"resent-day": "Дневното резюме беше изпратено повторно",
|
||||||
|
"resent-week": "Седмичното резюме беше изпратено повторно",
|
||||||
|
"resent-month": "Месечното резюме беше изпратено повторно",
|
||||||
|
"null": "<em>Никога</em>",
|
||||||
|
"manual-run": "Ръчно разпращане на резюмето:",
|
||||||
|
|
||||||
|
"no-delivery-data": "Няма данни за доставката"
|
||||||
|
}
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "Име на групата",
|
"name": "Име на групата",
|
||||||
|
"badge": "Емблема",
|
||||||
|
"properties": "Свойства",
|
||||||
"description": "Описание на групата",
|
"description": "Описание на групата",
|
||||||
"member-count": "Брой на членовете",
|
"member-count": "Брой на членовете",
|
||||||
"system": "Системна група",
|
"system": "Системна",
|
||||||
|
"hidden": "Скрита",
|
||||||
|
"private": "Частна",
|
||||||
"edit": "Редактиране",
|
"edit": "Редактиране",
|
||||||
"search-placeholder": "Търсене",
|
"search-placeholder": "Търсене",
|
||||||
"create": "Създаване на група",
|
"create": "Създаване на група",
|
||||||
@@ -17,10 +21,12 @@
|
|||||||
"edit.user-title": "Звание на членовете",
|
"edit.user-title": "Звание на членовете",
|
||||||
"edit.icon": "Иконка на групата",
|
"edit.icon": "Иконка на групата",
|
||||||
"edit.label-color": "Цвята за етикета на групата",
|
"edit.label-color": "Цвята за етикета на групата",
|
||||||
|
"edit.text-color": "Цвята за текста на групата",
|
||||||
"edit.show-badge": "Показване на емблема",
|
"edit.show-badge": "Показване на емблема",
|
||||||
"edit.private-details": "Ако е включено, присъединяването към група ще изисква одобрение от собственик на групата.",
|
"edit.private-details": "Ако е включено, присъединяването към група ще изисква одобрение от собственик на групата.",
|
||||||
"edit.private-override": "Внимание: Частните групи са изключени на системно ниво, това пренебрегва тази настройка.",
|
"edit.private-override": "Внимание: Частните групи са изключени на системно ниво, това пренебрегва тази настройка.",
|
||||||
"edit.disable-requests": "Изключване на заявките за присъединяване",
|
"edit.disable-join": "Забраняване на заявките за присъединяване",
|
||||||
|
"edit.disable-leave": "Забраняване на потребители да напускат групата",
|
||||||
"edit.hidden": "Скрита",
|
"edit.hidden": "Скрита",
|
||||||
"edit.hidden-details": "Ако е включено, групата няма да е видима в списъка с групи и ще трябва потребителите да бъдат поканени специално.",
|
"edit.hidden-details": "Ако е включено, групата няма да е видима в списъка с групи и ще трябва потребителите да бъдат поканени специално.",
|
||||||
"edit.add-user": "Добавяне на потребител към групата",
|
"edit.add-user": "Добавяне на потребител към групата",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"post-queue": "Опашка за публикации",
|
"post-queue": "Опашка за публикации",
|
||||||
"description": "Няма публикации в опашката. <br> За да включите тази функционалност, идете в <a href=\"%1\">Настройки → Публикуване → Ограничения за публикуването</a> и включете <strong>Опашката за публикации</strong>.",
|
"description": "Няма публикации в опашката. <br> За да включите тази функционалност, идете в <a href=\"%1\">Настройки → Публикуване → Опашка за публикации</a> и включете <strong>Опашката за публикации</strong>.",
|
||||||
"user": "Потребител",
|
"user": "Потребител",
|
||||||
"category": "Категория",
|
"category": "Категория",
|
||||||
"title": "Заглавие",
|
"title": "Заглавие",
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"global": "Глобални",
|
"global": "Глобални",
|
||||||
"global.no-users": "Няма глобални правомощия за отделни потребители.",
|
"global.no-users": "Няма глобални правомощия за отделни потребители.",
|
||||||
|
"group-privileges": "Правомощия за групите",
|
||||||
|
"user-privileges": "Правомощия за потребителите",
|
||||||
"chat": "Разговор",
|
"chat": "Разговор",
|
||||||
"upload-images": "Качване на изображения",
|
"upload-images": "Качване на изображения",
|
||||||
"upload-files": "Качване на файлове",
|
"upload-files": "Качване на файлове",
|
||||||
@@ -15,7 +16,7 @@
|
|||||||
"view-groups": "Преглед на групите",
|
"view-groups": "Преглед на групите",
|
||||||
"allow-local-login": "Локално вписване",
|
"allow-local-login": "Локално вписване",
|
||||||
"allow-group-creation": "Създаване на групи",
|
"allow-group-creation": "Създаване на групи",
|
||||||
|
"view-users-info": "Преглед на информацията за потребителите",
|
||||||
"find-category": "Търсене на категория",
|
"find-category": "Търсене на категория",
|
||||||
"access-category": "Достъп до категория",
|
"access-category": "Достъп до категория",
|
||||||
"access-topics": "Достъп до теми",
|
"access-topics": "Достъп до теми",
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
"validate-email": "Проверка на е-пощата",
|
"validate-email": "Проверка на е-пощата",
|
||||||
"send-validation-email": "Изпращане на е-писмо за потвърждение",
|
"send-validation-email": "Изпращане на е-писмо за потвърждение",
|
||||||
"password-reset-email": "Изпращане на е-писмо за възстановяване на паролата",
|
"password-reset-email": "Изпращане на е-писмо за възстановяване на паролата",
|
||||||
|
"force-password-reset": "Принудително подновяване на паролата и отписване на потребителя",
|
||||||
"ban": "Блокиране на потребителя/ите",
|
"ban": "Блокиране на потребителя/ите",
|
||||||
"temp-ban": "Блокиране на потребителя/ите временно",
|
"temp-ban": "Блокиране на потребителя/ите временно",
|
||||||
"unban": "Деблокиране на потребителя/ите",
|
"unban": "Деблокиране на потребителя/ите",
|
||||||
@@ -14,6 +15,8 @@
|
|||||||
"delete": "Изтриване на потребителя/ите",
|
"delete": "Изтриване на потребителя/ите",
|
||||||
"purge": "Изтриване на потребителя/ите и съдържанието",
|
"purge": "Изтриване на потребителя/ите и съдържанието",
|
||||||
"download-csv": "Сваляне във формат „CSV“",
|
"download-csv": "Сваляне във формат „CSV“",
|
||||||
|
"manage-groups": "Управление на групите",
|
||||||
|
"add-group": "Добавяне на група",
|
||||||
"invite": "Покана",
|
"invite": "Покана",
|
||||||
"new": "Нов потребител",
|
"new": "Нов потребител",
|
||||||
|
|
||||||
@@ -27,6 +30,11 @@
|
|||||||
"pills.banned": "Блокиран",
|
"pills.banned": "Блокиран",
|
||||||
"pills.search": "Търсене на потребители",
|
"pills.search": "Търсене на потребители",
|
||||||
|
|
||||||
|
"50-per-page": "50 на страница",
|
||||||
|
"100-per-page": "100 на страница",
|
||||||
|
"250-per-page": "250 на страница",
|
||||||
|
"500-per-page": "500 на страница",
|
||||||
|
|
||||||
"search.uid": "По потребителски идентификатор",
|
"search.uid": "По потребителски идентификатор",
|
||||||
"search.uid-placeholder": "Въведете потребителски идентификатор, който да потърсите",
|
"search.uid-placeholder": "Въведете потребителски идентификатор, който да потърсите",
|
||||||
"search.username": "По име на потребител",
|
"search.username": "По име на потребител",
|
||||||
@@ -81,7 +89,9 @@
|
|||||||
"alerts.confirm-remove-moderator": "Наистина ли искате да премахнете този модератор?",
|
"alerts.confirm-remove-moderator": "Наистина ли искате да премахнете този модератор?",
|
||||||
"alerts.remove-moderator-success": "Потребителят вече няма да бъде модератор.",
|
"alerts.remove-moderator-success": "Потребителят вече няма да бъде модератор.",
|
||||||
"alerts.confirm-validate-email": "Искате ли да проверите е-пощата/ите на този/тези потребител(и)?",
|
"alerts.confirm-validate-email": "Искате ли да проверите е-пощата/ите на този/тези потребител(и)?",
|
||||||
|
"alerts.confirm-force-password-reset": "Наистина ли искате принудително да подновите паролата и да отпишете потребителя или потребителите?",
|
||||||
"alerts.validate-email-success": "Е-пощите са проверени",
|
"alerts.validate-email-success": "Е-пощите са проверени",
|
||||||
|
"alerts.validate-force-password-reset-success": "Паролата на потребителя (или паролите на потребителите) беше подновена и сесията му беше прекратена.",
|
||||||
"alerts.password-reset-confirm": "Искате ли да изпратите е-писмо/а за възстановяване на паролата на този/тези потребител(и)?",
|
"alerts.password-reset-confirm": "Искате ли да изпратите е-писмо/а за възстановяване на паролата на този/тези потребител(и)?",
|
||||||
"alerts.confirm-delete": "<b>ВНИМАНИЕ!</b><br/>Наистина ли искате да изтриете потребителя/ите?<br/> Това действие е необратимо! Ще бъде изтрит само профилът на потребителя/ите, неговите/техните публикациите и теми ще останат.",
|
"alerts.confirm-delete": "<b>ВНИМАНИЕ!</b><br/>Наистина ли искате да изтриете потребителя/ите?<br/> Това действие е необратимо! Ще бъде изтрит само профилът на потребителя/ите, неговите/техните публикациите и теми ще останат.",
|
||||||
"alerts.delete-success": "Потребителят/ите е/са изтрит(и)!",
|
"alerts.delete-success": "Потребителят/ите е/са изтрит(и)!",
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
"manage/groups": "Групи",
|
"manage/groups": "Групи",
|
||||||
"manage/ip-blacklist": "Черен списък за IP адреси",
|
"manage/ip-blacklist": "Черен списък за IP адреси",
|
||||||
"manage/uploads": "Качвания",
|
"manage/uploads": "Качвания",
|
||||||
|
"manage/digest": "Резюмета",
|
||||||
|
|
||||||
"section-settings": "Настройки",
|
"section-settings": "Настройки",
|
||||||
"settings/general": "Общи",
|
"settings/general": "Общи",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"maintenance-mode": "Режим на профилактика",
|
"maintenance-mode": "Режим на профилактика",
|
||||||
"maintenance-mode.help": "Когато форумът е в режим на профилактика, всички заявки ще бъдат пренасочвани към статична страница за изчакване, с изключение на администраторите, които ще могат да използват уеб сайта нормално.",
|
"maintenance-mode.help": "Когато форумът е в режим на профилактика, всички заявки ще бъдат пренасочвани към статична страница за изчакване, с изключение на администраторите, които ще могат да използват уеб сайта нормално.",
|
||||||
|
"maintenance-mode.status": "Код на състоянието за режима на профилактика",
|
||||||
"maintenance-mode.message": "Съобщение за профилактиката",
|
"maintenance-mode.message": "Съобщение за профилактиката",
|
||||||
"headers": "Заглавни части",
|
"headers": "Заглавни части",
|
||||||
"headers.allow-from": "Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
|
"headers.allow-from": "Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
|
||||||
|
|||||||
@@ -6,6 +6,6 @@
|
|||||||
"max-length": "Максимална дължина на съобщенията в разговорите",
|
"max-length": "Максимална дължина на съобщенията в разговорите",
|
||||||
"max-room-size": "Максимален брой потребители в стая за разговор",
|
"max-room-size": "Максимален брой потребители в стая за разговор",
|
||||||
"delay": "Време между съобщеният в разговорите (в милисекунди)",
|
"delay": "Време между съобщеният в разговорите (в милисекунди)",
|
||||||
"restrictions.seconds-edit-after": "Брой секунди, в които потребителите не могат да редактират съобщенията си в разговорите след публикуването им. (0 = изключено)",
|
"restrictions.seconds-edit-after": "Брой секунди, през които съобщенията в разговор могат да бъдат редактирани. (0 = изключено)",
|
||||||
"restrictions.seconds-delete-after": "Брой секунди, в които потребителите не могат да изтрият съобщенията си в разговорите след публикуването им. (0 = изключено)"
|
"restrictions.seconds-delete-after": "Брой секунди, през които съобщенията в разговор могат да бъдат изтривани. (0 = изключено)"
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
"consent.message": "Съобщение за известие",
|
"consent.message": "Съобщение за известие",
|
||||||
"consent.acceptance": "Съобщение за приемане",
|
"consent.acceptance": "Съобщение за приемане",
|
||||||
"consent.link-text": "Връзка към текста на политиката",
|
"consent.link-text": "Връзка към текста на политиката",
|
||||||
|
"consent.link-url": "Връзка към адреса на политиката",
|
||||||
"consent.blank-localised-default": "Оставете това празно, за да използвате данните по подразбиране на NodeBB, които са преведени",
|
"consent.blank-localised-default": "Оставете това празно, за да използвате данните по подразбиране на NodeBB, които са преведени",
|
||||||
"settings": "Настройки",
|
"settings": "Настройки",
|
||||||
"cookie-domain": "Домейн на бисквитката за сесията",
|
"cookie-domain": "Домейн на бисквитката за сесията",
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
"address-help": "Следният адрес на е-поща е този, който получателят ще види в полетата „От“ и “Отговор до“.",
|
"address-help": "Следният адрес на е-поща е този, който получателят ще види в полетата „От“ и “Отговор до“.",
|
||||||
"from": "Име за полето „От“",
|
"from": "Име за полето „От“",
|
||||||
"from-help": "Името на изпращача, което да бъде показано в е-писмото.",
|
"from-help": "Името на изпращача, което да бъде показано в е-писмото.",
|
||||||
|
"sendmail-rate-limit": "Изпращане на <em>X</em> е-писма…",
|
||||||
|
"sendmail-rate-delta": "…на всеки <em>X</em> милисекунди",
|
||||||
|
"sendmail-rate-help": "Задава на програмата за изпращане на е-писма на NodeBB да ограничи броя едновременно изпращани съобщения, за да не се претоварват пощенските сървъри. Тези настройки не се вземат предвид, ако е включена настройката „Транспорт чрез SMTP“ (по-долу).",
|
||||||
|
|
||||||
"smtp-transport": "Транспорт чрез SMTP",
|
"smtp-transport": "Транспорт чрез SMTP",
|
||||||
"smtp-transport.enabled": "Използване на външен сървър за е-поща за изпращане на е-писма",
|
"smtp-transport.enabled": "Използване на външен сървър за е-поща за изпращане на е-писма",
|
||||||
@@ -30,8 +33,8 @@
|
|||||||
"testing.select": "Изберете шаблон за е-писма",
|
"testing.select": "Изберете шаблон за е-писма",
|
||||||
"testing.send": "Изпращане на пробно е-писмо",
|
"testing.send": "Изпращане на пробно е-писмо",
|
||||||
"testing.send-help": "Пробното е-писмо ще бъде изпратено до е-пощата на текущо вписания потребител.",
|
"testing.send-help": "Пробното е-писмо ще бъде изпратено до е-пощата на текущо вписания потребител.",
|
||||||
"subscriptions": "Абонаменти за е-писма",
|
"subscriptions": "Резюмета по е-поща",
|
||||||
"subscriptions.disable": "Изключване на известията по е-поща за абонати",
|
"subscriptions.disable": "Изключване на резюметата по е-пощата",
|
||||||
"subscriptions.hour": "Време за разпращане",
|
"subscriptions.hour": "Време за разпращане",
|
||||||
"subscriptions.hour-help": "Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>"
|
"subscriptions.hour-help": "Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>"
|
||||||
}
|
}
|
||||||
@@ -7,18 +7,21 @@
|
|||||||
"sorting.most-posts": "Първо тези с най-много публикации",
|
"sorting.most-posts": "Първо тези с най-много публикации",
|
||||||
"sorting.topic-default": "Подредба по подразбиране на темите",
|
"sorting.topic-default": "Подредба по подразбиране на темите",
|
||||||
"length": "Дължина на публикациите",
|
"length": "Дължина на публикациите",
|
||||||
|
"post-queue": "Опашка за публикации",
|
||||||
"restrictions": "Ограничения за публикуването",
|
"restrictions": "Ограничения за публикуването",
|
||||||
"restrictions-new": "Ограничения за новите потребители",
|
"restrictions-new": "Ограничения за новите потребители",
|
||||||
"restrictions.post-queue": "Включване на опашката за публикации",
|
"restrictions.post-queue": "Включване на опашката за публикации",
|
||||||
|
"restrictions.post-queue-rep-threshold": "Нужна репутация за пропускане на опашката за публикации",
|
||||||
|
"restrictions.groups-exempt-from-post-queue": "Избиране на групи, които да пропускат опашката за публикации",
|
||||||
"restrictions-new.post-queue": "Включване на ограниченията за новите потребители",
|
"restrictions-new.post-queue": "Включване на ограниченията за новите потребители",
|
||||||
"restrictions.post-queue-help": "Ако опашката за публикации е включена, публикациите на новите потребители ще бъдат добавяни в опашка за одобрение.",
|
"restrictions.post-queue-help": "Ако опашката за публикации е включена, публикациите на новите потребители ще бъдат добавяни в опашка за одобрение",
|
||||||
"restrictions-new.post-queue-help": "Ако ограниченията за новите потребители са включени, това ще зададе някои ограничения за публикациите създадени от новите потребители.",
|
"restrictions-new.post-queue-help": "Ако ограниченията за новите потребители са включени, това ще зададе някои ограничения за публикациите създадени от новите потребители",
|
||||||
"restrictions.seconds-between": "Брой секунди между публикациите",
|
"restrictions.seconds-between": "Брой секунди между публикациите",
|
||||||
"restrictions.seconds-between-new": "Брой секунди между публикациите за нови потребители",
|
"restrictions.seconds-between-new": "Брой секунди между публикациите за нови потребители",
|
||||||
"restrictions.rep-threshold": "Необходима репутация за премахване на това ограничение",
|
"restrictions.rep-threshold": "Необходима репутация за премахване на това ограничение",
|
||||||
"restrictions.seconds-defore-new": "Брой секунди преди новите потребители да могат да публикуват",
|
"restrictions.seconds-before-new": "Брой секунди преди новите потребители да могат да публикуват за пръв път",
|
||||||
"restrictions.seconds-edit-after": "Брой секунди, в които потребителите не могат да редактират публикациите си след публикуването им. (0 = изключено)",
|
"restrictions.seconds-edit-after": "Брой секунди, през които публикациите могат да бъдат редактирани. (0 = изключено)",
|
||||||
"restrictions.seconds-delete-after": "Брой секунди, в които потребителите не могат да изтрият публикациите си след публикуването им. (0 = изключено)",
|
"restrictions.seconds-delete-after": "Брой секунди, през които публикациите могат да бъдат изтрити. (0 = изключено)",
|
||||||
"restrictions.replies-no-delete": "Брой отговори, след които потребителите вече не могат да изтриват собствените си теми. (0 = изключено)",
|
"restrictions.replies-no-delete": "Брой отговори, след които потребителите вече не могат да изтриват собствените си теми. (0 = изключено)",
|
||||||
"restrictions.min-title-length": "Минимална дължина на заглавието",
|
"restrictions.min-title-length": "Минимална дължина на заглавието",
|
||||||
"restrictions.max-title-length": "Максимална дължина на заглавието",
|
"restrictions.max-title-length": "Максимална дължина на заглавието",
|
||||||
@@ -29,6 +32,8 @@
|
|||||||
"timestamp": "Време",
|
"timestamp": "Време",
|
||||||
"timestamp.cut-off": "Използване на дата след (в брой дни)",
|
"timestamp.cut-off": "Използване на дата след (в брой дни)",
|
||||||
"timestamp.cut-off-help": "Датите и времената ще бъдат показвани относително (напр. „преди 3 часа“ или „преди 5 дни“), и преведени на множество\n\\t\\t\\t\\t\\tезици. След определено време, този текст ще започне да показва самите дата и час, според езика на потребителя\n\\t\\t\\t\\t\\t(напр. „5 ноември 2016 15:30“).<br /><em>(По подразбиране: <code>30</code>, тоест един месец). Ако зададете 0, винаги ще се изписват дати, а ако оставите полето празно, времето ще бъде винаги относително.</em>",
|
"timestamp.cut-off-help": "Датите и времената ще бъдат показвани относително (напр. „преди 3 часа“ или „преди 5 дни“), и преведени на множество\n\\t\\t\\t\\t\\tезици. След определено време, този текст ще започне да показва самите дата и час, според езика на потребителя\n\\t\\t\\t\\t\\t(напр. „5 ноември 2016 15:30“).<br /><em>(По подразбиране: <code>30</code>, тоест един месец). Ако зададете 0, винаги ще се изписват дати, а ако оставите полето празно, времето ще бъде винаги относително.</em>",
|
||||||
|
"timestamp.necro-threshold": "Мъртва граница (в дни)",
|
||||||
|
"timestamp.necro-threshold-help": "Между публикациите ще бъде показано съобщение, ако времето между тях е по-дълго от мъртвата граница. (По подразбиране: <code>7</code>, или една седмица). Задайте 0 за изключване.</em>",
|
||||||
"teaser": "Представителна публикация",
|
"teaser": "Представителна публикация",
|
||||||
"teaser.last-post": "Последната – Показване на последната публикация, или първоначалната такава, ако няма отговори.",
|
"teaser.last-post": "Последната – Показване на последната публикация, или първоначалната такава, ако няма отговори.",
|
||||||
"teaser.last-reply": "Последната – Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
|
"teaser.last-reply": "Последната – Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
"posts": "Публикации",
|
"posts": "Публикации",
|
||||||
"allow-files": "Позволяване на потребителите да качват обикновени файлове",
|
"allow-files": "Позволяване на потребителите да качват обикновени файлове",
|
||||||
"private": "Качените файлове да бъдат частни",
|
"private": "Качените файлове да бъдат частни",
|
||||||
|
"strip-exif-data": "Премахване на данните EXIF",
|
||||||
"private-extensions": "Файлови разширения, които да бъдат частни",
|
"private-extensions": "Файлови разширения, които да бъдат частни",
|
||||||
"private-uploads-extensions-help": "Въведете списък от файлови разширения, разделени със запетаи, които искате да бъдат частни (например <code>pdf,xls,doc</code>). Ако оставите това поле празно, всички файлове ще бъдат частни.",
|
"private-uploads-extensions-help": "Въведете списък от файлови разширения, разделени със запетаи, които искате да бъдат частни (например <code>pdf,xls,doc</code>). Ако оставите това поле празно, всички файлове ще бъдат частни.",
|
||||||
"resize-image-width-threshold": "Преоразмеряване на изображенията, ако са по-широки от определената ширина",
|
"resize-image-width-threshold": "Преоразмеряване на изображенията, ако са по-широки от определената ширина",
|
||||||
|
|||||||
@@ -34,13 +34,15 @@
|
|||||||
"online-cutoff-help": "Ако потребителят не извършва никакви действия през този период, ще бъде смятан за неактивен и няма да получава известия в реално време.",
|
"online-cutoff-help": "Ако потребителят не извършва никакви действия през този период, ще бъде смятан за неактивен и няма да получава известия в реално време.",
|
||||||
"registration": "Регистриране на потребителите",
|
"registration": "Регистриране на потребителите",
|
||||||
"registration-type": "Вид регистриране",
|
"registration-type": "Вид регистриране",
|
||||||
|
"registration-approval-type": "Вид одобрение на регистрацията",
|
||||||
"registration-type.normal": "Обикновено",
|
"registration-type.normal": "Обикновено",
|
||||||
"registration-type.admin-approval": "Одобрена от администратор",
|
"registration-type.admin-approval": "Одобрена от администратор",
|
||||||
"registration-type.admin-approval-ip": "Одобрена от администратор по IP адрес",
|
"registration-type.admin-approval-ip": "Одобрена от администратор по IP адрес",
|
||||||
"registration-type.invite-only": "Само с покана",
|
"registration-type.invite-only": "Само с покана",
|
||||||
"registration-type.admin-invite-only": "Само с покана от администратор",
|
"registration-type.admin-invite-only": "Само с покана от администратор",
|
||||||
"registration-type.disabled": "Без регистриране",
|
"registration-type.disabled": "Без регистриране",
|
||||||
"registration-type.help": "Обикновена — Потребителите могат да се регистрират от страницата /register.<br/>\nОдобрена от администратор — Потребителските регистрации се поставят в <a href=\"%1/admin/manage/registration\">опашка за одобрение</a>, която администраторите преглеждат.<br/>\nОдобрена от администратор по IP адрес — Новите потребители се регистрират по обикновения начин, а онези, от чиито IP адрес вече са се регистрирали други акаунти, се нуждаят от одобрението на администратор.<br/>\nСамо с покана — Потребителите могат да поканят други от страницата с <a href=\"%1/users\" target=\"_blank\">потребителите</a>.<br/>\nСамо с покана от администратор — Само администратори могат да канят други от страницата с <a href=\"%1/users\" target=\"_blank\">потребителите</a> и от страниците за <a href=\"%1/admin/manage/users\">управление на потребителите</a>.<br/>\nБез регистриране — Потребителите не се регистрират.<br/>",
|
"registration-type.help": "Обикновена — Потребителите могат да се регистрират от страницата /register.<br/>\nСамо с покана — Потребителите могат да поканят други от страницата с <a href=\"%1/users\" target=\"_blank\">потребителите</a>.<br/>\nСамо с покана от администратор — Само администратори могат да канят други от страницата с <a href=\"%1/users\" target=\"_blank\">потребителите</a> и от страниците за <a href=\"%1/admin/manage/users\">управление на потребителите</a>.<br/>\nБез регистриране — Потребителите не се регистрират.<br/>",
|
||||||
|
"registration-approval-type.help": "Обикновена — Потребителите се регистрират на момента.<br/>\nОдобрена от администратор — Потребителските регистрации се поставят в <a href=\"%1/admin/manage/registration\">опашка за одобрение</a>, която администраторите преглеждат.<br/>\nОдобрена от администратор по IP адрес — Новите потребители се регистрират по обикновения начин, а онези, от чиито IP адрес вече са се регистрирали други акаунти, се нуждаят от одобрението на администратор.<br/>",
|
||||||
"registration.max-invites": "Максимален брой покани на потребител",
|
"registration.max-invites": "Максимален брой покани на потребител",
|
||||||
"max-invites": "Максимален брой покани на потребител",
|
"max-invites": "Максимален брой покани на потребител",
|
||||||
"max-invites-help": "0 = няма ограничение. Администраторите могат да разпращат неограничен брой покани.<br>Тази стойност се използва, само ако е избран режимът „Само с покана“.",
|
"max-invites-help": "0 = няма ограничение. Администраторите могат да разпращат неограничен брой покани.<br>Тази стойност се използва, само ако е избран режимът „Само с покана“.",
|
||||||
|
|||||||
@@ -13,14 +13,13 @@
|
|||||||
"welcome.cta": "Натиснете тук, за да потвърдите своята е-поща.",
|
"welcome.cta": "Натиснете тук, за да потвърдите своята е-поща.",
|
||||||
"invitation.text1": "%1 Ви покани да се присъедините към %2",
|
"invitation.text1": "%1 Ви покани да се присъедините към %2",
|
||||||
"invitation.text2": "Поканата Ви ще изтече след %1 дни.",
|
"invitation.text2": "Поканата Ви ще изтече след %1 дни.",
|
||||||
"invitation.ctr": "Натиснете тук, за да си създадете акаунт.",
|
"invitation.cta": "Натиснете тук, за да си създадете акаунт.",
|
||||||
"reset.text1": "Получихме заявка за подновяване на Вашата парола, най-вероятно защото сте я забравили. Ако това не е така, моля не обръщайте внимание на това е-писмо.",
|
"reset.text1": "Получихме заявка за подновяване на Вашата парола, най-вероятно защото сте я забравили. Ако това не е така, моля не обръщайте внимание на това е-писмо.",
|
||||||
"reset.text2": "За да продължите с процедурата по подновяване на паролата, моля последвайте следната връзка:",
|
"reset.text2": "За да продължите с процедурата по подновяване на паролата, моля последвайте следната връзка:",
|
||||||
"reset.cta": "Натиснете тук, за да нулирате паролата си",
|
"reset.cta": "Натиснете тук, за да нулирате паролата си",
|
||||||
"reset.notify.subject": "Паролата беше променена успешно",
|
"reset.notify.subject": "Паролата беше променена успешно",
|
||||||
"reset.notify.text1": "Известяваме Ви, че на %1, Вашата парола беше променена успешно.",
|
"reset.notify.text1": "Известяваме Ви, че на %1, Вашата парола беше променена успешно.",
|
||||||
"reset.notify.text2": "Ако не сте поискали това, моля, свържете се незабавно с администратор.",
|
"reset.notify.text2": "Ако не сте поискали това, моля, свържете се незабавно с администратор.",
|
||||||
"digest.notifications": "Имате непрочетени известия от %1:",
|
|
||||||
"digest.latest_topics": "Последни теми от %1",
|
"digest.latest_topics": "Последни теми от %1",
|
||||||
"digest.cta": "Натиснете тук, за да посетите %1",
|
"digest.cta": "Натиснете тук, за да посетите %1",
|
||||||
"digest.unsub.info": "Това резюме беше изпратено до Вас поради настройките Ви за абонаментите.",
|
"digest.unsub.info": "Това резюме беше изпратено до Вас поради настройките Ви за абонаментите.",
|
||||||
@@ -28,15 +27,23 @@
|
|||||||
"digest.week": "месец",
|
"digest.week": "месец",
|
||||||
"digest.month": "година",
|
"digest.month": "година",
|
||||||
"digest.subject": "Резюме за %1",
|
"digest.subject": "Резюме за %1",
|
||||||
"digest.title": "Дневното Ви резюме",
|
"digest.title.day": "Дневното Ви резюме",
|
||||||
|
"digest.title.week": "Седмичното Ви резюме",
|
||||||
|
"digest.title.month": "Месечното Ви резюме",
|
||||||
"notif.chat.subject": "Получено е ново съобщение от %1",
|
"notif.chat.subject": "Получено е ново съобщение от %1",
|
||||||
"notif.chat.cta": "Натиснете тук, за да продължите дискусията",
|
"notif.chat.cta": "Натиснете тук, за да продължите дискусията",
|
||||||
"notif.chat.unsub.info": "Това известие за разговор беше изпратено до Вас поради настройките Ви за абонаментите.",
|
"notif.chat.unsub.info": "Това известие за разговор беше изпратено до Вас поради настройките Ви за абонаментите.",
|
||||||
"notif.post.cta": "Натиснете тук, за да прочетете цялата тема",
|
|
||||||
"notif.post.unsub.info": "Това известие за публикация беше изпратено до Вас поради настройките Ви за абонаментите.",
|
"notif.post.unsub.info": "Това известие за публикация беше изпратено до Вас поради настройките Ви за абонаментите.",
|
||||||
"notif.cta": "Натиснете тук, за да преминете към форума",
|
"notif.post.unsub.one-click": "Или можете да се отпишете от подобни бъдещи съобщения, като натиснете",
|
||||||
|
"notif.cta": "Към форума",
|
||||||
|
"notif.cta-new-reply": "Преглед на публикацията",
|
||||||
|
"notif.cta-new-chat": "Преглед на разговора",
|
||||||
|
"notif.test.short": "Изпробване на известията",
|
||||||
|
"notif.test.long": "Това е пробно е-писмо за проверка на работата на известията.",
|
||||||
"test.text1": "Това е пробно е-писмо, за да потвърдим, че изпращачът на е-поща е правилно настроен за Вашия NodeBB.",
|
"test.text1": "Това е пробно е-писмо, за да потвърдим, че изпращачът на е-поща е правилно настроен за Вашия NodeBB.",
|
||||||
"unsub.cta": "Натиснете тук, за да промените тези настройки",
|
"unsub.cta": "Натиснете тук, за да промените тези настройки",
|
||||||
|
"unsubscribe": "отписване",
|
||||||
|
"unsub.success": "Повече няма да получавате е-писма от пощенския списък на <strong>%1</strong>",
|
||||||
"banned.subject": "Вие бяхте блокиран(а) от %1",
|
"banned.subject": "Вие бяхте блокиран(а) от %1",
|
||||||
"banned.text1": "Потребителят %1 беше блокиран от %2.",
|
"banned.text1": "Потребителят %1 беше блокиран от %2.",
|
||||||
"banned.text2": "Това блокиране ще е в сила до %1.",
|
"banned.text2": "Това блокиране ще е в сила до %1.",
|
||||||
|
|||||||
@@ -11,6 +11,9 @@
|
|||||||
"invalid-uid": "Грешен идентификатор на потребител",
|
"invalid-uid": "Грешен идентификатор на потребител",
|
||||||
"invalid-username": "Грешно потребителско име",
|
"invalid-username": "Грешно потребителско име",
|
||||||
"invalid-email": "Грешна е-поща",
|
"invalid-email": "Грешна е-поща",
|
||||||
|
"invalid-fullname": "Грешно пълно име",
|
||||||
|
"invalid-location": "Грешно местоположение",
|
||||||
|
"invalid-birthday": "Грешна рождена дата",
|
||||||
"invalid-title": "Грешно заглавие",
|
"invalid-title": "Грешно заглавие",
|
||||||
"invalid-user-data": "Грешни потребителски данни",
|
"invalid-user-data": "Грешни потребителски данни",
|
||||||
"invalid-password": "Грешна парола",
|
"invalid-password": "Грешна парола",
|
||||||
@@ -23,13 +26,14 @@
|
|||||||
"invalid-pagination-value": "Грешен номер на странициране, трябва да бъде между %1 и %2",
|
"invalid-pagination-value": "Грешен номер на странициране, трябва да бъде между %1 и %2",
|
||||||
"username-taken": "Потребителското име е заето",
|
"username-taken": "Потребителското име е заето",
|
||||||
"email-taken": "Е-пощата е заета",
|
"email-taken": "Е-пощата е заета",
|
||||||
"email-not-confirmed": "Вашата е-поща все още не е потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
"email-not-confirmed": "Няма да можете да публикувате съобщения, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
||||||
"email-not-confirmed-chat": "Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
"email-not-confirmed-chat": "Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
||||||
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение.",
|
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Няма да можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
|
||||||
"no-email-to-confirm": "Този форум изисква потвърдена е-поща. Моля, натиснете тук, за да въведете е-поща",
|
"no-email-to-confirm": "Този форум изисква потвърдена е-поща. Моля, натиснете тук, за да въведете е-поща",
|
||||||
"email-confirm-failed": "Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
|
"email-confirm-failed": "Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
|
||||||
"confirm-email-already-sent": "Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
|
"confirm-email-already-sent": "Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
|
||||||
"sendmail-not-found": "Изпълнимият файл на „sendmail“ не може да бъде намерен. Моля, уверете се, че е инсталиран и изпълним за потребителя, чрез който е пуснат NodeBB.",
|
"sendmail-not-found": "Изпълнимият файл на „sendmail“ не може да бъде намерен. Моля, уверете се, че е инсталиран и изпълним за потребителя, чрез който е пуснат NodeBB.",
|
||||||
|
"digest-not-enabled": "Този потребител няма включени резюмета, или системната настройка по подразбиране е да не се изпращат резюмета",
|
||||||
"username-too-short": "Потребителското име е твърде кратко",
|
"username-too-short": "Потребителското име е твърде кратко",
|
||||||
"username-too-long": "Потребителското име е твърде дълго",
|
"username-too-long": "Потребителското име е твърде дълго",
|
||||||
"password-too-long": "Паролата е твърде дълга",
|
"password-too-long": "Паролата е твърде дълга",
|
||||||
@@ -99,6 +103,8 @@
|
|||||||
"group-needs-owner": "Тази група се нуждае от поне един собственик",
|
"group-needs-owner": "Тази група се нуждае от поне един собственик",
|
||||||
"group-already-invited": "Този потребител вече е бил поканен",
|
"group-already-invited": "Този потребител вече е бил поканен",
|
||||||
"group-already-requested": "Вашата заявка за членство вече е била изпратена",
|
"group-already-requested": "Вашата заявка за членство вече е била изпратена",
|
||||||
|
"group-join-disabled": "В момента не можете да се присъедините към тази група",
|
||||||
|
"group-leave-disabled": "В момента не можете да напуснете тази група",
|
||||||
"post-already-deleted": "Тази публикация вече е изтрита",
|
"post-already-deleted": "Тази публикация вече е изтрита",
|
||||||
"post-already-restored": "Тази публикация вече е възстановена",
|
"post-already-restored": "Тази публикация вече е възстановена",
|
||||||
"topic-already-deleted": "Тази тема вече е изтрита",
|
"topic-already-deleted": "Тази тема вече е изтрита",
|
||||||
@@ -144,7 +150,6 @@
|
|||||||
"invite-maximum-met": "Вие сте поканили максимално позволения брой хора (%1 от %2).",
|
"invite-maximum-met": "Вие сте поканили максимално позволения брой хора (%1 от %2).",
|
||||||
"no-session-found": "Няма намерена сесия на вписване!",
|
"no-session-found": "Няма намерена сесия на вписване!",
|
||||||
"not-in-room": "Потребителят не е в стаята",
|
"not-in-room": "Потребителят не е в стаята",
|
||||||
"no-users-in-room": "Няма потребители в тази стая",
|
|
||||||
"cant-kick-self": "Не можете да изритате себе си от групата",
|
"cant-kick-self": "Не можете да изритате себе си от групата",
|
||||||
"no-users-selected": "Няма избран(и) потребител(и)",
|
"no-users-selected": "Няма избран(и) потребител(и)",
|
||||||
"invalid-home-page-route": "Грешен път към началната страница",
|
"invalid-home-page-route": "Грешен път към началната страница",
|
||||||
|
|||||||
@@ -48,7 +48,6 @@
|
|||||||
"alert.banned.message": "Вие току-що бяхте блокиран. Сега ще излезете от системата.",
|
"alert.banned.message": "Вие току-що бяхте блокиран. Сега ще излезете от системата.",
|
||||||
"alert.unfollow": "Вие вече не следвате %1!",
|
"alert.unfollow": "Вие вече не следвате %1!",
|
||||||
"alert.follow": "Вие следвате %1!",
|
"alert.follow": "Вие следвате %1!",
|
||||||
"online": "На линия",
|
|
||||||
"users": "Потребители",
|
"users": "Потребители",
|
||||||
"topics": "Теми",
|
"topics": "Теми",
|
||||||
"posts": "Публ.",
|
"posts": "Публ.",
|
||||||
@@ -60,6 +59,8 @@
|
|||||||
"downvoted": "С отрицателни гласове",
|
"downvoted": "С отрицателни гласове",
|
||||||
"views": "Прегл.",
|
"views": "Прегл.",
|
||||||
"reputation": "Репутация",
|
"reputation": "Репутация",
|
||||||
|
"lastpost": "Последна публикация",
|
||||||
|
"firstpost": "Първа публикация",
|
||||||
"read_more": "още",
|
"read_more": "още",
|
||||||
"more": "Още",
|
"more": "Още",
|
||||||
"posted_ago_by_guest": "публикувано %1 от гост",
|
"posted_ago_by_guest": "публикувано %1 от гост",
|
||||||
@@ -77,6 +78,7 @@
|
|||||||
"recentposts": "Скорошни публикации",
|
"recentposts": "Скорошни публикации",
|
||||||
"recentips": "Наскоро ползвани IP адреси",
|
"recentips": "Наскоро ползвани IP адреси",
|
||||||
"moderator_tools": "Модераторски инструменти",
|
"moderator_tools": "Модераторски инструменти",
|
||||||
|
"online": "На линия",
|
||||||
"away": "Отсъстващ",
|
"away": "Отсъстващ",
|
||||||
"dnd": "Отпочиващ",
|
"dnd": "Отпочиващ",
|
||||||
"invisible": "Невидим",
|
"invisible": "Невидим",
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
"details.latest_posts": "Скорошни публикации",
|
"details.latest_posts": "Скорошни публикации",
|
||||||
"details.private": "Частна",
|
"details.private": "Частна",
|
||||||
"details.disableJoinRequests": "Забраняване на заявките за присъединяване",
|
"details.disableJoinRequests": "Забраняване на заявките за присъединяване",
|
||||||
|
"details.disableLeave": "Забраняване на потребители да напускат групата",
|
||||||
"details.grant": "Даване/отнемане на собственост",
|
"details.grant": "Даване/отнемане на собственост",
|
||||||
"details.kick": "Изгонване",
|
"details.kick": "Изгонване",
|
||||||
"details.kick_confirm": "Наистина ли искате да премахнете този член на групата?",
|
"details.kick_confirm": "Наистина ли искате да премахнете този член на групата?",
|
||||||
@@ -36,7 +37,8 @@
|
|||||||
"details.description": "Описание",
|
"details.description": "Описание",
|
||||||
"details.badge_preview": "Преглед на емблемата",
|
"details.badge_preview": "Преглед на емблемата",
|
||||||
"details.change_icon": "Промяна на иконката",
|
"details.change_icon": "Промяна на иконката",
|
||||||
"details.change_colour": "Промяна на цвета",
|
"details.change_label_colour": "Промяна на цвета на етикета",
|
||||||
|
"details.change_text_colour": "Промяна на цвета на текста",
|
||||||
"details.badge_text": "Текст на емблемата",
|
"details.badge_text": "Текст на емблемата",
|
||||||
"details.userTitleEnabled": "Показване на емблемата",
|
"details.userTitleEnabled": "Показване на емблемата",
|
||||||
"details.private_help": "Ако е включено, присъединяването към група ще изисква одобрение от собственик на групата.",
|
"details.private_help": "Ако е включено, присъединяването към група ще изисква одобрение от собственик на групата.",
|
||||||
@@ -47,9 +49,11 @@
|
|||||||
"event.updated": "Подробностите за групата бяха обновени",
|
"event.updated": "Подробностите за групата бяха обновени",
|
||||||
"event.deleted": "Групата „%1“ е изтрита",
|
"event.deleted": "Групата „%1“ е изтрита",
|
||||||
"membership.accept-invitation": "Приемане на поканата",
|
"membership.accept-invitation": "Приемане на поканата",
|
||||||
|
"membership.accept.notification_title": "В момента сте член на <strong>%1</strong>",
|
||||||
"membership.invitation-pending": "Чакаща покана",
|
"membership.invitation-pending": "Чакаща покана",
|
||||||
"membership.join-group": "Присъединяване към групата",
|
"membership.join-group": "Присъединяване към групата",
|
||||||
"membership.leave-group": "Напускане на групата",
|
"membership.leave-group": "Напускане на групата",
|
||||||
|
"membership.leave.notification_title": "<strong>%1</strong> напусна групата <strong>%2</strong>",
|
||||||
"membership.reject": "Отхвърляне",
|
"membership.reject": "Отхвърляне",
|
||||||
"new-group.group_name": "Име на групата:",
|
"new-group.group_name": "Име на групата:",
|
||||||
"upload-group-cover": "Качване на снимка за показване на групата",
|
"upload-group-cover": "Качване на снимка за показване на групата",
|
||||||
|
|||||||
@@ -34,6 +34,9 @@
|
|||||||
"chat.kick": "Изгонване",
|
"chat.kick": "Изгонване",
|
||||||
"chat.show-ip": "Показване на IP адреса",
|
"chat.show-ip": "Показване на IP адреса",
|
||||||
"chat.owner": "Собственик на стаята",
|
"chat.owner": "Собственик на стаята",
|
||||||
|
"chat.system.user-join": "%1 се присъедини към стаята",
|
||||||
|
"chat.system.user-leave": "%1 напусна стаята",
|
||||||
|
"chat.system.room-rename": "%2 преименува тази стая: %1",
|
||||||
"composer.compose": "Писане",
|
"composer.compose": "Писане",
|
||||||
"composer.show_preview": "Показване на прегледа",
|
"composer.show_preview": "Показване на прегледа",
|
||||||
"composer.hide_preview": "Скриване на прегледа",
|
"composer.hide_preview": "Скриване на прегледа",
|
||||||
|
|||||||
@@ -43,6 +43,7 @@
|
|||||||
"account/following": "Хора, които %1 следва",
|
"account/following": "Хора, които %1 следва",
|
||||||
"account/followers": "Хора, които следват %1",
|
"account/followers": "Хора, които следват %1",
|
||||||
"account/posts": "Публикации от %1",
|
"account/posts": "Публикации от %1",
|
||||||
|
"account/latest-posts": "Последни публикации от %1",
|
||||||
"account/topics": "Теми, създадени от %1",
|
"account/topics": "Теми, създадени от %1",
|
||||||
"account/groups": "Групите на %1",
|
"account/groups": "Групите на %1",
|
||||||
"account/watched_categories": "Следените категории на %1",
|
"account/watched_categories": "Следените категории на %1",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
"repeat_password": "Потвърдете паролата",
|
"repeat_password": "Потвърдете паролата",
|
||||||
"enter_email": "Моля, въведете <strong>адреса на е-пощата си</strong> и ще Ви изпратим е-писмо с инструкции за това как да достъпите акаунта си.",
|
"enter_email": "Моля, въведете <strong>адреса на е-пощата си</strong> и ще Ви изпратим е-писмо с инструкции за това как да достъпите акаунта си.",
|
||||||
"enter_email_address": "Въведете адрес на е-поща",
|
"enter_email_address": "Въведете адрес на е-поща",
|
||||||
"password_reset_sent": "Информацията за подновяване на паролата беше изпратена на посочения адрес. Имайте предвид, че може да бъде изпращано само по едно е-писмо на минута.",
|
"password_reset_sent": "Ако посоченият адрес съответства на съществуващ потребителски акаунт, то вече му е изпратено е-писмо за подновяване на паролата. Имайте предвид, че може да бъде изпращано само по едно е-писмо на минута.",
|
||||||
"invalid_email": "Грешна е-поща / е-пощата не съществува!",
|
"invalid_email": "Грешна е-поща / е-пощата не съществува!",
|
||||||
"password_too_short": "Паролата е твърде кратка. Моля, изберете друга парола.",
|
"password_too_short": "Паролата е твърде кратка. Моля, изберете друга парола.",
|
||||||
"passwords_do_not_match": "Двете пароли, които въведохте, са различни.",
|
"passwords_do_not_match": "Двете пароли, които въведохте, са различни.",
|
||||||
|
|||||||
@@ -18,11 +18,13 @@
|
|||||||
"last_reply_time": "Последен отговор",
|
"last_reply_time": "Последен отговор",
|
||||||
"reply-as-topic": "Отговор в нова тема",
|
"reply-as-topic": "Отговор в нова тема",
|
||||||
"guest-login-reply": "Впишете се, за да отговорите",
|
"guest-login-reply": "Впишете се, за да отговорите",
|
||||||
|
"login-to-view": "🔒 Впишете се, за да видите това",
|
||||||
"edit": "Редактиране",
|
"edit": "Редактиране",
|
||||||
"delete": "Изтриване",
|
"delete": "Изтриване",
|
||||||
"purge": "Изчистване",
|
"purge": "Изчистване",
|
||||||
"restore": "Възстановяване",
|
"restore": "Възстановяване",
|
||||||
"move": "Преместване",
|
"move": "Преместване",
|
||||||
|
"change-owner": "Промяна на собственика",
|
||||||
"fork": "Разделяне",
|
"fork": "Разделяне",
|
||||||
"link": "Връзка",
|
"link": "Връзка",
|
||||||
"share": "Споделяне",
|
"share": "Споделяне",
|
||||||
@@ -64,6 +66,7 @@
|
|||||||
"thread_tools.move": "Преместване на темата",
|
"thread_tools.move": "Преместване на темата",
|
||||||
"thread_tools.move-posts": "Преместване на публикациите",
|
"thread_tools.move-posts": "Преместване на публикациите",
|
||||||
"thread_tools.move_all": "Преместване на всички",
|
"thread_tools.move_all": "Преместване на всички",
|
||||||
|
"thread_tools.change_owner": "Промяна на собственика",
|
||||||
"thread_tools.select_category": "Избиране на категория",
|
"thread_tools.select_category": "Избиране на категория",
|
||||||
"thread_tools.fork": "Разделяне на темата",
|
"thread_tools.fork": "Разделяне на темата",
|
||||||
"thread_tools.delete": "Изтриване на темата",
|
"thread_tools.delete": "Изтриване на темата",
|
||||||
@@ -98,6 +101,7 @@
|
|||||||
"delete_posts_instruction": "Натиснете публикациите, които искате да изтриете/изчистите",
|
"delete_posts_instruction": "Натиснете публикациите, които искате да изтриете/изчистите",
|
||||||
"merge_topics_instruction": "Натиснете темите, които искате да слеете",
|
"merge_topics_instruction": "Натиснете темите, които искате да слеете",
|
||||||
"move_posts_instruction": "Натиснете публикациите, които искате да преместите",
|
"move_posts_instruction": "Натиснете публикациите, които искате да преместите",
|
||||||
|
"change_owner_instruction": "Натиснете публикациите, които искате да прехвърлите на друг потребител",
|
||||||
"composer.title_placeholder": "Въведете заглавието на темата си тук...",
|
"composer.title_placeholder": "Въведете заглавието на темата си тук...",
|
||||||
"composer.handle_placeholder": "Име",
|
"composer.handle_placeholder": "Име",
|
||||||
"composer.discard": "Отхвърляне",
|
"composer.discard": "Отхвърляне",
|
||||||
@@ -129,5 +133,7 @@
|
|||||||
"diffs.description": "Тази публикация има <strong>%1</strong> варианта. Щракнете върху някоя от версиите по-долу, за да видите съдържанието ѝ в съответния момент.",
|
"diffs.description": "Тази публикация има <strong>%1</strong> варианта. Щракнете върху някоя от версиите по-долу, за да видите съдържанието ѝ в съответния момент.",
|
||||||
"diffs.no-revisions-description": "Тази публикация има <strong>%1</strong> варианта.",
|
"diffs.no-revisions-description": "Тази публикация има <strong>%1</strong> варианта.",
|
||||||
"diffs.current-revision": "текуща версия",
|
"diffs.current-revision": "текуща версия",
|
||||||
"diffs.original-revision": "оригинална версия"
|
"diffs.original-revision": "оригинална версия",
|
||||||
|
"timeago_later": "%1 по-късно",
|
||||||
|
"timeago_earlier": "%1 по-рано"
|
||||||
}
|
}
|
||||||
@@ -26,6 +26,7 @@
|
|||||||
"reputation": "Репутация",
|
"reputation": "Репутация",
|
||||||
"bookmarks": "Отметки",
|
"bookmarks": "Отметки",
|
||||||
"watched_categories": "Следени категории",
|
"watched_categories": "Следени категории",
|
||||||
|
"change_all": "Промяна на всички",
|
||||||
"watched": "Следени",
|
"watched": "Следени",
|
||||||
"ignored": "Пренебрегвани",
|
"ignored": "Пренебрегвани",
|
||||||
"default-category-watch-state": "Състояние по подразбиране за следенето на категории",
|
"default-category-watch-state": "Състояние по подразбиране за следенето на категории",
|
||||||
@@ -124,6 +125,7 @@
|
|||||||
"follow_topics_you_reply_to": "Следене на темите, в които отговаряте",
|
"follow_topics_you_reply_to": "Следене на темите, в които отговаряте",
|
||||||
"follow_topics_you_create": "Следене на темите, които създавате",
|
"follow_topics_you_create": "Следене на темите, които създавате",
|
||||||
"grouptitle": "Заглавие на групата",
|
"grouptitle": "Заглавие на групата",
|
||||||
|
"group-order-help": "Изберете група и използвайте стрелките, за да пренаредите заглавията",
|
||||||
"no-group-title": "Няма заглавие на група",
|
"no-group-title": "Няма заглавие на група",
|
||||||
"select-skin": "Изберете облик",
|
"select-skin": "Изберете облик",
|
||||||
"select-homepage": "Изберете начална страница",
|
"select-homepage": "Изберете начална страница",
|
||||||
|
|||||||
@@ -2,5 +2,10 @@
|
|||||||
"events": "Events",
|
"events": "Events",
|
||||||
"no-events": "There are no events",
|
"no-events": "There are no events",
|
||||||
"control-panel": "Events Control Panel",
|
"control-panel": "Events Control Panel",
|
||||||
"delete-events": "Delete Events"
|
"filters": "Filters",
|
||||||
|
"filters-apply": "Apply Filters",
|
||||||
|
"filter-type": "Event Type",
|
||||||
|
"filter-start": "Start Date",
|
||||||
|
"filter-end": "End Date",
|
||||||
|
"filter-perPage": "Per Page"
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
"custom-js.enable": "Enable Custom Javascript",
|
"custom-js.enable": "Enable Custom Javascript",
|
||||||
|
|
||||||
"custom-header": "Custom Header",
|
"custom-header": "Custom Header",
|
||||||
"custom-header.description": "Enter custom HTML here (ex. Meta Tags, etc.), which will be appended to the <code><head></code> section of your forum's markup. Script tags are allowed, but are discouraged, as the <a href=\"#custom-header\" data-toggle=\"tab\">Custom Javascript</a> tab is available.",
|
"custom-header.description": "Enter custom HTML here (ex. Meta Tags, etc.), which will be appended to the <code><head></code> section of your forum's markup. Script tags are allowed, but are discouraged, as the <a href=\"#custom-js\" data-toggle=\"tab\">Custom Javascript</a> tab is available.",
|
||||||
"custom-header.enable": "Enable Custom Header",
|
"custom-header.enable": "Enable Custom Header",
|
||||||
|
|
||||||
"custom-css.livereload": "Enable Live Reload",
|
"custom-css.livereload": "Enable Live Reload",
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
"online": "online",
|
"online": "online",
|
||||||
"git": "git",
|
"git": "git",
|
||||||
"memory": "memory",
|
"memory": "memory",
|
||||||
"load": "load",
|
"load": "system load",
|
||||||
|
"cpu-usage": "cpu usage",
|
||||||
"uptime": "uptime",
|
"uptime": "uptime",
|
||||||
|
|
||||||
"registered": "Registered",
|
"registered": "Registered",
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
"plugin-search": "Plugin Search",
|
"plugin-search": "Plugin Search",
|
||||||
"plugin-search-placeholder": "Search for plugin...",
|
"plugin-search-placeholder": "Search for plugin...",
|
||||||
|
"submit-anonymous-usage": "Submit anonymous plugin usage data.",
|
||||||
"reorder-plugins": "Re-order Plugins",
|
"reorder-plugins": "Re-order Plugins",
|
||||||
"order-active": "Order Active Plugins",
|
"order-active": "Order Active Plugins",
|
||||||
"dev-interested": "Interested in writing plugins for NodeBB?",
|
"dev-interested": "Interested in writing plugins for NodeBB?",
|
||||||
@@ -29,6 +30,8 @@
|
|||||||
"plugin-item.more-info": "For more information:",
|
"plugin-item.more-info": "For more information:",
|
||||||
"plugin-item.unknown": "Unknown",
|
"plugin-item.unknown": "Unknown",
|
||||||
"plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.",
|
"plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.",
|
||||||
|
"plugin-item.compatible": "This plugin works on NodeBB %1",
|
||||||
|
"plugin-item.not-compatible": "This plugin has no compatibility data, make sure it works before installing on your production environment.",
|
||||||
|
|
||||||
"alert.enabled": "Plugin Enabled",
|
"alert.enabled": "Plugin Enabled",
|
||||||
"alert.disabled": "Plugin Disabled",
|
"alert.disabled": "Plugin Disabled",
|
||||||
|
|||||||
@@ -18,5 +18,13 @@
|
|||||||
"alert.update-success": "Successfully updated widgets",
|
"alert.update-success": "Successfully updated widgets",
|
||||||
"alert.clone-success": "Successfully cloned widgets",
|
"alert.clone-success": "Successfully cloned widgets",
|
||||||
|
|
||||||
"error.select-clone": "Please select a page to clone from"
|
"error.select-clone": "Please select a page to clone from",
|
||||||
|
|
||||||
|
"title": "Title",
|
||||||
|
"title.placeholder": "Title (only shown on some containers)",
|
||||||
|
"container": "Container",
|
||||||
|
"container.placeholder": "Drag and drop a container or enter HTML here.",
|
||||||
|
"show-to-groups": "Show to groups",
|
||||||
|
"hide-from-groups": "Hide from groups",
|
||||||
|
"hide-on-mobile": "Hide on mobile"
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
"forum-traffic": "Forum Traffic",
|
"forum-traffic": "Forum Traffic",
|
||||||
"page-views": "Page Views",
|
"page-views": "Page Views",
|
||||||
"unique-visitors": "Unique Visitors",
|
"unique-visitors": "Unique Visitors",
|
||||||
"users": "Users",
|
"new-users": "New Users",
|
||||||
"posts": "Posts",
|
"posts": "Posts",
|
||||||
"topics": "Topics",
|
"topics": "Topics",
|
||||||
"page-views-seven": "Last 7 Days",
|
"page-views-seven": "Last 7 Days",
|
||||||
@@ -14,9 +14,12 @@
|
|||||||
"page-views-custom-help": "Enter a date range of page views you would like to view. If no date picker is available, the accepted format is <code>YYYY-MM-DD</code>",
|
"page-views-custom-help": "Enter a date range of page views you would like to view. If no date picker is available, the accepted format is <code>YYYY-MM-DD</code>",
|
||||||
"page-views-custom-error": "Please enter a valid date range in the format <code>YYYY-MM-DD</code>",
|
"page-views-custom-error": "Please enter a valid date range in the format <code>YYYY-MM-DD</code>",
|
||||||
|
|
||||||
"stats.day": "Day",
|
"stats.yesterday": "Yesterday",
|
||||||
"stats.week": "Week",
|
"stats.today": "Today",
|
||||||
"stats.month": "Month",
|
"stats.last-week": "Last Week",
|
||||||
|
"stats.this-week": "This Week",
|
||||||
|
"stats.last-month": "Last Month",
|
||||||
|
"stats.this-month": "This Month",
|
||||||
"stats.all": "All Time",
|
"stats.all": "All Time",
|
||||||
|
|
||||||
"updates": "Updates",
|
"updates": "Updates",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
"parent-category": "Parent Category",
|
"parent-category": "Parent Category",
|
||||||
"optional-parent-category": "(Optional) Parent Category",
|
"optional-parent-category": "(Optional) Parent Category",
|
||||||
"parent-category-none": "(None)",
|
"parent-category-none": "(None)",
|
||||||
|
"copy-parent": "Copy Parent",
|
||||||
"copy-settings": "Copy Settings From",
|
"copy-settings": "Copy Settings From",
|
||||||
"optional-clone-settings": "(Optional) Clone Settings From Category",
|
"optional-clone-settings": "(Optional) Clone Settings From Category",
|
||||||
"clone-children": "Clone Children Categories And Settings",
|
"clone-children": "Clone Children Categories And Settings",
|
||||||
@@ -44,7 +45,12 @@
|
|||||||
"privileges.search-group": "Add Group",
|
"privileges.search-group": "Add Group",
|
||||||
"privileges.copy-to-children": "Copy to Children",
|
"privileges.copy-to-children": "Copy to Children",
|
||||||
"privileges.copy-from-category": "Copy from Category",
|
"privileges.copy-from-category": "Copy from Category",
|
||||||
|
"privileges.copy-privileges-to-all-categories": "Copy to All Categories",
|
||||||
|
"privileges.copy-group-privileges-to-children": "Copy this group's privileges to the children of this category.",
|
||||||
|
"privileges.copy-group-privileges-to-all-categories": "Copy this group's privileges to all categories.",
|
||||||
|
"privileges.copy-group-privileges-from": "Copy this group's privileges from another category.",
|
||||||
"privileges.inherit": "If the <code>registered-users</code> group is granted a specific privilege, all other groups receive an <strong>implicit privilege</strong>, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the <code>registered-users</code> user group, and so, privileges for additional groups need not be explicitly granted.",
|
"privileges.inherit": "If the <code>registered-users</code> group is granted a specific privilege, all other groups receive an <strong>implicit privilege</strong>, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the <code>registered-users</code> user group, and so, privileges for additional groups need not be explicitly granted.",
|
||||||
|
"privileges.copy-success": "Privileges copied!",
|
||||||
|
|
||||||
"analytics.back": "Back to Categories List",
|
"analytics.back": "Back to Categories List",
|
||||||
"analytics.title": "Analytics for \"%1\" category",
|
"analytics.title": "Analytics for \"%1\" category",
|
||||||
|
|||||||
21
public/language/bn/admin/manage/digest.json
Normal file
21
public/language/bn/admin/manage/digest.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"lead": "A listing of digest delivery stats and times is displayed below.",
|
||||||
|
"disclaimer": "Please be advised that email delivery is not guaranteed, due to the nature of email technology. Many variables factor into whether an email sent to the recipient server is ultimately delivered into the user's inbox, including server reputation, blacklisted IP addresses, and whether DKIM/SPF/DMARC is configured.",
|
||||||
|
"disclaimer-continued": "A successful delivery means the message was sent successfully by NodeBB and acknowledged by the recipient server. It does not mean the email landed in the inbox. For best results, we recommend using a third-party email delivery service such as <a href=\"https://sendgrid.com/why-sendgrid/\">SendGrid</a>.",
|
||||||
|
|
||||||
|
"user": "User",
|
||||||
|
"subscription": "Subscription Type",
|
||||||
|
"last-delivery": "Last successful delivery",
|
||||||
|
"default": "System default",
|
||||||
|
"default-help": "<em>System default</em> means the user has not explicitly overridden the global forum setting for digests, which is currently: "<strong>%1</strong>"",
|
||||||
|
"resend": "Resend Digest",
|
||||||
|
"resend-all-confirm": "Are you sure you wish to mnually execute this digest run?",
|
||||||
|
"resent-single": "Manual digest resend completed",
|
||||||
|
"resent-day": "Daily digest resent",
|
||||||
|
"resent-week": "Weekly digest resent",
|
||||||
|
"resent-month": "Monthly digest resent",
|
||||||
|
"null": "<em>Never</em>",
|
||||||
|
"manual-run": "Manual digest run:",
|
||||||
|
|
||||||
|
"no-delivery-data": "No delivery data found"
|
||||||
|
}
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "Group Name",
|
"name": "Group Name",
|
||||||
|
"badge": "Badge",
|
||||||
|
"properties": "Properties",
|
||||||
"description": "Group Description",
|
"description": "Group Description",
|
||||||
"member-count": "Member Count",
|
"member-count": "Member Count",
|
||||||
"system": "System Group",
|
"system": "System",
|
||||||
|
"hidden": "Hidden",
|
||||||
|
"private": "Private",
|
||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"search-placeholder": "Search",
|
"search-placeholder": "Search",
|
||||||
"create": "Create Group",
|
"create": "Create Group",
|
||||||
@@ -17,10 +21,12 @@
|
|||||||
"edit.user-title": "Title of Members",
|
"edit.user-title": "Title of Members",
|
||||||
"edit.icon": "Group Icon",
|
"edit.icon": "Group Icon",
|
||||||
"edit.label-color": "Group Label Color",
|
"edit.label-color": "Group Label Color",
|
||||||
|
"edit.text-color": "Group Text Color",
|
||||||
"edit.show-badge": "Show Badge",
|
"edit.show-badge": "Show Badge",
|
||||||
"edit.private-details": "If enabled, joining of groups requires approval from a group owner.",
|
"edit.private-details": "If enabled, joining of groups requires approval from a group owner.",
|
||||||
"edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.",
|
"edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.",
|
||||||
"edit.disable-requests": "Disable join requests",
|
"edit.disable-join": "Disable join requests",
|
||||||
|
"edit.disable-leave": "Disallow users from leaving the group",
|
||||||
"edit.hidden": "Hidden",
|
"edit.hidden": "Hidden",
|
||||||
"edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
|
"edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
|
||||||
"edit.add-user": "Add User to Group",
|
"edit.add-user": "Add User to Group",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"post-queue": "Post Queue",
|
"post-queue": "Post Queue",
|
||||||
"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings → Post → Posting Restrictions</a> and enable <strong>Post Queue</strong>.",
|
"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings → Post → Post Queue</a> and enable <strong>Post Queue</strong>.",
|
||||||
"user": "User",
|
"user": "User",
|
||||||
"category": "Category",
|
"category": "Category",
|
||||||
"title": "Title",
|
"title": "Title",
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"global": "Global",
|
"global": "Global",
|
||||||
"global.no-users": "No user-specific global privileges.",
|
"global.no-users": "No user-specific global privileges.",
|
||||||
|
"group-privileges": "Group Privileges",
|
||||||
|
"user-privileges": "User Privileges",
|
||||||
"chat": "Chat",
|
"chat": "Chat",
|
||||||
"upload-images": "Upload Images",
|
"upload-images": "Upload Images",
|
||||||
"upload-files": "Upload Files",
|
"upload-files": "Upload Files",
|
||||||
@@ -15,7 +16,7 @@
|
|||||||
"view-groups": "View Groups",
|
"view-groups": "View Groups",
|
||||||
"allow-local-login": "Local Login",
|
"allow-local-login": "Local Login",
|
||||||
"allow-group-creation": "Group Create",
|
"allow-group-creation": "Group Create",
|
||||||
|
"view-users-info": "View Users Info",
|
||||||
"find-category": "Find Category",
|
"find-category": "Find Category",
|
||||||
"access-category": "Access Category",
|
"access-category": "Access Category",
|
||||||
"access-topics": "Access Topics",
|
"access-topics": "Access Topics",
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
"validate-email": "Validate Email",
|
"validate-email": "Validate Email",
|
||||||
"send-validation-email": "Send Validation Email",
|
"send-validation-email": "Send Validation Email",
|
||||||
"password-reset-email": "Send Password Reset Email",
|
"password-reset-email": "Send Password Reset Email",
|
||||||
|
"force-password-reset": "Force Password Reset & Log User Out",
|
||||||
"ban": "Ban User(s)",
|
"ban": "Ban User(s)",
|
||||||
"temp-ban": "Ban User(s) Temporarily",
|
"temp-ban": "Ban User(s) Temporarily",
|
||||||
"unban": "Unban User(s)",
|
"unban": "Unban User(s)",
|
||||||
@@ -14,6 +15,8 @@
|
|||||||
"delete": "Delete User(s)",
|
"delete": "Delete User(s)",
|
||||||
"purge": "Delete User(s) and Content",
|
"purge": "Delete User(s) and Content",
|
||||||
"download-csv": "Download CSV",
|
"download-csv": "Download CSV",
|
||||||
|
"manage-groups": "Manage Groups",
|
||||||
|
"add-group": "Add Group",
|
||||||
"invite": "Invite",
|
"invite": "Invite",
|
||||||
"new": "New User",
|
"new": "New User",
|
||||||
|
|
||||||
@@ -27,6 +30,11 @@
|
|||||||
"pills.banned": "Banned",
|
"pills.banned": "Banned",
|
||||||
"pills.search": "User Search",
|
"pills.search": "User Search",
|
||||||
|
|
||||||
|
"50-per-page": "50 per page",
|
||||||
|
"100-per-page": "100 per page",
|
||||||
|
"250-per-page": "250 per page",
|
||||||
|
"500-per-page": "500 per page",
|
||||||
|
|
||||||
"search.uid": "By User ID",
|
"search.uid": "By User ID",
|
||||||
"search.uid-placeholder": "Enter a user ID to search",
|
"search.uid-placeholder": "Enter a user ID to search",
|
||||||
"search.username": "By User Name",
|
"search.username": "By User Name",
|
||||||
@@ -81,7 +89,9 @@
|
|||||||
"alerts.confirm-remove-moderator": "Do you really want to remove this moderator?",
|
"alerts.confirm-remove-moderator": "Do you really want to remove this moderator?",
|
||||||
"alerts.remove-moderator-success": "User is no longer moderator.",
|
"alerts.remove-moderator-success": "User is no longer moderator.",
|
||||||
"alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?",
|
"alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?",
|
||||||
|
"alerts.confirm-force-password-reset": "Are you sure you want to force the password reset and log out these user(s)?",
|
||||||
"alerts.validate-email-success": "Emails validated",
|
"alerts.validate-email-success": "Emails validated",
|
||||||
|
"alerts.validate-force-password-reset-success": "User(s) passwords have been reset and their existing sessions have been revoked.",
|
||||||
"alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?",
|
"alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?",
|
||||||
"alerts.confirm-delete": "<b>Warning!</b><br/>Do you really want to delete user(s)?<br/> This action is not reversable! Only the user account will be deleted, their posts and topics will remain.",
|
"alerts.confirm-delete": "<b>Warning!</b><br/>Do you really want to delete user(s)?<br/> This action is not reversable! Only the user account will be deleted, their posts and topics will remain.",
|
||||||
"alerts.delete-success": "User(s) Deleted!",
|
"alerts.delete-success": "User(s) Deleted!",
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
"manage/groups": "Groups",
|
"manage/groups": "Groups",
|
||||||
"manage/ip-blacklist": "IP Blacklist",
|
"manage/ip-blacklist": "IP Blacklist",
|
||||||
"manage/uploads": "Uploads",
|
"manage/uploads": "Uploads",
|
||||||
|
"manage/digest": "Digests",
|
||||||
|
|
||||||
"section-settings": "Settings",
|
"section-settings": "Settings",
|
||||||
"settings/general": "General",
|
"settings/general": "General",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"maintenance-mode": "Maintenance Mode",
|
"maintenance-mode": "Maintenance Mode",
|
||||||
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
|
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
|
||||||
|
"maintenance-mode.status": "Maintenance Mode Status Code",
|
||||||
"maintenance-mode.message": "Maintenance Message",
|
"maintenance-mode.message": "Maintenance Message",
|
||||||
"headers": "Headers",
|
"headers": "Headers",
|
||||||
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
|
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
|
||||||
|
|||||||
@@ -6,6 +6,6 @@
|
|||||||
"max-length": "Maximum length of chat messages",
|
"max-length": "Maximum length of chat messages",
|
||||||
"max-room-size": "Maximum number of users in chat rooms",
|
"max-room-size": "Maximum number of users in chat rooms",
|
||||||
"delay": "Time between chat messages in milliseconds",
|
"delay": "Time between chat messages in milliseconds",
|
||||||
"restrictions.seconds-edit-after": "Number of seconds before users are allowed to edit chat messages after posting. (0 disabled)",
|
"restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)",
|
||||||
"restrictions.seconds-delete-after": "Number of seconds before users are allowed to delete chat messages after posting. (0 disabled)"
|
"restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)"
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
"consent.message": "Notification message",
|
"consent.message": "Notification message",
|
||||||
"consent.acceptance": "Acceptance message",
|
"consent.acceptance": "Acceptance message",
|
||||||
"consent.link-text": "Policy Link Text",
|
"consent.link-text": "Policy Link Text",
|
||||||
|
"consent.link-url": "Policy Link URL",
|
||||||
"consent.blank-localised-default": "Leave blank to use NodeBB localised defaults",
|
"consent.blank-localised-default": "Leave blank to use NodeBB localised defaults",
|
||||||
"settings": "Settings",
|
"settings": "Settings",
|
||||||
"cookie-domain": "Session cookie domain",
|
"cookie-domain": "Session cookie domain",
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
{
|
{
|
||||||
"email-settings": "Email Settings",
|
"email-settings": "ইমেইল সেটিংস",
|
||||||
"address": "Email Address",
|
"address": "ইমেইল অ্যাড্রেস",
|
||||||
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
|
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
|
||||||
"from": "From Name",
|
"from": "From Name",
|
||||||
"from-help": "The from name to display in the email.",
|
"from-help": "The from name to display in the email.",
|
||||||
|
"sendmail-rate-limit": "<em>X</em> ইমেইল পাঠাও... ",
|
||||||
|
"sendmail-rate-delta": "... প্রতি<em>X</em> মিলিসেকেন্ডে",
|
||||||
|
"sendmail-rate-help": "NodeBB মেইলার কে নির্দেশ দিন যে একবারে পাঠানো মেইলের সংখ্যা সিমিত রাখতে যাতে ইমেইল গ্রাহক সার্ভিস ওভারলোডেড না হয়ে যায়। এই অপশন কার্যকর হবে না যদি SMTP Transport চালু থাকে (নিচে দেখুন)। ",
|
||||||
|
|
||||||
"smtp-transport": "SMTP Transport",
|
"smtp-transport": "SMTP Transport",
|
||||||
"smtp-transport.enabled": "Use an external email server to send emails",
|
"smtp-transport.enabled": "Use an external email server to send emails",
|
||||||
@@ -30,8 +33,8 @@
|
|||||||
"testing.select": "Select Email Template",
|
"testing.select": "Select Email Template",
|
||||||
"testing.send": "Send Test Email",
|
"testing.send": "Send Test Email",
|
||||||
"testing.send-help": "The test email will be sent to the currently logged in user's email address.",
|
"testing.send-help": "The test email will be sent to the currently logged in user's email address.",
|
||||||
"subscriptions": "Email Subscriptions",
|
"subscriptions": "ইমেইল ডাইজেস্ট",
|
||||||
"subscriptions.disable": "Disable subscriber notification emails",
|
"subscriptions.disable": "ইমেইল ডাইজেস্ট নিষ্ক্রিয়",
|
||||||
"subscriptions.hour": "Digest Hour",
|
"subscriptions.hour": "Digest Hour",
|
||||||
"subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>"
|
"subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>"
|
||||||
}
|
}
|
||||||
@@ -7,19 +7,22 @@
|
|||||||
"sorting.most-posts": "Most Posts",
|
"sorting.most-posts": "Most Posts",
|
||||||
"sorting.topic-default": "Default Topic Sorting",
|
"sorting.topic-default": "Default Topic Sorting",
|
||||||
"length": "Post Length",
|
"length": "Post Length",
|
||||||
|
"post-queue": "Post Queue",
|
||||||
"restrictions": "Posting Restrictions",
|
"restrictions": "Posting Restrictions",
|
||||||
"restrictions-new": "New User Restrictions",
|
"restrictions-new": "New User Restrictions",
|
||||||
"restrictions.post-queue": "Enable post queue",
|
"restrictions.post-queue": "Enable post queue",
|
||||||
|
"restrictions.post-queue-rep-threshold": "Reputation required to bypass post queue",
|
||||||
|
"restrictions.groups-exempt-from-post-queue": "Select groups that should be exempt from the post queue",
|
||||||
"restrictions-new.post-queue": "Enable new user restrictions",
|
"restrictions-new.post-queue": "Enable new user restrictions",
|
||||||
"restrictions.post-queue-help": "Enabling post queue will put the posts of new users in a queue for approval.",
|
"restrictions.post-queue-help": "Enabling post queue will put the posts of new users in a queue for approval",
|
||||||
"restrictions-new.post-queue-help": "Enabling new user restrictions will set restrictions on posts created by new users.",
|
"restrictions-new.post-queue-help": "Enabling new user restrictions will set restrictions on posts created by new users",
|
||||||
"restrictions.seconds-between": "Seconds between posts",
|
"restrictions.seconds-between": "Number of seconds between posts",
|
||||||
"restrictions.seconds-between-new": "Seconds between posts for new users",
|
"restrictions.seconds-between-new": "Seconds between posts for new users",
|
||||||
"restrictions.rep-threshold": "Reputation threshold before these restrictions are lifted",
|
"restrictions.rep-threshold": "Reputation threshold before these restrictions are lifted",
|
||||||
"restrictions.seconds-defore-new": "Seconds before new user can post",
|
"restrictions.seconds-before-new": "Seconds before a new user can make their first post",
|
||||||
"restrictions.seconds-edit-after": "Number of seconds before users are allowed to edit posts after posting. (0 disabled)",
|
"restrictions.seconds-edit-after": "Number of seconds a post remains editable (set to 0 to disable)",
|
||||||
"restrictions.seconds-delete-after": "Number of seconds before users are allowed to delete posts after posting. (0 disabled)",
|
"restrictions.seconds-delete-after": "Number of seconds a post remains deletable (set to 0 to disable)",
|
||||||
"restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)",
|
"restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics (set to 0 to disable)",
|
||||||
"restrictions.min-title-length": "Minimum Title Length",
|
"restrictions.min-title-length": "Minimum Title Length",
|
||||||
"restrictions.max-title-length": "Maximum Title Length",
|
"restrictions.max-title-length": "Maximum Title Length",
|
||||||
"restrictions.min-post-length": "Minimum Post Length",
|
"restrictions.min-post-length": "Minimum Post Length",
|
||||||
@@ -29,6 +32,8 @@
|
|||||||
"timestamp": "Timestamp",
|
"timestamp": "Timestamp",
|
||||||
"timestamp.cut-off": "Date cut-off (in days)",
|
"timestamp.cut-off": "Date cut-off (in days)",
|
||||||
"timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).<br /><em>(Default: <code>30</code>, or one month). Set to 0 to always display dates, leave blank to always display relative times.</em>",
|
"timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).<br /><em>(Default: <code>30</code>, or one month). Set to 0 to always display dates, leave blank to always display relative times.</em>",
|
||||||
|
"timestamp.necro-threshold": "Necro Threshold (in days)",
|
||||||
|
"timestamp.necro-threshold-help": "A message will be shown between posts if the time between them is longer than the necro threshold. (Default: <code>7</code>, or one week). Set to 0 to disable.</em>",
|
||||||
"teaser": "Teaser Post",
|
"teaser": "Teaser Post",
|
||||||
"teaser.last-post": "Last – Show the latest post, including the original post, if no replies",
|
"teaser.last-post": "Last – Show the latest post, including the original post, if no replies",
|
||||||
"teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies",
|
"teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies",
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
"posts": "Posts",
|
"posts": "Posts",
|
||||||
"allow-files": "Allow users to upload regular files",
|
"allow-files": "Allow users to upload regular files",
|
||||||
"private": "Make uploaded files private",
|
"private": "Make uploaded files private",
|
||||||
|
"strip-exif-data": "Strip EXIF Data",
|
||||||
"private-extensions": "File extensions to make private",
|
"private-extensions": "File extensions to make private",
|
||||||
"private-uploads-extensions-help": "Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
|
"private-uploads-extensions-help": "Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
|
||||||
"resize-image-width-threshold": "Resize images if they are wider than specified width",
|
"resize-image-width-threshold": "Resize images if they are wider than specified width",
|
||||||
|
|||||||
@@ -34,13 +34,15 @@
|
|||||||
"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
|
"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
|
||||||
"registration": "User Registration",
|
"registration": "User Registration",
|
||||||
"registration-type": "Registration Type",
|
"registration-type": "Registration Type",
|
||||||
|
"registration-approval-type": "Registration Approval Type",
|
||||||
"registration-type.normal": "Normal",
|
"registration-type.normal": "Normal",
|
||||||
"registration-type.admin-approval": "Admin Approval",
|
"registration-type.admin-approval": "Admin Approval",
|
||||||
"registration-type.admin-approval-ip": "Admin Approval for IPs",
|
"registration-type.admin-approval-ip": "Admin Approval for IPs",
|
||||||
"registration-type.invite-only": "Invite Only",
|
"registration-type.invite-only": "Invite Only",
|
||||||
"registration-type.admin-invite-only": "Admin Invite Only",
|
"registration-type.admin-invite-only": "Admin Invite Only",
|
||||||
"registration-type.disabled": "No registration",
|
"registration-type.disabled": "No registration",
|
||||||
"registration-type.help": "Normal - Users can register from the /register page.<br/>\nAdmin Approval - User registrations are placed in an <a href=\"%1/admin/manage/registration\">approval queue</a> for administrators.<br/>\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.<br/>\nInvite Only - Users can invite others from the <a href=\"%1/users\" target=\"_blank\">users</a> page.<br/>\nAdmin Invite Only - Only administrators can invite others from <a href=\"%1/users\" target=\"_blank\">users</a> and <a href=\"%1/admin/manage/users\">admin/manage/users</a> pages.<br/>\nNo registration - No user registration.<br/>",
|
"registration-type.help": "Normal - Users can register from the /register page.<br/>\nInvite Only - Users can invite others from the <a href=\"%1/users\" target=\"_blank\">users</a> page.<br/>\nAdmin Invite Only - Only administrators can invite others from <a href=\"%1/users\" target=\"_blank\">users</a> and <a href=\"%1/admin/manage/users\">admin/manage/users</a> pages.<br/>\nNo registration - No user registration.<br/>",
|
||||||
|
"registration-approval-type.help": "Normal - Users are registered immediately.<br/>\nAdmin Approval - User registrations are placed in an <a href=\"%1/admin/manage/registration\">approval queue</a> for administrators.<br/>\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.<br/>",
|
||||||
"registration.max-invites": "Maximum Invitations per User",
|
"registration.max-invites": "Maximum Invitations per User",
|
||||||
"max-invites": "Maximum Invitations per User",
|
"max-invites": "Maximum Invitations per User",
|
||||||
"max-invites-help": "0 for no restriction. Admins get infinite invitations<br>Only applicable for \"Invite Only\"",
|
"max-invites-help": "0 for no restriction. Admins get infinite invitations<br>Only applicable for \"Invite Only\"",
|
||||||
|
|||||||
@@ -13,14 +13,13 @@
|
|||||||
"welcome.cta": "আপনার ইমেইল এড্রেস নিশ্চিত করার জন্য এখানে ক্লিক করুন",
|
"welcome.cta": "আপনার ইমেইল এড্রেস নিশ্চিত করার জন্য এখানে ক্লিক করুন",
|
||||||
"invitation.text1": "%1 আপনাকে %2 তে যোগ দিতে আমন্ত্রণ জানিয়েছেন ",
|
"invitation.text1": "%1 আপনাকে %2 তে যোগ দিতে আমন্ত্রণ জানিয়েছেন ",
|
||||||
"invitation.text2": "আপনার আমন্ত্রন পত্র %1 দিন পর বাতিল হয়ে যাবে",
|
"invitation.text2": "আপনার আমন্ত্রন পত্র %1 দিন পর বাতিল হয়ে যাবে",
|
||||||
"invitation.ctr": "আপনার একাউন্ট খুলতে এখানে ক্লিক করুন",
|
"invitation.cta": "Click here to create your account.",
|
||||||
"reset.text1": "আমরা আপনার পাসওয়ার্ড রিসেট করার অনুরোধ পেয়েছি, সম্ভবত আপনি আপনার পাসওয়ার্ড ভুলে গিয়েছেন বলেই। তবে যদি তা না হয়ে থাকে, তাহলে এই মেইলকে উপেক্ষা করতে পারেন।",
|
"reset.text1": "আমরা আপনার পাসওয়ার্ড রিসেট করার অনুরোধ পেয়েছি, সম্ভবত আপনি আপনার পাসওয়ার্ড ভুলে গিয়েছেন বলেই। তবে যদি তা না হয়ে থাকে, তাহলে এই মেইলকে উপেক্ষা করতে পারেন।",
|
||||||
"reset.text2": "পাসওয়ার্ড রিসেট করতে নিচের লিংকে ক্লিক করুন",
|
"reset.text2": "পাসওয়ার্ড রিসেট করতে নিচের লিংকে ক্লিক করুন",
|
||||||
"reset.cta": "পাসওয়ার্ড রিসেট করতে এখানে ক্লিক করুন",
|
"reset.cta": "পাসওয়ার্ড রিসেট করতে এখানে ক্লিক করুন",
|
||||||
"reset.notify.subject": "পাসওয়ার্ড পরিবর্তন সফল হয়েছে",
|
"reset.notify.subject": "পাসওয়ার্ড পরিবর্তন সফল হয়েছে",
|
||||||
"reset.notify.text1": "আপনাকে জানাচ্ছি যে %1 এ আপনার পাসওয়ার্ড পরিবর্তন হয়েছে",
|
"reset.notify.text1": "আপনাকে জানাচ্ছি যে %1 এ আপনার পাসওয়ার্ড পরিবর্তন হয়েছে",
|
||||||
"reset.notify.text2": "এটা আপনার অজান্তে হলে এখনই প্রশাসককে আবহিত করুন",
|
"reset.notify.text2": "এটা আপনার অজান্তে হলে এখনই প্রশাসককে আবহিত করুন",
|
||||||
"digest.notifications": "%1 থেকে আনরিড নোটিফিকেশন আছে।",
|
|
||||||
"digest.latest_topics": "%1 এর সর্বশেষ টপিকসমূহ",
|
"digest.latest_topics": "%1 এর সর্বশেষ টপিকসমূহ",
|
||||||
"digest.cta": "%1 ভিজিট করতে এখানে ক্লিক করুন",
|
"digest.cta": "%1 ভিজিট করতে এখানে ক্লিক করুন",
|
||||||
"digest.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনাকে এই ডাইজেষ্টটি পাঠানো হয়েছে।",
|
"digest.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনাকে এই ডাইজেষ্টটি পাঠানো হয়েছে।",
|
||||||
@@ -28,15 +27,23 @@
|
|||||||
"digest.week": "সপ্তাহ",
|
"digest.week": "সপ্তাহ",
|
||||||
"digest.month": "মাস",
|
"digest.month": "মাস",
|
||||||
"digest.subject": "Digest for %1",
|
"digest.subject": "Digest for %1",
|
||||||
"digest.title": "Your Daily Digest",
|
"digest.title.day": "Your Daily Digest",
|
||||||
|
"digest.title.week": "Your Weekly Digest",
|
||||||
|
"digest.title.month": "Your Monthly Digest",
|
||||||
"notif.chat.subject": "%1 এর থেকে নতুন মেসেজ এসেছে।",
|
"notif.chat.subject": "%1 এর থেকে নতুন মেসেজ এসেছে।",
|
||||||
"notif.chat.cta": "কথপোকথন চালিয়ে যেতে এখানে ক্লিক করুন",
|
"notif.chat.cta": "কথপোকথন চালিয়ে যেতে এখানে ক্লিক করুন",
|
||||||
"notif.chat.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনার এই নোটিফিকেশন পাঠানো হয়েছে",
|
"notif.chat.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনার এই নোটিফিকেশন পাঠানো হয়েছে",
|
||||||
"notif.post.cta": "পুরো বিষয়টি পড়তে এখানে ক্লিক করুন",
|
|
||||||
"notif.post.unsub.info": "আপনার সাবস্ক্রিপশন সেটিংসের কারনে আপনার এই বার্তাটি পাঠানো হয়েছে",
|
"notif.post.unsub.info": "আপনার সাবস্ক্রিপশন সেটিংসের কারনে আপনার এই বার্তাটি পাঠানো হয়েছে",
|
||||||
"notif.cta": "ফোরামে যেতে এখানে ক্লিক করুন",
|
"notif.post.unsub.one-click": "Alternatively, unsubscribe from future emails like this, by clicking",
|
||||||
|
"notif.cta": "To the forum",
|
||||||
|
"notif.cta-new-reply": "View Post",
|
||||||
|
"notif.cta-new-chat": "View Chat",
|
||||||
|
"notif.test.short": "Testing Notifications",
|
||||||
|
"notif.test.long": "This is a test of the notifications email. Send help!",
|
||||||
"test.text1": "আপনি সঠিকভাবে নোডবিবির জন্য মেইলার সেটাপ করেছেন কিনা নিশ্চিত করার জন্য এই টেষ্ট ইমেইল পাঠানো হয়েছে",
|
"test.text1": "আপনি সঠিকভাবে নোডবিবির জন্য মেইলার সেটাপ করেছেন কিনা নিশ্চিত করার জন্য এই টেষ্ট ইমেইল পাঠানো হয়েছে",
|
||||||
"unsub.cta": "সেটিংসগুলো পরিবর্তন করতে এখানে ক্লিক করুন",
|
"unsub.cta": "সেটিংসগুলো পরিবর্তন করতে এখানে ক্লিক করুন",
|
||||||
|
"unsubscribe": "unsubscribe",
|
||||||
|
"unsub.success": "You will no longer receive emails from the <strong>%1</strong> mailing list",
|
||||||
"banned.subject": "আপনি %1 এ নিষিদ্ধ হয়েছেন",
|
"banned.subject": "আপনি %1 এ নিষিদ্ধ হয়েছেন",
|
||||||
"banned.text1": "ব্যবহারকারি %1 %2 তে নিষিদ্ধ হয়েছেন",
|
"banned.text1": "ব্যবহারকারি %1 %2 তে নিষিদ্ধ হয়েছেন",
|
||||||
"banned.text2": "This ban will last until %1.",
|
"banned.text2": "This ban will last until %1.",
|
||||||
|
|||||||
@@ -11,6 +11,9 @@
|
|||||||
"invalid-uid": "ভুল ব্যবহারকারী নাম্বার",
|
"invalid-uid": "ভুল ব্যবহারকারী নাম্বার",
|
||||||
"invalid-username": "ভুল ইউজারনেম",
|
"invalid-username": "ভুল ইউজারনেম",
|
||||||
"invalid-email": "ভুল ইমেইল",
|
"invalid-email": "ভুল ইমেইল",
|
||||||
|
"invalid-fullname": "Invalid Fullname",
|
||||||
|
"invalid-location": "Invalid Location",
|
||||||
|
"invalid-birthday": "Invalid Birthday",
|
||||||
"invalid-title": "Invalid title",
|
"invalid-title": "Invalid title",
|
||||||
"invalid-user-data": "ভুল ব্যবহারকারী তথ্য",
|
"invalid-user-data": "ভুল ব্যবহারকারী তথ্য",
|
||||||
"invalid-password": "ভুল পাসওয়ার্ড",
|
"invalid-password": "ভুল পাসওয়ার্ড",
|
||||||
@@ -23,13 +26,14 @@
|
|||||||
"invalid-pagination-value": "Invalid pagination value, must be at least %1 and at most %2",
|
"invalid-pagination-value": "Invalid pagination value, must be at least %1 and at most %2",
|
||||||
"username-taken": "ইউজারনেম আগেই ব্যবহৃত",
|
"username-taken": "ইউজারনেম আগেই ব্যবহৃত",
|
||||||
"email-taken": "ইমেইল আগেই ব্যবহৃত",
|
"email-taken": "ইমেইল আগেই ব্যবহৃত",
|
||||||
"email-not-confirmed": "আপনার ইমেইল এড্রেস নিশ্চিত করা হয় নি, নিশ্চিত করতে এখানে ক্লিক করুন।",
|
"email-not-confirmed": "You are unable to post until your email is confirmed, please click here to confirm your email.",
|
||||||
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
|
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
|
||||||
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email.",
|
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You won't be able to post or chat until your email is confirmed.",
|
||||||
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
|
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
|
||||||
"email-confirm-failed": "We could not confirm your email, please try again later.",
|
"email-confirm-failed": "We could not confirm your email, please try again later.",
|
||||||
"confirm-email-already-sent": "Confirmation email already sent, please wait %1 minute(s) to send another one.",
|
"confirm-email-already-sent": "Confirmation email already sent, please wait %1 minute(s) to send another one.",
|
||||||
"sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
|
"sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
|
||||||
|
"digest-not-enabled": "This user does not have digests enabled, or the system default is not configured to send digests",
|
||||||
"username-too-short": "খুব ছোট ইউজারনেম",
|
"username-too-short": "খুব ছোট ইউজারনেম",
|
||||||
"username-too-long": "ইউজারনেম বড় হয়ে গিয়েছে",
|
"username-too-long": "ইউজারনেম বড় হয়ে গিয়েছে",
|
||||||
"password-too-long": "Password too long",
|
"password-too-long": "Password too long",
|
||||||
@@ -99,6 +103,8 @@
|
|||||||
"group-needs-owner": "This group requires at least one owner",
|
"group-needs-owner": "This group requires at least one owner",
|
||||||
"group-already-invited": "This user has already been invited",
|
"group-already-invited": "This user has already been invited",
|
||||||
"group-already-requested": "Your membership request has already been submitted",
|
"group-already-requested": "Your membership request has already been submitted",
|
||||||
|
"group-join-disabled": "You are not able to join this group at this time",
|
||||||
|
"group-leave-disabled": "You are not able to leave this group at this time",
|
||||||
"post-already-deleted": "এই পোস্টটি ইতিমধ্যে ডিলিট করা হয়ে গিয়েছে",
|
"post-already-deleted": "এই পোস্টটি ইতিমধ্যে ডিলিট করা হয়ে গিয়েছে",
|
||||||
"post-already-restored": "এই পোষ্টটি ইতিমধ্যে পুনরোদ্ধার করা হয়েছে",
|
"post-already-restored": "এই পোষ্টটি ইতিমধ্যে পুনরোদ্ধার করা হয়েছে",
|
||||||
"topic-already-deleted": "এই টপিকটি ইতিমধ্যে ডিলিট করা হয়েছে",
|
"topic-already-deleted": "এই টপিকটি ইতিমধ্যে ডিলিট করা হয়েছে",
|
||||||
@@ -144,7 +150,6 @@
|
|||||||
"invite-maximum-met": "You have invited the maximum amount of people (%1 out of %2).",
|
"invite-maximum-met": "You have invited the maximum amount of people (%1 out of %2).",
|
||||||
"no-session-found": "No login session found!",
|
"no-session-found": "No login session found!",
|
||||||
"not-in-room": "User not in room",
|
"not-in-room": "User not in room",
|
||||||
"no-users-in-room": "No users in this room",
|
|
||||||
"cant-kick-self": "You can't kick yourself from the group",
|
"cant-kick-self": "You can't kick yourself from the group",
|
||||||
"no-users-selected": "No user(s) selected",
|
"no-users-selected": "No user(s) selected",
|
||||||
"invalid-home-page-route": "Invalid home page route",
|
"invalid-home-page-route": "Invalid home page route",
|
||||||
|
|||||||
@@ -48,7 +48,6 @@
|
|||||||
"alert.banned.message": "আপনাকে কেবলই নিষিদ্ধ করা হয়েছে, আপনি এখন লগআউট হয়ে যাবেন।",
|
"alert.banned.message": "আপনাকে কেবলই নিষিদ্ধ করা হয়েছে, আপনি এখন লগআউট হয়ে যাবেন।",
|
||||||
"alert.unfollow": "আপনি আর %1 কে অনুসরণ করছেন না!",
|
"alert.unfollow": "আপনি আর %1 কে অনুসরণ করছেন না!",
|
||||||
"alert.follow": "আপনি এখন %1 কে অনুসরণ করছেন!",
|
"alert.follow": "আপনি এখন %1 কে অনুসরণ করছেন!",
|
||||||
"online": "অনলাইন",
|
|
||||||
"users": "ব্যবহারকারীগণ",
|
"users": "ব্যবহারকারীগণ",
|
||||||
"topics": "টপিক",
|
"topics": "টপিক",
|
||||||
"posts": "পোস্টগুলি",
|
"posts": "পোস্টগুলি",
|
||||||
@@ -60,6 +59,8 @@
|
|||||||
"downvoted": "Downvoted",
|
"downvoted": "Downvoted",
|
||||||
"views": "দেখেছেন",
|
"views": "দেখেছেন",
|
||||||
"reputation": "সন্মাননা",
|
"reputation": "সন্মাননা",
|
||||||
|
"lastpost": "Last post",
|
||||||
|
"firstpost": "First post",
|
||||||
"read_more": "আরো পড়ুন",
|
"read_more": "আরো পড়ুন",
|
||||||
"more": "আরো...",
|
"more": "আরো...",
|
||||||
"posted_ago_by_guest": "অতিথি পোস্ট করেছেন %1",
|
"posted_ago_by_guest": "অতিথি পোস্ট করেছেন %1",
|
||||||
@@ -77,6 +78,7 @@
|
|||||||
"recentposts": "সাম্প্রতিক পোস্ট",
|
"recentposts": "সাম্প্রতিক পোস্ট",
|
||||||
"recentips": "সাম্প্রতিক প্রবেশকৃত আইপি সমুহ",
|
"recentips": "সাম্প্রতিক প্রবেশকৃত আইপি সমুহ",
|
||||||
"moderator_tools": "Moderator Tools",
|
"moderator_tools": "Moderator Tools",
|
||||||
|
"online": "অনলাইন",
|
||||||
"away": "দূরে",
|
"away": "দূরে",
|
||||||
"dnd": "Do not disturb",
|
"dnd": "Do not disturb",
|
||||||
"invisible": "অদৃশ্য",
|
"invisible": "অদৃশ্য",
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
"details.latest_posts": "সর্বশেষ পোষ্টসমূহ",
|
"details.latest_posts": "সর্বশেষ পোষ্টসমূহ",
|
||||||
"details.private": "Private",
|
"details.private": "Private",
|
||||||
"details.disableJoinRequests": "Disable join requests",
|
"details.disableJoinRequests": "Disable join requests",
|
||||||
|
"details.disableLeave": "Disallow users from leaving the group",
|
||||||
"details.grant": "Grant/Rescind Ownership",
|
"details.grant": "Grant/Rescind Ownership",
|
||||||
"details.kick": "Kick",
|
"details.kick": "Kick",
|
||||||
"details.kick_confirm": "Are you sure you want to remove this member from the group?",
|
"details.kick_confirm": "Are you sure you want to remove this member from the group?",
|
||||||
@@ -36,7 +37,8 @@
|
|||||||
"details.description": "Description",
|
"details.description": "Description",
|
||||||
"details.badge_preview": "Badge Preview",
|
"details.badge_preview": "Badge Preview",
|
||||||
"details.change_icon": "Change Icon",
|
"details.change_icon": "Change Icon",
|
||||||
"details.change_colour": "Change Colour",
|
"details.change_label_colour": "Change Label Colour",
|
||||||
|
"details.change_text_colour": "Change Text Colour",
|
||||||
"details.badge_text": "Badge Text",
|
"details.badge_text": "Badge Text",
|
||||||
"details.userTitleEnabled": "Show Badge",
|
"details.userTitleEnabled": "Show Badge",
|
||||||
"details.private_help": "If enabled, joining of groups requires approval from a group owner",
|
"details.private_help": "If enabled, joining of groups requires approval from a group owner",
|
||||||
@@ -47,9 +49,11 @@
|
|||||||
"event.updated": "Group details have been updated",
|
"event.updated": "Group details have been updated",
|
||||||
"event.deleted": "The group \"%1\" has been deleted",
|
"event.deleted": "The group \"%1\" has been deleted",
|
||||||
"membership.accept-invitation": "Accept Invitation",
|
"membership.accept-invitation": "Accept Invitation",
|
||||||
|
"membership.accept.notification_title": "You are now a member of <strong>%1</strong>",
|
||||||
"membership.invitation-pending": "Invitation Pending",
|
"membership.invitation-pending": "Invitation Pending",
|
||||||
"membership.join-group": "Join Group",
|
"membership.join-group": "Join Group",
|
||||||
"membership.leave-group": "Leave Group",
|
"membership.leave-group": "Leave Group",
|
||||||
|
"membership.leave.notification_title": "<strong>%1</strong> has left group <strong>%2</strong>",
|
||||||
"membership.reject": "Reject",
|
"membership.reject": "Reject",
|
||||||
"new-group.group_name": "Group Name:",
|
"new-group.group_name": "Group Name:",
|
||||||
"upload-group-cover": "Upload group cover",
|
"upload-group-cover": "Upload group cover",
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user