mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-24 17:30:39 +01:00
Compare commits
678 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa77758afd | ||
|
|
d35ed55b5c | ||
|
|
ad6f6051bd | ||
|
|
31b4b8fd6e | ||
|
|
6ca216ab6e | ||
|
|
be4dbe3441 | ||
|
|
53ac159e28 | ||
|
|
2fee1d074e | ||
|
|
bfad04ab85 | ||
|
|
56d134c317 | ||
|
|
0a5420ed74 | ||
|
|
487f25ba29 | ||
|
|
f95acce3b5 | ||
|
|
ffdf26afef | ||
|
|
2633d8a53c | ||
|
|
da2bb340ac | ||
|
|
15bf3db2b6 | ||
|
|
2fa3cd0de7 | ||
|
|
6c1e184c74 | ||
|
|
afc75ba48a | ||
|
|
9b75b1ede2 | ||
|
|
762de2d862 | ||
|
|
385d4c71d8 | ||
|
|
ea735bc245 | ||
|
|
c9592e173c | ||
|
|
37a71291af | ||
|
|
bc0f33df95 | ||
|
|
a75a043b61 | ||
|
|
42caef7fa7 | ||
|
|
4bada01b2d | ||
|
|
1adc898ba7 | ||
|
|
40e7007fee | ||
|
|
a47883e89b | ||
|
|
f78108ace5 | ||
|
|
50eb4556cf | ||
|
|
9eb00cb2e0 | ||
|
|
418a6cf04c | ||
|
|
b610db09e5 | ||
|
|
d79d7e8081 | ||
|
|
5eb02f59c2 | ||
|
|
8ad64ec0f9 | ||
|
|
6b1cd17e4a | ||
|
|
a69afdb60b | ||
|
|
12038039f5 | ||
|
|
69a7634a78 | ||
|
|
bec0ef8995 | ||
|
|
0a15c99e4f | ||
|
|
9260355a96 | ||
|
|
b546ff4e84 | ||
|
|
ccdf65884e | ||
|
|
cc27a324b5 | ||
|
|
d89fc44c03 | ||
|
|
f1aa5f7d18 | ||
|
|
0d9ec9d30e | ||
|
|
e6a46ef6ce | ||
|
|
a78e58f252 | ||
|
|
5278b11a01 | ||
|
|
5439e45f3e | ||
|
|
1a6d5250fb | ||
|
|
87779fc8f9 | ||
|
|
a395596fbc | ||
|
|
5c3335b799 | ||
|
|
b5b188fd53 | ||
|
|
dd8b1f757d | ||
|
|
dd1633fff8 | ||
|
|
eccdfc9d6b | ||
|
|
ee05b76264 | ||
|
|
4f6fc10b84 | ||
|
|
07232a8cf6 | ||
|
|
b179f0fc0f | ||
|
|
842f96fc68 | ||
|
|
d960f601a1 | ||
|
|
2fe53cf849 | ||
|
|
d95b4ee29a | ||
|
|
82768fcf6e | ||
|
|
aaa6f752d0 | ||
|
|
207ae8cd6e | ||
|
|
aeb43b9bb1 | ||
|
|
e747998cba | ||
|
|
47ab952639 | ||
|
|
0aa25f20d5 | ||
|
|
16ba16cdc4 | ||
|
|
fe17c94c35 | ||
|
|
6294beea0b | ||
|
|
d62ee84637 | ||
|
|
6eea6451d2 | ||
|
|
d5fd098ecf | ||
|
|
90fcbe4416 | ||
|
|
b292960594 | ||
|
|
f48ed3658a | ||
|
|
140f9d2481 | ||
|
|
e745e21242 | ||
|
|
74f1905ea8 | ||
|
|
c990211cf2 | ||
|
|
9a4fd5dc7e | ||
|
|
eeffb9d978 | ||
|
|
09cf9c7770 | ||
|
|
55e68e2fd5 | ||
|
|
40b4544e70 | ||
|
|
94bead71fe | ||
|
|
02e878be72 | ||
|
|
a115b771f0 | ||
|
|
139a4378b3 | ||
|
|
35fea58a57 | ||
|
|
a9f81215cf | ||
|
|
33c8b1971e | ||
|
|
f7b3f69f6a | ||
|
|
42781467d2 | ||
|
|
8fb89d761a | ||
|
|
e332acf3f7 | ||
|
|
32cbf760f6 | ||
|
|
d23ac79839 | ||
|
|
c046b8f41d | ||
|
|
9253519c72 | ||
|
|
a1729e1afd | ||
|
|
fdaf8274cf | ||
|
|
c0dd8dcb1f | ||
|
|
34ffe69f27 | ||
|
|
55b9fab1be | ||
|
|
a76444662c | ||
|
|
59214ca297 | ||
|
|
edba10e22c | ||
|
|
5e68a99e73 | ||
|
|
540eeae9bc | ||
|
|
019804e177 | ||
|
|
66c759ed2b | ||
|
|
98abf30b18 | ||
|
|
d276c9cdb1 | ||
|
|
0ef9c7ab2e | ||
|
|
4e1d421722 | ||
|
|
fd939f8bec | ||
|
|
c4042c70de | ||
|
|
b8896d1328 | ||
|
|
599bffd8e0 | ||
|
|
c4156bdd7b | ||
|
|
2170c8a8f5 | ||
|
|
1e60ae8703 | ||
|
|
1264dcb555 | ||
|
|
91e21ecc62 | ||
|
|
9f1b8a3b1e | ||
|
|
dbba0c396b | ||
|
|
3d3ae82f5b | ||
|
|
633061f4a7 | ||
|
|
d4f3ee67fa | ||
|
|
dda7c0753e | ||
|
|
5e08f7e604 | ||
|
|
4577600e98 | ||
|
|
0e273ab25a | ||
|
|
1f063058f0 | ||
|
|
5e2281c350 | ||
|
|
0551a19e6e | ||
|
|
6b45dee9c5 | ||
|
|
cc0a087a70 | ||
|
|
968d461692 | ||
|
|
682f60890b | ||
|
|
737e1c191e | ||
|
|
10e890e41f | ||
|
|
69c96078ea | ||
|
|
3b0c42a591 | ||
|
|
42959df053 | ||
|
|
f918a38164 | ||
|
|
16398dd92f | ||
|
|
68fd087567 | ||
|
|
6ad0472106 | ||
|
|
49641a3217 | ||
|
|
4604a5724c | ||
|
|
6d95684bc8 | ||
|
|
0d694c781c | ||
|
|
5e232f17f6 | ||
|
|
99f865c618 | ||
|
|
02ea17ea1b | ||
|
|
bc7707aa88 | ||
|
|
20e76699a2 | ||
|
|
0d1e57dce0 | ||
|
|
45c9dde319 | ||
|
|
de1ed01d81 | ||
|
|
bd1cb2d4f9 | ||
|
|
ec1d5e38da | ||
|
|
8427c5d9db | ||
|
|
4247f62441 | ||
|
|
f7418ccd47 | ||
|
|
16c88a977c | ||
|
|
f2ca69d8f7 | ||
|
|
5c3d5f1f40 | ||
|
|
26f00ffb60 | ||
|
|
cfd474487a | ||
|
|
f0394c4965 | ||
|
|
8491f67daf | ||
|
|
e3c0f0be0a | ||
|
|
07e2741ea6 | ||
|
|
a8afdc6019 | ||
|
|
c90a89264c | ||
|
|
236d4e8056 | ||
|
|
9af2335134 | ||
|
|
45d8157fee | ||
|
|
9627fa9029 | ||
|
|
830166d120 | ||
|
|
f4aa249d8c | ||
|
|
07217762e6 | ||
|
|
a5840c5aff | ||
|
|
5477cf32ad | ||
|
|
60d778f063 | ||
|
|
8695d370ce | ||
|
|
70068d6c8b | ||
|
|
84b03a348c | ||
|
|
cf6032b1b2 | ||
|
|
ba02f01553 | ||
|
|
cbf198fe9b | ||
|
|
45d755b6ae | ||
|
|
cc3f82bc83 | ||
|
|
0b9c01f9a0 | ||
|
|
ba5d2e7b81 | ||
|
|
b335372348 | ||
|
|
10c19af2ad | ||
|
|
f8f0a83b52 | ||
|
|
a20abdce02 | ||
|
|
36eb47d9a0 | ||
|
|
170e5dd941 | ||
|
|
906dc5675e | ||
|
|
621c142f8e | ||
|
|
0a6eeb933e | ||
|
|
cba78aee16 | ||
|
|
4f4236101b | ||
|
|
4a53adf626 | ||
|
|
b4a0af4972 | ||
|
|
dd02c49f43 | ||
|
|
b052a8e763 | ||
|
|
1980feed46 | ||
|
|
8cbe0df2e5 | ||
|
|
4b11371586 | ||
|
|
0b88cfd9dd | ||
|
|
fa01801f64 | ||
|
|
b342338935 | ||
|
|
e9aadde180 | ||
|
|
f6c6425d68 | ||
|
|
71fa8175bb | ||
|
|
a29535833f | ||
|
|
41db9436e8 | ||
|
|
a3bdb70617 | ||
|
|
14e352470d | ||
|
|
597d826b26 | ||
|
|
7af902fc31 | ||
|
|
115de4e544 | ||
|
|
49813cce42 | ||
|
|
2bb0828af6 | ||
|
|
a1c9a69cd3 | ||
|
|
6ea3b51f12 | ||
|
|
d9c42c000c | ||
|
|
7b99dc46eb | ||
|
|
f72af319fb | ||
|
|
594293c763 | ||
|
|
1cdb0b1e19 | ||
|
|
32326c22fd | ||
|
|
ed4b0cf73d | ||
|
|
0414356cf7 | ||
|
|
50063fe238 | ||
|
|
7e6fa7b490 | ||
|
|
cd2040ac6b | ||
|
|
82b72f7edc | ||
|
|
5843122178 | ||
|
|
8117b7f22f | ||
|
|
324262cbb5 | ||
|
|
1a7fffc7e9 | ||
|
|
941ecaf899 | ||
|
|
65c5504193 | ||
|
|
747b2e7f70 | ||
|
|
3dd681ebce | ||
|
|
6b054d7a23 | ||
|
|
36aa60346b | ||
|
|
b34b8aa969 | ||
|
|
2dadf7865a | ||
|
|
7434cbf66f | ||
|
|
1e53552874 | ||
|
|
9239582e36 | ||
|
|
06bfec8840 | ||
|
|
23c915ba66 | ||
|
|
0f14f23b2a | ||
|
|
6c07433dea | ||
|
|
d378bf4c9c | ||
|
|
2c08a2b3bd | ||
|
|
bfb29fea07 | ||
|
|
6a2737980e | ||
|
|
daf385cd42 | ||
|
|
2934527532 | ||
|
|
ffc26bc9be | ||
|
|
404a877408 | ||
|
|
2bdb4906ec | ||
|
|
6dcdf1d342 | ||
|
|
7aa85882d5 | ||
|
|
a998cc1c47 | ||
|
|
c17ec996e0 | ||
|
|
a7d1dfb65c | ||
|
|
217aae4c81 | ||
|
|
a0e2704da1 | ||
|
|
c93d7fdbdd | ||
|
|
e0caa5e0c4 | ||
|
|
eecd02fbee | ||
|
|
01bd8a8694 | ||
|
|
79de48c57f | ||
|
|
9966a00fbe | ||
|
|
9fdbfe6779 | ||
|
|
bc120dba68 | ||
|
|
edf7c647e8 | ||
|
|
6d186ff10d | ||
|
|
754cdab896 | ||
|
|
1280d9ae85 | ||
|
|
2473d5d873 | ||
|
|
71e34be565 | ||
|
|
f11bc33ac5 | ||
|
|
0e72512509 | ||
|
|
d375dcb873 | ||
|
|
d7c32ccbc2 | ||
|
|
29b3587d91 | ||
|
|
fa1ac04dc6 | ||
|
|
c5f08fdc81 | ||
|
|
f0d192fbfd | ||
|
|
fdae69911b | ||
|
|
a10ea03c3a | ||
|
|
6eac500a50 | ||
|
|
87433b79ef | ||
|
|
242f8e95ad | ||
|
|
34de9608d0 | ||
|
|
387f2a07eb | ||
|
|
5b42b6b369 | ||
|
|
449366ca83 | ||
|
|
9245f71a66 | ||
|
|
fb363957d1 | ||
|
|
c26870d227 | ||
|
|
697dd37670 | ||
|
|
f05d308ac7 | ||
|
|
68dddbd946 | ||
|
|
3eb91a2011 | ||
|
|
5ec32c3145 | ||
|
|
d5bfd51267 | ||
|
|
e368feef51 | ||
|
|
2378fc84fa | ||
|
|
af5393ecdc | ||
|
|
500cad78e5 | ||
|
|
190532b3b4 | ||
|
|
51cbeccb08 | ||
|
|
27c05448e1 | ||
|
|
4359e5c97c | ||
|
|
0532c1b2a1 | ||
|
|
047f031dd7 | ||
|
|
c16dad40cf | ||
|
|
aac0792ab8 | ||
|
|
6d38eab69a | ||
|
|
f729e51921 | ||
|
|
258f368e32 | ||
|
|
ea9f2c731c | ||
|
|
aae7be027e | ||
|
|
4616253755 | ||
|
|
2b39dc4dea | ||
|
|
231472354e | ||
|
|
7f8783555b | ||
|
|
d7c2a311ab | ||
|
|
8379c11b22 | ||
|
|
1a85aaad23 | ||
|
|
e325aa935a | ||
|
|
d412ba4411 | ||
|
|
72e1c281d7 | ||
|
|
09e0c6d503 | ||
|
|
facc10e40f | ||
|
|
d196409580 | ||
|
|
8750ee04a6 | ||
|
|
80f9963bed | ||
|
|
3a78a15134 | ||
|
|
3c8109e27f | ||
|
|
a0f0dd021b | ||
|
|
dad31c8ea2 | ||
|
|
45a0895c34 | ||
|
|
975cb51262 | ||
|
|
41c3eb8298 | ||
|
|
96f13e4f5d | ||
|
|
0428912c6d | ||
|
|
ae64b9f495 | ||
|
|
61d1f56500 | ||
|
|
1719bff89c | ||
|
|
8b4510cc70 | ||
|
|
415dfbb9f7 | ||
|
|
cf30876fbf | ||
|
|
ef02bdc467 | ||
|
|
a9265dbf5c | ||
|
|
619034484f | ||
|
|
654c8e6148 | ||
|
|
e3f5b706a5 | ||
|
|
f352be63dc | ||
|
|
1a9b15989b | ||
|
|
666fe209f0 | ||
|
|
3d2398ac4c | ||
|
|
518552543d | ||
|
|
cb0d74bdd1 | ||
|
|
0a7ff2085e | ||
|
|
c1ac291284 | ||
|
|
b912a564e3 | ||
|
|
1a22b0ecf2 | ||
|
|
98ebc4d9ac | ||
|
|
b736347cd3 | ||
|
|
c1f5889f13 | ||
|
|
91676c6c7c | ||
|
|
4b738c8cd3 | ||
|
|
890bf03fcc | ||
|
|
8a12ac3470 | ||
|
|
30cce14204 | ||
|
|
4f1ee1fcb1 | ||
|
|
3386893b58 | ||
|
|
7fee0e3272 | ||
|
|
8224a2a930 | ||
|
|
91293ecc6d | ||
|
|
f7295aaad5 | ||
|
|
4ac9270a2a | ||
|
|
28dd31a8e7 | ||
|
|
9bfb6c7281 | ||
|
|
41e0240010 | ||
|
|
9e1d8da643 | ||
|
|
c1cc35a949 | ||
|
|
054685265d | ||
|
|
66e7cdac7a | ||
|
|
fb0588576d | ||
|
|
d27c9696e3 | ||
|
|
67cb249122 | ||
|
|
b1d6c9ba29 | ||
|
|
0888aae6d2 | ||
|
|
f59937314b | ||
|
|
8fac8d6188 | ||
|
|
3727e39f87 | ||
|
|
2e623dd271 | ||
|
|
98b98a1130 | ||
|
|
cbe19cb8b4 | ||
|
|
f728abda06 | ||
|
|
0f8a68c045 | ||
|
|
ddeeee7f1a | ||
|
|
3e4d477e48 | ||
|
|
8a88295d04 | ||
|
|
dc78125aa6 | ||
|
|
1fce1056c5 | ||
|
|
81c8d70c51 | ||
|
|
b916e42f40 | ||
|
|
9fbb3b11ef | ||
|
|
63976c42fe | ||
|
|
5a0efd2d42 | ||
|
|
46789910a8 | ||
|
|
8c67031609 | ||
|
|
7d468e7203 | ||
|
|
2ca40c6729 | ||
|
|
3d611ab70e | ||
|
|
89399c0ed5 | ||
|
|
a7f235dbac | ||
|
|
1452557838 | ||
|
|
10bb8cf747 | ||
|
|
485b6ced1d | ||
|
|
591424cea1 | ||
|
|
0ee85d5a0b | ||
|
|
60352eca54 | ||
|
|
6a976a9db0 | ||
|
|
d8d5f416cc | ||
|
|
74aa12c95b | ||
|
|
62ac9a8bbb | ||
|
|
bc4b19b4d7 | ||
|
|
755860f16b | ||
|
|
e8c17feedb | ||
|
|
783db5748b | ||
|
|
50b2ebf844 | ||
|
|
4ffbbae878 | ||
|
|
bda5d14425 | ||
|
|
8f08d9cac0 | ||
|
|
1e418f5b5e | ||
|
|
82eda23a9e | ||
|
|
28efcb59cb | ||
|
|
bf20965f0b | ||
|
|
bcf85fcfba | ||
|
|
3d1cf168f2 | ||
|
|
196a98c6ff | ||
|
|
015727855f | ||
|
|
f2bf33a28c | ||
|
|
8d4bb8bbbe | ||
|
|
7c2ecb1234 | ||
|
|
c428ba80aa | ||
|
|
c7e078d495 | ||
|
|
25ebbd6563 | ||
|
|
9b68dc37cc | ||
|
|
80ea12c1c1 | ||
|
|
5a328485dd | ||
|
|
0728a99453 | ||
|
|
49b8b983b6 | ||
|
|
3e94def687 | ||
|
|
ed0adf2ccf | ||
|
|
64192731a0 | ||
|
|
6cfaea06f0 | ||
|
|
89f5e06bbf | ||
|
|
19ee717444 | ||
|
|
0926ae6ecf | ||
|
|
62e44dc5be | ||
|
|
da64810a4a | ||
|
|
ff962b5ddf | ||
|
|
eb075c7328 | ||
|
|
a528790615 | ||
|
|
178600b1bb | ||
|
|
ee8e048015 | ||
|
|
abe59131dd | ||
|
|
f4cf482a87 | ||
|
|
63572c23ce | ||
|
|
8d316d1859 | ||
|
|
719cfc0d57 | ||
|
|
04dab1d550 | ||
|
|
1783f918bc | ||
|
|
c8b2fc46dc | ||
|
|
835c73c431 | ||
|
|
e62948f73d | ||
|
|
ab70ba3905 | ||
|
|
47df62e700 | ||
|
|
7866107988 | ||
|
|
f76a788290 | ||
|
|
4246f59729 | ||
|
|
f02fba29dc | ||
|
|
e6982da955 | ||
|
|
7ef5214ef9 | ||
|
|
506c34a84d | ||
|
|
6b4f35c2fa | ||
|
|
806a1e50d2 | ||
|
|
a5f4e20681 | ||
|
|
b91ae0880d | ||
|
|
d74a6bd35e | ||
|
|
2a3e13f360 | ||
|
|
1d62bd6d7b | ||
|
|
73a9ca09c9 | ||
|
|
d4da98404c | ||
|
|
8b8fe39303 | ||
|
|
998b9e7918 | ||
|
|
463b2076a6 | ||
|
|
fec7ebed04 | ||
|
|
66fca4e066 | ||
|
|
b18a24e97b | ||
|
|
d22b076b2e | ||
|
|
ee0282f5aa | ||
|
|
b2429ef00e | ||
|
|
fa1afbcf4a | ||
|
|
2bed40bed0 | ||
|
|
90b81262fa | ||
|
|
9cb4de50a2 | ||
|
|
44687394dc | ||
|
|
22f05b3961 | ||
|
|
f3c8d7da8e | ||
|
|
8e319a9b25 | ||
|
|
f7967bdf68 | ||
|
|
14bc83a88e | ||
|
|
6da3239230 | ||
|
|
c70eaa0a34 | ||
|
|
057d1d58e3 | ||
|
|
38756a0c34 | ||
|
|
ced8e72a69 | ||
|
|
ed4ebd2277 | ||
|
|
605a53812e | ||
|
|
4333d217a1 | ||
|
|
fe2cfa8039 | ||
|
|
5e08e67b0e | ||
|
|
1339c75781 | ||
|
|
deba3e2752 | ||
|
|
e1554f619a | ||
|
|
a9bc6a0962 | ||
|
|
6436aa65ad | ||
|
|
09f198fc37 | ||
|
|
e7f0a77fd8 | ||
|
|
ce5a0a2113 | ||
|
|
600a872031 | ||
|
|
b0128f8572 | ||
|
|
9e0ce0272c | ||
|
|
4784f016a7 | ||
|
|
54ae334995 | ||
|
|
f8f35d7e7e | ||
|
|
ed87466208 | ||
|
|
8e6bd7e913 | ||
|
|
1dba75e9c9 | ||
|
|
b460e5909c | ||
|
|
21b610826c | ||
|
|
0f9b0b7846 | ||
|
|
35af763418 | ||
|
|
bd893cdaa3 | ||
|
|
c84ad776c2 | ||
|
|
154ffea01b | ||
|
|
4ff5452d6f | ||
|
|
fe9f82f6b4 | ||
|
|
3c3f45d91b | ||
|
|
1feb111ade | ||
|
|
b0a24d6dd5 | ||
|
|
eddb98681c | ||
|
|
4b8dcd4c2b | ||
|
|
7c4aebbdf0 | ||
|
|
6d2e0aa970 | ||
|
|
288b5456f7 | ||
|
|
f96c8c4db0 | ||
|
|
52c38a1dc8 | ||
|
|
022e8df035 | ||
|
|
820f8cdf87 | ||
|
|
227456fb17 | ||
|
|
94c4f87b2f | ||
|
|
997fb2b348 | ||
|
|
4b92df821b | ||
|
|
3e69bcdf1f | ||
|
|
c1149d045c | ||
|
|
3acaac4c7c | ||
|
|
1958dffa04 | ||
|
|
6c25b9dbaa | ||
|
|
176ed9199b | ||
|
|
4f9717fb08 | ||
|
|
7935bd9efb | ||
|
|
56d05b4e86 | ||
|
|
b0eb2aed0e | ||
|
|
543d85212b | ||
|
|
63109c0705 | ||
|
|
8654a996d3 | ||
|
|
1438f40984 | ||
|
|
21166069dc | ||
|
|
945c2b0b8a | ||
|
|
7cbcb52151 | ||
|
|
f4e62fb1cd | ||
|
|
27e53b42f3 | ||
|
|
d30c316be9 | ||
|
|
b4fc277307 | ||
|
|
8ad9a103b3 | ||
|
|
96f5312de9 | ||
|
|
a0df389021 | ||
|
|
e954ca1025 | ||
|
|
a70c69fa83 | ||
|
|
9455e5b2b9 | ||
|
|
78895d0586 | ||
|
|
d1ff3d6298 | ||
|
|
9215c7d1e1 | ||
|
|
a7668a7fb1 | ||
|
|
840b49b9b2 | ||
|
|
4694382cc7 | ||
|
|
c5e49b08ce | ||
|
|
5aea6c6aa1 | ||
|
|
4404e81991 | ||
|
|
cb25faaa2d | ||
|
|
e6a17a6349 | ||
|
|
ea04aeded4 | ||
|
|
7d1c7e0a7b | ||
|
|
a658757382 | ||
|
|
409151050a | ||
|
|
be43cd2597 | ||
|
|
f24b630e1a | ||
|
|
c40bdad87e | ||
|
|
346e08908b | ||
|
|
6399b42826 | ||
|
|
aa370310a1 | ||
|
|
c5a48b44a5 | ||
|
|
ff84d6c52f | ||
|
|
ac1b9692f2 | ||
|
|
058fdca44e | ||
|
|
659685722c | ||
|
|
d50dd801ed | ||
|
|
193c92e386 | ||
|
|
6385b88e99 | ||
|
|
ff850b2431 | ||
|
|
4f8647a59c | ||
|
|
9fe9ab0869 | ||
|
|
123354ca36 | ||
|
|
f8d4ec6ca6 | ||
|
|
3605ac811d | ||
|
|
3479832593 | ||
|
|
8cb475482a | ||
|
|
4eacfef02b | ||
|
|
58e0a366c8 | ||
|
|
cb69934ad0 | ||
|
|
a9645475fe | ||
|
|
daea8a86c1 | ||
|
|
054f3da65d | ||
|
|
07adb49e7f | ||
|
|
6b34065f2a | ||
|
|
04ee5c0dfb | ||
|
|
0faa493745 | ||
|
|
fc1a31ed87 | ||
|
|
c78309b573 | ||
|
|
89af00d1d5 | ||
|
|
1a61ffc595 | ||
|
|
57358743fa | ||
|
|
f066ddb8f6 |
4
.github/workflows/test.yaml
vendored
4
.github/workflows/test.yaml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
node: [12, 14]
|
||||
node: [12, 14, 16]
|
||||
database: [mongo-dev, mongo, redis, postgres]
|
||||
include:
|
||||
# only run coverage once
|
||||
@@ -69,7 +69,7 @@ jobs:
|
||||
- 6379:6379
|
||||
|
||||
mongo:
|
||||
image: 'mongo:3.2'
|
||||
image: 'mongo:3.6'
|
||||
ports:
|
||||
# Maps port 27017 on service container to the host
|
||||
- 27017:27017
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"indent_size": 4,
|
||||
"indent_char": " ",
|
||||
"indent_level": 0,
|
||||
"indent_with_tabs": true,
|
||||
"preserve_newlines": true,
|
||||
"max_preserve_newlines": 10,
|
||||
"jslint_happy": true,
|
||||
"brace_style": "collapse",
|
||||
"keep_array_indentation": false,
|
||||
"keep_function_indentation": false,
|
||||
"space_before_conditional": true,
|
||||
"break_chained_methods": false,
|
||||
"eval_code": false,
|
||||
"unescape_strings": false,
|
||||
"wrap_line_length": 0
|
||||
}
|
||||
91
.jshintrc
91
.jshintrc
@@ -1,91 +0,0 @@
|
||||
{
|
||||
// JSHint Default Configuration File (as on JSHint website)
|
||||
// See http://jshint.com/docs/ for more details
|
||||
|
||||
"maxerr" : 50, // {int} Maximum error before stopping
|
||||
|
||||
"esversion": 6,
|
||||
|
||||
// Enforcing
|
||||
"bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
|
||||
"camelcase" : false, // true: Identifiers must be in camelCase
|
||||
"curly" : true, // true: Require {} for every new block or scope
|
||||
"eqeqeq" : true, // true: Require triple equals (===) for comparison
|
||||
"forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty()
|
||||
"immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
|
||||
"indent" : 4, // {int} Number of spaces to use for indentation
|
||||
"latedef" : false, // true: Require variables/functions to be defined before being used
|
||||
"newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()`
|
||||
"noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee`
|
||||
"noempty" : true, // true: Prohibit use of empty blocks
|
||||
"nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment)
|
||||
"plusplus" : false, // true: Prohibit use of `++` & `--`
|
||||
"quotmark" : false, // Quotation mark consistency:
|
||||
// false : do nothing (default)
|
||||
// true : ensure whatever is used is consistent
|
||||
// "single" : require single quotes
|
||||
// "double" : require double quotes
|
||||
"undef" : true, // true: Require all non-global variables to be declared (prevents global leaks)
|
||||
"unused" : true, // true: Require all defined variables be used
|
||||
"strict" : true, // true: Requires all functions run in ES5 Strict Mode
|
||||
"trailing" : false, // true: Prohibit trailing whitespaces
|
||||
"maxparams" : false, // {int} Max number of formal params allowed per function
|
||||
"maxdepth" : false, // {int} Max depth of nested blocks (within functions)
|
||||
"maxstatements" : false, // {int} Max number statements per function
|
||||
"maxcomplexity" : false, // {int} Max cyclomatic complexity per function
|
||||
"maxlen" : false, // {int} Max number of characters per line
|
||||
|
||||
// Relaxing
|
||||
"asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons)
|
||||
"boss" : false, // true: Tolerate assignments where comparisons would be expected
|
||||
"debug" : false, // true: Allow debugger statements e.g. browser breakpoints.
|
||||
"eqnull" : false, // true: Tolerate use of `== null`
|
||||
"es5" : false, // true: Allow ES5 syntax (ex: getters and setters)
|
||||
"esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`)
|
||||
"moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features)
|
||||
// (ex: `for each`, multiple try/catch, function expression…)
|
||||
"evil" : false, // true: Tolerate use of `eval` and `new Function()`
|
||||
"expr" : false, // true: Tolerate `ExpressionStatement` as Programs
|
||||
"funcscope" : false, // true: Tolerate defining variables inside control statements"
|
||||
"globalstrict" : false, // true: Allow global "use strict" (also enables 'strict')
|
||||
"iterator" : false, // true: Tolerate using the `__iterator__` property
|
||||
"lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
|
||||
"laxbreak" : false, // true: Tolerate possibly unsafe line breakings
|
||||
"laxcomma" : false, // true: Tolerate comma-first style coding
|
||||
"loopfunc" : false, // true: Tolerate functions being defined in loops
|
||||
"multistr" : false, // true: Tolerate multi-line strings
|
||||
"proto" : false, // true: Tolerate using the `__proto__` property
|
||||
"scripturl" : false, // true: Tolerate script-targeted URLs
|
||||
"smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment
|
||||
"shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
|
||||
"sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation
|
||||
"supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;`
|
||||
"validthis" : false, // true: Tolerate using this in a non-constructor function
|
||||
|
||||
// Environments
|
||||
"browser" : true, // Web Browser (window, document, etc)
|
||||
"couch" : false, // CouchDB
|
||||
"devel" : true, // Development/debugging (alert, confirm, etc)
|
||||
"dojo" : false, // Dojo Toolkit
|
||||
"jquery" : true, // jQuery
|
||||
"mootools" : false, // MooTools
|
||||
"node" : true, // Node.js
|
||||
"nonstandard" : false, // Widely adopted globals (escape, unescape, etc)
|
||||
"prototypejs" : false, // Prototype and Scriptaculous
|
||||
"rhino" : false, // Rhino
|
||||
"worker" : false, // Web Workers
|
||||
"wsh" : false, // Windows Scripting Host
|
||||
"yui" : false, // Yahoo User Interface
|
||||
"mocha": true,
|
||||
|
||||
// Legacy
|
||||
"nomen" : false, // true: Prohibit dangling `_` in variables
|
||||
"onevar" : false, // true: Allow only one `var` statement per function
|
||||
"passfail" : false, // true: Stop on first error
|
||||
"white" : false, // true: Check against strict whitespace and indentation rules
|
||||
|
||||
// Custom Globals
|
||||
"globals" : {
|
||||
"Promise": true
|
||||
} // additional predefined global variables
|
||||
}
|
||||
50
.tx/config
50
.tx/config
@@ -1000,6 +1000,56 @@ trans.zh_CN = public/language/zh-CN/tags.json
|
||||
trans.zh_TW = public/language/zh-TW/tags.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.top]
|
||||
file_filter = public/language/<lang>/top.json
|
||||
source_file = public/language/en-GB/top.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/top.json
|
||||
trans.bg = public/language/bg/top.json
|
||||
trans.bn = public/language/bn/top.json
|
||||
trans.cs = public/language/cs/top.json
|
||||
trans.da = public/language/da/top.json
|
||||
trans.de = public/language/de/top.json
|
||||
trans.el = public/language/el/top.json
|
||||
trans.en@pirate = public/language/en-x-pirate/top.json
|
||||
trans.en_US = public/language/en-US/top.json
|
||||
trans.es = public/language/es/top.json
|
||||
trans.et = public/language/et/top.json
|
||||
trans.fa_IR = public/language/fa-IR/top.json
|
||||
trans.fi = public/language/fi/top.json
|
||||
trans.fr = public/language/fr/top.json
|
||||
trans.gl = public/language/gl/top.json
|
||||
trans.he = public/language/he/top.json
|
||||
trans.hr = public/language/hr/top.json
|
||||
trans.hu = public/language/hu/top.json
|
||||
trans.id = public/language/id/top.json
|
||||
trans.it = public/language/it/top.json
|
||||
trans.ja = public/language/ja/top.json
|
||||
trans.ko = public/language/ko/top.json
|
||||
trans.lt = public/language/lt/top.json
|
||||
trans.lv = public/language/lv/top.json
|
||||
trans.ms = public/language/ms/top.json
|
||||
trans.nb = public/language/nb/top.json
|
||||
trans.nl = public/language/nl/top.json
|
||||
trans.pl = public/language/pl/top.json
|
||||
trans.pt_BR = public/language/pt-BR/top.json
|
||||
trans.pt_PT = public/language/pt-PT/top.json
|
||||
trans.ro = public/language/ro/top.json
|
||||
trans.ru = public/language/ru/top.json
|
||||
trans.rw = public/language/rw/top.json
|
||||
trans.sc = public/language/sc/top.json
|
||||
trans.sk = public/language/sk/top.json
|
||||
trans.sl = public/language/sl/top.json
|
||||
trans.sr = public/language/sr/top.json
|
||||
trans.sv = public/language/sv/top.json
|
||||
trans.th = public/language/th/top.json
|
||||
trans.tr = public/language/tr/top.json
|
||||
trans.uk = public/language/uk/top.json
|
||||
trans.vi = public/language/vi/top.json
|
||||
trans.zh_CN = public/language/zh-CN/top.json
|
||||
trans.zh_TW = public/language/zh-TW/top.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.email]
|
||||
file_filter = public/language/<lang>/email.json
|
||||
source_file = public/language/en-GB/email.json
|
||||
|
||||
417
CHANGELOG.md
417
CHANGELOG.md
@@ -1,3 +1,420 @@
|
||||
#### v1.18.6 (2021-11-10)
|
||||
|
||||
##### Chores
|
||||
|
||||
* make it a link (a0f0dd02)
|
||||
* update badges, remove david doesnt work (dad31c8e)
|
||||
* up themes (b1d6c9ba)
|
||||
* up mentions (98b98a11)
|
||||
* up mentions (3e4d477e)
|
||||
* fix type.yaml example and summary (591424ce)
|
||||
* incrementing version number - v1.18.5 (1e418f5b)
|
||||
* update changelog for v1.18.5 (82eda23a)
|
||||
* remove .opacity() mixin as it is supported cross-browser (28efcb59)
|
||||
* **deps:**
|
||||
* update dependency eslint-plugin-import to v2.25.3 (45a0895c)
|
||||
* update commitlint monorepo to v14 (dc78125a)
|
||||
* update dependency jsdom to v18.0.1 (7d468e72)
|
||||
* **i18n:**
|
||||
* fallback strings for new resources: nodebb.admin-development-info (91676c6c)
|
||||
* fallback strings for new resources: nodebb.admin-settings-navigation (3727e39f)
|
||||
* fallback strings for new resources: nodebb.admin-settings-post (46789910)
|
||||
|
||||
##### New Features
|
||||
|
||||
* #9992, hooks.one (96f13e4f)
|
||||
* use auto-generated meta and link tags in ACP, closes #9991 (1719bff8)
|
||||
* add node 16 (#9847) (d27c9696)
|
||||
* #9967, allow dropdowns in navigation (2e623dd2)
|
||||
* show number of events per type in acp (b916e42f)
|
||||
* show posts previews if enabled on mouse over (8c670316)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* **deps:**
|
||||
* update dependency nodebb-theme-slick to v1.4.16 (#9990) (cf30876f)
|
||||
* update dependency nodebb-plugin-composer-default to v7.0.14 (#9989) (ef02bdc4)
|
||||
* update dependency nodebb-plugin-composer-default to v7.0.13 (#9988) (654c8e61)
|
||||
* update dependency nodebb-plugin-mentions to v3.0.2 (1a22b0ec)
|
||||
* update dependency socket.io to v4.3.2 (98ebc4d9)
|
||||
* update dependency html-to-text to v8.1.0 (c1f5889f)
|
||||
* update dependency nodebb-plugin-dbsearch to v5.1.0 (#9983) (4f1ee1fc)
|
||||
* update dependency nodebb-plugin-composer-default to v7.0.12 (7fee0e32)
|
||||
* update dependency nodebb-plugin-mentions to v3.0.1 (#9979) (8224a2a9)
|
||||
* update dependency nodebb-plugin-spam-be-gone to v0.7.11 (91293ecc)
|
||||
* update dependency nodebb-theme-lavender to v5.3.1 (f7295aaa)
|
||||
* update dependency nodebb-plugin-mentions to v3 (#9966) (0888aae6)
|
||||
* update dependency mongodb to v4.1.4 (#9968) (f5993731)
|
||||
* update dependency nodebb-theme-persona to v11.2.21 (#9969) (8fac8d61)
|
||||
* update dependency nodebb-plugin-mentions to v2.15.1 (0f8a68c0)
|
||||
* update dependency validator to v13.7.0 (81c8d70c)
|
||||
* update dependency autoprefixer to v10.4.0 (755860f1)
|
||||
* ability to enumerate email via updateProfile method (c1ac2912)
|
||||
* accidentally not clearing email when said email is confirmed for a different uid (b912a564)
|
||||
* #9976 (28dd31a8)
|
||||
* #9976, handle array or object (9bfb6c72)
|
||||
* dont show previews on mobile (41e02400)
|
||||
* category load more btn visibility (05468526)
|
||||
* #9973, ignore if assigning to same parent (66e7cdac)
|
||||
* #9972 (67cb2491)
|
||||
* remove tooltip on ajaxify (f728abda)
|
||||
* don't highlight external nav items (8a88295d)
|
||||
* don't use # for previews (5a0efd2d)
|
||||
* events for just topic with main post (3d611ab7)
|
||||
* #9954, get next post timestamp (89399c0e)
|
||||
* topic events not rendered in infinitescroll (a7f235db)
|
||||
* broken post uploads due to 6a976a9db0340e34577961ce8d5d9479c78f7856 (485b6ced)
|
||||
* #9950, rename account export routes to remove `uid/` prefix (0ee85d5a)
|
||||
* double invocation of authenticateRequest (60352eca)
|
||||
* #9945, call authenticateRequest middleware for mount points in /api (6a976a9d)
|
||||
* hooks is sometimes undefined (74aa12c9)
|
||||
* typo in flags (bc4b19b4)
|
||||
* remove unused code (50b2ebf8)
|
||||
* handle undefined data.query (8f08d9ca)
|
||||
|
||||
##### Performance Improvements
|
||||
|
||||
* only load posts once (9fbb3b11)
|
||||
|
||||
##### Refactors
|
||||
|
||||
* shorter require (41c3eb82)
|
||||
* deprecate app.alert functions user alerts module directly (0428912c)
|
||||
* deprecate app.logout (8b4510cc)
|
||||
* simpler rejoin (61903448)
|
||||
* deprecate app.openChat/newChat (f352be63)
|
||||
* move search functions from app.js to search module (1a9b1598)
|
||||
* move session messages (666fe209)
|
||||
* move warnings/messages out of app.js (51855254)
|
||||
* remove jshint (0a7ff208)
|
||||
* cleanup info, better cpu usage % (4b738c8c)
|
||||
* acp only uses 3 modes and a single theme (890bf03f)
|
||||
* display errors from category drag/drop (c1cc35a9)
|
||||
* use utils.debounce (e8c17fee)
|
||||
|
||||
##### Tests
|
||||
|
||||
* add another assert for random failing test (ae64b9f4)
|
||||
* socket.emit doesnt exist in tests (61d1f565)
|
||||
* show body when test fails (e3f5b706)
|
||||
* lint (3d2398ac)
|
||||
* fix tpl test (30cce142)
|
||||
* dbsearch no longer has staticDir (3386893b)
|
||||
* increase timeout (4ac9270a)
|
||||
* fix account export test routes (10bb8cf7)
|
||||
* add test aliases.buildTargets (62ac9a8b)
|
||||
* empty query params for search (bda5d144)
|
||||
|
||||
#### v1.18.5 (2021-10-27)
|
||||
|
||||
##### Breaking Changes
|
||||
|
||||
* disable javascript in custom less tab (719cfc0d)
|
||||
|
||||
##### Chores
|
||||
|
||||
* remove .opacity() mixin as it is supported cross-browser (28efcb59)
|
||||
* up themes (463b2076)
|
||||
* up persona (1438f409)
|
||||
* incrementing version number - v1.18.4 (945c2b0b)
|
||||
* update changelog for v1.18.4 (7cbcb521)
|
||||
* **deps:**
|
||||
* update dependency lint-staged to v11.2.6 (8d4bb8bb)
|
||||
* update dependency lint-staged to v11.2.5 (0728a994)
|
||||
* update dependency lint-staged to v11.2.4 (f76a7882)
|
||||
* update dependency husky to v7.0.4 (2a3e13f3)
|
||||
* update dependency mocha to v9.1.3 (4784f016)
|
||||
* update dependency eslint-plugin-import to v2.25.2 (3c3f45d9)
|
||||
* update dependency jsdom to v18 (4b8dcd4c)
|
||||
* update dependency eslint-plugin-import to v2.25.1 (7c4aebbd)
|
||||
* update dependency lint-staged to v11.2.3 (288b5456)
|
||||
* update dependency lint-staged to v11.2.2 (f96c8c4d)
|
||||
* update dependency @commitlint/cli to v13.2.1 (52c38a1d)
|
||||
* update dependency lint-staged to v11.2.1 (022e8df0)
|
||||
* update dependency eslint-config-nodebb to v0.0.3 (4b92df82)
|
||||
* **i18n:**
|
||||
* fallback strings for new resources: nodebb.admin-settings-email, nodebb.error (9b68dc37)
|
||||
* fallback strings for new resources: nodebb.admin-dashboard (ff962b5d)
|
||||
* fallback strings for new resources: nodebb.admin-dashboard, nodebb.admin-menu (abe59131)
|
||||
* fallback strings for new resources: nodebb.admin-manage-digest, nodebb.admin-settings-user, nodebb.user (2bed40be)
|
||||
|
||||
##### Documentation Changes
|
||||
|
||||
* update verbiage re: login API route (94c4f87b)
|
||||
|
||||
##### New Features
|
||||
|
||||
* new ACP option `emailPrompt` ... which allows administrators to disable the client-side prompt to encourage users to enter or confirm their email addresses (80ea12c1)
|
||||
* show popular searches (f4cf482a)
|
||||
* new plugin hook to allow plugins to reject email address on new registration or email change (6b4f35c2)
|
||||
* utilities login API route now starts an actual login session, if requested (806a1e50)
|
||||
* add method name to deprecation message (b91ae088)
|
||||
* quote tooltip (66fca4e0)
|
||||
* additional quality options for jpeg uploads, added quality and compression settings for png uploads (d22b076b)
|
||||
* #8053, biweekly digest option (f7967bdf)
|
||||
* core submit button dropdown (605a5381)
|
||||
* added failing i18n tests (35af7634)
|
||||
* confirm before deleting all events (#9875) (56d05b4e)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* **deps:**
|
||||
* update dependency nodebb-theme-vanilla to v12.1.7 (#9944) (bf20965f)
|
||||
* update dependency nodebb-theme-persona to v11.2.19 (#9943) (bcf85fcf)
|
||||
* update dependency nodebb-rewards-essentials to v0.2.0 (7c2ecb12)
|
||||
* update dependency nodebb-theme-vanilla to v12.1.6 (49b8b983)
|
||||
* update dependency nodebb-theme-persona to v11.2.18 (ed0adf2c)
|
||||
* update dependency nodebb-theme-persona to v11.2.17 (78661079)
|
||||
* update dependency postcss to v8.3.11 (a5f4e206)
|
||||
* update dependency nodebb-theme-vanilla to v12.1.5 (d74a6bd3)
|
||||
* update dependency sharp to v0.29.2 (8b8fe393)
|
||||
* update dependency postcss to v8.3.10 (b18a24e9)
|
||||
* update dependency nodebb-theme-persona to v11.2.15 (f3c8d7da)
|
||||
* update dependency nodebb-theme-persona to v11.2.14 (#9919) (5e08e67b)
|
||||
* update dependency socket.io-client to v4.3.2 (deba3e27)
|
||||
* update dependency socket.io to v4.3.1 (e1554f61)
|
||||
* update socket.io packages (ce5a0a21)
|
||||
* update dependency nodebb-plugin-spam-be-gone to v0.7.10 (600a8720)
|
||||
* update dependency nodebb-plugin-composer-default to v7.0.10 (b0128f85)
|
||||
* update dependency nodebb-plugin-markdown to v8.14.4 (f8f35d7e)
|
||||
* update dependency nodebb-plugin-composer-default to v7.0.9 (ed874662)
|
||||
* update dependency nodebb-theme-persona to v11.2.13 (1dba75e9)
|
||||
* update dependency ioredis to v4.28.0 (4ff5452d)
|
||||
* update dependency nodebb-theme-persona to v11.2.12 (fe9f82f6)
|
||||
* update dependency ioredis to v4.27.11 (6d2e0aa9)
|
||||
* update dependency nodebb-plugin-mentions to v2.14.1 (820f8cdf)
|
||||
* update dependency jquery-ui to v1.13.0 (b0eb2aed)
|
||||
* remove loading="lazy", fixes inf. scroll loaded images (01572785)
|
||||
* windows tests (25ebbd65)
|
||||
* undefined query showing in searches (6cfaea06)
|
||||
* don't repeat search if on same page (89f5e06b)
|
||||
* api session revoke test (0926ae6e)
|
||||
* crash (da64810a)
|
||||
* add missing translation (eb075c73)
|
||||
* move record to controller (ee8e0480)
|
||||
* profile edit fields showing translated values (63572c23)
|
||||
* #9934, fix translator test (8d316d18)
|
||||
* token verify (04dab1d5)
|
||||
* guard against prototype pollution (1783f918)
|
||||
* translator path traversal (c8b2fc46)
|
||||
* there is no alltime digest, fixes translation in test email (e62948f7)
|
||||
* clicking outside postContainer should close tooltip (47df62e7)
|
||||
* minification regression (998b9e79)
|
||||
* tooltip (fec7ebed)
|
||||
* biweekly digest #8053 (9cb4de50)
|
||||
* restore plugin upgrade checking logic (44687394)
|
||||
* fallbacks for new langauge key (ed4ebd22)
|
||||
* #9917, show topics as unread for guests (4333d217)
|
||||
* clarify site settings urls vs config.json url (#9912) (6436aa65)
|
||||
* clarify SMTP enable toggle (#9911) (09f198fc)
|
||||
* don't overwrite reloadRequired with false (9e0ce027)
|
||||
* delete translations in admin/general folder (since general was removed and relocated elsewhere) (b460e590)
|
||||
* pushed missing key to tx and pulled fallbacks (21b61082)
|
||||
* adding missing language namespace "top" (0f9b0b78)
|
||||
* extra debug log (bd893cda)
|
||||
* have renovate add `dependencies` label to its PRs (eddb9868)
|
||||
* no global bootbox (#9879) (227456fb)
|
||||
* #9872 update app badge with notification count if applicable (3e69bcdf)
|
||||
* better nomenclature (c1149d04)
|
||||
* html attributes (#9877) (3acaac4c)
|
||||
* escape thumbs, allow robots meta tag (4f9717fb)
|
||||
* missing translations (#9876) (7935bd9e)
|
||||
|
||||
##### Performance Improvements
|
||||
|
||||
* dont fs.open if plugin doesnt have language namespace (#9893) (1feb111a)
|
||||
|
||||
##### Refactors
|
||||
|
||||
* wider value field (c428ba80)
|
||||
* dont save partial searches (c7e078d4)
|
||||
* use search api for topic search (64192731)
|
||||
* slowdown quick search (19ee7174)
|
||||
* typo (a5287906)
|
||||
* add callback to loadNotifications (f02fba29)
|
||||
* simplified utilities API > login rout (506c34a8)
|
||||
* log error as well (1d62bd6d)
|
||||
* catch errors from buildHeader in error handler :fire: (73a9ca09)
|
||||
* add missing helpers.tryRoute (d4da9840)
|
||||
* shorter middleware (ee0282f5)
|
||||
* meta/minifier use async/await (b2429ef0)
|
||||
* remove unused var (90b81262)
|
||||
* catch errors from digest (8e319a9b)
|
||||
* less.render returns promise (14bc83a8)
|
||||
* less.render already returns promise (6da32392)
|
||||
* prompt.get already returns promise (c70eaa0a)
|
||||
* no need for async/callbacks (057d1d58)
|
||||
* no more :cow: (38756a0c)
|
||||
* allow array of uids for blocks.is/list (a9bc6a09)
|
||||
* show full url on error log (8e6bd7e9)
|
||||
* var to const and let (#9885) (b0a24d6d)
|
||||
* remove unused code (997fb2b3)
|
||||
* remove unused colorpicker (543d8521)
|
||||
|
||||
##### Reverts
|
||||
|
||||
* lazy load (3d1cf168)
|
||||
|
||||
##### Tests
|
||||
|
||||
* fix broken openapi3 schema (7ef5214e)
|
||||
* restore commented-out i18n test (fa1afbcf)
|
||||
* moved topic event and topic thumb tests to subfolder for better organisation (154ffea0)
|
||||
* remove escape (6c25b9db)
|
||||
* possible fix to timeout (63109c07)
|
||||
* increase timeout (8654a996)
|
||||
|
||||
#### v1.18.4 (2021-10-06)
|
||||
|
||||
##### Chores
|
||||
|
||||
* up persona (f4e62fb1)
|
||||
* incrementing version number - v1.18.3 (57358743)
|
||||
* update changelog for v1.18.3 (f066ddb8)
|
||||
* **deps:**
|
||||
* update dependency lint-staged to v11.2.0 (840b49b9)
|
||||
* update commitlint monorepo to v13.2.0 (aa370310)
|
||||
* update dependency mocha to v9.1.2 (6385b88e)
|
||||
|
||||
##### Documentation Changes
|
||||
|
||||
* added link to unofficial IRC channel (c5a48b44)
|
||||
|
||||
##### New Features
|
||||
|
||||
* use unread icon in mobile (27e53b42)
|
||||
* cli user management commands (#9848) (d1ff3d62)
|
||||
* #9855, allow uid for post queue notifications (5aea6c6a)
|
||||
* add userData to static:user.delete (f24b630e)
|
||||
* closes #9845, sort by views (6399b428)
|
||||
* duplicate `requireEmailAddress` settings block to Settings > User (a9645475)
|
||||
* mongodb driver 4.x (#9832) (07adb49e)
|
||||
* a useless hover effect because raisins (1a61ffc5)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* **deps:**
|
||||
* update dependency mongodb to v4.1.3 (b4fc2773)
|
||||
* update dependency postcss to v8.3.9 (9455e5b2)
|
||||
* update dependency autoprefixer to v10.3.7 (78895d05)
|
||||
* update dependency nodebb-plugin-composer-default to v7.0.8 (9215c7d1)
|
||||
* update dependency ioredis to v4.27.10 (4694382c)
|
||||
* update dependency nodebb-theme-persona to v11.2.9 (346e0890)
|
||||
* update dependency autoprefixer to v10.3.6 (058fdca4)
|
||||
* update dependency yargs to v17.2.1 (d50dd801)
|
||||
* update dependency postcss to v8.3.8 (193c92e3)
|
||||
* update dependency passport to ^0.5.0 (daea8a86)
|
||||
* update dependency connect-pg-simple to v7 (#9785) (054f3da6)
|
||||
* update dependency yargs to v17.2.0 (c78309b5)
|
||||
* #9866, fire vote hooks after reputation changes (#9867) (8ad9a103)
|
||||
* #9865, don't display register messages after login (96f5312d)
|
||||
* dont show decimails on auto approva minutes (a0df3890)
|
||||
* #9864 (e954ca10)
|
||||
* delete old topic tags (a70c69fa)
|
||||
* switch inf. scroll to xhr (#9854) (4404e819)
|
||||
* #9828, max-width (40915105)
|
||||
* handle undefined returnTo on registerAbort (ac1b9692)
|
||||
* lint (ff850b24)
|
||||
* psql tests (123354ca)
|
||||
* psql test (f8d4ec6c)
|
||||
* possible test fix for subfolder redirect (3605ac81)
|
||||
* missing relative path in test (4eacfef0)
|
||||
* #9834, missing null email check on new registrations, added tests (58e0a366)
|
||||
* crossorigin not showing up on manifest link tag (0faa4937)
|
||||
* #9827, fix reward duplication (89af00d1)
|
||||
|
||||
##### Performance Improvements
|
||||
|
||||
* convert promise.all to single query (#9851) (ea04aede)
|
||||
|
||||
##### Refactors
|
||||
|
||||
* use utils.debounce (a7668a7f)
|
||||
* remove async.waterfall from remaining upgrade scripts (6b34065f)
|
||||
|
||||
##### Tests
|
||||
|
||||
* dashboard (4f8647a5)
|
||||
* add tests for admin privileges (9fe9ab08)
|
||||
* add missing tests (34798325)
|
||||
* remove debug log (8cb47548)
|
||||
* no need to create fake interstitial as NodeBB comes with some by default (cb69934a)
|
||||
|
||||
#### v1.18.3 (2021-09-22)
|
||||
|
||||
##### Chores
|
||||
|
||||
* **deps:** update docker/build-push-action action to v2.7.0 (ee027719)
|
||||
* incrementing version number - v1.18.2 (0a56158b)
|
||||
* update changelog for v1.18.2 (27e9282a)
|
||||
|
||||
##### New Features
|
||||
|
||||
* move filter:topic.post hook to top of method (f194809f)
|
||||
* add client-side static hook to fire immediately before any topic action (hint: delete `action` to stop default behaviour) (66eaae44)
|
||||
* allow removing multiple items from list (397835a0)
|
||||
* add uid to filter:user.saveSettings (7f48edc0)
|
||||
* headers for global privs #9717 (#9762) (84ff1152)
|
||||
* add ACP option to require email address on new registration (006fc700)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* **deps:**
|
||||
* update dependency nodebb-plugin-composer-default to v7.0.7 (98554294)
|
||||
* update dependency postcss to v8.3.7 (6ebe707c)
|
||||
* update dependency autoprefixer to v10.3.5 (25687441)
|
||||
* update dependency nodebb-plugin-composer-default to v7.0.6 (#9815) (c18678ce)
|
||||
* update dependency nodebb-theme-persona to v11.2.8 (#9816) (39d73d0c)
|
||||
* update dependency connect-mongo to v4.6.0 (8e886c85)
|
||||
* update dependency nodebb-plugin-composer-default to v7.0.4 (8af54255)
|
||||
* update dependency mongodb to v3.7.1 (9049dcd7)
|
||||
* update dependency nodebb-theme-persona to v11.2.6 (506035b5)
|
||||
* update dependency nodebb-theme-slick to v1.4.13 (787306a6)
|
||||
* update dependency nodebb-plugin-composer-default to v7.0.3 (732b59c2)
|
||||
* fixed element shifting in ACP menu that's been bothering me for 5-ish years (31975a62)
|
||||
* #9822, use correct username/pwd (30f38771)
|
||||
* remove unused translator (2add84a5)
|
||||
* ban info test (07859f7e)
|
||||
* #9819, show same time info for ban (9f0e55ad)
|
||||
* show local time for ban (7a2f0ae1)
|
||||
* crash (c437b336)
|
||||
* remove caller from payload after hooks is done (15f9aaa6)
|
||||
* bad uid reference (ce8ea6ea)
|
||||
* update Topics.post and Topics.reply so that plugins can modify uid (or redirect a reply to a different topic) (7777812e)
|
||||
* #9818, fix totalTime calculation (c4fc7bf9)
|
||||
* missing microdata in category data (1ed62aa8)
|
||||
* #9812, add topics:schedule (c0a52924)
|
||||
* for subfolders (31a6d4b3)
|
||||
* req.path doesn't have full url (0236ea86)
|
||||
* escape moderation note before adding to dom (75ebe786)
|
||||
* #9811, send bodyClass on 403 (40c9fca9)
|
||||
* also launch docker workflow on release branches (944a7985)
|
||||
* xss on flags page via ban reason (ba3582b8)
|
||||
* up timeout for psql tests (896ff215)
|
||||
* redis batch (0c4b875e)
|
||||
* redis processing batch+1 items every iteration (3261edcc)
|
||||
* #9560, don't save post diffs if content didn't change (8b576a37)
|
||||
* #9790, get baseIndex on update for infinitescroll (6a55c027)
|
||||
* #9790, fix sorting of more than one page of pinned topics (2657804c)
|
||||
* privileges added by plugins (#9802) (3ecbb624)
|
||||
* #9800, don't send all welcome test emails to test@example.org @julianlam (71ed50b9)
|
||||
* docker - remove sha tag (b06e8dba)
|
||||
* Return QEMU back, remove platforms definition (52eace4b)
|
||||
* Docker workflow tweaks (#9792) (e7f4cde4)
|
||||
* browsers autocompleting smtp fields when they should not (34afb747)
|
||||
|
||||
##### Refactors
|
||||
|
||||
* no regex (18252fb9)
|
||||
* remove async.waterfall (58ac55c1)
|
||||
* remove async.waterfall (222dccaf)
|
||||
* remove async.waterfall (f35a0f43)
|
||||
* allow plugins to replace og:image, or specify additional og:image (819917da)
|
||||
|
||||
##### Code Style Changes
|
||||
|
||||
* give me an A! :100: (0b4d7d1f)
|
||||
|
||||
#### v1.18.2 (2021-09-08)
|
||||
|
||||
##### Chores
|
||||
|
||||
11
Dockerfile
11
Dockerfile
@@ -1,17 +1,20 @@
|
||||
FROM node:lts
|
||||
|
||||
RUN mkdir -p /usr/src/app
|
||||
RUN mkdir -p /usr/src/app && \
|
||||
chown -R node:node /usr/src/app
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
ARG NODE_ENV
|
||||
ENV NODE_ENV $NODE_ENV
|
||||
|
||||
COPY install/package.json /usr/src/app/package.json
|
||||
COPY --chown=node:node install/package.json /usr/src/app/package.json
|
||||
|
||||
USER node
|
||||
|
||||
RUN npm install --only=prod && \
|
||||
npm cache clean --force
|
||||
|
||||
COPY . /usr/src/app
|
||||
|
||||
COPY --chown=node:node . /usr/src/app
|
||||
|
||||
ENV NODE_ENV=production \
|
||||
daemon=false \
|
||||
|
||||
32
README.md
32
README.md
@@ -1,22 +1,14 @@
|
||||
# 
|
||||
# 
|
||||
|
||||
[](https://travis-ci.org/NodeBB/NodeBB)
|
||||
[](https://github.com/NodeBB/NodeBB/actions/workflows/test.yaml)
|
||||
[](https://coveralls.io/github/NodeBB/NodeBB?branch=master)
|
||||
[](https://david-dm.org/nodebb/nodebb?path=install)
|
||||
[](https://codeclimate.com/github/NodeBB/NodeBB)
|
||||
|
||||
[**NodeBB Forum Software**](https://nodebb.org) is powered by Node.js and supports either Redis, MongoDB, or a PostgreSQL database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB has many modern features out of the box such as social network integration and streaming discussions, while still making sure to be compatible with older browsers.
|
||||
[**NodeBB Forum Software**](https://nodebb.org) is powered by Node.js and supports either Redis, MongoDB, or a PostgreSQL database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB takes the best of the modern web: real-time streaming discussions, mobile responsiveness, and rich RESTful read/write APIs, while staying true to the original bulletin board/forum format → categorical hierarchies, local user accounts, and asynchronous messaging.
|
||||
|
||||
Additional functionality is enabled through the use of third-party plugins.
|
||||
NodeBB by itself contains a "common core" of basic functionality, while additional functionality and integrations are enabled through the use of third-party plugins.
|
||||
|
||||
* [Demo](https://try.nodebb.org)
|
||||
* [Developer Community](http://community.nodebb.org)
|
||||
* [Documentation & Installation Instructions](http://docs.nodebb.org)
|
||||
* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/)
|
||||
* [NodeBB Blog](http://blog.nodebb.org)
|
||||
* [Premium Hosting for NodeBB](http://www.nodebb.org/ "NodeBB")
|
||||
* [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
|
||||
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")
|
||||
### [Try it now](//try.nodebb.org) | [Documentation](//docs.nodebb.org)
|
||||
|
||||
## Screenshots
|
||||
|
||||
@@ -50,7 +42,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
|
||||
NodeBB requires the following software to be installed:
|
||||
|
||||
* A version of Node.js at least 12 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
|
||||
* MongoDB, version 2.6 or greater **or** Redis, version 2.8.9 or greater
|
||||
* MongoDB, version 3.6 or greater **or** Redis, version 2.8.9 or greater
|
||||
* If you are using [clustering](https://docs.nodebb.org/configuring/scaling/) you need Redis installed and configured.
|
||||
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
|
||||
|
||||
@@ -78,3 +70,15 @@ Detailed upgrade instructions are listed in [Upgrading NodeBB](https://docs.node
|
||||
NodeBB is licensed under the **GNU General Public License v3 (GPL-3)** (http://www.gnu.org/copyleft/gpl.html).
|
||||
|
||||
Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive environment? Contact us at sales@nodebb.org.
|
||||
|
||||
## More Information/Links
|
||||
|
||||
* [Demo](https://try.nodebb.org)
|
||||
* [Developer Community](http://community.nodebb.org)
|
||||
* [Documentation & Installation Instructions](http://docs.nodebb.org)
|
||||
* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/)
|
||||
* [NodeBB Blog](http://blog.nodebb.org)
|
||||
* [Premium Hosting for NodeBB](http://www.nodebb.org/ "NodeBB")
|
||||
* Unofficial IRC community – channel `#nodebb` on Libera.chat
|
||||
* [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
|
||||
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")
|
||||
|
||||
2
app.js
2
app.js
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
NodeBB - A better forum platform for the modern web
|
||||
https://github.com/NodeBB/NodeBB/
|
||||
Copyright (C) 2013-2017 NodeBB Inc.
|
||||
Copyright (C) 2013-2021 NodeBB Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
"newbiePostEditDuration": 3600,
|
||||
"postDeleteDuration": 0,
|
||||
"enablePostHistory": 1,
|
||||
"topicBacklinks": 1,
|
||||
"postCacheSize": 10485760,
|
||||
"disableChat": 0,
|
||||
"chatEditDuration": 0,
|
||||
@@ -68,6 +69,7 @@
|
||||
"gdpr_enabled": 1,
|
||||
"allowProfileImageUploads": 1,
|
||||
"teaserPost": "last-reply",
|
||||
"showPostPreviewsOnHover": 1,
|
||||
"allowPrivateGroups": 1,
|
||||
"unreadCutoff": 2,
|
||||
"bookmarkThreshold": 5,
|
||||
@@ -136,7 +138,9 @@
|
||||
"disableEmailSubscriptions": 0,
|
||||
"emailConfirmInterval": 10,
|
||||
"removeEmailNotificationImages": 0,
|
||||
"sendValidationEmail": 1,
|
||||
"includeUnverifiedEmails": 0,
|
||||
"emailPrompt": 1,
|
||||
"inviteExpiration": 7,
|
||||
"dailyDigestFreq": "off",
|
||||
"digestHour": 17,
|
||||
|
||||
@@ -64,9 +64,6 @@
|
||||
"iconClass": "fa-cogs",
|
||||
"textClass": "visible-xs-inline",
|
||||
"text": "[[global:header.admin]]",
|
||||
"groups": ["administrators"],
|
||||
"properties": {
|
||||
"targetBlank": false
|
||||
}
|
||||
"groups": ["administrators"]
|
||||
}
|
||||
]
|
||||
@@ -3,10 +3,6 @@
|
||||
const prompt = require('prompt');
|
||||
const winston = require('winston');
|
||||
|
||||
const util = require('util');
|
||||
|
||||
const promptGet = util.promisify((schema, callback) => prompt.get(schema, callback));
|
||||
|
||||
const questions = {
|
||||
redis: require('../src/database/redis').questions,
|
||||
mongo: require('../src/database/mongo').questions,
|
||||
@@ -28,17 +24,17 @@ async function getDatabaseConfig(config) {
|
||||
if (config['redis:host'] && config['redis:port']) {
|
||||
return config;
|
||||
}
|
||||
return await promptGet(questions.redis);
|
||||
return await prompt.get(questions.redis);
|
||||
} else if (config.database === 'mongo') {
|
||||
if ((config['mongo:host'] && config['mongo:port']) || config['mongo:uri']) {
|
||||
return config;
|
||||
}
|
||||
return await promptGet(questions.mongo);
|
||||
return await prompt.get(questions.mongo);
|
||||
} else if (config.database === 'postgres') {
|
||||
if (config['postgres:host'] && config['postgres:port']) {
|
||||
return config;
|
||||
}
|
||||
return await promptGet(questions.postgres);
|
||||
return await prompt.get(questions.postgres);
|
||||
}
|
||||
throw new Error(`unknown database : ${config.database}`);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "nodebb",
|
||||
"license": "GPL-3.0",
|
||||
"description": "NodeBB Forum",
|
||||
"version": "1.18.3",
|
||||
"version": "1.19.0",
|
||||
"homepage": "http://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -28,132 +28,133 @@
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@adactive/bootstrap-tagsinput": "^0.8.2",
|
||||
"ace-builds": "^1.4.12",
|
||||
"archiver": "^5.2.0",
|
||||
"async": "^3.2.0",
|
||||
"autoprefixer": "10.3.5",
|
||||
"@adactive/bootstrap-tagsinput": "0.8.2",
|
||||
"ace-builds": "1.4.13",
|
||||
"archiver": "5.3.0",
|
||||
"async": "3.2.3",
|
||||
"autoprefixer": "10.4.2",
|
||||
"bcryptjs": "2.4.3",
|
||||
"benchpressjs": "2.4.3",
|
||||
"body-parser": "^1.19.0",
|
||||
"body-parser": "1.19.1",
|
||||
"bootbox": "5.5.2",
|
||||
"bootstrap": "^3.4.1",
|
||||
"chart.js": "^2.9.4",
|
||||
"cli-graph": "^3.2.2",
|
||||
"clipboard": "^2.0.6",
|
||||
"colors": "^1.4.0",
|
||||
"commander": "^7.1.0",
|
||||
"compare-versions": "3.6.0",
|
||||
"compression": "^1.7.4",
|
||||
"connect-flash": "^0.1.1",
|
||||
"bootstrap": "3.4.1",
|
||||
"chart.js": "2.9.4",
|
||||
"cli-graph": "3.2.2",
|
||||
"clipboard": "2.0.8",
|
||||
"colors": "1.4.0",
|
||||
"commander": "7.2.0",
|
||||
"compare-versions": "4.1.2",
|
||||
"compression": "1.7.4",
|
||||
"connect-flash": "0.1.1",
|
||||
"connect-mongo": "4.6.0",
|
||||
"connect-multiparty": "^2.2.0",
|
||||
"connect-pg-simple": "^6.2.1",
|
||||
"connect-multiparty": "2.2.0",
|
||||
"connect-pg-simple": "7.0.0",
|
||||
"connect-redis": "6.0.0",
|
||||
"cookie-parser": "^1.4.5",
|
||||
"cron": "^1.8.2",
|
||||
"cropperjs": "^1.5.11",
|
||||
"csurf": "^1.11.0",
|
||||
"daemon": "^1.1.0",
|
||||
"diff": "^5.0.0",
|
||||
"express": "^4.17.1",
|
||||
"express-session": "^1.17.1",
|
||||
"express-useragent": "^1.0.15",
|
||||
"graceful-fs": "^4.2.6",
|
||||
"helmet": "^4.4.1",
|
||||
"html-to-text": "8.0.0",
|
||||
"ipaddr.js": "^2.0.0",
|
||||
"cookie-parser": "1.4.6",
|
||||
"cron": "1.8.2",
|
||||
"cropperjs": "1.5.12",
|
||||
"csurf": "1.11.0",
|
||||
"daemon": "1.1.0",
|
||||
"diff": "5.0.0",
|
||||
"express": "4.17.2",
|
||||
"express-session": "1.17.2",
|
||||
"express-useragent": "1.0.15",
|
||||
"graceful-fs": "4.2.9",
|
||||
"helmet": "4.6.0",
|
||||
"html-to-text": "8.1.0",
|
||||
"ipaddr.js": "2.0.1",
|
||||
"jquery": "3.6.0",
|
||||
"jquery-deserialize": "2.0.0",
|
||||
"jquery-form": "4.3.0",
|
||||
"jquery-serializeobject": "1.0.0",
|
||||
"jquery-ui": "1.12.1",
|
||||
"jquery-ui": "1.13.0",
|
||||
"jsesc": "3.0.2",
|
||||
"json2csv": "5.0.6",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"less": "^3.11.1",
|
||||
"lodash": "^4.17.21",
|
||||
"logrotate-stream": "^0.2.7",
|
||||
"jsonwebtoken": "8.5.1",
|
||||
"less": "3.13.1",
|
||||
"lodash": "4.17.21",
|
||||
"logrotate-stream": "0.2.8",
|
||||
"lru-cache": "6.0.0",
|
||||
"material-design-lite": "^1.3.0",
|
||||
"mime": "^2.5.2",
|
||||
"mkdirp": "^1.0.4",
|
||||
"mongodb": "3.7.1",
|
||||
"morgan": "^1.10.0",
|
||||
"mousetrap": "^1.6.5",
|
||||
"material-design-lite": "1.3.0",
|
||||
"mime": "3.0.0",
|
||||
"mkdirp": "1.0.4",
|
||||
"mongodb": "4.3.0",
|
||||
"morgan": "1.10.0",
|
||||
"mousetrap": "1.6.5",
|
||||
"multiparty": "4.2.2",
|
||||
"@nodebb/bootswatch": "3.4.2",
|
||||
"nconf": "^0.11.2",
|
||||
"nodebb-plugin-composer-default": "7.0.7",
|
||||
"nodebb-plugin-dbsearch": "5.0.3",
|
||||
"nodebb-plugin-emoji": "^3.5.0",
|
||||
"nconf": "0.11.3",
|
||||
"nodebb-plugin-2factor": "3.0.4",
|
||||
"nodebb-plugin-composer-default": "7.0.17",
|
||||
"nodebb-plugin-dbsearch": "5.1.1",
|
||||
"nodebb-plugin-emoji": "3.5.4",
|
||||
"nodebb-plugin-emoji-android": "2.0.5",
|
||||
"nodebb-plugin-markdown": "8.14.3",
|
||||
"nodebb-plugin-mentions": "2.13.11",
|
||||
"nodebb-plugin-spam-be-gone": "0.7.9",
|
||||
"nodebb-rewards-essentials": "0.1.5",
|
||||
"nodebb-theme-lavender": "5.2.1",
|
||||
"nodebb-theme-persona": "11.2.8",
|
||||
"nodebb-theme-slick": "1.4.13",
|
||||
"nodebb-theme-vanilla": "12.1.3",
|
||||
"nodebb-plugin-markdown": "8.14.6",
|
||||
"nodebb-plugin-mentions": "3.0.4",
|
||||
"nodebb-plugin-spam-be-gone": "0.7.12",
|
||||
"nodebb-rewards-essentials": "0.2.1",
|
||||
"nodebb-theme-lavender": "5.3.2",
|
||||
"nodebb-theme-persona": "11.3.13",
|
||||
"nodebb-theme-slick": "1.4.23",
|
||||
"nodebb-theme-vanilla": "12.1.15",
|
||||
"nodebb-widget-essentials": "5.0.4",
|
||||
"nodemailer": "^6.5.0",
|
||||
"nodemailer": "6.7.2",
|
||||
"nprogress": "0.2.0",
|
||||
"passport": "^0.4.1",
|
||||
"passport-http-bearer": "^1.0.1",
|
||||
"passport": "0.5.2",
|
||||
"passport-http-bearer": "1.0.1",
|
||||
"passport-local": "1.0.0",
|
||||
"pg": "^8.7.1",
|
||||
"pg-cursor": "^2.7.1",
|
||||
"postcss": "8.3.7",
|
||||
"pg": "8.7.1",
|
||||
"pg-cursor": "2.7.1",
|
||||
"postcss": "8.4.5",
|
||||
"postcss-clean": "1.2.0",
|
||||
"prompt": "^1.1.0",
|
||||
"ioredis": "4.27.9",
|
||||
"prompt": "1.2.1",
|
||||
"ioredis": "4.28.3",
|
||||
"request": "2.88.2",
|
||||
"request-promise-native": "^1.0.9",
|
||||
"request-promise-native": "1.0.9",
|
||||
"requirejs": "2.3.6",
|
||||
"rimraf": "3.0.2",
|
||||
"rss": "^1.2.2",
|
||||
"sanitize-html": "^2.3.2",
|
||||
"semver": "^7.3.4",
|
||||
"serve-favicon": "^2.5.0",
|
||||
"sharp": "0.29.1",
|
||||
"sitemap": "^7.0.0",
|
||||
"rss": "1.2.2",
|
||||
"sanitize-html": "2.6.1",
|
||||
"semver": "7.3.5",
|
||||
"serve-favicon": "2.5.0",
|
||||
"sharp": "0.29.3",
|
||||
"sitemap": "7.1.0",
|
||||
"slideout": "1.0.1",
|
||||
"socket.io": "4.2.0",
|
||||
"socket.io-adapter-cluster": "^1.0.1",
|
||||
"socket.io-client": "4.2.0",
|
||||
"@socket.io/redis-adapter": "7.0.0",
|
||||
"socket.io": "4.4.1",
|
||||
"socket.io-adapter-cluster": "1.0.1",
|
||||
"socket.io-client": "4.4.1",
|
||||
"@socket.io/redis-adapter": "7.1.0",
|
||||
"sortablejs": "1.14.0",
|
||||
"spdx-license-list": "^6.4.0",
|
||||
"spdx-license-list": "6.4.0",
|
||||
"spider-detector": "2.0.0",
|
||||
"textcomplete": "^0.18.0",
|
||||
"textcomplete.contenteditable": "^0.1.1",
|
||||
"timeago": "^1.6.7",
|
||||
"textcomplete": "0.18.2",
|
||||
"textcomplete.contenteditable": "0.1.1",
|
||||
"timeago": "1.6.7",
|
||||
"tinycon": "0.6.8",
|
||||
"toobusy-js": "^0.5.1",
|
||||
"uglify-es": "^3.3.9",
|
||||
"validator": "13.6.0",
|
||||
"toobusy-js": "0.5.1",
|
||||
"uglify-es": "3.3.9",
|
||||
"validator": "13.7.0",
|
||||
"visibilityjs": "2.0.2",
|
||||
"winston": "3.3.3",
|
||||
"xml": "^1.0.1",
|
||||
"xregexp": "^5.0.1",
|
||||
"yargs": "17.1.1",
|
||||
"zxcvbn": "^4.4.2"
|
||||
"winston": "3.4.0",
|
||||
"xml": "1.0.1",
|
||||
"xregexp": "5.1.0",
|
||||
"yargs": "17.3.1",
|
||||
"zxcvbn": "4.4.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@apidevtools/swagger-parser": "10.0.3",
|
||||
"@commitlint/cli": "13.1.0",
|
||||
"@commitlint/config-angular": "13.1.0",
|
||||
"@commitlint/cli": "16.0.2",
|
||||
"@commitlint/config-angular": "16.0.0",
|
||||
"coveralls": "3.1.1",
|
||||
"eslint": "7.32.0",
|
||||
"eslint-config-nodebb": "0.0.2",
|
||||
"eslint-plugin-import": "2.24.2",
|
||||
"eslint": "8.6.0",
|
||||
"eslint-config-nodebb": "0.1.1",
|
||||
"eslint-plugin-import": "2.25.4",
|
||||
"grunt": "1.4.1",
|
||||
"grunt-contrib-watch": "1.1.0",
|
||||
"husky": "7.0.2",
|
||||
"jsdom": "17.0.0",
|
||||
"lint-staged": "11.1.2",
|
||||
"mocha": "9.1.1",
|
||||
"husky": "7.0.4",
|
||||
"jsdom": "19.0.0",
|
||||
"lint-staged": "12.1.7",
|
||||
"mocha": "9.1.3",
|
||||
"mocha-lcov-reporter": "1.3.0",
|
||||
"mockdate": "3.0.5",
|
||||
"nyc": "15.1.0",
|
||||
|
||||
@@ -7,11 +7,7 @@ const fs = require('fs');
|
||||
const path = require('path');
|
||||
const childProcess = require('child_process');
|
||||
const less = require('less');
|
||||
const util = require('util');
|
||||
|
||||
const lessRenderAsync = util.promisify(
|
||||
(style, opts, cb) => less.render(String(style), opts, cb)
|
||||
);
|
||||
const uglify = require('uglify-es');
|
||||
const nconf = require('nconf');
|
||||
|
||||
@@ -253,7 +249,7 @@ async function compileLess() {
|
||||
try {
|
||||
const installSrc = path.join(__dirname, '../public/less/install.less');
|
||||
const style = await fs.promises.readFile(installSrc);
|
||||
const css = await lessRenderAsync(style, { filename: path.resolve(installSrc) });
|
||||
const css = await less.render(String(style), { filename: path.resolve(installSrc) });
|
||||
await fs.promises.writeFile(path.join(__dirname, '../public/installer.css'), css.css);
|
||||
} catch (err) {
|
||||
winston.error(`Unable to compile LESS: \n${err.stack}`);
|
||||
|
||||
57
loader.js
57
loader.js
@@ -5,7 +5,6 @@ const fs = require('fs');
|
||||
const url = require('url');
|
||||
const path = require('path');
|
||||
const { fork } = require('child_process');
|
||||
const async = require('async');
|
||||
const logrotate = require('logrotate-stream');
|
||||
const mkdirp = require('mkdirp');
|
||||
|
||||
@@ -36,7 +35,7 @@ const Loader = {
|
||||
};
|
||||
const appPath = path.join(__dirname, 'app.js');
|
||||
|
||||
Loader.init = function (callback) {
|
||||
Loader.init = function () {
|
||||
if (silent) {
|
||||
console.log = (...args) => {
|
||||
output.write(`${args.join(' ')}\n`);
|
||||
@@ -45,17 +44,15 @@ Loader.init = function (callback) {
|
||||
|
||||
process.on('SIGHUP', Loader.restart);
|
||||
process.on('SIGTERM', Loader.stop);
|
||||
callback();
|
||||
};
|
||||
|
||||
Loader.displayStartupMessages = function (callback) {
|
||||
Loader.displayStartupMessages = function () {
|
||||
console.log('');
|
||||
console.log(`NodeBB v${pkg.version} Copyright (C) 2013-2014 NodeBB Inc.`);
|
||||
console.log(`NodeBB v${pkg.version} Copyright (C) 2013-${(new Date()).getFullYear()} NodeBB Inc.`);
|
||||
console.log('This program comes with ABSOLUTELY NO WARRANTY.');
|
||||
console.log('This is free software, and you are welcome to redistribute it under certain conditions.');
|
||||
console.log('For the full license, please visit: http://www.gnu.org/copyleft/gpl.html');
|
||||
console.log('');
|
||||
callback();
|
||||
};
|
||||
|
||||
Loader.addWorkerEvents = function (worker) {
|
||||
@@ -107,17 +104,13 @@ Loader.addWorkerEvents = function (worker) {
|
||||
});
|
||||
};
|
||||
|
||||
Loader.start = function (callback) {
|
||||
Loader.start = function () {
|
||||
numProcs = getPorts().length;
|
||||
console.log(`Clustering enabled: Spinning up ${numProcs} process(es).\n`);
|
||||
|
||||
for (let x = 0; x < numProcs; x += 1) {
|
||||
forkWorker(x, x === 0);
|
||||
}
|
||||
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
|
||||
function forkWorker(index, isPrimary) {
|
||||
@@ -215,12 +208,25 @@ fs.open(pathToConfig, 'r', (err) => {
|
||||
|
||||
if (nconf.get('daemon') !== 'false' && nconf.get('daemon') !== false) {
|
||||
if (file.existsSync(pidFilePath)) {
|
||||
let pid = 0;
|
||||
try {
|
||||
const pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
|
||||
process.kill(pid, 0);
|
||||
process.exit();
|
||||
} catch (e) {
|
||||
fs.unlinkSync(pidFilePath);
|
||||
pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
|
||||
if (pid) {
|
||||
process.kill(pid, 0);
|
||||
console.info(`Process "${pid}" from pidfile already running, exiting`);
|
||||
process.exit();
|
||||
} else {
|
||||
console.info(`Invalid pid "${pid}" from pidfile, deleting pidfile`);
|
||||
fs.unlinkSync(pidFilePath);
|
||||
}
|
||||
} catch (err) {
|
||||
if (err.code === 'ESRCH') {
|
||||
console.info(`Process "${pid}" from pidfile not found, deleting pidfile`);
|
||||
fs.unlinkSync(pidFilePath);
|
||||
} else {
|
||||
console.error(err.stack);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,15 +238,12 @@ fs.open(pathToConfig, 'r', (err) => {
|
||||
|
||||
fs.writeFileSync(pidFilePath, String(process.pid));
|
||||
}
|
||||
|
||||
async.series([
|
||||
Loader.init,
|
||||
Loader.displayStartupMessages,
|
||||
Loader.start,
|
||||
], (err) => {
|
||||
if (err) {
|
||||
console.error('[loader] Error during startup');
|
||||
throw err;
|
||||
}
|
||||
});
|
||||
try {
|
||||
Loader.init();
|
||||
Loader.displayStartupMessages();
|
||||
Loader.start();
|
||||
} catch (err) {
|
||||
console.error('[loader] Error during startup');
|
||||
throw err;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
{
|
||||
"maxerr" : 50, // {int} Maximum error before stopping
|
||||
|
||||
// Enforcing
|
||||
"bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
|
||||
"camelcase" : false, // true: Identifiers must be in camelCase
|
||||
"curly" : true, // true: Require {} for every new block or scope
|
||||
"eqeqeq" : true, // true: Require triple equals (===) for comparison
|
||||
"forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty()
|
||||
"immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
|
||||
"indent" : 4, // {int} Number of spaces to use for indentation
|
||||
"latedef" : false, // true: Require variables/functions to be defined before being used
|
||||
"newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()`
|
||||
"noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee`
|
||||
"noempty" : true, // true: Prohibit use of empty blocks
|
||||
"nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment)
|
||||
"plusplus" : false, // true: Prohibit use of `++` & `--`
|
||||
"quotmark" : false, // Quotation mark consistency:
|
||||
// false : do nothing (default)
|
||||
// true : ensure whatever is used is consistent
|
||||
// "single" : require single quotes
|
||||
// "double" : require double quotes
|
||||
"undef" : true, // true: Require all non-global variables to be declared (prevents global leaks)
|
||||
"unused" : true, // true: Require all defined variables be used
|
||||
"strict" : true, // true: Requires all functions run in ES5 Strict Mode
|
||||
"trailing" : false, // true: Prohibit trailing whitespaces
|
||||
"maxparams" : false, // {int} Max number of formal params allowed per function
|
||||
"maxdepth" : false, // {int} Max depth of nested blocks (within functions)
|
||||
"maxstatements" : false, // {int} Max number statements per function
|
||||
"maxcomplexity" : false, // {int} Max cyclomatic complexity per function
|
||||
"maxlen" : false, // {int} Max number of characters per line
|
||||
|
||||
// Relaxing
|
||||
"asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons)
|
||||
"boss" : false, // true: Tolerate assignments where comparisons would be expected
|
||||
"debug" : false, // true: Allow debugger statements e.g. browser breakpoints.
|
||||
"eqnull" : false, // true: Tolerate use of `== null`
|
||||
"es5" : false, // true: Allow ES5 syntax (ex: getters and setters)
|
||||
"esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`)
|
||||
"moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features)
|
||||
// (ex: `for each`, multiple try/catch, function expression…)
|
||||
"evil" : false, // true: Tolerate use of `eval` and `new Function()`
|
||||
"expr" : false, // true: Tolerate `ExpressionStatement` as Programs
|
||||
"funcscope" : false, // true: Tolerate defining variables inside control statements"
|
||||
"globalstrict" : false, // true: Allow global "use strict" (also enables 'strict')
|
||||
"iterator" : false, // true: Tolerate using the `__iterator__` property
|
||||
"lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
|
||||
"laxbreak" : false, // true: Tolerate possibly unsafe line breakings
|
||||
"laxcomma" : false, // true: Tolerate comma-first style coding
|
||||
"loopfunc" : false, // true: Tolerate functions being defined in loops
|
||||
"multistr" : false, // true: Tolerate multi-line strings
|
||||
"proto" : false, // true: Tolerate using the `__proto__` property
|
||||
"scripturl" : false, // true: Tolerate script-targeted URLs
|
||||
"smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment
|
||||
"shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
|
||||
"sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation
|
||||
"supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;`
|
||||
"validthis" : false, // true: Tolerate using this in a non-constructor function
|
||||
|
||||
"globals": {
|
||||
"app": true,
|
||||
"io": true,
|
||||
"socket": true,
|
||||
"ajaxify": true,
|
||||
"config": true,
|
||||
"utils": true,
|
||||
"overrides": true,
|
||||
"componentHandler": true,
|
||||
"bootbox": true,
|
||||
"templates": true,
|
||||
"Visibility": true,
|
||||
"Tinycon": true,
|
||||
"require": true,
|
||||
"define": true,
|
||||
"ace": true,
|
||||
"Sortable": true,
|
||||
"Slideout": true,
|
||||
"NProgress": true
|
||||
},
|
||||
|
||||
"jquery": true,
|
||||
"browser": true
|
||||
}
|
||||
BIN
public/images/sm-card.png
Normal file
BIN
public/images/sm-card.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 215 KiB |
@@ -3,5 +3,9 @@
|
||||
"alert.confirm-restart": "هل تريد بالتأكيد إعادة تشغيل NodeBB؟",
|
||||
|
||||
"acp-title": "لوحة تحكم إدارة NodeBB | %1",
|
||||
"settings-header-contents": "محتويات"
|
||||
"settings-header-contents": "محتويات",
|
||||
"changes-saved": "Changes Saved",
|
||||
"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
|
||||
"changes-not-saved": "Changes Not Saved",
|
||||
"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
"no-events": "لا توجد أحداث",
|
||||
"control-panel": "لوحة تحكم الأحداث",
|
||||
"delete-events": "حذف الاحداث",
|
||||
"confirm-delete-all-events": "Are you sure you want to delete all logged events?",
|
||||
"filters": "تصفية",
|
||||
"filters-apply": "تطبيق التصفية",
|
||||
"filter-type": "نوع الحدث",
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
"active-users.total": "المجموع",
|
||||
"active-users.connections": "Connections",
|
||||
|
||||
"anonymous-registered-users": "المجهولين مقابل المستخدمين المسجلين",
|
||||
"anonymous": "مجهول",
|
||||
"guest-registered-users": "Guest vs Registered Users",
|
||||
"guest": "Guest",
|
||||
"registered": "مسجل",
|
||||
|
||||
"user-presence": "تواجد المستخدمين",
|
||||
@@ -68,6 +68,7 @@
|
||||
"unread": "غير مقروء",
|
||||
|
||||
"high-presence-topics": "مواضيع ذات حضور قوي",
|
||||
"popular-searches": "Popular Searches",
|
||||
|
||||
"graphs.page-views": "مشاهدات الصفحة",
|
||||
"graphs.page-views-registered": "Page Views Registered",
|
||||
@@ -75,13 +76,14 @@
|
||||
"graphs.page-views-bot": "Page Views Bot",
|
||||
"graphs.unique-visitors": "زوار فريدين",
|
||||
"graphs.registered-users": "مستخدمين مسجلين",
|
||||
"graphs.anonymous-users": "مستخدمين مجهولين",
|
||||
"graphs.guest-users": "Guest Users",
|
||||
"last-restarted-by": "Last restarted by",
|
||||
"no-users-browsing": "No users browsing",
|
||||
|
||||
"back-to-dashboard": "Back to Dashboard",
|
||||
"details.no-users": "No users have joined within the selected timeframe",
|
||||
"details.no-topics": "No topics have been posted within the selected timeframe",
|
||||
"details.no-searches": "No searches have been made yet",
|
||||
"details.no-logins": "No logins have been recorded within the selected timeframe",
|
||||
"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
|
||||
"details.logins-login-time": "Login Time"
|
||||
|
||||
@@ -8,7 +8,11 @@
|
||||
"nodejs": "nodejs",
|
||||
"online": "online",
|
||||
"git": "git",
|
||||
"memory": "memory",
|
||||
"process-memory": "process memory",
|
||||
"system-memory": "system memory",
|
||||
"used-memory-process": "Used memory by process",
|
||||
"used-memory-os": "Used system memory",
|
||||
"total-memory-os": "Total system memory",
|
||||
"load": "system load",
|
||||
"cpu-usage": "cpu usage",
|
||||
"uptime": "uptime",
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
{
|
||||
"forum-traffic": "Forum Traffic",
|
||||
"page-views": "مشاهدات الصفحات",
|
||||
"unique-visitors": "زائرين فريدين",
|
||||
"new-users": "New Users",
|
||||
"posts": "مشاركات",
|
||||
"topics": "مواضيع",
|
||||
"page-views-seven": "آخر 7 ايام",
|
||||
"page-views-thirty": "آخر 30 يوماً",
|
||||
"page-views-last-day": "آخر 24 ساعة",
|
||||
"page-views-custom": "مدة زمنية مخصصة",
|
||||
"page-views-custom-start": "بداية المدة",
|
||||
"page-views-custom-end": "نهاية المده",
|
||||
"page-views-custom-help": "أدخل نطاقا زمنيا لمرات مشاهدة الصفحات التي ترغب في عرضها. إذا لم يظهر منتقي التاريخ، فإن التنسيق المقبول هو <code>YYYY-MM-DD</code>",
|
||||
"page-views-custom-error": "الرجاء إدخال نطاق تاريخ صالح بالتنسيق <code>YYYY-MM-DD</code>",
|
||||
|
||||
"stats.yesterday": "Yesterday",
|
||||
"stats.today": "Today",
|
||||
"stats.last-week": "Last Week",
|
||||
"stats.this-week": "This Week",
|
||||
"stats.last-month": "Last Month",
|
||||
"stats.this-month": "This Month",
|
||||
"stats.all": "كل الوقت",
|
||||
|
||||
"updates": "تحديثات",
|
||||
"running-version": "المنتدى يعمل حاليا على <strong>NodeBB الإصدار<span id=\"version\">%1</span></strong>.",
|
||||
"keep-updated": "تأكد دائما من أن NodeBB يعمل على احدث إصدار للحصول على أحدث التصحيحات الأمنية وإصلاحات الأخطاء.",
|
||||
"up-to-date": "<p>المنتدى <strong>يعمل على أحدث إصدار</strong> <i class=\"fa fa-check\"></i></p>",
|
||||
"upgrade-available": "<p>A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
|
||||
"prerelease-upgrade-available": "<p>This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
|
||||
"prerelease-warning": "<p>هذه نسخة <strong>ماقبل الإصدار</strong> من NodeBB. قد تحدث أخطاء غير مقصودة. <i class=\"fa fa-exclamation-triangle\"></i></p>",
|
||||
"running-in-development": "المنتدى قيد التشغيل في وضع \"المطورين\". وقد تكون هناك ثغرات أمنية مفتوحة؛ من فضلك تواصل مع مسؤول نظامك.",
|
||||
"latest-lookup-failed": "<p>Failed to look up latest available version of NodeBB</p>",
|
||||
|
||||
"notices": "إشعارات",
|
||||
"restart-not-required": "إعادة التشغيل غير مطلوب",
|
||||
"restart-required": "إعادة التشغيل مطلوبة",
|
||||
"search-plugin-installed": "إضافة البحث منصبة",
|
||||
"search-plugin-not-installed": "إضافة البحث غير منصبة",
|
||||
"search-plugin-tooltip": "نصب إضافة البحث من صفحة الإضافات البرمجية لتنشيط وظيفة البحث",
|
||||
|
||||
"control-panel": "التحكم بالنظام",
|
||||
"rebuild-and-restart": "Rebuild & Restart",
|
||||
"restart": "Restart",
|
||||
"restart-warning": "Rebuilding or Restarting your NodeBB will drop all existing connections for a few seconds.",
|
||||
"restart-disabled": "Rebuilding and Restarting your NodeBB has been disabled as you do not seem to be running it via the appropriate daemon.",
|
||||
"maintenance-mode": "وضع الصيانة",
|
||||
"maintenance-mode-title": "انقر هنا لإعداد وضع الصيانة لـNodeBB",
|
||||
"realtime-chart-updates": "التحديث الفوري للرسم البياني",
|
||||
|
||||
"active-users": "المستخدمين النشطين",
|
||||
"active-users.users": "الأعضاء",
|
||||
"active-users.guests": "الزوار",
|
||||
"active-users.total": "المجموع",
|
||||
"active-users.connections": "Connections",
|
||||
|
||||
"anonymous-registered-users": "المجهولين مقابل المستخدمين المسجلين",
|
||||
"anonymous": "مجهول",
|
||||
"registered": "مسجل",
|
||||
|
||||
"user-presence": "تواجد المستخدمين",
|
||||
"on-categories": "في قائمة الأقسام",
|
||||
"reading-posts": "قراءة المشاركات",
|
||||
"browsing-topics": "تصفح المواضيع",
|
||||
"recent": "الأخيرة",
|
||||
"unread": "غير مقروء",
|
||||
|
||||
"high-presence-topics": "مواضيع ذات حضور قوي",
|
||||
|
||||
"graphs.page-views": "مشاهدات الصفحة",
|
||||
"graphs.page-views-registered": "Page Views Registered",
|
||||
"graphs.page-views-guest": "Page Views Guest",
|
||||
"graphs.page-views-bot": "Page Views Bot",
|
||||
"graphs.unique-visitors": "زوار فريدين",
|
||||
"graphs.registered-users": "مستخدمين مسجلين",
|
||||
"graphs.anonymous-users": "مستخدمين مجهولين",
|
||||
"last-restarted-by": "Last restarted by",
|
||||
"no-users-browsing": "No users browsing"
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"home-page": "Home Page",
|
||||
"description": "Choose what page is shown when users navigate to the root URL of your forum.",
|
||||
"home-page-route": "Home Page Route",
|
||||
"custom-route": "Custom Route",
|
||||
"allow-user-home-pages": "Allow User Home Pages",
|
||||
"home-page-title": "Title of the home page (default \"Home\")"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"language-settings": "اعدادات اللغة",
|
||||
"description": "تُحدد اللغة الافتراضية إعدادات اللغة لجميع المستخدمين الذين يزورون المنتدى. <br />يمكن للأعضاء تجاوز اللغة الافتراضية من خلال صفحة إعدادات الحساب الخاصة بهم.",
|
||||
"default-language": "اللغة الافتراضية",
|
||||
"auto-detect": "الكشف عن إعدادات اللغة للزوار بشكل آلي"
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"icon": "Icon:",
|
||||
"change-icon": "change",
|
||||
"route": "Route:",
|
||||
"tooltip": "Tooltip:",
|
||||
"text": "Text:",
|
||||
"text-class": "Text Class: <small>optional</small>",
|
||||
"class": "Class: <small>optional</small>",
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
|
||||
"btn.delete": "Delete",
|
||||
"btn.disable": "Disable",
|
||||
"btn.enable": "Enable",
|
||||
|
||||
"available-menu-items": "Available Menu Items",
|
||||
"custom-route": "Custom Route",
|
||||
"core": "core",
|
||||
"plugin": "plugin"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"post-sharing": "Post Sharing",
|
||||
"info-plugins-additional": "Plugins can add additional networks for sharing posts.",
|
||||
"save-success": "Successfully saved Post Sharing Networks!"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"notifications": "التنبيهات",
|
||||
"chat-messages": "Chat Messages",
|
||||
"play-sound": "Play",
|
||||
"incoming-message": "Incoming Message",
|
||||
"outgoing-message": "Outgoing Message",
|
||||
"upload-new-sound": "Upload New Sound",
|
||||
"saved": "Settings Saved"
|
||||
}
|
||||
@@ -13,6 +13,7 @@
|
||||
"resent-single": "Manual digest resend completed",
|
||||
"resent-day": "Daily digest resent",
|
||||
"resent-week": "Weekly digest resent",
|
||||
"resent-biweek": "Bi-Weekly digest resent",
|
||||
"resent-month": "Monthly digest resent",
|
||||
"null": "<em>Never</em>",
|
||||
"manual-run": "Manual digest run:",
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
"users.uid": "uid",
|
||||
"users.username": "username",
|
||||
"users.email": "email",
|
||||
"users.no-email": "(no email)",
|
||||
"users.ip": "IP",
|
||||
"users.postcount": "postcount",
|
||||
"users.reputation": "reputation",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"dashboard/logins": "Logins",
|
||||
"dashboard/users": "Users",
|
||||
"dashboard/topics": "Topics",
|
||||
"dashboard/searches": "Searches",
|
||||
"section-general": "عام",
|
||||
|
||||
"section-manage": "إدارة",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"from-help": "The from name to display in the email.",
|
||||
|
||||
"smtp-transport": "SMTP Transport",
|
||||
"smtp-transport.enabled": "Use an external email server to send emails",
|
||||
"smtp-transport.enabled": "Enable SMTP Transport",
|
||||
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
|
||||
"smtp-transport.service": "Select a service",
|
||||
"smtp-transport.service-custom": "Custom Service",
|
||||
@@ -38,7 +38,10 @@
|
||||
"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>",
|
||||
"notifications.remove-images": "Remove images from email notifications",
|
||||
"require-email-address": "Require new users to specify an email address",
|
||||
"require-email-address-warning": "By default, users can opt-out of entering an email address. Enabling this option means they have to enter an email address in order to proceed with registration. <strong>It does not ensure user will enter a real email address, nor even an address they own.</strong>",
|
||||
"require-email-address-warning": "By default, users can opt-out of entering an email address by leaving the field blank. Enabling this option means they have to enter an email address in order to proceed with registration. <strong>It does not ensure user will enter a real email address, nor even an address they own.</strong>",
|
||||
"send-validation-email": "Send validation emails when an email is added or changed",
|
||||
"include-unverified-emails": "Send emails to recipients who have not explicitly confirmed their emails",
|
||||
"include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). <strong>Enable this setting at your own risk</strong> – sending emails to unverified addresses may be a violation of regional anti-spam laws."
|
||||
}
|
||||
"include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). <strong>Enable this setting at your own risk</strong> – sending emails to unverified addresses may be a violation of regional anti-spam laws.",
|
||||
"prompt": "Prompt users to enter or confirm their emails",
|
||||
"prompt-help": "If a user does not have an email set, or their email is not confirmed, a warning will be shown on screen."
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
"title": "عنوان الموقع",
|
||||
"title.short": "عنوان قصير",
|
||||
"title.short-placeholder": "ان لم تقم بكتابة عنوان مختصر, سيتم استخدام عنوان الموقع الكلي",
|
||||
"title.url": "الرابط",
|
||||
"title.url": "Title Link URL",
|
||||
"title.url-placeholder": "The URL of the site title",
|
||||
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index.",
|
||||
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
|
||||
"title.name": "اسم المنتدي",
|
||||
"title.show-in-header": "Show Site Title in Header",
|
||||
"browser-title": "عنوان المتصفح",
|
||||
@@ -20,9 +20,9 @@
|
||||
"logo.image": "صورة",
|
||||
"logo.image-placeholder": "Path to a logo to display on forum header",
|
||||
"logo.upload": "رفع",
|
||||
"logo.url": "الرابط",
|
||||
"logo.url": "Logo Link URL",
|
||||
"logo.url-placeholder": "The URL of the site logo",
|
||||
"logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.",
|
||||
"logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
|
||||
"logo.alt-text": "نص بديل",
|
||||
"log.alt-text-placeholder": "Alternative text for accessibility",
|
||||
"favicon": "صورة المفضله",
|
||||
@@ -47,4 +47,4 @@
|
||||
"undo-timeout": "Undo Timeout",
|
||||
"undo-timeout-help": "Some operations such as moving topics will allow for the moderator to undo their action within a certain timeframe. Set to 0 to disable undo completely.",
|
||||
"topic-tools": "Topic Tools"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
"btn.delete": "Delete",
|
||||
"btn.disable": "Disable",
|
||||
@@ -20,4 +22,4 @@
|
||||
"custom-route": "Custom Route",
|
||||
"core": "core",
|
||||
"plugin": "plugin"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"notifications": "Notifications",
|
||||
"welcome-notification": "Welcome Notification",
|
||||
"welcome-notification-link": "Welcome Notification Link",
|
||||
"welcome-notification-uid": "Welcome Notification User (UID)"
|
||||
"welcome-notification-uid": "Welcome Notification User (UID)",
|
||||
"post-queue-notification-uid": "Post Queue User (UID)"
|
||||
}
|
||||
@@ -40,6 +40,7 @@
|
||||
"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.first": "First",
|
||||
"showPostPreviewsOnHover": "Show a preview of posts when mouse overed",
|
||||
"unread": "Unread Settings",
|
||||
"unread.cutoff": "Unread cutoff days",
|
||||
"unread.min-track-last": "Minimum posts in topic before tracking last read",
|
||||
@@ -56,6 +57,9 @@
|
||||
"composer.show-help": "Show \"Help\" tab",
|
||||
"composer.enable-plugin-help": "Allow plugins to add content to the help tab",
|
||||
"composer.custom-help": "Custom Help Text",
|
||||
"backlinks": "Backlinks",
|
||||
"backlinks.enabled": "Enable topic backlinks",
|
||||
"backlinks.help": "If a post references another topic, a link back to the post will be inserted into the referenced topic at that point in time.",
|
||||
"ip-tracking": "IP Tracking",
|
||||
"ip-tracking.each-post": "Track IP Address for each post",
|
||||
"enable-post-history": "Enable Post History"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"posts": "المشاركات",
|
||||
"allow-files": "السماح للأعضاء بتحميل الملفات الإعتيادية",
|
||||
"private": "جعل الملفات التي تم رفعها خاصة",
|
||||
"strip-exif-data": "Strip EXIF Data",
|
||||
"private-extensions": "File extensions to make private",
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
"allow-login-with": "السماح بتسجيل الدخول باستخدام",
|
||||
"allow-login-with.username-email": "اسم المستخدم أو البريد الالكتروني",
|
||||
"allow-login-with.username": "اسم المستخدم فقط",
|
||||
"allow-login-with.email": "البريد الالكتروني فقط",
|
||||
"account-settings": "إعدادت الحساب",
|
||||
"gdpr_enabled": "Enable GDPR consent collection",
|
||||
"gdpr_enabled_help": "When enabled, all new registrants will be required to explicitly give consent for data collection and usage under the <a href=\"https://ec.europa.eu/info/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules/eu-data-protection-rules_en\">General Data Protection Regulation (GDPR)</a>. <strong>Note</strong>: Enabling GDPR does not force pre-existing users to provide consent. To do so, you will need to install the GDPR plugin.",
|
||||
@@ -71,6 +70,7 @@
|
||||
"digest-freq.off": "Off",
|
||||
"digest-freq.daily": "Daily",
|
||||
"digest-freq.weekly": "Weekly",
|
||||
"digest-freq.biweekly": "Bi-Weekly",
|
||||
"digest-freq.monthly": "Monthly",
|
||||
"email-chat-notifs": "Send an email if a new chat message arrives and I am not online",
|
||||
"email-post-notif": "Send an email when replies are made to topics I am subscribed to",
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"invalid-data": "بيانات غير صحيحة",
|
||||
"invalid-json": "Invalid JSON",
|
||||
"wrong-parameter-type": "A value of type %3 was expected for property `%1`, but %2 was received instead",
|
||||
"required-parameters-missing": "Required parameters were missing from this API call: %1",
|
||||
"not-logged-in": "لم تقم بتسجيل الدخول",
|
||||
"account-locked": "تم حظر حسابك مؤقتًا.",
|
||||
"search-requires-login": "البحث في المنتدى يتطلب حساب - الرجاء تسجيل الدخول أو التسجيل",
|
||||
@@ -9,6 +11,7 @@
|
||||
"invalid-tid": "موضوع غير متواجد",
|
||||
"invalid-pid": "رد غير موجود",
|
||||
"invalid-uid": "مستخدم غير موجود",
|
||||
"invalid-mid": "Invalid Chat Message ID",
|
||||
"invalid-date": "A valid date must be provided",
|
||||
"invalid-username": "اسم المستخدم غير مقبول",
|
||||
"invalid-email": "البريد الاكتروني غير مقبول",
|
||||
@@ -34,8 +37,9 @@
|
||||
"email-invited": "Email was already invited",
|
||||
"email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation email.",
|
||||
"email-not-confirmed-chat": "لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
|
||||
"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": "Your account does not have an email set. An email is necessary for account recovery. Please click here to enter an email.",
|
||||
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You may not be able to post in some categories or chat until your email is confirmed.",
|
||||
"no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery, and may be necessary for chatting and posting in some categories. Please click here to enter an email.",
|
||||
"user-doesnt-have-email": "User \"%1\" does not have an email set.",
|
||||
"email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.",
|
||||
"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.",
|
||||
@@ -103,6 +107,7 @@
|
||||
"already-bookmarked": "You have already bookmarked this post",
|
||||
"already-unbookmarked": "You have already unbookmarked this post",
|
||||
"cant-ban-other-admins": "لايمكن حظر مدبر نظام آخر.",
|
||||
"cant-make-banned-users-admin": "You can't make banned users admin.",
|
||||
"cant-remove-last-admin": "رجاءًا ، أضف مدير أخر قبل حذف صلاحيات الإدارة من حسابك.",
|
||||
"account-deletion-disabled": "Account deletion is disabled",
|
||||
"cant-delete-admin": "رجاءًا أزل صلاحيات الإدارة قبل حذف الحساب. ",
|
||||
@@ -140,7 +145,6 @@
|
||||
"invalid-chat-message": "الرسالة غير صالحة.",
|
||||
"chat-message-too-long": "Chat messages can not be longer than %1 characters.",
|
||||
"cant-edit-chat-message": "غير مصرح لك بتعديل الرسالة.",
|
||||
"cant-remove-last-user": "لأيمكنك إزالت اخر مستخدم.",
|
||||
"cant-delete-chat-message": "غير مصرح لك بحذف الرسالة.",
|
||||
"chat-edit-duration-expired": "You are only allowed to edit chat messages for %1 second(s) after posting",
|
||||
"chat-delete-duration-expired": "You are only allowed to delete chat messages for %1 second(s) after posting",
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"username-email": "اسم المستخدم / البريد الإلكتروني",
|
||||
"username": "اسم المستخدم",
|
||||
"email": "البريد الإلكتروني",
|
||||
"remember_me": "تذكرني؟",
|
||||
"forgot_password": "نسيت كلمة المرور؟",
|
||||
"alternative_logins": "تسجيلات الدخول البديلة",
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
"composer.formatting.strikethrough": "Strikethrough",
|
||||
"composer.formatting.code": "Code",
|
||||
"composer.formatting.link": "Link",
|
||||
"composer.formatting.picture": "Picture",
|
||||
"composer.formatting.picture": "Image Link",
|
||||
"composer.upload-picture": "Upload Image",
|
||||
"composer.upload-file": "Upload File",
|
||||
"composer.zen_mode": "Zen Mode",
|
||||
@@ -68,6 +68,8 @@
|
||||
"bootbox.ok": "OK",
|
||||
"bootbox.cancel": "إلغاء",
|
||||
"bootbox.confirm": "تأكيد",
|
||||
"bootbox.submit": "Submit",
|
||||
"bootbox.send": "Send",
|
||||
"cover.dragging_title": "Cover Photo Positioning",
|
||||
"cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"",
|
||||
"cover.saved": "Cover photo image and position saved",
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
"users-csv-exported": "Users csv exported, click to download",
|
||||
"post-queue-accepted": "Your queued post has been accepted. Click here to see your post.",
|
||||
"post-queue-rejected": "Your queued post has been rejected.",
|
||||
"post-queue-notify": "Queued post received a notification:<br/>\"%1\"",
|
||||
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
|
||||
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
|
||||
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
|
||||
|
||||
@@ -14,5 +14,8 @@
|
||||
"reply": "Reply",
|
||||
"topic": "Topic",
|
||||
"accept": "Accept",
|
||||
"reject": "Reject"
|
||||
"reject": "Reject",
|
||||
"remove": "Remove",
|
||||
"notify": "Notify",
|
||||
"notify-user": "Notify User"
|
||||
}
|
||||
4
public/language/ar/top.json
Normal file
4
public/language/ar/top.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"title": "Top",
|
||||
"no_top_topics": "No top topics"
|
||||
}
|
||||
@@ -47,6 +47,8 @@
|
||||
"restored-by": "Restored by",
|
||||
"moved-from-by": "Moved from %1 by",
|
||||
"queued-by": "Post queued for approval →",
|
||||
"backlink": "Referenced by",
|
||||
"forked-by": "Forked by",
|
||||
"bookmark_instructions": "اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
|
||||
"flag-post": "Flag this post",
|
||||
"flag-user": "Flag this user",
|
||||
@@ -138,6 +140,7 @@
|
||||
"composer.handle_placeholder": "Enter your name/handle here",
|
||||
"composer.discard": "نبذ التغييرات",
|
||||
"composer.submit": "حفظ",
|
||||
"composer.additional-options": "Additional Options",
|
||||
"composer.schedule": "Schedule",
|
||||
"composer.replying_to": "الرد على %1",
|
||||
"composer.new_topic": "موضوع جديد",
|
||||
@@ -158,6 +161,7 @@
|
||||
"newest_to_oldest": "من الأحدث إلى الأقدم",
|
||||
"most_votes": "Most Votes",
|
||||
"most_posts": "Most Posts",
|
||||
"most_views": "Most Views",
|
||||
"stale.title": "Create new topic instead?",
|
||||
"stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?",
|
||||
"stale.create": "موضوع جديد",
|
||||
|
||||
@@ -94,6 +94,7 @@
|
||||
"digest_off": "غير مفعل",
|
||||
"digest_daily": "يوميا",
|
||||
"digest_weekly": "أسبوعيًّا",
|
||||
"digest_biweekly": "Bi-Weekly",
|
||||
"digest_monthly": "شهريًّا",
|
||||
"has_no_follower": "هذا المستخدم ليس لديه أية متابعين :(",
|
||||
"follows_no_one": "هذا المستخدم لا يتابع أحد :(",
|
||||
@@ -183,6 +184,6 @@
|
||||
"consent.export_posts": "Export Posts (.csv)",
|
||||
"consent.export-posts-success": "Exporting posts, you will get a notification when it is complete.",
|
||||
"emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
|
||||
"emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email, you will not be able to recover your account.",
|
||||
"emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email, you will not be able to recover your account or login with your email.",
|
||||
"emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page."
|
||||
}
|
||||
@@ -3,5 +3,9 @@
|
||||
"alert.confirm-restart": "Наистина ли искате да рестартирате NodeBB?",
|
||||
|
||||
"acp-title": "%1 | Контролен панел за администратори на NodeBB",
|
||||
"settings-header-contents": "Съдържание"
|
||||
"settings-header-contents": "Съдържание",
|
||||
"changes-saved": "Промените са запазени",
|
||||
"changes-saved-message": "Промените Ви в настройките на NodeBB бяха запазени.",
|
||||
"changes-not-saved": "Промените не са запазени",
|
||||
"changes-not-saved-message": "Възникна проблем при запазването на промените Ви по NodeBB. (%1)"
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
"no-events": "Няма събития",
|
||||
"control-panel": "Контролен панел за събитията",
|
||||
"delete-events": "Изтриване на събитията",
|
||||
"confirm-delete-all-events": "Наистина ли искате да изтриете всички събития в журнала?",
|
||||
"filters": "Филтри",
|
||||
"filters-apply": "Прилагане на филтрите",
|
||||
"filter-type": "Вид събитие",
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
"active-users.total": "Общо",
|
||||
"active-users.connections": "Връзки",
|
||||
|
||||
"anonymous-registered-users": "Анонимни към регистрирани потребители",
|
||||
"anonymous": "Анонимни",
|
||||
"guest-registered-users": "Гости към регистрирани потребители",
|
||||
"guest": "Гост",
|
||||
"registered": "Регистрирани",
|
||||
|
||||
"user-presence": "Присъствие на потребителите ",
|
||||
@@ -68,6 +68,7 @@
|
||||
"unread": "Непрочетени",
|
||||
|
||||
"high-presence-topics": "Теми с най-голяма присъственост",
|
||||
"popular-searches": "Популярни търсения",
|
||||
|
||||
"graphs.page-views": "Преглеждания на страниците",
|
||||
"graphs.page-views-registered": "Преглеждания на страниците от регистрирани потребители",
|
||||
@@ -75,13 +76,14 @@
|
||||
"graphs.page-views-bot": "Преглеждания на страниците от ботове",
|
||||
"graphs.unique-visitors": "Уникални посетители",
|
||||
"graphs.registered-users": "Регистрирани потребители",
|
||||
"graphs.anonymous-users": "Анонимни потребители",
|
||||
"graphs.guest-users": "Гости",
|
||||
"last-restarted-by": "Последно рестартиране от",
|
||||
"no-users-browsing": "Няма разглеждащи потребители",
|
||||
|
||||
"back-to-dashboard": "Назад към таблото",
|
||||
"details.no-users": "В избрания период не са се регистрирали нови потребители",
|
||||
"details.no-topics": "В избрания период не са публикувани нови теми",
|
||||
"details.no-searches": "Все още не са правени търсения",
|
||||
"details.no-logins": "В избрания период не са отчетени вписвания",
|
||||
"details.logins-static": "NodeBB запазва данни за сесията в продължение на %1 дни, така че в следната таблица могат да се видят само последните активни сесии",
|
||||
"details.logins-login-time": "Време на вписване"
|
||||
|
||||
@@ -8,7 +8,11 @@
|
||||
"nodejs": "nodejs",
|
||||
"online": "на линия",
|
||||
"git": "git",
|
||||
"memory": "памет",
|
||||
"process-memory": "памет на процеса",
|
||||
"system-memory": "системна памет",
|
||||
"used-memory-process": "Използвана памет от процеса",
|
||||
"used-memory-os": "Използвана системна памет",
|
||||
"total-memory-os": "Обща системна памет",
|
||||
"load": "натоварване на системата",
|
||||
"cpu-usage": "използване на процесора",
|
||||
"uptime": "активно време",
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
{
|
||||
"forum-traffic": "Трафик на форума",
|
||||
"page-views": "Преглеждания на страниците",
|
||||
"unique-visitors": "Уникални посетители",
|
||||
"new-users": "Нови потребители",
|
||||
"posts": "Публикации",
|
||||
"topics": "Теми",
|
||||
"page-views-seven": "Последните 7 дни",
|
||||
"page-views-thirty": "Последните 30 дни",
|
||||
"page-views-last-day": "Последните 24 часа",
|
||||
"page-views-custom": "Интервал по избор",
|
||||
"page-views-custom-start": "Начална дата",
|
||||
"page-views-custom-end": "Крайна дата",
|
||||
"page-views-custom-help": "Въведете интервал от дати, за които искате да видите преглежданията на страниците. Ако не се появи календар за избор, можете да въведете датите във формат: <code>ГГГГ-ММ-ДД</code>",
|
||||
"page-views-custom-error": "Моля, въведете правилен интервал от дати във формата: <code>ГГГГ-ММ-ДД</code>",
|
||||
|
||||
"stats.yesterday": "Вчера",
|
||||
"stats.today": "Днес",
|
||||
"stats.last-week": "Миналата седмица",
|
||||
"stats.this-week": "Тази седмица",
|
||||
"stats.last-month": "Миналия месец",
|
||||
"stats.this-month": "Този месец",
|
||||
"stats.all": "От началото",
|
||||
|
||||
"updates": "Обновления",
|
||||
"running-version": "Вие използвате <strong>NodeBB версия <span id=\"version\">%1</span></strong>.",
|
||||
"keep-updated": "Стремете се винаги да използвате най-новата версия на NodeBB, за да се възползвате от последните подобрения на сигурността и поправки на проблеми.",
|
||||
"up-to-date": "<p>Вие използвате <strong>най-новата версия</strong> <i class=\"fa fa-check\"></i></p>",
|
||||
"upgrade-available": "<p>Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>",
|
||||
"prerelease-upgrade-available": "<p>Това е остаряла предварителна версия на NodeBB. Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>",
|
||||
"prerelease-warning": "<p>Това е версия за <strong>предварителен преглед</strong> на NodeBB. Възможно е да има неочаквани неизправности. <i class=\"fa fa-exclamation-triangle\"></i></p>",
|
||||
"running-in-development": "<span>Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.</span>",
|
||||
"latest-lookup-failed": "<p>Не може да бъде извършена проверка за последната налична версия на NodeBB</p>",
|
||||
|
||||
"notices": "Забележки",
|
||||
"restart-not-required": "Не се изисква рестартиране",
|
||||
"restart-required": "Изисква се рестартиране",
|
||||
"search-plugin-installed": "Добавката за търсене е инсталирана",
|
||||
"search-plugin-not-installed": "Добавката за търсене не е инсталирана",
|
||||
"search-plugin-tooltip": "Инсталирайте добавка за търсене от страницата с добавките, за да включите функционалността за търсене",
|
||||
|
||||
"control-panel": "Системен контрол",
|
||||
"rebuild-and-restart": "Повторно изграждане и рестартиране",
|
||||
"restart": "Рестартиране",
|
||||
"restart-warning": "Повторното изграждане и рестартирането на NodeBB ще прекъснат всички връзки за няколко секунди.",
|
||||
"restart-disabled": "Възможностите за повторно изграждане и рестартиране на NodeBB са изключени, тъй като изглежда, че NodeBB не се изпълнява чрез подходящия демон.",
|
||||
"maintenance-mode": "Режим на профилактика",
|
||||
"maintenance-mode-title": "Щракнете тук, за да зададете режим на профилактика на NodeBB",
|
||||
"realtime-chart-updates": "Актуализации на таблиците в реално време",
|
||||
|
||||
"active-users": "Дейни потребители",
|
||||
"active-users.users": "Потребители",
|
||||
"active-users.guests": "Гости",
|
||||
"active-users.total": "Общо",
|
||||
"active-users.connections": "Връзки",
|
||||
|
||||
"anonymous-registered-users": "Анонимни към регистрирани потребители",
|
||||
"anonymous": "Анонимни",
|
||||
"registered": "Регистрирани",
|
||||
|
||||
"user-presence": "Присъствие на потребителите ",
|
||||
"on-categories": "В списъка с категории",
|
||||
"reading-posts": "Четящи публикации",
|
||||
"browsing-topics": "Разглеждащи теми",
|
||||
"recent": "Скорошни",
|
||||
"unread": "Непрочетени",
|
||||
|
||||
"high-presence-topics": "Теми с най-голяма присъственост",
|
||||
|
||||
"graphs.page-views": "Преглеждания на страниците",
|
||||
"graphs.page-views-registered": "Преглеждания на страниците от регистрирани потребители",
|
||||
"graphs.page-views-guest": "Преглеждания на страниците от гости",
|
||||
"graphs.page-views-bot": "Преглеждания на страниците от ботове",
|
||||
"graphs.unique-visitors": "Уникални посетители",
|
||||
"graphs.registered-users": "Регистрирани потребители",
|
||||
"graphs.anonymous-users": "Анонимни потребители",
|
||||
"last-restarted-by": "Последно рестартиране от",
|
||||
"no-users-browsing": "Няма разглеждащи потребители"
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"home-page": "Начална страница",
|
||||
"description": "Изберете коя страница да бъде показана, когато потребителите отидат на главния адрес на форума.",
|
||||
"home-page-route": "Път на началната страница",
|
||||
"custom-route": "Персонализиран път",
|
||||
"allow-user-home-pages": "Разрешаване на потребителските начални страници",
|
||||
"home-page-title": "Заглавие на началната страница (по подразбиране: „Начало“)"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"language-settings": "Езикови настройки",
|
||||
"description": "Езикът по подразбиране определя езиковите настройки за всички потребители, които посещават Вашия форум. <br />Отделните потребители могат да сменят езика си от страницата с настройки на профила си.",
|
||||
"default-language": "Език по подразбиране",
|
||||
"auto-detect": "Автоматично разпознаване на езика за гостите"
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"icon": "Иконка:",
|
||||
"change-icon": "промяна",
|
||||
"route": "Маршрут:",
|
||||
"tooltip": "Подсказка:",
|
||||
"text": "Текст:",
|
||||
"text-class": "Текстов клас: <small>незадължително</small>",
|
||||
"class": "Клас: <small>незадължително</small>",
|
||||
"id": "Идентификатор: <small>незадължително</small>",
|
||||
|
||||
"properties": "Свойства:",
|
||||
"groups": "Групи:",
|
||||
"open-new-window": "Отваряне в нов прозорец",
|
||||
|
||||
"btn.delete": "Изтриване",
|
||||
"btn.disable": "Изключване",
|
||||
"btn.enable": "Включване",
|
||||
|
||||
"available-menu-items": "Налични елементи за менюто",
|
||||
"custom-route": "Персонализиран маршрут",
|
||||
"core": "ядро",
|
||||
"plugin": "добавка"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"post-sharing": "Споделяне на публикации",
|
||||
"info-plugins-additional": "Добавките могат да добавят допълнителни мрежи за споделяне на публикации.",
|
||||
"save-success": "Мрежите за споделяне на публикации са запазени успешно!"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"notifications": "Известия",
|
||||
"chat-messages": "Съобщения в разговори",
|
||||
"play-sound": "Пускане",
|
||||
"incoming-message": "Входящо съобщение",
|
||||
"outgoing-message": "Изходящо съобщение",
|
||||
"upload-new-sound": "Качване на нов звук",
|
||||
"saved": "Настройките са запазени"
|
||||
}
|
||||
@@ -13,6 +13,7 @@
|
||||
"resent-single": "Ръчното повторно разпращане на резюмето е завършено",
|
||||
"resent-day": "Дневното резюме беше изпратено повторно",
|
||||
"resent-week": "Седмичното резюме беше изпратено повторно",
|
||||
"resent-biweek": "Двуседмичното резюме беше изпратено повторно",
|
||||
"resent-month": "Месечното резюме беше изпратено повторно",
|
||||
"null": "<em>Никога</em>",
|
||||
"manual-run": "Ръчно разпращане на резюмето:",
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
"users.uid": "потр. ид.",
|
||||
"users.username": "потребителско име",
|
||||
"users.email": "е-поща",
|
||||
"users.no-email": "(няма е-поща)",
|
||||
"users.ip": "IP адрес",
|
||||
"users.postcount": "брой публикации",
|
||||
"users.reputation": "репутация",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"dashboard/logins": "Вписвания",
|
||||
"dashboard/users": "Потребители",
|
||||
"dashboard/topics": "Теми",
|
||||
"dashboard/searches": "Търсения",
|
||||
"section-general": "Общи",
|
||||
|
||||
"section-manage": "Управление",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"from-help": "Името на изпращача, което да бъде показано в е-писмото.",
|
||||
|
||||
"smtp-transport": "Транспорт чрез SMTP",
|
||||
"smtp-transport.enabled": "Използване на външен сървър за е-поща за изпращане на е-писма",
|
||||
"smtp-transport.enabled": "Включване на транспорта чрез SMTP",
|
||||
"smtp-transport-help": "Можете да изберете от списък от познати услуги, или да въведете такава ръчно.",
|
||||
"smtp-transport.service": "Изберете услуга",
|
||||
"smtp-transport.service-custom": "Персонализирана услуга",
|
||||
@@ -38,7 +38,10 @@
|
||||
"subscriptions.hour-help": "Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>",
|
||||
"notifications.remove-images": "Премахване на изображенията от известията по е-поща",
|
||||
"require-email-address": "Новите потребители задължително трябва да предоставят е-поща",
|
||||
"require-email-address-warning": "По подразбиране потребителите могат да не въвеждат адрес на е-поща. Ако включите това, те задължително ще трябва да предоставят е-поща, за да могат да се регистрират. <strong>Това не означава, че потребителят ще въведе съществуваща е-поща, нито че тя ще е негова.</strong>",
|
||||
"require-email-address-warning": "По подразбиране потребителите могат да не въвеждат адрес на е-поща, като оставят полето празно. Ако включите това, те задължително ще трябва да предоставят е-поща, за да могат да се регистрират. <strong>Това не означава, че потребителят ще въведе съществуваща е-поща, нито че тя ще е негова.</strong>",
|
||||
"send-validation-email": "Изпращане на е-писма за потвърждение, когато бъде добавена или променена е-поща",
|
||||
"include-unverified-emails": "Изпращане на е-писма към получатели, които не са потвърдили изрично е-пощата си",
|
||||
"include-unverified-warning": "За потребителите, които имат свързана е-поща с регистрацията си, тя се смята за потвърдена. Но има ситуации, в които това не е така (например при ползване на регистрация от друга система, но и в други случаи), <strong>Включете тази настройка на собствен риск</strong> – изпращането на е-писма към непотвърдени адреси може да нарушава определени местни закони против нежеланата поща."
|
||||
}
|
||||
"include-unverified-warning": "За потребителите, които имат свързана е-поща с регистрацията си, тя се смята за потвърдена. Но има ситуации, в които това не е така (например при ползване на регистрация от друга система, но и в други случаи), <strong>Включете тази настройка на собствен риск</strong> – изпращането на е-писма към непотвърдени адреси може да нарушава определени местни закони против нежеланата поща.",
|
||||
"prompt": "Подсещане на потребителите да въведат или потвърдят е-пощата си",
|
||||
"prompt-help": "Ако потребител няма зададена е-поща, или ако тя не е потвърдена, на екрана му ще се покаже предупредително съобщение."
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
"title": "Заглавие на уеб сайта",
|
||||
"title.short": "Кратко заглавие",
|
||||
"title.short-placeholder": "Ако не е посочено кратко заглавие, ще бъде използвано заглавието на уеб сайта",
|
||||
"title.url": "Адрес",
|
||||
"title.url-placeholder": "Адресът на заглавието на уеб сайта",
|
||||
"title.url-help": "При щракване върху заглавието, потребителите ще бъдат изпратени на този адрес. Ако бъде оставено празно, потребителите ще бъдат изпращани на началната страница на форума.",
|
||||
"title.url": "Адрес за заглавието",
|
||||
"title.url-placeholder": "Адресът за заглавието на уеб сайта",
|
||||
"title.url-help": "Когато потребител щракне върху заглавието, той ще бъде прехвърлен към този адрес. Ако е празно, потребителят ще бъде изпратен към началната страница на форума. <br> Забележка: Това не е външният адрес, който се ползва в е-писмата. Той се задава от свойството <code>url</code> във файла config.json",
|
||||
"title.name": "Името на общността Ви",
|
||||
"title.show-in-header": "Показване на заглавието на уеб сайта в заглавната част",
|
||||
"browser-title": "Заглавие на браузъра",
|
||||
@@ -20,9 +20,9 @@
|
||||
"logo.image": "Изображение",
|
||||
"logo.image-placeholder": "Път до логото, което да бъде показано в заглавната част на форума",
|
||||
"logo.upload": "Качване",
|
||||
"logo.url": "Адрес",
|
||||
"logo.url-placeholder": "Адресът на логото на уеб сайта",
|
||||
"logo.url-help": "При щракване върху логото, потребителите ще бъдат изпратени на този адрес. Ако бъде оставено празно, потребителите ще бъдат изпращани на началната страница на форума.",
|
||||
"logo.url": "Адрес за логото",
|
||||
"logo.url-placeholder": "Адресът за логото на уеб сайта",
|
||||
"logo.url-help": "Когато потребител щракне върху логото, той ще бъде прехвърлен към този адрес. Ако е празно, потребителят ще бъде изпратен към началната страница на форума. <br> Забележка: Това не е външният адрес, който се ползва в е-писмата. Той се задава от свойството <code>url</code> във файла config.json",
|
||||
"logo.alt-text": "Алтернативен текст",
|
||||
"log.alt-text-placeholder": "Алтернативен текст за достъпност",
|
||||
"favicon": "Иконка на уеб сайта",
|
||||
@@ -47,4 +47,4 @@
|
||||
"undo-timeout": "Време за отмяна",
|
||||
"undo-timeout-help": "Някои действия, като например преместването на теми, могат да бъдат отменени от модератора в рамките на определено време. Задайте 0, за да забраните изцяло отменянето.",
|
||||
"topic-tools": "Инструменти за темите"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
"properties": "Свойства:",
|
||||
"groups": "Групи:",
|
||||
"open-new-window": "Отваряне в нов прозорец",
|
||||
"dropdown": "Падащо меню",
|
||||
"dropdown-placeholder": "Въведете елементите на падащото меню по-долу. Пример: <br/><li><a href="https://myforum.com">Връзка 1</a></li>",
|
||||
|
||||
"btn.delete": "Изтриване",
|
||||
"btn.disable": "Изключване",
|
||||
@@ -20,4 +22,4 @@
|
||||
"custom-route": "Персонализиран маршрут",
|
||||
"core": "ядро",
|
||||
"plugin": "добавка"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"notifications": "Известия",
|
||||
"welcome-notification": "Приветствено известие",
|
||||
"welcome-notification-link": "Връзка за приветственото известие",
|
||||
"welcome-notification-uid": "Потр. ид. за приветственото известие"
|
||||
"welcome-notification-uid": "Потр. ид. за приветственото известие",
|
||||
"post-queue-notification-uid": "Потр. ид. за опашката с публикации"
|
||||
}
|
||||
@@ -40,6 +40,7 @@
|
||||
"teaser.last-post": "Последната – Показване на последната публикация, или първоначалната такава, ако няма отговори.",
|
||||
"teaser.last-reply": "Последната – Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
|
||||
"teaser.first": "Първата",
|
||||
"showPostPreviewsOnHover": "Показване на кратък преглед на публикациите при посочване с мишката",
|
||||
"unread": "Настройки за непрочетените",
|
||||
"unread.cutoff": "Възраст на публикациите, след която те не се показват в непрочетените (в брой дни)",
|
||||
"unread.min-track-last": "Минимален брой публикации в темата, след което да започва следене на последно прочетената",
|
||||
@@ -56,6 +57,9 @@
|
||||
"composer.show-help": "Показване на раздела „Помощ“",
|
||||
"composer.enable-plugin-help": "Позволяване на добавките да добавят съдържание в раздела за помощ",
|
||||
"composer.custom-help": "Персонализиран текст за помощ",
|
||||
"backlinks": "Обратни връзки",
|
||||
"backlinks.enabled": "Включване на обратните връзки в темите",
|
||||
"backlinks.help": "Ако в публикацията има препратка към друга тема, там ще бъде поставена връзка към публикацията, с конкретното време.",
|
||||
"ip-tracking": "Записване на IP адреса",
|
||||
"ip-tracking.each-post": "Записване на IP адреса за всяка публикация",
|
||||
"enable-post-history": "Включване на историята на публикациите"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"posts": "Публикации",
|
||||
"allow-files": "Позволяване на потребителите да качват обикновени файлове",
|
||||
"private": "Качените файлове да бъдат частни",
|
||||
"strip-exif-data": "Премахване на данните EXIF",
|
||||
"private-extensions": "Файлови разширения, които да бъдат частни",
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
"allow-login-with": "Позволяване на вписването чрез",
|
||||
"allow-login-with.username-email": "Потребителско име или е-поща",
|
||||
"allow-login-with.username": "Само потребителско име",
|
||||
"allow-login-with.email": "Само е-поща",
|
||||
"account-settings": "Настройки на акаунта",
|
||||
"gdpr_enabled": "Включване на искането за съгласие с ОРЗД",
|
||||
"gdpr_enabled_help": "Ако това е включено, всички новорегистрирани потребители ще бъдат задължени изрично да дадат съгласието си за събирането на данни и статистики за потреблението според <a href=\"https://ec.europa.eu/info/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules/eu-data-protection-rules_en\">Общия регламент относно защитата на данните (ОРЗД)</a>. <strong>Забележка</strong>: Включването на ОРЗД не задължава съществуващите потребители да дадат съгласието си. Ако искате това, ще трябва да инсталирате добавката за ОРЗД (GDPR).",
|
||||
@@ -71,6 +70,7 @@
|
||||
"digest-freq.off": "Изключено",
|
||||
"digest-freq.daily": "Ежедневно",
|
||||
"digest-freq.weekly": "Ежеседмично",
|
||||
"digest-freq.biweekly": "На всеки две седмици",
|
||||
"digest-freq.monthly": "Ежемесечно",
|
||||
"email-chat-notifs": "Изпращане на е-писмо, ако получа ново съобщение в разговор, а не съм на линия",
|
||||
"email-post-notif": "Изпращане на е-писмо, когато се появи отговор в темите, за които съм абониран(а).",
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"invalid-data": "Грешни данни",
|
||||
"invalid-json": "Неправилен JSON",
|
||||
"wrong-parameter-type": "За свойството `%1` се очакваше стойност от тип %3, но вместо това беше получено %2",
|
||||
"required-parameters-missing": "Липсват задължителни параметри от това извикване към ППИ: %1",
|
||||
"not-logged-in": "Изглежда не сте се вписали в системата.",
|
||||
"account-locked": "Вашият акаунт беше заключен временно",
|
||||
"search-requires-login": "Търсенето изисква регистриран акаунт! Моля, впишете се или се регистрирайте!",
|
||||
@@ -9,6 +11,7 @@
|
||||
"invalid-tid": "Грешен идентификатор на тема",
|
||||
"invalid-pid": "Грешен идентификатор на публикация",
|
||||
"invalid-uid": "Грешен идентификатор на потребител",
|
||||
"invalid-mid": "Грешен идентификатор на съобщение в разговор",
|
||||
"invalid-date": "Трябва да бъде посочена правилна дата",
|
||||
"invalid-username": "Грешно потребителско име",
|
||||
"invalid-email": "Грешна е-поща",
|
||||
@@ -34,8 +37,9 @@
|
||||
"email-invited": "На тази е-поща вече е била изпратена покана",
|
||||
"email-not-confirmed": "Публикуването в някои категории и теми ще бъде възможно едва след като е-пощата Ви бъде потвърдена. Щръкнете тук, за да Ви изпратим е-писмо за потвърждение.",
|
||||
"email-not-confirmed-chat": "Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
||||
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Няма да можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
|
||||
"no-email-to-confirm": "Нямате зададена е-поща. Тя е необходима за възстановяването на акаунта в случай на проблем. Натиснете тук, за да въведете е-поща.",
|
||||
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Възможно е да не можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
|
||||
"no-email-to-confirm": "Нямате зададена е-поща. Тя е необходима за възстановяването на акаунта в случай на проблем, а може и да се изисква, за да пишете в някои категории. Натиснете тук, за да въведете е-поща.",
|
||||
"user-doesnt-have-email": "Потребителят „%1“ няма зададена е-поща.",
|
||||
"email-confirm-failed": "Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
|
||||
"confirm-email-already-sent": "Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
|
||||
"sendmail-not-found": "Изпълнимият файл на „sendmail“ не може да бъде намерен. Моля, уверете се, че е инсталиран и изпълним за потребителя, чрез който е пуснат NodeBB.",
|
||||
@@ -103,6 +107,7 @@
|
||||
"already-bookmarked": "Вече имате отметка към тази публикация",
|
||||
"already-unbookmarked": "Вече сте премахнали отметката си от тази публикация",
|
||||
"cant-ban-other-admins": "Не можете да блокирате другите администратори!",
|
||||
"cant-make-banned-users-admin": "Не можете да давате администраторски права на блокирани потребители.",
|
||||
"cant-remove-last-admin": "Вие сте единственият администратор. Добавете друг потребител като администратор, преди да премахнете себе си като администратор",
|
||||
"account-deletion-disabled": "Изтриването на акаунт е забранено",
|
||||
"cant-delete-admin": "Премахнете администраторските права от този акаунт, преди да го изтриете.",
|
||||
@@ -140,7 +145,6 @@
|
||||
"invalid-chat-message": "Неправилно съобщение",
|
||||
"chat-message-too-long": "Съобщенията в разговор не може да бъдат по-дълги от %1 знака.",
|
||||
"cant-edit-chat-message": "Нямате право да редактирате това съобщение",
|
||||
"cant-remove-last-user": "Не можете да премахнете последния потребител",
|
||||
"cant-delete-chat-message": "Нямате право да изтриете това съобщение",
|
||||
"chat-edit-duration-expired": "Можете да редактирате съобщенията си в разговорите до %1 секунда/и, след като ги пуснете",
|
||||
"chat-delete-duration-expired": "Можете да изтривате съобщенията си в разговорите до %1 секунда/и след пускането им",
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"username-email": "Потребителско име / е-поща",
|
||||
"username": "Потребителско име",
|
||||
"email": "Е-поща",
|
||||
"remember_me": "Запомнете ме?",
|
||||
"forgot_password": "Забравена парола?",
|
||||
"alternative_logins": "Други начини за вписване",
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
"composer.formatting.strikethrough": "Зачертан",
|
||||
"composer.formatting.code": "Код",
|
||||
"composer.formatting.link": "Връзка",
|
||||
"composer.formatting.picture": "Снимка",
|
||||
"composer.formatting.picture": "Връзка към изображение",
|
||||
"composer.upload-picture": "Качване на изображение",
|
||||
"composer.upload-file": "Качване на файл",
|
||||
"composer.zen_mode": "Режим Дзен",
|
||||
@@ -68,6 +68,8 @@
|
||||
"bootbox.ok": "Добре",
|
||||
"bootbox.cancel": "Отказ",
|
||||
"bootbox.confirm": "Потвърждаване",
|
||||
"bootbox.submit": "Публикуване",
|
||||
"bootbox.send": "Изпращане",
|
||||
"cover.dragging_title": "Наместване на снимката",
|
||||
"cover.dragging_message": "Преместете снимката на желаното положение и натиснете „Запазване“",
|
||||
"cover.saved": "Снимката и мястото ѝ бяха запазени",
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
"users-csv-exported": "Потребителите са изнесени във формат „csv“, щракнете за сваляне",
|
||||
"post-queue-accepted": "Вашата публикация, която чакаше в опашката, беше приета. Натиснете тук, за да я видите.",
|
||||
"post-queue-rejected": "Вашата публикация, която чакаше в опашката, беше отхвърлена.",
|
||||
"post-queue-notify": "Публикация, чакаща в опашката, получи известие:<br/>„%1“",
|
||||
"email-confirmed": "Е-пощата беше потвърдена",
|
||||
"email-confirmed-message": "Благодарим Ви, че потвърдихте е-пощата си. Акаунтът Ви е вече напълно активиран.",
|
||||
"email-confirm-error-message": "Възникна проблем при потвърждаването на е-пощата Ви. Може кодът да е грешен или давността му да е изтекла.",
|
||||
|
||||
@@ -14,5 +14,8 @@
|
||||
"reply": "Отговор",
|
||||
"topic": "Тема",
|
||||
"accept": "Приемане",
|
||||
"reject": "Отказване"
|
||||
"reject": "Отказване",
|
||||
"remove": "Премахване",
|
||||
"notify": "Известяване",
|
||||
"notify-user": "Известяване на потребителя"
|
||||
}
|
||||
4
public/language/bg/top.json
Normal file
4
public/language/bg/top.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"title": "Най-популярни",
|
||||
"no_top_topics": "Няма най-популярни теми"
|
||||
}
|
||||
@@ -47,6 +47,8 @@
|
||||
"restored-by": "Възстановена от",
|
||||
"moved-from-by": "Преместена от %1 от",
|
||||
"queued-by": "Публикацията е добавена в опашката за одобрение →",
|
||||
"backlink": "Спомената от",
|
||||
"forked-by": "Разделена от",
|
||||
"bookmark_instructions": "Щракнете тук, за да се върнете към последно прочетената публикация в тази тема.",
|
||||
"flag-post": "Докладване на тази публикация",
|
||||
"flag-user": "Докладване на този потребител",
|
||||
@@ -138,6 +140,7 @@
|
||||
"composer.handle_placeholder": "Въведете името тук",
|
||||
"composer.discard": "Отхвърляне",
|
||||
"composer.submit": "Публикуване",
|
||||
"composer.additional-options": "Допълнителни настройки",
|
||||
"composer.schedule": "Насрочване",
|
||||
"composer.replying_to": "Отговор на %1",
|
||||
"composer.new_topic": "Нова тема",
|
||||
@@ -158,6 +161,7 @@
|
||||
"newest_to_oldest": "Първо най-новите",
|
||||
"most_votes": "Първо тези с най-много гласове",
|
||||
"most_posts": "Първо тези с най-много публикации",
|
||||
"most_views": "Първо тези с най-много преглеждания",
|
||||
"stale.title": "Създаване на нова тема вместо това?",
|
||||
"stale.warning": "Темата, в която отговаряте, е доста стара. Искате ли вместо това да създадете нова и да направите препратка към тази в отговора си?",
|
||||
"stale.create": "Създаване на нова тема",
|
||||
|
||||
@@ -94,6 +94,7 @@
|
||||
"digest_off": "Изключено",
|
||||
"digest_daily": "Ежедневно",
|
||||
"digest_weekly": "Ежеседмично",
|
||||
"digest_biweekly": "На всеки две седмици",
|
||||
"digest_monthly": "Ежемесечно",
|
||||
"has_no_follower": "Този потребител няма последователи :(",
|
||||
"follows_no_one": "Този потребител не следва никого :(",
|
||||
@@ -183,6 +184,6 @@
|
||||
"consent.export_posts": "Изнасяне на публикациите (.csv)",
|
||||
"consent.export-posts-success": "Изнасяне на публикациите… Ще получите известие, когато е готово.",
|
||||
"emailUpdate.intro": "Въведете е-пощата си по-долу. Този форум използва е-пощата за планирани резюмета и известия, както и за възстановяване на акаунта, в случай на забравена парола.",
|
||||
"emailUpdate.optional": "<strong>Това поле не е задължително</strong>. Не сте длъжен/на да ни давате адреса на е-пощата си, но ако нямате потвърдена е-поща, няма да можете да възстановите достъпа до акаунта си в случай на проблем.",
|
||||
"emailUpdate.optional": "<strong>Това поле не е задължително</strong>. Не сте длъжен/на да предоставяте адрес на е-поща, но без проверена е-поща, няма да можете да възстановите акаунта си в случай на проблем, нито ще можете да се вписвате с е-пощата си.",
|
||||
"emailUpdate.change-instructions": "Ще Ви изпратим е-писмо за потвърждение на посочената е-поща, което ще съдържа уникална връзка. Щом последвате тази връзка, притежанието Ви на тази е-поща ще бъде потвърдено и тя ще бъде свързана с акаунта Ви. Ще можете да промените тази е-поща по всяко време, от страницата на акаунта си."
|
||||
}
|
||||
@@ -3,5 +3,9 @@
|
||||
"alert.confirm-restart": "আপনি কি নিশ্চিত যে আপনি NodeBB রিস্টার্ট করতে চান ?",
|
||||
|
||||
"acp-title": "%1 | NodeBB এডমিন কন্ট্রোল প্যানেল",
|
||||
"settings-header-contents": "কনটেন্টস"
|
||||
"settings-header-contents": "কনটেন্টস",
|
||||
"changes-saved": "Changes Saved",
|
||||
"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
|
||||
"changes-not-saved": "Changes Not Saved",
|
||||
"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
"no-events": "There are no events",
|
||||
"control-panel": "Events Control Panel",
|
||||
"delete-events": "Delete Events",
|
||||
"confirm-delete-all-events": "Are you sure you want to delete all logged events?",
|
||||
"filters": "Filters",
|
||||
"filters-apply": "Apply Filters",
|
||||
"filter-type": "Event Type",
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
"active-users.total": "Total",
|
||||
"active-users.connections": "Connections",
|
||||
|
||||
"anonymous-registered-users": "Anonymous vs Registered Users",
|
||||
"anonymous": "Anonymous",
|
||||
"guest-registered-users": "Guest vs Registered Users",
|
||||
"guest": "Guest",
|
||||
"registered": "Registered",
|
||||
|
||||
"user-presence": "User Presence",
|
||||
@@ -68,6 +68,7 @@
|
||||
"unread": "Unread",
|
||||
|
||||
"high-presence-topics": "High Presence Topics",
|
||||
"popular-searches": "Popular Searches",
|
||||
|
||||
"graphs.page-views": "Page Views",
|
||||
"graphs.page-views-registered": "Page Views Registered",
|
||||
@@ -75,13 +76,14 @@
|
||||
"graphs.page-views-bot": "Page Views Bot",
|
||||
"graphs.unique-visitors": "Unique Visitors",
|
||||
"graphs.registered-users": "Registered Users",
|
||||
"graphs.anonymous-users": "Anonymous Users",
|
||||
"graphs.guest-users": "Guest Users",
|
||||
"last-restarted-by": "Last restarted by",
|
||||
"no-users-browsing": "No users browsing",
|
||||
|
||||
"back-to-dashboard": "Back to Dashboard",
|
||||
"details.no-users": "No users have joined within the selected timeframe",
|
||||
"details.no-topics": "No topics have been posted within the selected timeframe",
|
||||
"details.no-searches": "No searches have been made yet",
|
||||
"details.no-logins": "No logins have been recorded within the selected timeframe",
|
||||
"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
|
||||
"details.logins-login-time": "Login Time"
|
||||
|
||||
@@ -8,7 +8,11 @@
|
||||
"nodejs": "nodejs",
|
||||
"online": "online",
|
||||
"git": "git",
|
||||
"memory": "memory",
|
||||
"process-memory": "process memory",
|
||||
"system-memory": "system memory",
|
||||
"used-memory-process": "Used memory by process",
|
||||
"used-memory-os": "Used system memory",
|
||||
"total-memory-os": "Total system memory",
|
||||
"load": "system load",
|
||||
"cpu-usage": "cpu usage",
|
||||
"uptime": "uptime",
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
{
|
||||
"forum-traffic": "Forum Traffic",
|
||||
"page-views": "Page Views",
|
||||
"unique-visitors": "Unique Visitors",
|
||||
"new-users": "New Users",
|
||||
"posts": "Posts",
|
||||
"topics": "Topics",
|
||||
"page-views-seven": "Last 7 Days",
|
||||
"page-views-thirty": "Last 30 Days",
|
||||
"page-views-last-day": "Last 24 hours",
|
||||
"page-views-custom": "Custom Date Range",
|
||||
"page-views-custom-start": "Range Start",
|
||||
"page-views-custom-end": "Range End",
|
||||
"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>",
|
||||
|
||||
"stats.yesterday": "Yesterday",
|
||||
"stats.today": "Today",
|
||||
"stats.last-week": "Last Week",
|
||||
"stats.this-week": "This Week",
|
||||
"stats.last-month": "Last Month",
|
||||
"stats.this-month": "This Month",
|
||||
"stats.all": "All Time",
|
||||
|
||||
"updates": "Updates",
|
||||
"running-version": "You are running <strong>NodeBB v<span id=\"version\">%1</span></strong>.",
|
||||
"keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.",
|
||||
"up-to-date": "<p>You are <strong>up-to-date</strong> <i class=\"fa fa-check\"></i></p>",
|
||||
"upgrade-available": "<p>A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
|
||||
"prerelease-upgrade-available": "<p>This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
|
||||
"prerelease-warning": "<p>This is a <strong>pre-release</strong> version of NodeBB. Unintended bugs may occur. <i class=\"fa fa-exclamation-triangle\"></i></p>",
|
||||
"running-in-development": "<span>Forum is running in development mode. The forum may be open to potential vulnerabilities; please contact your system administrator.</span>",
|
||||
"latest-lookup-failed": "<p>Failed to look up latest available version of NodeBB</p>",
|
||||
|
||||
"notices": "Notices",
|
||||
"restart-not-required": "Restart not required",
|
||||
"restart-required": "Restart required",
|
||||
"search-plugin-installed": "Search Plugin installed",
|
||||
"search-plugin-not-installed": "Search Plugin not installed",
|
||||
"search-plugin-tooltip": "Install a search plugin from the plugin page in order to activate search functionality",
|
||||
|
||||
"control-panel": "System Control",
|
||||
"rebuild-and-restart": "Rebuild & Restart",
|
||||
"restart": "Restart",
|
||||
"restart-warning": "Rebuilding or Restarting your NodeBB will drop all existing connections for a few seconds.",
|
||||
"restart-disabled": "Rebuilding and Restarting your NodeBB has been disabled as you do not seem to be running it via the appropriate daemon.",
|
||||
"maintenance-mode": "Maintenance Mode",
|
||||
"maintenance-mode-title": "Click here to set up maintenance mode for NodeBB",
|
||||
"realtime-chart-updates": "Realtime Chart Updates",
|
||||
|
||||
"active-users": "Active Users",
|
||||
"active-users.users": "Users",
|
||||
"active-users.guests": "Guests",
|
||||
"active-users.total": "Total",
|
||||
"active-users.connections": "Connections",
|
||||
|
||||
"anonymous-registered-users": "Anonymous vs Registered Users",
|
||||
"anonymous": "Anonymous",
|
||||
"registered": "Registered",
|
||||
|
||||
"user-presence": "User Presence",
|
||||
"on-categories": "On categories list",
|
||||
"reading-posts": "Reading posts",
|
||||
"browsing-topics": "Browsing topics",
|
||||
"recent": "Recent",
|
||||
"unread": "Unread",
|
||||
|
||||
"high-presence-topics": "High Presence Topics",
|
||||
|
||||
"graphs.page-views": "Page Views",
|
||||
"graphs.page-views-registered": "Page Views Registered",
|
||||
"graphs.page-views-guest": "Page Views Guest",
|
||||
"graphs.page-views-bot": "Page Views Bot",
|
||||
"graphs.unique-visitors": "Unique Visitors",
|
||||
"graphs.registered-users": "Registered Users",
|
||||
"graphs.anonymous-users": "Anonymous Users",
|
||||
"last-restarted-by": "Last restarted by",
|
||||
"no-users-browsing": "No users browsing"
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"home-page": "Home Page",
|
||||
"description": "Choose what page is shown when users navigate to the root URL of your forum.",
|
||||
"home-page-route": "Home Page Route",
|
||||
"custom-route": "Custom Route",
|
||||
"allow-user-home-pages": "Allow User Home Pages",
|
||||
"home-page-title": "Title of the home page (default \"Home\")"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"language-settings": "Language Settings",
|
||||
"description": "The default language determines the language settings for all users who are visiting your forum. <br />Individual users can override the default language on their account settings page.",
|
||||
"default-language": "Default Language",
|
||||
"auto-detect": "Auto Detect Language Setting for Guests"
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"icon": "Icon:",
|
||||
"change-icon": "change",
|
||||
"route": "Route:",
|
||||
"tooltip": "Tooltip:",
|
||||
"text": "Text:",
|
||||
"text-class": "Text Class: <small>optional</small>",
|
||||
"class": "Class: <small>optional</small>",
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
|
||||
"btn.delete": "Delete",
|
||||
"btn.disable": "Disable",
|
||||
"btn.enable": "Enable",
|
||||
|
||||
"available-menu-items": "Available Menu Items",
|
||||
"custom-route": "Custom Route",
|
||||
"core": "core",
|
||||
"plugin": "plugin"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"post-sharing": "Post Sharing",
|
||||
"info-plugins-additional": "Plugins can add additional networks for sharing posts.",
|
||||
"save-success": "Successfully saved Post Sharing Networks!"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"notifications": "Notifications",
|
||||
"chat-messages": "Chat Messages",
|
||||
"play-sound": "Play",
|
||||
"incoming-message": "Incoming Message",
|
||||
"outgoing-message": "Outgoing Message",
|
||||
"upload-new-sound": "Upload New Sound",
|
||||
"saved": "Settings Saved"
|
||||
}
|
||||
@@ -13,6 +13,7 @@
|
||||
"resent-single": "Manual digest resend completed",
|
||||
"resent-day": "Daily digest resent",
|
||||
"resent-week": "Weekly digest resent",
|
||||
"resent-biweek": "Bi-Weekly digest resent",
|
||||
"resent-month": "Monthly digest resent",
|
||||
"null": "<em>Never</em>",
|
||||
"manual-run": "Manual digest run:",
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
"users.uid": "uid",
|
||||
"users.username": "username",
|
||||
"users.email": "email",
|
||||
"users.no-email": "(no email)",
|
||||
"users.ip": "IP",
|
||||
"users.postcount": "postcount",
|
||||
"users.reputation": "reputation",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"dashboard/logins": "Logins",
|
||||
"dashboard/users": "Users",
|
||||
"dashboard/topics": "Topics",
|
||||
"dashboard/searches": "Searches",
|
||||
"section-general": "General",
|
||||
|
||||
"section-manage": "Manage",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"from-help": "The from name to display in the email.",
|
||||
|
||||
"smtp-transport": "SMTP Transport",
|
||||
"smtp-transport.enabled": "Use an external email server to send emails",
|
||||
"smtp-transport.enabled": "Enable SMTP Transport",
|
||||
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
|
||||
"smtp-transport.service": "Select a service",
|
||||
"smtp-transport.service-custom": "Custom Service",
|
||||
@@ -38,7 +38,10 @@
|
||||
"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>",
|
||||
"notifications.remove-images": "Remove images from email notifications",
|
||||
"require-email-address": "Require new users to specify an email address",
|
||||
"require-email-address-warning": "By default, users can opt-out of entering an email address. Enabling this option means they have to enter an email address in order to proceed with registration. <strong>It does not ensure user will enter a real email address, nor even an address they own.</strong>",
|
||||
"require-email-address-warning": "By default, users can opt-out of entering an email address by leaving the field blank. Enabling this option means they have to enter an email address in order to proceed with registration. <strong>It does not ensure user will enter a real email address, nor even an address they own.</strong>",
|
||||
"send-validation-email": "Send validation emails when an email is added or changed",
|
||||
"include-unverified-emails": "Send emails to recipients who have not explicitly confirmed their emails",
|
||||
"include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). <strong>Enable this setting at your own risk</strong> – sending emails to unverified addresses may be a violation of regional anti-spam laws."
|
||||
}
|
||||
"include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). <strong>Enable this setting at your own risk</strong> – sending emails to unverified addresses may be a violation of regional anti-spam laws.",
|
||||
"prompt": "Prompt users to enter or confirm their emails",
|
||||
"prompt-help": "If a user does not have an email set, or their email is not confirmed, a warning will be shown on screen."
|
||||
}
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
"title": "Site Title",
|
||||
"title.short": "Short Title",
|
||||
"title.short-placeholder": "If no short title is specified, the site title will be used",
|
||||
"title.url": "URL",
|
||||
"title.url": "Title Link URL",
|
||||
"title.url-placeholder": "The URL of the site title",
|
||||
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index.",
|
||||
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
|
||||
"title.name": "Your Community Name",
|
||||
"title.show-in-header": "Show Site Title in Header",
|
||||
"browser-title": "Browser Title",
|
||||
@@ -20,9 +20,9 @@
|
||||
"logo.image": "Image",
|
||||
"logo.image-placeholder": "Path to a logo to display on forum header",
|
||||
"logo.upload": "Upload",
|
||||
"logo.url": "URL",
|
||||
"logo.url": "Logo Link URL",
|
||||
"logo.url-placeholder": "The URL of the site logo",
|
||||
"logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.",
|
||||
"logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
|
||||
"logo.alt-text": "Alt Text",
|
||||
"log.alt-text-placeholder": "Alternative text for accessibility",
|
||||
"favicon": "Favicon",
|
||||
@@ -47,4 +47,4 @@
|
||||
"undo-timeout": "Undo Timeout",
|
||||
"undo-timeout-help": "Some operations such as moving topics will allow for the moderator to undo their action within a certain timeframe. Set to 0 to disable undo completely.",
|
||||
"topic-tools": "Topic Tools"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
"dropdown": "Dropdown",
|
||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a href="https://myforum.com">Link 1</a></li>",
|
||||
|
||||
"btn.delete": "Delete",
|
||||
"btn.disable": "Disable",
|
||||
@@ -20,4 +22,4 @@
|
||||
"custom-route": "Custom Route",
|
||||
"core": "core",
|
||||
"plugin": "plugin"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"notifications": "Notifications",
|
||||
"welcome-notification": "Welcome Notification",
|
||||
"welcome-notification-link": "Welcome Notification Link",
|
||||
"welcome-notification-uid": "Welcome Notification User (UID)"
|
||||
"welcome-notification-uid": "Welcome Notification User (UID)",
|
||||
"post-queue-notification-uid": "Post Queue User (UID)"
|
||||
}
|
||||
@@ -40,6 +40,7 @@
|
||||
"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.first": "First",
|
||||
"showPostPreviewsOnHover": "Show a preview of posts when mouse overed",
|
||||
"unread": "Unread Settings",
|
||||
"unread.cutoff": "Unread cutoff days",
|
||||
"unread.min-track-last": "Minimum posts in topic before tracking last read",
|
||||
@@ -56,6 +57,9 @@
|
||||
"composer.show-help": "Show \"Help\" tab",
|
||||
"composer.enable-plugin-help": "Allow plugins to add content to the help tab",
|
||||
"composer.custom-help": "Custom Help Text",
|
||||
"backlinks": "Backlinks",
|
||||
"backlinks.enabled": "Enable topic backlinks",
|
||||
"backlinks.help": "If a post references another topic, a link back to the post will be inserted into the referenced topic at that point in time.",
|
||||
"ip-tracking": "IP Tracking",
|
||||
"ip-tracking.each-post": "Track IP Address for each post",
|
||||
"enable-post-history": "Enable Post History"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"posts": "Posts",
|
||||
"allow-files": "Allow users to upload regular files",
|
||||
"private": "Make uploaded files private",
|
||||
"strip-exif-data": "Strip EXIF Data",
|
||||
"private-extensions": "File extensions to make private",
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
"allow-login-with": "Allow login with",
|
||||
"allow-login-with.username-email": "Username or Email",
|
||||
"allow-login-with.username": "Username Only",
|
||||
"allow-login-with.email": "Email Only",
|
||||
"account-settings": "Account Settings",
|
||||
"gdpr_enabled": "Enable GDPR consent collection",
|
||||
"gdpr_enabled_help": "When enabled, all new registrants will be required to explicitly give consent for data collection and usage under the <a href=\"https://ec.europa.eu/info/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules/eu-data-protection-rules_en\">General Data Protection Regulation (GDPR)</a>. <strong>Note</strong>: Enabling GDPR does not force pre-existing users to provide consent. To do so, you will need to install the GDPR plugin.",
|
||||
@@ -71,6 +70,7 @@
|
||||
"digest-freq.off": "Off",
|
||||
"digest-freq.daily": "Daily",
|
||||
"digest-freq.weekly": "Weekly",
|
||||
"digest-freq.biweekly": "Bi-Weekly",
|
||||
"digest-freq.monthly": "Monthly",
|
||||
"email-chat-notifs": "Send an email if a new chat message arrives and I am not online",
|
||||
"email-post-notif": "Send an email when replies are made to topics I am subscribed to",
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"invalid-data": "ভুল তথ্য",
|
||||
"invalid-json": "Invalid JSON",
|
||||
"wrong-parameter-type": "A value of type %3 was expected for property `%1`, but %2 was received instead",
|
||||
"required-parameters-missing": "Required parameters were missing from this API call: %1",
|
||||
"not-logged-in": "আপনি লগিন করেননি",
|
||||
"account-locked": "আপনার অ্যাকাউন্ট সাময়িকভাবে লক করা হয়েছে",
|
||||
"search-requires-login": "Searching requires an account - please login or register.",
|
||||
@@ -9,6 +11,7 @@
|
||||
"invalid-tid": "ভুল টপিক নাম্বার",
|
||||
"invalid-pid": "ভুল পোস্ট নাম্বার",
|
||||
"invalid-uid": "ভুল ব্যবহারকারী নাম্বার",
|
||||
"invalid-mid": "Invalid Chat Message ID",
|
||||
"invalid-date": "A valid date must be provided",
|
||||
"invalid-username": "ভুল ইউজারনেম",
|
||||
"invalid-email": "ভুল ইমেইল",
|
||||
@@ -34,8 +37,9 @@
|
||||
"email-invited": "Email was already invited",
|
||||
"email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation 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. You won't be able to post or chat until your email is confirmed.",
|
||||
"no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery. Please click here to enter an email.",
|
||||
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You may not be able to post in some categories or chat until your email is confirmed.",
|
||||
"no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery, and may be necessary for chatting and posting in some categories. Please click here to enter an email.",
|
||||
"user-doesnt-have-email": "User \"%1\" does not have an email set.",
|
||||
"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.",
|
||||
"sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
|
||||
@@ -103,6 +107,7 @@
|
||||
"already-bookmarked": "You have already bookmarked this post",
|
||||
"already-unbookmarked": "You have already unbookmarked this post",
|
||||
"cant-ban-other-admins": "আপনি অন্য এ্যাডমিনদের নিষিদ্ধ করতে পারেন না!",
|
||||
"cant-make-banned-users-admin": "You can't make banned users admin.",
|
||||
"cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin",
|
||||
"account-deletion-disabled": "Account deletion is disabled",
|
||||
"cant-delete-admin": "Remove administrator privileges from this account before attempting to delete it.",
|
||||
@@ -140,7 +145,6 @@
|
||||
"invalid-chat-message": "Invalid chat message",
|
||||
"chat-message-too-long": "Chat messages can not be longer than %1 characters.",
|
||||
"cant-edit-chat-message": "You are not allowed to edit this message",
|
||||
"cant-remove-last-user": "You can't remove the last user",
|
||||
"cant-delete-chat-message": "You are not allowed to delete this message",
|
||||
"chat-edit-duration-expired": "You are only allowed to edit chat messages for %1 second(s) after posting",
|
||||
"chat-delete-duration-expired": "You are only allowed to delete chat messages for %1 second(s) after posting",
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"username-email": "ইউজারনেম / ইমেইল",
|
||||
"username": "ইউজারনেম",
|
||||
"email": "ইমেইল",
|
||||
"remember_me": "মনে রাখুন",
|
||||
"forgot_password": "পাসওয়ার্ড ভুলে গিয়েছেন?",
|
||||
"alternative_logins": "বিকল্প প্রবেশ",
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
"composer.formatting.strikethrough": "Strikethrough",
|
||||
"composer.formatting.code": "Code",
|
||||
"composer.formatting.link": "Link",
|
||||
"composer.formatting.picture": "Picture",
|
||||
"composer.formatting.picture": "Image Link",
|
||||
"composer.upload-picture": "Upload Image",
|
||||
"composer.upload-file": "Upload File",
|
||||
"composer.zen_mode": "Zen Mode",
|
||||
@@ -68,6 +68,8 @@
|
||||
"bootbox.ok": "OK",
|
||||
"bootbox.cancel": "Cancel",
|
||||
"bootbox.confirm": "Confirm",
|
||||
"bootbox.submit": "Submit",
|
||||
"bootbox.send": "Send",
|
||||
"cover.dragging_title": "Cover Photo Positioning",
|
||||
"cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"",
|
||||
"cover.saved": "Cover photo image and position saved",
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
"users-csv-exported": "Users csv exported, click to download",
|
||||
"post-queue-accepted": "Your queued post has been accepted. Click here to see your post.",
|
||||
"post-queue-rejected": "Your queued post has been rejected.",
|
||||
"post-queue-notify": "Queued post received a notification:<br/>\"%1\"",
|
||||
"email-confirmed": "ইমেইল নিশ্চিত করা হয়েছে",
|
||||
"email-confirmed-message": "আপনার ইমেইল যাচাই করার জন্য আপনাকে ধন্যবাদ। আপনার অ্যাকাউন্টটি এখন সম্পূর্ণরূপে সক্রিয়।",
|
||||
"email-confirm-error-message": "আপনার ইমেল ঠিকানার বৈধতা যাচাইয়ে একটি সমস্যা হয়েছে। সম্ভবত কোডটি ভুল ছিল অথবা কোডের মেয়াদ শেষ হয়ে গিয়েছে।",
|
||||
|
||||
@@ -14,5 +14,8 @@
|
||||
"reply": "Reply",
|
||||
"topic": "Topic",
|
||||
"accept": "Accept",
|
||||
"reject": "Reject"
|
||||
"reject": "Reject",
|
||||
"remove": "Remove",
|
||||
"notify": "Notify",
|
||||
"notify-user": "Notify User"
|
||||
}
|
||||
4
public/language/bn/top.json
Normal file
4
public/language/bn/top.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"title": "Top",
|
||||
"no_top_topics": "No top topics"
|
||||
}
|
||||
@@ -47,6 +47,8 @@
|
||||
"restored-by": "Restored by",
|
||||
"moved-from-by": "Moved from %1 by",
|
||||
"queued-by": "Post queued for approval →",
|
||||
"backlink": "Referenced by",
|
||||
"forked-by": "Forked by",
|
||||
"bookmark_instructions": "Click here to return to the last read post in this thread.",
|
||||
"flag-post": "Flag this post",
|
||||
"flag-user": "Flag this user",
|
||||
@@ -138,6 +140,7 @@
|
||||
"composer.handle_placeholder": "Enter your name/handle here",
|
||||
"composer.discard": "বাতিল",
|
||||
"composer.submit": "সাবমিট",
|
||||
"composer.additional-options": "Additional Options",
|
||||
"composer.schedule": "Schedule",
|
||||
"composer.replying_to": "%1 এর উত্তরে:",
|
||||
"composer.new_topic": "নতুন টপিক",
|
||||
@@ -158,6 +161,7 @@
|
||||
"newest_to_oldest": "নতুন থেকে পুরাতন",
|
||||
"most_votes": "Most Votes",
|
||||
"most_posts": "Most Posts",
|
||||
"most_views": "Most Views",
|
||||
"stale.title": "Create new topic instead?",
|
||||
"stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?",
|
||||
"stale.create": "Create a new topic",
|
||||
|
||||
@@ -94,6 +94,7 @@
|
||||
"digest_off": "বন্ধ",
|
||||
"digest_daily": "দৈনিক",
|
||||
"digest_weekly": "সাপ্তাহিক",
|
||||
"digest_biweekly": "Bi-Weekly",
|
||||
"digest_monthly": "মাসিক",
|
||||
"has_no_follower": "এই সদস্যের কোন ফলোয়ার নেই :(",
|
||||
"follows_no_one": "এই সদস্য কাউকে ফলো করছেন না :(",
|
||||
@@ -183,6 +184,6 @@
|
||||
"consent.export_posts": "Export Posts (.csv)",
|
||||
"consent.export-posts-success": "Exporting posts, you will get a notification when it is complete.",
|
||||
"emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
|
||||
"emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email, you will not be able to recover your account.",
|
||||
"emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email, you will not be able to recover your account or login with your email.",
|
||||
"emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page."
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user