mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-20 07:20:27 +01:00
Compare commits
2546 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef750e2ebd | ||
|
|
67d9209b99 | ||
|
|
98c1390e7f | ||
|
|
a3d17d14fd | ||
|
|
307eb19d01 | ||
|
|
f475d6e3b8 | ||
|
|
b4465b7df1 | ||
|
|
05cac46c5b | ||
|
|
1a56267791 | ||
|
|
d426839da9 | ||
|
|
7e6703c18e | ||
|
|
c781e55ea9 | ||
|
|
d095e5925c | ||
|
|
0bc4799c3c | ||
|
|
fdc66eb607 | ||
|
|
a3c41e7fdb | ||
|
|
8e4340544a | ||
|
|
435fe5c54f | ||
|
|
a20d1f8220 | ||
|
|
866b0ddaa6 | ||
|
|
bdc3cc49f8 | ||
|
|
957766c1d7 | ||
|
|
0c6b2b122e | ||
|
|
fdefff3516 | ||
|
|
e171ba59ac | ||
|
|
fba6e1dfe2 | ||
|
|
1413fc1b1a | ||
|
|
399c89eeed | ||
|
|
1c973b7bf3 | ||
|
|
22251cb0bd | ||
|
|
33434ed13d | ||
|
|
83ad4ab042 | ||
|
|
414c2a8bd9 | ||
|
|
6ee0671e6a | ||
|
|
6bd131815f | ||
|
|
945a94f0ed | ||
|
|
bd863e1ccb | ||
|
|
546efbbd1b | ||
|
|
e112190bee | ||
|
|
a10dfc87cf | ||
|
|
f4ea534327 | ||
|
|
8dedea884d | ||
|
|
5340537631 | ||
|
|
9e63aaebb8 | ||
|
|
7063f172a7 | ||
|
|
87e5c733a4 | ||
|
|
4b9eab6dc0 | ||
|
|
b2a69758ee | ||
|
|
eaa35c8057 | ||
|
|
65ab5733ef | ||
|
|
b46da4461c | ||
|
|
0be2a79210 | ||
|
|
e023d01616 | ||
|
|
7f77269596 | ||
|
|
3a8c1f88fb | ||
|
|
2c62bafdc7 | ||
|
|
305c54a727 | ||
|
|
d061411747 | ||
|
|
7fc08bbda8 | ||
|
|
516103fe5d | ||
|
|
e5875ba53d | ||
|
|
e25d2fa6e6 | ||
|
|
d712dcdce1 | ||
|
|
b83492daa2 | ||
|
|
d329bf45e6 | ||
|
|
69c4b4183a | ||
|
|
cbe810341c | ||
|
|
ad38c55b12 | ||
|
|
e2c4f668a1 | ||
|
|
a9da867255 | ||
|
|
ee7e36ae44 | ||
|
|
dc7839b511 | ||
|
|
daf1a388eb | ||
|
|
8209d97f05 | ||
|
|
9552d9c5a3 | ||
|
|
efbab27827 | ||
|
|
2cb70ceccc | ||
|
|
f9a29186c4 | ||
|
|
81eeab42ed | ||
|
|
3256faeb28 | ||
|
|
43b72d1552 | ||
|
|
1b7df6e4b2 | ||
|
|
835750f36f | ||
|
|
aab726bac4 | ||
|
|
072d287183 | ||
|
|
534b13e089 | ||
|
|
1229470bba | ||
|
|
140b8be161 | ||
|
|
a4ace48469 | ||
|
|
541fd474b3 | ||
|
|
f56c2ea88a | ||
|
|
4fc4a0ff3e | ||
|
|
d225951027 | ||
|
|
2b2dceb28b | ||
|
|
a12ecbc230 | ||
|
|
1602b378e3 | ||
|
|
b4e39374bb | ||
|
|
92c1d6712b | ||
|
|
423c6cc0ec | ||
|
|
42367a653c | ||
|
|
780838c579 | ||
|
|
704aeea3f1 | ||
|
|
ec8c5ff1fc | ||
|
|
7fbca487f5 | ||
|
|
6b6bae7cc5 | ||
|
|
020de2722f | ||
|
|
b73a26f7a6 | ||
|
|
6cf0697621 | ||
|
|
396013c8fd | ||
|
|
74f2f7caef | ||
|
|
02a63c0a45 | ||
|
|
b69ea4564a | ||
|
|
c01f06214e | ||
|
|
26f22345cd | ||
|
|
c6713177d3 | ||
|
|
c1a6bd8b8f | ||
|
|
21ad15b13a | ||
|
|
b8028ccdbf | ||
|
|
d00e08a8e6 | ||
|
|
2b493964d0 | ||
|
|
9d0a0538a6 | ||
|
|
7397d98647 | ||
|
|
d0b1ebb8ea | ||
|
|
9a03671ad2 | ||
|
|
503d83998b | ||
|
|
b50ad39120 | ||
|
|
f08554e788 | ||
|
|
c6643082e2 | ||
|
|
1069f9c936 | ||
|
|
da1c347fc2 | ||
|
|
ffd22f50ff | ||
|
|
2d70733fa5 | ||
|
|
1d4efaee68 | ||
|
|
4de5fde18d | ||
|
|
5c44775c1f | ||
|
|
52f7e13a5c | ||
|
|
e355c8cb1b | ||
|
|
417a573f67 | ||
|
|
ceb4de653d | ||
|
|
6ff635ada3 | ||
|
|
4b1c9ce9a2 | ||
|
|
1e2f4ae5e9 | ||
|
|
773d886135 | ||
|
|
619251143d | ||
|
|
5c35b2d96f | ||
|
|
19294c91c3 | ||
|
|
48af82659e | ||
|
|
491d376fb4 | ||
|
|
b33a482226 | ||
|
|
3e21f26d0d | ||
|
|
3b1582915e | ||
|
|
da800a9016 | ||
|
|
aa001b5926 | ||
|
|
5c253c1efa | ||
|
|
1ae0077810 | ||
|
|
1d7b2b5776 | ||
|
|
10bbbb8942 | ||
|
|
93b6b6ba5f | ||
|
|
f2bebb12c6 | ||
|
|
f2c45e98da | ||
|
|
c5b9c9254a | ||
|
|
65e2c4cd20 | ||
|
|
bf3b5ee318 | ||
|
|
a285e0734d | ||
|
|
59b14669c4 | ||
|
|
d135f37b4f | ||
|
|
5ee1951245 | ||
|
|
54226a86b4 | ||
|
|
57c2418157 | ||
|
|
de228fa67d | ||
|
|
0ba0f70581 | ||
|
|
74a7bdf589 | ||
|
|
ea818e2af8 | ||
|
|
718f61e3bd | ||
|
|
a31178ebd8 | ||
|
|
2b0b2ea858 | ||
|
|
981a7558f7 | ||
|
|
6fc073d33e | ||
|
|
13e12ba3a5 | ||
|
|
5ff9a7f9a9 | ||
|
|
3a21329c5e | ||
|
|
98cde1a9d6 | ||
|
|
b89b4d066a | ||
|
|
fbeb6bc0ce | ||
|
|
38b838d462 | ||
|
|
1d72a8f0ee | ||
|
|
3e386e7668 | ||
|
|
f974af2247 | ||
|
|
2deeda553a | ||
|
|
8160188ef5 | ||
|
|
c81d6f8b57 | ||
|
|
dc351fa320 | ||
|
|
6fd772756c | ||
|
|
19b50c8888 | ||
|
|
a5365e968d | ||
|
|
b5b9a190e4 | ||
|
|
28e9874ba9 | ||
|
|
b655e18cee | ||
|
|
ba4e8c8955 | ||
|
|
dff1a04585 | ||
|
|
abfd58a1a9 | ||
|
|
5445e32522 | ||
|
|
9d562a8708 | ||
|
|
5f5b11f692 | ||
|
|
0ef2ccc130 | ||
|
|
ed173e0a32 | ||
|
|
cea385e572 | ||
|
|
536c443c1e | ||
|
|
8e74d8f4fa | ||
|
|
29c9b2e69f | ||
|
|
f6d025bc3f | ||
|
|
93fe660892 | ||
|
|
15a8ebaeff | ||
|
|
9583c5bf93 | ||
|
|
1bbce82c23 | ||
|
|
8ff7ba82c2 | ||
|
|
40408eb7a1 | ||
|
|
6d0d74a6e9 | ||
|
|
2880a77a9f | ||
|
|
a6cfdc7508 | ||
|
|
74de675b93 | ||
|
|
071922d3ba | ||
|
|
7689b60773 | ||
|
|
0ea35beea6 | ||
|
|
ff234bccfe | ||
|
|
deda4a4ed6 | ||
|
|
e3ee3de95d | ||
|
|
387a5e36b2 | ||
|
|
1fef40eb6f | ||
|
|
18897c70b4 | ||
|
|
0ad1c8afbf | ||
|
|
b0907b8c3c | ||
|
|
28e1ae46c7 | ||
|
|
7564881298 | ||
|
|
97d1ab2e35 | ||
|
|
febc359e53 | ||
|
|
f8b3282295 | ||
|
|
ef6c30ad99 | ||
|
|
548d39fac5 | ||
|
|
ac2811be75 | ||
|
|
6c607bca1e | ||
|
|
6ae64ca884 | ||
|
|
78ea462620 | ||
|
|
ed72bacb1f | ||
|
|
d8c329cadd | ||
|
|
3a36ae5c13 | ||
|
|
43b90c5679 | ||
|
|
96526a37a3 | ||
|
|
5549280696 | ||
|
|
7fc416f18a | ||
|
|
4a0482c421 | ||
|
|
17ff083cc6 | ||
|
|
b08c7368c6 | ||
|
|
6fedcca4ee | ||
|
|
e892cf2e51 | ||
|
|
170126680b | ||
|
|
f1c422d190 | ||
|
|
e523ef7c17 | ||
|
|
88dd8b1d4d | ||
|
|
54277e62fc | ||
|
|
704104c3bf | ||
|
|
cf35f69826 | ||
|
|
37c9c05319 | ||
|
|
478850ac05 | ||
|
|
394497c9d5 | ||
|
|
493c8752c3 | ||
|
|
f0064ac11f | ||
|
|
d5c6e2e73a | ||
|
|
f1f028b89c | ||
|
|
0aceafb344 | ||
|
|
9704af3b6d | ||
|
|
e74f3da89e | ||
|
|
0feb11f205 | ||
|
|
64ec397101 | ||
|
|
18bfa44586 | ||
|
|
a60cb28562 | ||
|
|
452b4c6d56 | ||
|
|
2dfb9837a7 | ||
|
|
b45fa811b4 | ||
|
|
4e06b7790f | ||
|
|
507fb225a2 | ||
|
|
4420e7a9fc | ||
|
|
05c5196965 | ||
|
|
a17c65ee9f | ||
|
|
64359f4655 | ||
|
|
a94e676043 | ||
|
|
b717da0229 | ||
|
|
045d9df81f | ||
|
|
1bfb41bccb | ||
|
|
3197a9e47c | ||
|
|
a77641c3ca | ||
|
|
37ad81a2b0 | ||
|
|
46ce3aae9f | ||
|
|
a355fbfc81 | ||
|
|
d51407834d | ||
|
|
58b8c32fe9 | ||
|
|
fc19405170 | ||
|
|
fc99864c06 | ||
|
|
b96018b0f5 | ||
|
|
a14e22d534 | ||
|
|
ee17367cc1 | ||
|
|
0c32aa0c78 | ||
|
|
8610c44e78 | ||
|
|
8eab5ac402 | ||
|
|
8726e2ccb6 | ||
|
|
1e7da1fc82 | ||
|
|
0563bb5923 | ||
|
|
2129a2fc5f | ||
|
|
1b88a6a523 | ||
|
|
8ecd90729e | ||
|
|
af8732fcb9 | ||
|
|
eddabe5a37 | ||
|
|
f168566928 | ||
|
|
463c893c3d | ||
|
|
f9053c077d | ||
|
|
06f7172c65 | ||
|
|
e905787301 | ||
|
|
0b93738537 | ||
|
|
9a236486a9 | ||
|
|
82350dc967 | ||
|
|
03bc317065 | ||
|
|
8117b4459a | ||
|
|
b45335c6ba | ||
|
|
a065a73637 | ||
|
|
7bed4c40d6 | ||
|
|
aca5d24a7d | ||
|
|
8300aeec35 | ||
|
|
50d9a3f0a7 | ||
|
|
3f1726636f | ||
|
|
8a225ad719 | ||
|
|
8f7416d1cb | ||
|
|
cc2a92d73f | ||
|
|
cbb0542984 | ||
|
|
4a0bc1fb03 | ||
|
|
e6061810f9 | ||
|
|
fc2efb0c83 | ||
|
|
a0a8d328d0 | ||
|
|
d8e52d7ebf | ||
|
|
b2f2561e74 | ||
|
|
349de1694d | ||
|
|
714c7356f9 | ||
|
|
9ed88b7bb9 | ||
|
|
a5b8a656e9 | ||
|
|
4b4be3d4cc | ||
|
|
3b891ed7d8 | ||
|
|
3055ee96a1 | ||
|
|
434f1d924e | ||
|
|
2cae7995e7 | ||
|
|
19ca796915 | ||
|
|
45589fbeca | ||
|
|
f6ba4c446a | ||
|
|
5ce617ca5a | ||
|
|
63489457fe | ||
|
|
1c4d78eb2d | ||
|
|
f698d28dfb | ||
|
|
7b81c5db9f | ||
|
|
79fd5a4d8e | ||
|
|
62a2e9fdd0 | ||
|
|
990b02d0db | ||
|
|
95e9d7c798 | ||
|
|
62f1a788e0 | ||
|
|
5931255398 | ||
|
|
118de65f5e | ||
|
|
9165da3b26 | ||
|
|
63a2a20fd3 | ||
|
|
55bed3464e | ||
|
|
117bb407b0 | ||
|
|
39c3afec62 | ||
|
|
09ee1ae77e | ||
|
|
8acb0ca304 | ||
|
|
d90f3649a6 | ||
|
|
7125d902d0 | ||
|
|
f6181e6481 | ||
|
|
d052db85e0 | ||
|
|
aae3ac6b98 | ||
|
|
830e1a7a3d | ||
|
|
cd2ed20f3d | ||
|
|
58b0b6011f | ||
|
|
22e227a6cd | ||
|
|
8414e31730 | ||
|
|
927971b392 | ||
|
|
3341fc5644 | ||
|
|
4f37d268b6 | ||
|
|
55e20b28ec | ||
|
|
5f23f04423 | ||
|
|
972ae42d91 | ||
|
|
671db1681e | ||
|
|
fd817e865e | ||
|
|
fbdae8fe1d | ||
|
|
addd6ecde7 | ||
|
|
aa577f4adc | ||
|
|
93df7f14d8 | ||
|
|
05049946d4 | ||
|
|
9cdc2e5a2d | ||
|
|
93170ca106 | ||
|
|
60f9fc17ae | ||
|
|
1550f82652 | ||
|
|
297b5906ed | ||
|
|
56e5f505a0 | ||
|
|
8aac4bdfa1 | ||
|
|
8bc5330e89 | ||
|
|
9daa2701cd | ||
|
|
ec91efdd2d | ||
|
|
de71910f4c | ||
|
|
48b5d90a9e | ||
|
|
20983c43f4 | ||
|
|
e6beeb62cf | ||
|
|
5c4e988232 | ||
|
|
220b42706f | ||
|
|
fc1b0c8d24 | ||
|
|
30a9b66b31 | ||
|
|
d9af2242a7 | ||
|
|
10de7a92e4 | ||
|
|
36853f4ad8 | ||
|
|
9c2a98486a | ||
|
|
68ceaadad1 | ||
|
|
4124370efe | ||
|
|
2706477bcc | ||
|
|
35c426ee1c | ||
|
|
da56681f73 | ||
|
|
7c5ba9b7b1 | ||
|
|
1d22a2d46b | ||
|
|
5f0531e66a | ||
|
|
93fd938913 | ||
|
|
a88ad903af | ||
|
|
224e3dc263 | ||
|
|
484ad33549 | ||
|
|
29aa858a11 | ||
|
|
e070a9777e | ||
|
|
ba9a68c59c | ||
|
|
d3b52136bd | ||
|
|
f55e8bc548 | ||
|
|
dce9a19882 | ||
|
|
d11bfab275 | ||
|
|
2b90568157 | ||
|
|
b292aeea72 | ||
|
|
be1865da2d | ||
|
|
0f199af84d | ||
|
|
394d55de99 | ||
|
|
2ed0f25d45 | ||
|
|
551c81a977 | ||
|
|
8f6d8001d6 | ||
|
|
43755b2ce3 | ||
|
|
e75ec97049 | ||
|
|
e79a386280 | ||
|
|
9ca7243124 | ||
|
|
f2a91ef655 | ||
|
|
9518c006b5 | ||
|
|
ca1ada9dc5 | ||
|
|
74d6104072 | ||
|
|
c6a05930aa | ||
|
|
7b550b13b9 | ||
|
|
0083d4ff1c | ||
|
|
732f6d7d80 | ||
|
|
27bf1c1b2e | ||
|
|
ffac8eb41d | ||
|
|
9d273d3a32 | ||
|
|
b08774763a | ||
|
|
c74d32a172 | ||
|
|
eaa89a4da7 | ||
|
|
dfffbace42 | ||
|
|
c56b30ff60 | ||
|
|
073afe4db0 | ||
|
|
0ff09d8093 | ||
|
|
ba36230262 | ||
|
|
d1231cf4a8 | ||
|
|
72177f6d16 | ||
|
|
8abca6b03f | ||
|
|
cd7a3f64f4 | ||
|
|
c1dd0dd669 | ||
|
|
954212fc9f | ||
|
|
c7fbaf1a53 | ||
|
|
e18f6c95fa | ||
|
|
b561c49de5 | ||
|
|
73d65dd123 | ||
|
|
b48fdfadad | ||
|
|
2fc8b153c1 | ||
|
|
4f8a1174a1 | ||
|
|
1ee6255450 | ||
|
|
a924c456b9 | ||
|
|
ad7b561dd4 | ||
|
|
7312540b72 | ||
|
|
a93a1d720d | ||
|
|
122aacdc57 | ||
|
|
7f80a4a439 | ||
|
|
b94d4f7fe5 | ||
|
|
9749658d35 | ||
|
|
1c94866ab3 | ||
|
|
3063da83ef | ||
|
|
163b70fba9 | ||
|
|
a462b10f94 | ||
|
|
379bdd12e0 | ||
|
|
f6ddff3e5f | ||
|
|
c98e630f24 | ||
|
|
3b93182ec1 | ||
|
|
2286d1137b | ||
|
|
d946a2fcbd | ||
|
|
51212c2bfa | ||
|
|
2fbe7a8190 | ||
|
|
6f66209428 | ||
|
|
8bb73192cf | ||
|
|
533193fa79 | ||
|
|
1556365712 | ||
|
|
c13e14d2c8 | ||
|
|
b9172358dd | ||
|
|
84cbdc1358 | ||
|
|
5a6c46a0a0 | ||
|
|
0d7e72be51 | ||
|
|
c354929569 | ||
|
|
ec6c618751 | ||
|
|
17dfb4df94 | ||
|
|
275a9ef476 | ||
|
|
5487da9030 | ||
|
|
67eef3653b | ||
|
|
dc16a665ae | ||
|
|
47a2377229 | ||
|
|
03b0d282f1 | ||
|
|
e5928f330e | ||
|
|
d6949815ad | ||
|
|
a5c52958e7 | ||
|
|
e88d88e56c | ||
|
|
8544531a79 | ||
|
|
21b634e03f | ||
|
|
f44e850fa0 | ||
|
|
5d5346c4f9 | ||
|
|
a54dccdf3b | ||
|
|
15265bf36e | ||
|
|
c004efee3f | ||
|
|
a9015cee03 | ||
|
|
fac747cab7 | ||
|
|
24a11314dc | ||
|
|
255e3bdd20 | ||
|
|
e8ea1e12a1 | ||
|
|
ddd5c49461 | ||
|
|
9b53cdfcc0 | ||
|
|
7488fa0416 | ||
|
|
5db3166136 | ||
|
|
d72d1a1641 | ||
|
|
45e216edef | ||
|
|
8556ddd9a0 | ||
|
|
e9a92bd1bf | ||
|
|
6533941207 | ||
|
|
b617c1faa9 | ||
|
|
c8000d36db | ||
|
|
f981e6d466 | ||
|
|
d99e028a1e | ||
|
|
220dec5711 | ||
|
|
dd61bdb9c6 | ||
|
|
ee78281f35 | ||
|
|
6dfb229c66 | ||
|
|
176bf28d2f | ||
|
|
948ad5fb44 | ||
|
|
859e7593e1 | ||
|
|
a2497b050e | ||
|
|
8f5c393b12 | ||
|
|
7632997a99 | ||
|
|
d7444e5edf | ||
|
|
b604c9d5e1 | ||
|
|
3d9519bdec | ||
|
|
e2215b9912 | ||
|
|
89c863caa7 | ||
|
|
213ee2d063 | ||
|
|
2646b38dd2 | ||
|
|
a93e52aade | ||
|
|
20a1ab185c | ||
|
|
a386974585 | ||
|
|
bf13b6160f | ||
|
|
a11652ead1 | ||
|
|
8a7aaf8f76 | ||
|
|
ab2272b6b5 | ||
|
|
fe40d0f9e8 | ||
|
|
9fba76dc43 | ||
|
|
22d2ba5d6b | ||
|
|
50b9a7096e | ||
|
|
25e2e72366 | ||
|
|
1f2bd9390d | ||
|
|
828980f3e6 | ||
|
|
55c969ab23 | ||
|
|
3ffd3a5d3c | ||
|
|
14b16cb527 | ||
|
|
005c95277b | ||
|
|
2ffdec5386 | ||
|
|
2f2e2d60a0 | ||
|
|
ee94d72c59 | ||
|
|
60d655e32b | ||
|
|
610d687a96 | ||
|
|
2dc20e690f | ||
|
|
a72501f3b4 | ||
|
|
c26f274392 | ||
|
|
cc4e626f5f | ||
|
|
625a0dcbfa | ||
|
|
0c91391c75 | ||
|
|
1f06f90a50 | ||
|
|
eb0e2fe75d | ||
|
|
9e994f3baf | ||
|
|
5a0ea28633 | ||
|
|
bbccc38efd | ||
|
|
72f80dd330 | ||
|
|
7e3e7edfd4 | ||
|
|
759bdd55f0 | ||
|
|
dd92b06f16 | ||
|
|
e309a188c3 | ||
|
|
51f38e664c | ||
|
|
d780b82b01 | ||
|
|
9d3a9f4493 | ||
|
|
821c9f12d6 | ||
|
|
37a7ac5196 | ||
|
|
50feb7a766 | ||
|
|
c45fe28266 | ||
|
|
c24dce4dd6 | ||
|
|
65b2523b0f | ||
|
|
b7b44e13b1 | ||
|
|
8ee40ece71 | ||
|
|
da5909349b | ||
|
|
e8afe329a9 | ||
|
|
0d6772c30b | ||
|
|
5d04cd0bef | ||
|
|
5a0c657587 | ||
|
|
5d495483ad | ||
|
|
23c4ecfe60 | ||
|
|
a5832624d7 | ||
|
|
5587233e78 | ||
|
|
1d94b6a96f | ||
|
|
c188fa2a1f | ||
|
|
ee7d356781 | ||
|
|
a481d2c3fe | ||
|
|
f71c82f653 | ||
|
|
1eee970ebb | ||
|
|
848babcdfa | ||
|
|
86317a4b79 | ||
|
|
d146547b53 | ||
|
|
0e9a096c25 | ||
|
|
d40ca1e3c8 | ||
|
|
078d76a11b | ||
|
|
4e793995a0 | ||
|
|
c9b5948034 | ||
|
|
4fffe4da94 | ||
|
|
617808d574 | ||
|
|
e7dd881092 | ||
|
|
edb856ba90 | ||
|
|
6e80dff188 | ||
|
|
f7734d9b91 | ||
|
|
0e0b92f794 | ||
|
|
7bc2eeff4a | ||
|
|
1c36fbd57b | ||
|
|
2000947cd6 | ||
|
|
1e443551a5 | ||
|
|
b32d58e306 | ||
|
|
ba1afdf879 | ||
|
|
68835844b0 | ||
|
|
49e996caaf | ||
|
|
a17cbbb8ad | ||
|
|
3a090ef308 | ||
|
|
27049a2180 | ||
|
|
b58e50fb1e | ||
|
|
500c9f061c | ||
|
|
8c7ded3062 | ||
|
|
d5dd48ecc8 | ||
|
|
f7a3aef322 | ||
|
|
eaa442db8c | ||
|
|
e147328d53 | ||
|
|
6a509a51db | ||
|
|
1cc80cbc84 | ||
|
|
a055ff3547 | ||
|
|
32d3be0cbd | ||
|
|
fa9fde43fb | ||
|
|
ceba856006 | ||
|
|
7fa014e5ad | ||
|
|
80250b6f6c | ||
|
|
5501c0c759 | ||
|
|
663ad38727 | ||
|
|
dd175ada67 | ||
|
|
1910fdb977 | ||
|
|
cf825d02b7 | ||
|
|
c92ef6cf34 | ||
|
|
bbef94ed25 | ||
|
|
3ec99b8021 | ||
|
|
3de083208d | ||
|
|
1201425db2 | ||
|
|
e78fc98146 | ||
|
|
5db4714ba8 | ||
|
|
4d414d0b63 | ||
|
|
1b2da78fd8 | ||
|
|
1ce3d7284b | ||
|
|
427dda654a | ||
|
|
039dab829a | ||
|
|
a14249dee6 | ||
|
|
729fb1d696 | ||
|
|
3d0b50a9b7 | ||
|
|
45bf5de1e5 | ||
|
|
5c59aa7737 | ||
|
|
799cc9397a | ||
|
|
cc6f37ac4e | ||
|
|
13b4e446bf | ||
|
|
59909894fc | ||
|
|
f601bdee5e | ||
|
|
97419bbdd9 | ||
|
|
8069cbda69 | ||
|
|
0b76ed90aa | ||
|
|
b2fad172e5 | ||
|
|
9c7c87fd3b | ||
|
|
df3e007120 | ||
|
|
835d4db481 | ||
|
|
0c851d864e | ||
|
|
56d1b521c5 | ||
|
|
43bd798f2b | ||
|
|
885b36bb50 | ||
|
|
0ed46c3bae | ||
|
|
5fda8422c5 | ||
|
|
436a9a61b8 | ||
|
|
3c6d154a27 | ||
|
|
3c0c806780 | ||
|
|
b815601649 | ||
|
|
e33a905f55 | ||
|
|
499a068bb7 | ||
|
|
0d515803e4 | ||
|
|
01542647d4 | ||
|
|
9d026919ac | ||
|
|
e0996d67ca | ||
|
|
3f92984be2 | ||
|
|
7baa0e97fc | ||
|
|
dadbda98b7 | ||
|
|
641c8991f9 | ||
|
|
7abbbbfccf | ||
|
|
cb9a300811 | ||
|
|
c7c420e869 | ||
|
|
ed57a41d17 | ||
|
|
aa1f56b316 | ||
|
|
b1560388a6 | ||
|
|
4af8a5ec02 | ||
|
|
1bf6c1fd46 | ||
|
|
40834cc010 | ||
|
|
1ade973e56 | ||
|
|
188a480590 | ||
|
|
5f2271e4e0 | ||
|
|
f81e3ad358 | ||
|
|
e443d14519 | ||
|
|
70bf518a02 | ||
|
|
e7fa000fe0 | ||
|
|
b00ee4828f | ||
|
|
9dac6303bb | ||
|
|
9e3b2148ba | ||
|
|
04f536854c | ||
|
|
66422acea2 | ||
|
|
3efb1345e0 | ||
|
|
63653662e0 | ||
|
|
30df61e7a5 | ||
|
|
e15f7902dd | ||
|
|
0994f810d9 | ||
|
|
e5efec1361 | ||
|
|
f96f6d9e2e | ||
|
|
1745689317 | ||
|
|
e862f7186f | ||
|
|
b3f66faa37 | ||
|
|
0d839bdb2c | ||
|
|
7563e9aba1 | ||
|
|
e1ff3deaf0 | ||
|
|
56fc958939 | ||
|
|
43502e041a | ||
|
|
c294c3b342 | ||
|
|
6c5c8ceeee | ||
|
|
bc4e5371d7 | ||
|
|
c81424714d | ||
|
|
db1b70cccb | ||
|
|
5641e54192 | ||
|
|
232d1aae31 | ||
|
|
bb94c9c36b | ||
|
|
5bb2f2bb62 | ||
|
|
458d9ab8a2 | ||
|
|
ca3e0b59b0 | ||
|
|
27ad7e41c9 | ||
|
|
925b12ca22 | ||
|
|
80b308b9a6 | ||
|
|
f734d47bef | ||
|
|
ca332d23c0 | ||
|
|
f8fb5a1d9f | ||
|
|
4a9498e105 | ||
|
|
7161972cc3 | ||
|
|
ce743be779 | ||
|
|
6b3b44e2fc | ||
|
|
18c5354ec7 | ||
|
|
621ae9c91a | ||
|
|
63db2a539e | ||
|
|
2fd4bcde3f | ||
|
|
878e548296 | ||
|
|
27bab3330a | ||
|
|
7a3b4c08e0 | ||
|
|
5f2b341aa2 | ||
|
|
f7a3428bf8 | ||
|
|
326c531d7f | ||
|
|
4ee4707f71 | ||
|
|
47a7ab15be | ||
|
|
b65f456d70 | ||
|
|
16c6578bdb | ||
|
|
f380f4214a | ||
|
|
c4569d533d | ||
|
|
e775246bf9 | ||
|
|
e6d36af942 | ||
|
|
2871cf3fb2 | ||
|
|
486f5f9df6 | ||
|
|
b2087f94e2 | ||
|
|
a70f1b09e4 | ||
|
|
8026b3c7d8 | ||
|
|
c706638b5d | ||
|
|
89442c91c6 | ||
|
|
d27ec057c5 | ||
|
|
d249a46fae | ||
|
|
8e17f34de4 | ||
|
|
9369158ba0 | ||
|
|
fccfc5307b | ||
|
|
65bdeba385 | ||
|
|
a3a0ba9bc3 | ||
|
|
8d6d1c32e7 | ||
|
|
f0f31e077f | ||
|
|
474b074c8f | ||
|
|
a78eebe8be | ||
|
|
68cf6833b7 | ||
|
|
76793729d8 | ||
|
|
316d0fe1d7 | ||
|
|
2d5f687373 | ||
|
|
30ad24caa6 | ||
|
|
3947710a3d | ||
|
|
8b48a1e3af | ||
|
|
ed8d60b76b | ||
|
|
7c7b43d295 | ||
|
|
789418f987 | ||
|
|
41db2dcd14 | ||
|
|
0d044c34c1 | ||
|
|
f4803c21ac | ||
|
|
5ce72f4920 | ||
|
|
e0b4a35a25 | ||
|
|
c9b98306e0 | ||
|
|
30104b898c | ||
|
|
e528f52cfb | ||
|
|
77e956861a | ||
|
|
1a58ea6520 | ||
|
|
d95f5a9ae0 | ||
|
|
202789fa8d | ||
|
|
e340b9fffe | ||
|
|
7cdfe143ab | ||
|
|
4f2c7382c5 | ||
|
|
60b19a9d62 | ||
|
|
9dece4a1db | ||
|
|
4a18a041c9 | ||
|
|
25cb1f9284 | ||
|
|
d3af278123 | ||
|
|
36942125e6 | ||
|
|
9b84a887d3 | ||
|
|
815ea88fa5 | ||
|
|
765f15096b | ||
|
|
a1621145d5 | ||
|
|
f928b87997 | ||
|
|
08ec35820d | ||
|
|
2ea840e65d | ||
|
|
0fcd4dee58 | ||
|
|
11710987a4 | ||
|
|
fcbc02d48a | ||
|
|
203d4d052a | ||
|
|
c7b5cd48ba | ||
|
|
d39c2924e4 | ||
|
|
29fd89407c | ||
|
|
705111a1d9 | ||
|
|
f6d0ad9b0f | ||
|
|
4dbb1c08b6 | ||
|
|
fc28cbf887 | ||
|
|
06d547a6cb | ||
|
|
b268927cf9 | ||
|
|
7c9e76132d | ||
|
|
9754dc8be0 | ||
|
|
4ec43f662c | ||
|
|
6b950d0596 | ||
|
|
810d3be512 | ||
|
|
4c31535c4b | ||
|
|
6c0e07c384 | ||
|
|
38726243fe | ||
|
|
04ed79e587 | ||
|
|
c8e0eab34e | ||
|
|
7dde229517 | ||
|
|
ea91518f30 | ||
|
|
9e7af15bbc | ||
|
|
9d62709f7c | ||
|
|
a51b7257c7 | ||
|
|
8b5643fe90 | ||
|
|
e5bea19f56 | ||
|
|
649ef93768 | ||
|
|
e4431f62b2 | ||
|
|
358f6f61f7 | ||
|
|
d2dae2d62f | ||
|
|
0ebad0fe10 | ||
|
|
9edfcb0053 | ||
|
|
6acfec9d25 | ||
|
|
eee2aa8051 | ||
|
|
027f9e5a83 | ||
|
|
8b429a2e05 | ||
|
|
cc92d09498 | ||
|
|
8c0dfa1217 | ||
|
|
8fbb085718 | ||
|
|
f2c220988b | ||
|
|
b1478ad5da | ||
|
|
82f7ca5e0f | ||
|
|
bc056f0724 | ||
|
|
5d7ce0011a | ||
|
|
85e3cb9f0d | ||
|
|
87ffc2cff9 | ||
|
|
4ca6364dd4 | ||
|
|
10eb617c6d | ||
|
|
d05ef6ddbc | ||
|
|
5a4fa18e98 | ||
|
|
aeb7548a9d | ||
|
|
6417a55918 | ||
|
|
877b2d51fc | ||
|
|
0cc900bdcf | ||
|
|
8e38840768 | ||
|
|
0bbebbe4b1 | ||
|
|
a1b6019efe | ||
|
|
783bcb9bd6 | ||
|
|
5bc2e7dac2 | ||
|
|
41f5afa887 | ||
|
|
721ee09b19 | ||
|
|
5951079926 | ||
|
|
254fcff01f | ||
|
|
6c58bd9520 | ||
|
|
e9d9e14eb4 | ||
|
|
98c54c3ccb | ||
|
|
3ed3612047 | ||
|
|
909fe660a9 | ||
|
|
60a70e4e62 | ||
|
|
075611ca4b | ||
|
|
adbbbb3602 | ||
|
|
2e33f1d400 | ||
|
|
37fe438c63 | ||
|
|
5e39d8df33 | ||
|
|
3bd42c8b7a | ||
|
|
fffed29913 | ||
|
|
c2a5169625 | ||
|
|
f8aba4f4ef | ||
|
|
e06e1dccb6 | ||
|
|
b9dd994a56 | ||
|
|
10b9919a49 | ||
|
|
f8af900415 | ||
|
|
1d53365707 | ||
|
|
a740e8e98f | ||
|
|
61db112942 | ||
|
|
ec079afab1 | ||
|
|
855e43ea12 | ||
|
|
0c4ffafca3 | ||
|
|
15b54d6e43 | ||
|
|
51745568df | ||
|
|
901cb92941 | ||
|
|
567d171d2f | ||
|
|
e3899f9535 | ||
|
|
6439147586 | ||
|
|
8fcdae7f17 | ||
|
|
e45e204ba5 | ||
|
|
1df20465ed | ||
|
|
839dd72a05 | ||
|
|
56ed6d2112 | ||
|
|
5727658976 | ||
|
|
eba0f32913 | ||
|
|
d347e88361 | ||
|
|
54cbbe2844 | ||
|
|
f5b701553c | ||
|
|
8727c7be17 | ||
|
|
406126536a | ||
|
|
9fc97ce92d | ||
|
|
521c454dde | ||
|
|
e08f34e79d | ||
|
|
dcfb8010b7 | ||
|
|
b81646477f | ||
|
|
b83aa108f2 | ||
|
|
0f59046392 | ||
|
|
412c5360a6 | ||
|
|
82ac542f55 | ||
|
|
a3f167bfd2 | ||
|
|
89ea3b4cfe | ||
|
|
e529d18414 | ||
|
|
518aec6e76 | ||
|
|
ec7caea368 | ||
|
|
78c65aee05 | ||
|
|
2b7744f905 | ||
|
|
31da62ab2d | ||
|
|
e2196af8ab | ||
|
|
c7128bcc98 | ||
|
|
fd5f00459b | ||
|
|
868b2ff2b6 | ||
|
|
ec8fc8b97b | ||
|
|
203e69aa42 | ||
|
|
a73f34df4a | ||
|
|
c448c8cc8c | ||
|
|
32369f6191 | ||
|
|
f8f4a6e844 | ||
|
|
abf27954d3 | ||
|
|
64918dfcb4 | ||
|
|
d3dca842cb | ||
|
|
bab8e6a104 | ||
|
|
eda98a35ea | ||
|
|
e4199179f7 | ||
|
|
89333ab339 | ||
|
|
77df837906 | ||
|
|
f7f048f06a | ||
|
|
58169aa6d9 | ||
|
|
6e25724cfb | ||
|
|
e6c0794061 | ||
|
|
d3b2742da0 | ||
|
|
2f688136d1 | ||
|
|
b37bcc6dfe | ||
|
|
279bb62a3f | ||
|
|
dfe48fffb1 | ||
|
|
e9f82b7eee | ||
|
|
67b7ecf4df | ||
|
|
dd06e8d7d8 | ||
|
|
2f05ec7de0 | ||
|
|
4cb58d976b | ||
|
|
fd1b7bbd3a | ||
|
|
ec897be3e7 | ||
|
|
2878bf6cfe | ||
|
|
c63d5f4b7a | ||
|
|
f89741636c | ||
|
|
ca31ac882c | ||
|
|
5269c2eb9e | ||
|
|
076931d5b5 | ||
|
|
a626005570 | ||
|
|
8d313d2f16 | ||
|
|
7b604c0895 | ||
|
|
6d4b658579 | ||
|
|
9262c8b9f6 | ||
|
|
83f89e9537 | ||
|
|
31368ac974 | ||
|
|
5e3a990f2d | ||
|
|
7227dfd704 | ||
|
|
7282bbafb2 | ||
|
|
8234e4cc07 | ||
|
|
9d0b4f5841 | ||
|
|
940c33c426 | ||
|
|
abd3979fb3 | ||
|
|
eb733fdb6f | ||
|
|
8484c7c51a | ||
|
|
40763d2ae7 | ||
|
|
f1f199019d | ||
|
|
57a64870fd | ||
|
|
8e2483b2e6 | ||
|
|
9f4f858ff9 | ||
|
|
201c4b35da | ||
|
|
e8167a80a0 | ||
|
|
d342e01ef1 | ||
|
|
daf9999a29 | ||
|
|
2a80140e70 | ||
|
|
8d2f89a5e2 | ||
|
|
6454e89bac | ||
|
|
f0836f4107 | ||
|
|
724df69561 | ||
|
|
25a2e9b812 | ||
|
|
5d7b46935d | ||
|
|
6059165a54 | ||
|
|
0913dbbade | ||
|
|
3b5b87c14e | ||
|
|
49a173bdf0 | ||
|
|
ddd4680ea7 | ||
|
|
bc9d7f2922 | ||
|
|
5b56157403 | ||
|
|
f0ad2020df | ||
|
|
09e0d660cd | ||
|
|
28f569ea20 | ||
|
|
bd99124fb9 | ||
|
|
c0e6c306d0 | ||
|
|
3831cd0e71 | ||
|
|
da758c429a | ||
|
|
bbbb362125 | ||
|
|
d2e8d4d86e | ||
|
|
98a277af9e | ||
|
|
706527fa80 | ||
|
|
b56e862838 | ||
|
|
7890c59dc5 | ||
|
|
4f2ac340b2 | ||
|
|
53e0615df7 | ||
|
|
4d45a81fdb | ||
|
|
1ec1c5a366 | ||
|
|
33723f8b1b | ||
|
|
cda38d6ed6 | ||
|
|
fcc8093fa6 | ||
|
|
e47c375e69 | ||
|
|
4360069859 | ||
|
|
e71ef216f2 | ||
|
|
6d03f5c9e8 | ||
|
|
8a5b5936b7 | ||
|
|
cc384cc4d6 | ||
|
|
82fdc8646e | ||
|
|
3910f8bf28 | ||
|
|
87d74abfc9 | ||
|
|
52c295b28b | ||
|
|
e5dc408ef5 | ||
|
|
a5bf991cf0 | ||
|
|
d00f8a3d27 | ||
|
|
dc94fe2b6c | ||
|
|
f87f797bed | ||
|
|
5b821b2f24 | ||
|
|
42eadc72a4 | ||
|
|
3dd337bd34 | ||
|
|
289474edf7 | ||
|
|
63a6702285 | ||
|
|
23a6b33f64 | ||
|
|
3809b331bc | ||
|
|
c15a289d2a | ||
|
|
2a8437f08f | ||
|
|
5821a0758f | ||
|
|
00be1e07e3 | ||
|
|
ea9fccbf2a | ||
|
|
07572b188b | ||
|
|
f14c5f7e1c | ||
|
|
9915e31bc5 | ||
|
|
f7d7cc2610 | ||
|
|
607535b37e | ||
|
|
daaf61bc68 | ||
|
|
1102f40873 | ||
|
|
558e708576 | ||
|
|
e5343b7efc | ||
|
|
68cb1350f2 | ||
|
|
eed00fadde | ||
|
|
b777c448cf | ||
|
|
6bd3c54a03 | ||
|
|
3c9431b2fc | ||
|
|
f082270f25 | ||
|
|
9bf55c96d2 | ||
|
|
e421a2c7cd | ||
|
|
d9e0a495b0 | ||
|
|
80945eff7e | ||
|
|
a22300746c | ||
|
|
a19b25a3b3 | ||
|
|
d7cd936b54 | ||
|
|
9f2b849861 | ||
|
|
fa05971326 | ||
|
|
0fdaaadae5 | ||
|
|
e8644dac26 | ||
|
|
8cb18b1e48 | ||
|
|
c851b5a9b1 | ||
|
|
89ecda5163 | ||
|
|
ac1e0513fc | ||
|
|
8c79e11dae | ||
|
|
c40258a82c | ||
|
|
fa607132be | ||
|
|
bd17bff7d4 | ||
|
|
5b67cd841e | ||
|
|
cd1d287a46 | ||
|
|
0fadaf037a | ||
|
|
657fa8de73 | ||
|
|
44e8323efa | ||
|
|
c97c1ab4b9 | ||
|
|
8b21f1c8ab | ||
|
|
73a0908228 | ||
|
|
5140e5db8d | ||
|
|
27282a2877 | ||
|
|
4c67fffabc | ||
|
|
3ef54c3c01 | ||
|
|
01b012d89d | ||
|
|
2c2586b578 | ||
|
|
83663cf46b | ||
|
|
b07574d838 | ||
|
|
3cc3e2f306 | ||
|
|
332d4346ba | ||
|
|
a59b932020 | ||
|
|
cfd66e5dd4 | ||
|
|
f7f453f8cd | ||
|
|
046bcef800 | ||
|
|
7ed41a1f60 | ||
|
|
e0c7ef1451 | ||
|
|
6a32a0f399 | ||
|
|
a3bc5d2037 | ||
|
|
5173fd7138 | ||
|
|
72e9a6caa8 | ||
|
|
a2c6f58782 | ||
|
|
339619fc9d | ||
|
|
4a264cac52 | ||
|
|
01166b08c3 | ||
|
|
00f3084b8e | ||
|
|
0c8e0ca46f | ||
|
|
b0628c2df8 | ||
|
|
32ce785e5a | ||
|
|
26245133f3 | ||
|
|
241f5b0224 | ||
|
|
cb1e2c9fef | ||
|
|
c3541dbc95 | ||
|
|
f6d90782a8 | ||
|
|
c1b45bc0ea | ||
|
|
5020e864fc | ||
|
|
59d176fa7b | ||
|
|
a0c3ddc555 | ||
|
|
5a8babdde5 | ||
|
|
d545492b67 | ||
|
|
b1f835b053 | ||
|
|
b788e134d1 | ||
|
|
bc7729fbb3 | ||
|
|
2b57ef3d4b | ||
|
|
1b250b8f57 | ||
|
|
2ff59278c9 | ||
|
|
aa58302a27 | ||
|
|
e90f3bf7c8 | ||
|
|
1774cf0b15 | ||
|
|
be06162f0d | ||
|
|
33e4a2f1ec | ||
|
|
6c0efa09c0 | ||
|
|
d806cd134f | ||
|
|
4c2f628baa | ||
|
|
809ed255d1 | ||
|
|
f00589c8ba | ||
|
|
37d426dddb | ||
|
|
ec075ca608 | ||
|
|
73505e9bd0 | ||
|
|
afc690d67b | ||
|
|
a9f175a2bb | ||
|
|
a2e3179ea4 | ||
|
|
1ae0a8a1bf | ||
|
|
c3701bcea7 | ||
|
|
fbc0a11c87 | ||
|
|
e6701c5a1f | ||
|
|
d8c9ec0d40 | ||
|
|
77d154bb8b | ||
|
|
094cd6df32 | ||
|
|
8256d2b997 | ||
|
|
307204fc38 | ||
|
|
55262b399a | ||
|
|
6c77adfd3c | ||
|
|
431a7f3300 | ||
|
|
40008a9e85 | ||
|
|
6cea047518 | ||
|
|
3be5242aa1 | ||
|
|
9a24110a37 | ||
|
|
f1adddb775 | ||
|
|
3202a52a61 | ||
|
|
80116c3e30 | ||
|
|
ba9bba1dd8 | ||
|
|
58411a4764 | ||
|
|
7a4fc8e48b | ||
|
|
d754a6390e | ||
|
|
738c27bf04 | ||
|
|
ecad9d54ed | ||
|
|
6dacaf6bb5 | ||
|
|
0c903672d0 | ||
|
|
e2b535dfaf | ||
|
|
61cbb70691 | ||
|
|
29873f1c5c | ||
|
|
ade12116a1 | ||
|
|
ba7c873f07 | ||
|
|
948cd22e9c | ||
|
|
34bbe241ce | ||
|
|
9084ee2d7e | ||
|
|
89bf036262 | ||
|
|
cf6b32bce6 | ||
|
|
6c5395dd05 | ||
|
|
8d121e7724 | ||
|
|
d003515fd1 | ||
|
|
aa12ab9478 | ||
|
|
6771c3c74c | ||
|
|
d03a70cc25 | ||
|
|
7fe8180cf4 | ||
|
|
68930aaa5d | ||
|
|
8862fcba33 | ||
|
|
982400354a | ||
|
|
f8663bbfd0 | ||
|
|
b9875b42e9 | ||
|
|
e5c842d923 | ||
|
|
98158fb6f9 | ||
|
|
acc3c6a0a5 | ||
|
|
912de27c9d | ||
|
|
c94c1430b7 | ||
|
|
eb6754c5eb | ||
|
|
01c15b8884 | ||
|
|
242f66934c | ||
|
|
52aa7d27e8 | ||
|
|
9de0c0cdd4 | ||
|
|
ab2315f3de | ||
|
|
fdc8b67449 | ||
|
|
f408c76a98 | ||
|
|
3e3fff9fe8 | ||
|
|
03e39f7b9b | ||
|
|
13fa1f6b9a | ||
|
|
61b8fd2402 | ||
|
|
dee5d18439 | ||
|
|
66d6c49ed4 | ||
|
|
8262c38ac8 | ||
|
|
4984f2f449 | ||
|
|
14888a96cb | ||
|
|
55884220b4 | ||
|
|
ee377b160e | ||
|
|
d3ff6a9f47 | ||
|
|
44c6375d91 | ||
|
|
f63ecac8ee | ||
|
|
89f2520eba | ||
|
|
e6e755dd46 | ||
|
|
1d5e15eab4 | ||
|
|
8b81f3d835 | ||
|
|
53db052cca | ||
|
|
218ecce6c1 | ||
|
|
56d18666d6 | ||
|
|
dfabbb5fa2 | ||
|
|
cb7c318377 | ||
|
|
f5eaa08340 | ||
|
|
def57d2926 | ||
|
|
7a8d84c011 | ||
|
|
bb35950a5a | ||
|
|
61b1251a73 | ||
|
|
5a6457ec7c | ||
|
|
fe83adcbae | ||
|
|
fbbd405b00 | ||
|
|
b26bf9f22d | ||
|
|
2ba1363e12 | ||
|
|
aa38d6dda2 | ||
|
|
7e9095b21b | ||
|
|
f9581e435d | ||
|
|
949fcbbf11 | ||
|
|
fc23dea1d2 | ||
|
|
54c5034ce0 | ||
|
|
a7c3d193cc | ||
|
|
7fa61f03e2 | ||
|
|
332110b8e2 | ||
|
|
5fcbffe652 | ||
|
|
1998f102d6 | ||
|
|
8373f7359e | ||
|
|
09086f7d30 | ||
|
|
c844400ab9 | ||
|
|
5f54de3b37 | ||
|
|
e5115c0cf2 | ||
|
|
67b693cd3a | ||
|
|
cd26f5d06d | ||
|
|
91c02d4e29 | ||
|
|
46e0fad2d8 | ||
|
|
2cc6f0c507 | ||
|
|
4acf8cafee | ||
|
|
88aa427669 | ||
|
|
029ae11ed5 | ||
|
|
3ca11c1947 | ||
|
|
4145046e02 | ||
|
|
b1c37775c5 | ||
|
|
756d03fa62 | ||
|
|
7457b22427 | ||
|
|
9291ec64f9 | ||
|
|
82543bdeee | ||
|
|
d9bd7a400d | ||
|
|
4f53bd59be | ||
|
|
58094d2b3b | ||
|
|
94c1c2d547 | ||
|
|
ceb18fe73d | ||
|
|
767816e669 | ||
|
|
c1ce0a9e1d | ||
|
|
c3a51033a8 | ||
|
|
2bebac964e | ||
|
|
743cd20441 | ||
|
|
4ba6d44858 | ||
|
|
6c44de27ed | ||
|
|
4dad7de33f | ||
|
|
711dff1dd0 | ||
|
|
0e7c3be9d3 | ||
|
|
bdcf090aaa | ||
|
|
da305210e2 | ||
|
|
97c0b130ca | ||
|
|
350acde379 | ||
|
|
8eb45fc80a | ||
|
|
d09fcbaef0 | ||
|
|
145f7b3809 | ||
|
|
268981f6db | ||
|
|
957a0840b1 | ||
|
|
364ed641dd | ||
|
|
aa94dafac1 | ||
|
|
eb88d2fbd8 | ||
|
|
1337924afb | ||
|
|
6a69fcd4cd | ||
|
|
502e806f88 | ||
|
|
1ce0073cb6 | ||
|
|
a2f4cda715 | ||
|
|
dca143fd87 | ||
|
|
6607dfc4c9 | ||
|
|
8975a0962e | ||
|
|
d577371a51 | ||
|
|
0dca86f255 | ||
|
|
60efeb8561 | ||
|
|
31a44a9982 | ||
|
|
25b25319f1 | ||
|
|
3bcd8aefb0 | ||
|
|
540facaaab | ||
|
|
75657605ad | ||
|
|
fbcc7c4bc3 | ||
|
|
c305cd8220 | ||
|
|
0096d74cfa | ||
|
|
150d33eb92 | ||
|
|
df7c48c474 | ||
|
|
7bb9ea4b33 | ||
|
|
02c310ea03 | ||
|
|
276cd51836 | ||
|
|
0611b7e1ea | ||
|
|
8f6b577bad | ||
|
|
bd553eb05d | ||
|
|
fe1f4f84ec | ||
|
|
16c5c18165 | ||
|
|
25e9dca74e | ||
|
|
c3f0f52757 | ||
|
|
12619ba733 | ||
|
|
e3ba6716d1 | ||
|
|
16be6d3382 | ||
|
|
d152254bcb | ||
|
|
b2fc4d5dc4 | ||
|
|
c450992882 | ||
|
|
1029b6c2f3 | ||
|
|
d09a53197e | ||
|
|
09b26bc950 | ||
|
|
8cbb9aa310 | ||
|
|
0d84486187 | ||
|
|
429d7cbfa2 | ||
|
|
f4c587c530 | ||
|
|
0421b6ef06 | ||
|
|
cdd5847b39 | ||
|
|
5cebcfba7a | ||
|
|
cf986ad903 | ||
|
|
f99c3a310d | ||
|
|
a62a3647a0 | ||
|
|
5dfafff421 | ||
|
|
06b2a6ff68 | ||
|
|
013627860d | ||
|
|
e60ef6c9d1 | ||
|
|
2b9d1ee3dd | ||
|
|
d016a9f3b0 | ||
|
|
a583f9d77a | ||
|
|
3f31098144 | ||
|
|
3293436867 | ||
|
|
7d963e52cf | ||
|
|
d20628a8d4 | ||
|
|
8a581ed1dd | ||
|
|
0c5c0bf08a | ||
|
|
f3d1e96c24 | ||
|
|
749ce5f8e5 | ||
|
|
081462983a | ||
|
|
8241243f6b | ||
|
|
1142f7700f | ||
|
|
104393f5f7 | ||
|
|
a5029d148c | ||
|
|
fd62b537b7 | ||
|
|
a0e98d5957 | ||
|
|
2c86ca59e6 | ||
|
|
6a55cdfbaf | ||
|
|
57d6bb3b4c | ||
|
|
b40b87dd36 | ||
|
|
34c1d69ed3 | ||
|
|
47964e8ff4 | ||
|
|
0d9d9bf110 | ||
|
|
9bfb7585ee | ||
|
|
f16c37eeaf | ||
|
|
57d45518bd | ||
|
|
15e6c51541 | ||
|
|
b6125b1674 | ||
|
|
5e7bf7a272 | ||
|
|
6cd615ee45 | ||
|
|
c98720ee4c | ||
|
|
be92f07ab9 | ||
|
|
9b45109349 | ||
|
|
b1340b74c6 | ||
|
|
c351261165 | ||
|
|
1843d0364e | ||
|
|
7f6518e4a6 | ||
|
|
612acc41ba | ||
|
|
a63c679935 | ||
|
|
10928ed11b | ||
|
|
b41119a374 | ||
|
|
138a13f1b2 | ||
|
|
4d63a7c020 | ||
|
|
5cc728994b | ||
|
|
d96e4ec22a | ||
|
|
4d34241072 | ||
|
|
eff1256dfb | ||
|
|
957415463f | ||
|
|
8bbd7d971b | ||
|
|
9062a8f02b | ||
|
|
c859586269 | ||
|
|
ff5eeb3a85 | ||
|
|
38dd3d4281 | ||
|
|
722b629572 | ||
|
|
6680c2d475 | ||
|
|
ba6af71150 | ||
|
|
652e247d1b | ||
|
|
92c869e886 | ||
|
|
d65546a34d | ||
|
|
9487f3a028 | ||
|
|
d3aa353d73 | ||
|
|
9bca777320 | ||
|
|
149120a186 | ||
|
|
832430ed37 | ||
|
|
5c0bcd7e5d | ||
|
|
161b934827 | ||
|
|
a12bb9a32c | ||
|
|
def600e927 | ||
|
|
a0926d5505 | ||
|
|
f7ccdc3668 | ||
|
|
fdaccc804c | ||
|
|
ff5f3b264a | ||
|
|
845b97687a | ||
|
|
57ebcb8b8a | ||
|
|
39a75ea2d7 | ||
|
|
385760bdda | ||
|
|
2911de0af9 | ||
|
|
cba9ad3d60 | ||
|
|
16537bc636 | ||
|
|
311fd00ecd | ||
|
|
b7602c6e80 | ||
|
|
1fe1085863 | ||
|
|
b5b5894301 | ||
|
|
fd773807e9 | ||
|
|
25ccc573c0 | ||
|
|
255f50343c | ||
|
|
28c57b6635 | ||
|
|
a0d70b48db | ||
|
|
cc2ab12f29 | ||
|
|
1b00d0f739 | ||
|
|
b3278cf8e8 | ||
|
|
6a837632fa | ||
|
|
cfcfc8e0b1 | ||
|
|
a46aaf2c87 | ||
|
|
5c2a70254f | ||
|
|
d284e89d6c | ||
|
|
59da48dee5 | ||
|
|
df0e924714 | ||
|
|
0bfa8d337a | ||
|
|
2c8e8a1f1c | ||
|
|
2f19f4106a | ||
|
|
904daf7776 | ||
|
|
79083004e4 | ||
|
|
c652d1b80e | ||
|
|
feeeb83a43 | ||
|
|
4d9e7fce22 | ||
|
|
f988959989 | ||
|
|
7363c71180 | ||
|
|
63fd3f259f | ||
|
|
dc0229fc73 | ||
|
|
2e1d1ac665 | ||
|
|
c16689503d | ||
|
|
15b5c56612 | ||
|
|
2c033bf286 | ||
|
|
b3a968e006 | ||
|
|
dc2a2aa98e | ||
|
|
607e88b3c3 | ||
|
|
ecfa8f7a7d | ||
|
|
e4e9020e1f | ||
|
|
b62337b0b9 | ||
|
|
da0b2c84e6 | ||
|
|
c8f87e5d36 | ||
|
|
4a7ec3ccc6 | ||
|
|
4f5918390a | ||
|
|
7639bff0fe | ||
|
|
f5ef3cf866 | ||
|
|
2512598917 | ||
|
|
60e052e788 | ||
|
|
3bb9c9531f | ||
|
|
66b6e12aa3 | ||
|
|
77a9c7c195 | ||
|
|
939e623547 | ||
|
|
39cac43b96 | ||
|
|
f3f3ca8e50 | ||
|
|
a7a4edfd37 | ||
|
|
f793536131 | ||
|
|
d1a1cada19 | ||
|
|
530bdbbd1a | ||
|
|
b54f2de504 | ||
|
|
f753cfb1c9 | ||
|
|
b052ed3504 | ||
|
|
6ebc048f1f | ||
|
|
6a2c35c263 | ||
|
|
eb5746b2b4 | ||
|
|
af4a272264 | ||
|
|
4413c70d3c | ||
|
|
57453f33ab | ||
|
|
e16cfa396b | ||
|
|
a1c8902b4e | ||
|
|
8bc2d97352 | ||
|
|
aaa1fae558 | ||
|
|
4d6a6f64b0 | ||
|
|
f9fecf4bc1 | ||
|
|
60fecdbdf8 | ||
|
|
0fab6c243c | ||
|
|
c87c99eadd | ||
|
|
ed714cdf77 | ||
|
|
98ff75b9c3 | ||
|
|
aabfeba38d | ||
|
|
63eeee4394 | ||
|
|
9db7f0f9a0 | ||
|
|
5a3c056759 | ||
|
|
370a60c14f | ||
|
|
d47cd270df | ||
|
|
0dc0c39f48 | ||
|
|
ab69477b24 | ||
|
|
c06132e779 | ||
|
|
f253b11d71 | ||
|
|
0828caab32 | ||
|
|
943e268ffc | ||
|
|
ddee93beab | ||
|
|
27518716a0 | ||
|
|
a3cadff1d3 | ||
|
|
d096a639d6 | ||
|
|
891731ca52 | ||
|
|
08e39d150e | ||
|
|
06238f6894 | ||
|
|
c33b369858 | ||
|
|
72e14e6db6 | ||
|
|
d102ff0704 | ||
|
|
20a2262e43 | ||
|
|
bf9b633d50 | ||
|
|
c9f0e61b57 | ||
|
|
d3d321f1b7 | ||
|
|
57a3d53dee | ||
|
|
26defd7dca | ||
|
|
e31bf9131f | ||
|
|
5a1c2b9ddf | ||
|
|
288d507eb6 | ||
|
|
835ad3ea53 | ||
|
|
bc9ede7b6c | ||
|
|
90b1b13914 | ||
|
|
4b3aa26abd | ||
|
|
19814a619d | ||
|
|
caec718092 | ||
|
|
3fb7eb766b | ||
|
|
ca92372676 | ||
|
|
535f30aa9e | ||
|
|
70f6c396fc | ||
|
|
bd8a77a22b | ||
|
|
2c45dc6450 | ||
|
|
0bf98b5494 | ||
|
|
070215b05e | ||
|
|
4c927060d9 | ||
|
|
0c2d2a28ba | ||
|
|
a526577927 | ||
|
|
72f28b7b38 | ||
|
|
d895ca6827 | ||
|
|
77216acbcc | ||
|
|
5fb8817b3c | ||
|
|
d2217b8137 | ||
|
|
740c52fc4f | ||
|
|
4603484558 | ||
|
|
22c541d95f | ||
|
|
d40646ac42 | ||
|
|
f3719df997 | ||
|
|
c8c7081f5d | ||
|
|
63f449d0ad | ||
|
|
3ade5da00f | ||
|
|
c6ae6fae54 | ||
|
|
afe29d3133 | ||
|
|
25f6b816ed | ||
|
|
274523266f | ||
|
|
c379753341 | ||
|
|
0d8dcbf734 | ||
|
|
4a3255d4fd | ||
|
|
be30dcc2d0 | ||
|
|
af1fa11606 | ||
|
|
2a6de59277 | ||
|
|
5fe69e0386 | ||
|
|
fd8a885145 | ||
|
|
78a5843ae4 | ||
|
|
4072172c8e | ||
|
|
2917304f6c | ||
|
|
c20a848c7f | ||
|
|
69ee2c1d07 | ||
|
|
ba1260923f | ||
|
|
d4779c8c0a | ||
|
|
6502dd2561 | ||
|
|
fa27461abc | ||
|
|
dd38ee96fa | ||
|
|
093e499bf8 | ||
|
|
56200b0fdf | ||
|
|
f8a03c4fca | ||
|
|
22a619d9c7 | ||
|
|
ea3d7d610a | ||
|
|
7efc0619cc | ||
|
|
f1a3815ddc | ||
|
|
aab2bc0b39 | ||
|
|
c4bc51b834 | ||
|
|
22e7b2d3b2 | ||
|
|
21522e59c4 | ||
|
|
96c27d29f4 | ||
|
|
2f955c3af4 | ||
|
|
cb5ee2a141 | ||
|
|
99dc37bd9c | ||
|
|
d2938ea509 | ||
|
|
81c929fa77 | ||
|
|
d96a1f0365 | ||
|
|
5160ab1ed1 | ||
|
|
c0622743d2 | ||
|
|
4c62590bc8 | ||
|
|
a926a11e70 | ||
|
|
ad21e73491 | ||
|
|
eb5b8ccec3 | ||
|
|
1e57c5d001 | ||
|
|
e5a33539d2 | ||
|
|
9f8b274e24 | ||
|
|
94fa212eab | ||
|
|
c026a64e8e | ||
|
|
6f140384e0 | ||
|
|
4317b3c872 | ||
|
|
491e0060d4 | ||
|
|
fe45fc967d | ||
|
|
f5b448c300 | ||
|
|
e46cda835a | ||
|
|
0bd48ef023 | ||
|
|
e3cf528b57 | ||
|
|
6ccb35576c | ||
|
|
03ae7db561 | ||
|
|
0741f00e4f | ||
|
|
f67053df52 | ||
|
|
b333653464 | ||
|
|
04be40158c | ||
|
|
8ba05c08fe | ||
|
|
577a646adc | ||
|
|
236fe91e95 | ||
|
|
6fe8d25166 | ||
|
|
3eb922393f | ||
|
|
61f069a071 | ||
|
|
d94668216d | ||
|
|
4554ef2195 | ||
|
|
15d2f54cd0 | ||
|
|
46fd1843ba | ||
|
|
162a7b9e0c | ||
|
|
584daf12a0 | ||
|
|
74099d1d8c | ||
|
|
8d23265324 | ||
|
|
6b5b0b9eec | ||
|
|
5bc078d9df | ||
|
|
d4d99cba7c | ||
|
|
36cfbbbc58 | ||
|
|
c324d71727 | ||
|
|
fa87d883dc | ||
|
|
429c4022f0 | ||
|
|
3e666adfea | ||
|
|
d813bda883 | ||
|
|
5c6dfb7462 | ||
|
|
cfdd4ec164 | ||
|
|
2ed6b78cc5 | ||
|
|
666cef4029 | ||
|
|
36a49cd994 | ||
|
|
cd99324286 | ||
|
|
8f5bf1a7ed | ||
|
|
188c667580 | ||
|
|
d9a7547e63 | ||
|
|
468d2be668 | ||
|
|
86a6979606 | ||
|
|
87b9a60610 | ||
|
|
7289d50e6c | ||
|
|
fc75e3258d | ||
|
|
d02f7e0e42 | ||
|
|
6ac04e9da7 | ||
|
|
aeafbe6170 | ||
|
|
e414008c59 | ||
|
|
fd2edcaf6f | ||
|
|
a8c818c6cd | ||
|
|
f2bfb4c0d1 | ||
|
|
a9bf9745b6 | ||
|
|
1adc3b4ea7 | ||
|
|
82c4488505 | ||
|
|
6ccdf187ea | ||
|
|
f6525a13c8 | ||
|
|
2a66aad078 | ||
|
|
1c497f842a | ||
|
|
50ac813388 | ||
|
|
b3b3300bd6 | ||
|
|
c2fab07236 | ||
|
|
be8385e8dc | ||
|
|
5f12679426 | ||
|
|
de58f4ff6b | ||
|
|
710df626b5 | ||
|
|
698f598a30 | ||
|
|
203a15204e | ||
|
|
675968f0f3 | ||
|
|
5a940778ee | ||
|
|
7a7aeb131e | ||
|
|
02dbce57fb | ||
|
|
1f674f10e2 | ||
|
|
05894d14c6 | ||
|
|
200f74f1c7 | ||
|
|
bbfec7d443 | ||
|
|
456b844e61 | ||
|
|
08c1dad3ee | ||
|
|
f417e07b9d | ||
|
|
697d2636f9 | ||
|
|
8be9854062 | ||
|
|
612b8f01b6 | ||
|
|
635393a274 | ||
|
|
ad12886d19 | ||
|
|
2974f1ba8a | ||
|
|
765975e667 | ||
|
|
08e883de44 | ||
|
|
240056d169 | ||
|
|
69ed8ac45d | ||
|
|
19f0f6b7e0 | ||
|
|
0305ad989c | ||
|
|
f74383bba4 | ||
|
|
23f450adbd | ||
|
|
5414c268a0 | ||
|
|
9f35a2b251 | ||
|
|
1caddb6182 | ||
|
|
a70b73df81 | ||
|
|
4ab288acae | ||
|
|
5d43aa3212 | ||
|
|
a7d73d4106 | ||
|
|
311d02dbe1 | ||
|
|
b4731ad47b | ||
|
|
7be0830751 | ||
|
|
84c19921b9 | ||
|
|
65537d997f | ||
|
|
a8de1c1465 | ||
|
|
d7c27b35ab | ||
|
|
eb1fe77510 | ||
|
|
9b40c44fd8 | ||
|
|
96c37c25b0 | ||
|
|
b0182f702f | ||
|
|
3a3d45155e | ||
|
|
3712fe1fb5 | ||
|
|
71b41239ac | ||
|
|
db1cc6b8d2 | ||
|
|
a5d7fee623 | ||
|
|
bb0b6d9db4 | ||
|
|
d747ce5760 | ||
|
|
a907fa2187 | ||
|
|
9fa3675424 | ||
|
|
501935d359 | ||
|
|
a77a761433 | ||
|
|
52cf224e5a | ||
|
|
5ee0ed401f | ||
|
|
1a13f2a54a | ||
|
|
ce9c17f8e5 | ||
|
|
b685194dae | ||
|
|
1868a02bd7 | ||
|
|
aa62c52580 | ||
|
|
a2af8105ec | ||
|
|
60f1b9679a | ||
|
|
917f76feab | ||
|
|
f3fa2f10ed | ||
|
|
c1ac92ac19 | ||
|
|
2d4383c7b0 | ||
|
|
fc7a882877 | ||
|
|
b34420c2d7 | ||
|
|
f060a36853 | ||
|
|
b51127bd9c | ||
|
|
f5b758245f | ||
|
|
779fd0405e | ||
|
|
3c1ee1f59f | ||
|
|
9b8cc9fe6c | ||
|
|
835886998b | ||
|
|
428a431164 | ||
|
|
e42365f7c1 | ||
|
|
659d0f68cb | ||
|
|
4bbd3b47c0 | ||
|
|
e26f8c3290 | ||
|
|
a36391864a | ||
|
|
e4caa83158 | ||
|
|
8522af504a | ||
|
|
64468a6f16 | ||
|
|
357de92624 | ||
|
|
f3a113d318 | ||
|
|
112a1e8c85 | ||
|
|
3da6466045 | ||
|
|
f9887de478 | ||
|
|
02e0d4635b | ||
|
|
dfe8e8de70 | ||
|
|
ad723e2943 | ||
|
|
7b49effc14 | ||
|
|
1ddb90720c | ||
|
|
23b9b21cdd | ||
|
|
9befa6aca7 | ||
|
|
ff770e3656 | ||
|
|
6d31fee3f5 | ||
|
|
fbd875b397 | ||
|
|
faf4163a6e | ||
|
|
325815a78d | ||
|
|
861a3ca8a8 | ||
|
|
0a534b20e3 | ||
|
|
03ee524121 | ||
|
|
b443aec450 | ||
|
|
1f0902bbe8 | ||
|
|
00541b2bc8 | ||
|
|
0ff37f9e0e | ||
|
|
bfaf50908d | ||
|
|
1511a0c3fe | ||
|
|
b97c9e4467 | ||
|
|
7dc309fc16 | ||
|
|
fcbb48bb77 | ||
|
|
cb4fb62d4a | ||
|
|
38e7ecbb41 | ||
|
|
ee820341d5 | ||
|
|
74a3977d42 | ||
|
|
e6244c547a | ||
|
|
9af3007f3d | ||
|
|
4d5ed784a1 | ||
|
|
13cd2e41bb | ||
|
|
ebbb1bac26 | ||
|
|
81b32fc095 | ||
|
|
a6c75eea88 | ||
|
|
1186bff890 | ||
|
|
84e90cd73d | ||
|
|
a091757aa0 | ||
|
|
6b95b28db7 | ||
|
|
9e63b5f9a0 | ||
|
|
c98331de82 | ||
|
|
1e6f5d822d | ||
|
|
adae2bd13e | ||
|
|
818182bc00 | ||
|
|
4590fe6155 | ||
|
|
a529c3b179 | ||
|
|
7f933bc747 | ||
|
|
3efc49dd72 | ||
|
|
def5d23744 | ||
|
|
633cef6dd7 | ||
|
|
c62e7ed641 | ||
|
|
9750a36dee | ||
|
|
3e8c29e5f9 | ||
|
|
8aa75b7af4 | ||
|
|
cc487a7fc8 | ||
|
|
4364b50ecf | ||
|
|
d2e69884b5 | ||
|
|
c4c8964f82 | ||
|
|
9d5daa0bf4 | ||
|
|
747f212f1a | ||
|
|
9170ee831a | ||
|
|
fc79b3a932 | ||
|
|
48acb0082e | ||
|
|
68f985c6da | ||
|
|
fdbd9a816f | ||
|
|
d0b8337075 | ||
|
|
d1540322c9 | ||
|
|
8eb58bf5fe | ||
|
|
b7f55e8453 | ||
|
|
8007bb0644 | ||
|
|
e0edb71a8a | ||
|
|
1cbf5ddfe9 | ||
|
|
7cf3719c80 | ||
|
|
410d9fa4fa | ||
|
|
b6639403fe | ||
|
|
f4d1fbc4e3 | ||
|
|
102819426c | ||
|
|
bf54859a27 | ||
|
|
872318442f | ||
|
|
13daf8d167 | ||
|
|
fd373ed8e7 | ||
|
|
37235557bb | ||
|
|
00fb3ab909 | ||
|
|
61b6037991 | ||
|
|
0d223ef88d | ||
|
|
87435c1a9e | ||
|
|
ce24c6dc04 | ||
|
|
4b1b98e229 | ||
|
|
f0ed816edb | ||
|
|
3d9e86d9b2 | ||
|
|
cd41e192d1 | ||
|
|
87f57b8cd3 | ||
|
|
d68c44fd0a | ||
|
|
7c2b041633 | ||
|
|
a9e12f4174 | ||
|
|
b1edc59987 | ||
|
|
a5f63a5ac7 | ||
|
|
9865f78cbb | ||
|
|
768c17263c | ||
|
|
25cb450f40 | ||
|
|
3019023d38 | ||
|
|
936ea5f686 | ||
|
|
2f8e6a1f2b | ||
|
|
2ea5f85d9b | ||
|
|
e6b4a45cda | ||
|
|
e22c13abd4 | ||
|
|
3bdb98e747 | ||
|
|
712d5bce5b | ||
|
|
94cf29d42c | ||
|
|
b07a522c60 | ||
|
|
984b17349a | ||
|
|
4ce6341d85 | ||
|
|
83312ad53a | ||
|
|
14e46a87a6 | ||
|
|
1424acc88e | ||
|
|
8ed06eb773 | ||
|
|
04084807c2 | ||
|
|
da7dcd99a8 | ||
|
|
6a8a5a9de0 | ||
|
|
793a0a6772 | ||
|
|
2bfc33edb7 | ||
|
|
d314b9cae2 | ||
|
|
d28fb153c7 | ||
|
|
7ec8393004 | ||
|
|
2423bd18eb | ||
|
|
1a34327f9d | ||
|
|
59545d740c | ||
|
|
f47550d23e | ||
|
|
26b2ef1543 | ||
|
|
989ca19df5 | ||
|
|
acf1b76da8 | ||
|
|
76480d4d31 | ||
|
|
c0c85c24cf | ||
|
|
64cc0f244d | ||
|
|
5bf46864ed | ||
|
|
9e1a049fd5 | ||
|
|
100f31be81 | ||
|
|
e72ec429a2 | ||
|
|
e74d39889e | ||
|
|
bf3f20bf8b | ||
|
|
2c7d9e1a7c | ||
|
|
0cb0dafae3 | ||
|
|
03de918f10 | ||
|
|
011c42bde3 | ||
|
|
da4014eb71 | ||
|
|
8bba811aaf | ||
|
|
52a53df80d | ||
|
|
8965855218 | ||
|
|
518c6f7cfa | ||
|
|
e0c8989e8b | ||
|
|
94efa6dd87 | ||
|
|
5f47f2226a | ||
|
|
3deb423c55 | ||
|
|
49dcffcbab | ||
|
|
68e761bed0 | ||
|
|
273e26ddb1 | ||
|
|
9b083a6a66 | ||
|
|
86bd85bba4 | ||
|
|
646c5705cf | ||
|
|
2e04501224 | ||
|
|
348d05d3d1 | ||
|
|
b63c0df8a2 | ||
|
|
5a79b99a7a | ||
|
|
9f7196f5b0 | ||
|
|
772f4c103a | ||
|
|
aeae76c28d | ||
|
|
b565f3ac0a | ||
|
|
8af5102912 | ||
|
|
81a5a4cfe0 | ||
|
|
8e8375cbba | ||
|
|
8bee231d80 | ||
|
|
b278f27ffe | ||
|
|
e3e737458e | ||
|
|
beaa52fff5 | ||
|
|
9d78a204df | ||
|
|
5128f7d2f9 | ||
|
|
6b20cf5cff | ||
|
|
5337a31eb9 | ||
|
|
8bea0bb6e5 | ||
|
|
f2b24eb72a | ||
|
|
8c097357fc | ||
|
|
79f3659e55 | ||
|
|
99e774d196 | ||
|
|
ef3b6a2450 | ||
|
|
64c0e1df61 | ||
|
|
389f74b615 | ||
|
|
2de108153f | ||
|
|
2914c74587 | ||
|
|
104fc2d273 | ||
|
|
9e9b138afb | ||
|
|
e7c2bc5d5d | ||
|
|
e86650a6af | ||
|
|
fb6026f95f | ||
|
|
908f5f2fd4 | ||
|
|
080c54d414 | ||
|
|
e18ad61ff6 | ||
|
|
356f577a74 | ||
|
|
85dfedeedc | ||
|
|
7ae7c50f56 | ||
|
|
22e20b961e | ||
|
|
d14cd254a5 | ||
|
|
16f62e6502 | ||
|
|
7d6c81160b | ||
|
|
aaef0ad282 | ||
|
|
d62cdd5127 | ||
|
|
f67bc8d056 | ||
|
|
64e13df14c | ||
|
|
3ad3e781f3 | ||
|
|
28ed49a1d2 | ||
|
|
2fbaed9cdf | ||
|
|
fc00791125 | ||
|
|
5576ef0d1e | ||
|
|
e49dfc7266 | ||
|
|
83a679fc15 | ||
|
|
7a5383748c | ||
|
|
c0bce71984 | ||
|
|
6a47aacdfd | ||
|
|
6a9145d90e | ||
|
|
48337e4f51 | ||
|
|
113d35887c | ||
|
|
63367bd670 | ||
|
|
673145d413 | ||
|
|
a3f0f58ebe | ||
|
|
ae1d226218 | ||
|
|
612aa4e55b | ||
|
|
09a5d92dba | ||
|
|
9075a8d4c9 | ||
|
|
97d01de155 | ||
|
|
ddd6ed9e8c | ||
|
|
be11577aa4 | ||
|
|
9023060008 | ||
|
|
12e00ec497 | ||
|
|
77d0b095c8 | ||
|
|
aa44894db2 | ||
|
|
866adab648 | ||
|
|
04dbd5766d | ||
|
|
66bbbfcd22 | ||
|
|
420649d3bd | ||
|
|
d544b19220 | ||
|
|
3a0b92a0e4 | ||
|
|
14a2db4b2e | ||
|
|
d16cfb89e0 | ||
|
|
5cc30ca1a0 | ||
|
|
2e24224449 | ||
|
|
82708d65c6 | ||
|
|
46e022e97f | ||
|
|
647b15c7ef | ||
|
|
7332ba9c25 | ||
|
|
6fe093324a | ||
|
|
63a5002b53 | ||
|
|
92addc349b | ||
|
|
957800b2c3 | ||
|
|
f00a3dbf49 | ||
|
|
604f883ac2 | ||
|
|
1378e1155f | ||
|
|
682ba8fb1a | ||
|
|
110fd863e4 | ||
|
|
78763834fe | ||
|
|
c120f5c2c6 | ||
|
|
a0860abaaa | ||
|
|
598049e077 | ||
|
|
21fe3f2596 | ||
|
|
62609b2db6 | ||
|
|
7f43fd4843 | ||
|
|
1db2a447d7 | ||
|
|
48ee8c1370 | ||
|
|
7f81a0b0ad | ||
|
|
51c520f888 | ||
|
|
3b8e31c31f | ||
|
|
f531a5362d | ||
|
|
1723894e5a | ||
|
|
fb3251c269 | ||
|
|
03b106b03a | ||
|
|
d430ef3983 | ||
|
|
d5e473609c | ||
|
|
dfbac595b6 | ||
|
|
9b0ba6c7a4 | ||
|
|
722d1497c3 | ||
|
|
083ba12ee0 | ||
|
|
142536b659 | ||
|
|
83ab462ff5 | ||
|
|
510343b9d5 | ||
|
|
e7a52b615b | ||
|
|
392be78554 | ||
|
|
0a2d543186 | ||
|
|
fa92eb4d5c | ||
|
|
4913866785 | ||
|
|
0c5881b51f | ||
|
|
17d7916fe9 | ||
|
|
cbb3ff26e9 | ||
|
|
1ffa498807 | ||
|
|
3a172711f4 | ||
|
|
14a5de6d9d | ||
|
|
f7c70e2a7a | ||
|
|
13609edf82 | ||
|
|
2c89d50322 | ||
|
|
f9405c0423 | ||
|
|
6760ce00cc | ||
|
|
49a73e1665 | ||
|
|
c213f77f91 | ||
|
|
b8845181f6 | ||
|
|
4d4f39a44f | ||
|
|
126f3182fd | ||
|
|
5ac5d20e4b | ||
|
|
1ce3c9ca2d | ||
|
|
7ad242b981 | ||
|
|
e952a873a8 | ||
|
|
1abe35092b | ||
|
|
785790c414 | ||
|
|
5521e6143f | ||
|
|
033e078aeb | ||
|
|
0674258793 | ||
|
|
c12d90ddfb | ||
|
|
8de2d1f58d | ||
|
|
2ecfcc582f | ||
|
|
d1fcb50c7d | ||
|
|
b7c4647e9a | ||
|
|
8ca6d51d8d | ||
|
|
e97d5b2e0e | ||
|
|
23b14b3443 | ||
|
|
99e0a02b4c | ||
|
|
ab2580cc5f | ||
|
|
b6bd955131 | ||
|
|
51436fd2d9 | ||
|
|
4bed05a622 | ||
|
|
396dffd60f | ||
|
|
916f1c7ce1 | ||
|
|
08b0462695 | ||
|
|
a69eafd9f7 | ||
|
|
0202666ed0 | ||
|
|
7cbaa90d36 | ||
|
|
04175c92d9 | ||
|
|
80d7ae597b | ||
|
|
a31525c79f | ||
|
|
1b526026a0 | ||
|
|
1c21ca78dc | ||
|
|
fa39b5e46b | ||
|
|
f5fce863f9 | ||
|
|
ba9a5ad7d7 | ||
|
|
6b23977a46 | ||
|
|
7daf3a34a7 | ||
|
|
1ea295ed1b | ||
|
|
e1758e0c36 | ||
|
|
9ea10ba8ec | ||
|
|
bea1d053b4 | ||
|
|
552c56f3d1 | ||
|
|
2086ddf386 | ||
|
|
354268bccd | ||
|
|
fba0e95aeb | ||
|
|
6581c90475 | ||
|
|
7e6f29e007 | ||
|
|
7b14716eb8 | ||
|
|
702b1554fb | ||
|
|
73fb653ddf | ||
|
|
c905f96108 | ||
|
|
0b58e2fea3 | ||
|
|
82d863b9c8 | ||
|
|
259f0f96f1 | ||
|
|
347e37a224 | ||
|
|
8d8731c609 | ||
|
|
35be69d6cd | ||
|
|
3ad509b93a | ||
|
|
fdf06c0500 | ||
|
|
fe7726d249 | ||
|
|
0f4fcd8e0b | ||
|
|
9cd352c49a | ||
|
|
d177481f94 | ||
|
|
6012223b81 | ||
|
|
9eb8924bf2 | ||
|
|
9c1216eb63 | ||
|
|
d5453efdac | ||
|
|
15c2b124e3 | ||
|
|
6eef866320 | ||
|
|
067d1ae404 | ||
|
|
21459fff84 | ||
|
|
04afe7dc4b | ||
|
|
e0fba796c7 | ||
|
|
7183187be8 | ||
|
|
969c3a77cf | ||
|
|
b919d2ee77 | ||
|
|
4be8f3ec75 | ||
|
|
0bb5971915 | ||
|
|
a445e3f7b1 | ||
|
|
871cf8a3b7 | ||
|
|
5292a47a96 | ||
|
|
b665aeee83 | ||
|
|
81e4bcd358 | ||
|
|
b06ff89e02 | ||
|
|
deac12c540 | ||
|
|
4f38a33702 | ||
|
|
10680d47b0 | ||
|
|
d0bc5ec9c7 | ||
|
|
78033dbf5c | ||
|
|
d7c367ae91 | ||
|
|
7f5984d1fd | ||
|
|
c974256600 | ||
|
|
671ec8532c | ||
|
|
47c1092842 | ||
|
|
776fb29dce | ||
|
|
3d93a76508 | ||
|
|
8c98f47688 | ||
|
|
0d6be40238 | ||
|
|
14ba1ff8c0 | ||
|
|
ae1528dc7e | ||
|
|
2d79169855 | ||
|
|
d51683f62e | ||
|
|
2e2995d3bd | ||
|
|
c7396f58cd | ||
|
|
ee3b0c93c3 | ||
|
|
0864480433 | ||
|
|
cb8ce066c8 | ||
|
|
8b573bff39 | ||
|
|
9791dfb9ea | ||
|
|
23485fcbf3 | ||
|
|
207bfa8960 | ||
|
|
0a1fa72bd8 | ||
|
|
32e08ba419 | ||
|
|
807d4b7e2e | ||
|
|
114d0506e1 | ||
|
|
f0797493ee | ||
|
|
8e114c2093 | ||
|
|
a75727bbbd | ||
|
|
653850661e | ||
|
|
79265b9e83 | ||
|
|
c1b61522f7 | ||
|
|
c458a7f7b2 | ||
|
|
9852809c2c | ||
|
|
1d2d69fa45 | ||
|
|
556e7066e8 | ||
|
|
f8cfd82667 | ||
|
|
0a44d3f5e0 | ||
|
|
d485b65b67 | ||
|
|
9ab74b0a61 | ||
|
|
7825b8b951 | ||
|
|
2a88e08977 | ||
|
|
556d817cc5 | ||
|
|
458ee7cca8 | ||
|
|
bfaeee2531 | ||
|
|
b511bc37fb | ||
|
|
9d56f50967 | ||
|
|
8330a6e6d9 | ||
|
|
76933f4c37 | ||
|
|
30d7f3351b | ||
|
|
36ac6f849f | ||
|
|
02fb81901d | ||
|
|
d9a071d710 | ||
|
|
cd05a123ab | ||
|
|
52c12fa1b1 | ||
|
|
9a606246a9 | ||
|
|
d0770bcb95 | ||
|
|
6b13a84d2f | ||
|
|
5c7487c13b | ||
|
|
283ac1578f | ||
|
|
f3309e3dd4 | ||
|
|
545dbbf0df | ||
|
|
b65d518a97 | ||
|
|
9debfd94ec | ||
|
|
20ea40133b | ||
|
|
b480bff3fd | ||
|
|
cd19bf156c | ||
|
|
6ce1415cd4 | ||
|
|
9ff35a18f2 | ||
|
|
1e453140d9 | ||
|
|
abe887f557 | ||
|
|
c988f54243 | ||
|
|
485827db84 | ||
|
|
6a3a3669d2 | ||
|
|
c7ca2e2573 | ||
|
|
b4daae9b23 | ||
|
|
3aa18ebb12 | ||
|
|
5c3af6f549 | ||
|
|
363057cf49 | ||
|
|
d1b457b066 | ||
|
|
519b1b7e37 | ||
|
|
a1624013f8 | ||
|
|
95e3c6f8a4 | ||
|
|
05a4737e84 | ||
|
|
4f03e74b99 | ||
|
|
61863a69fe | ||
|
|
2990b33dc6 | ||
|
|
d9d44aee2b | ||
|
|
c24e451c12 | ||
|
|
181e2b4132 | ||
|
|
e6973b55d4 | ||
|
|
962d14746e | ||
|
|
a45858dacd | ||
|
|
68e8039ac7 | ||
|
|
45affa3043 | ||
|
|
a8402b228c | ||
|
|
b3544f644a | ||
|
|
7f5617bc74 | ||
|
|
14fdb9ebee | ||
|
|
6809af536c | ||
|
|
4c7a4d3688 | ||
|
|
05f33df098 | ||
|
|
bd388f727c | ||
|
|
9a16a359a8 | ||
|
|
fc0dce429b | ||
|
|
834ca016ec | ||
|
|
c0fc7e9ca4 | ||
|
|
eada3daf9f | ||
|
|
6ea10aa7e3 | ||
|
|
7e35987e1b | ||
|
|
c2467de9c2 | ||
|
|
872dd679e2 | ||
|
|
f02fd88eaf | ||
|
|
964d531582 | ||
|
|
385e034a23 | ||
|
|
7a51520074 | ||
|
|
4e23fe7c3a | ||
|
|
3029b19be6 | ||
|
|
15e472db12 | ||
|
|
2579d2535d | ||
|
|
fa5ac04cd3 | ||
|
|
c9f990bb72 | ||
|
|
7225c0d45b | ||
|
|
54ee8e59f6 | ||
|
|
d2cddc734b | ||
|
|
11dc477dde | ||
|
|
e593c8e6b1 | ||
|
|
fa95012fa3 | ||
|
|
1413478a68 | ||
|
|
003535b3ab | ||
|
|
383fa4d0ea | ||
|
|
604dac88e3 | ||
|
|
70b5c631c6 | ||
|
|
9726e599e4 | ||
|
|
1b9297fa31 | ||
|
|
02b6a7893a | ||
|
|
286d14f614 | ||
|
|
11c83079f2 | ||
|
|
8de978fbcf | ||
|
|
d5d686b701 | ||
|
|
f2b0068b32 | ||
|
|
db157da3fb | ||
|
|
0580773331 | ||
|
|
d69054804e | ||
|
|
73dea4fc4e | ||
|
|
f9f1cf63cf | ||
|
|
5281c8c376 | ||
|
|
535529923c | ||
|
|
a17ecefd20 | ||
|
|
c7e731f4c4 | ||
|
|
b2625a1bf0 | ||
|
|
91103fb09e | ||
|
|
121fb88008 | ||
|
|
aa6137b9c3 | ||
|
|
c18de5cdd2 | ||
|
|
ef35b83806 | ||
|
|
263f479b20 | ||
|
|
39def60f9b | ||
|
|
420aa5e102 | ||
|
|
8294aec5e7 | ||
|
|
8fdc03eaad | ||
|
|
daebc322eb | ||
|
|
7823416410 | ||
|
|
af4cbfb20d | ||
|
|
d2735c8558 | ||
|
|
3f12d363f7 | ||
|
|
e93b2b6aa1 | ||
|
|
41ae8b61a7 | ||
|
|
220c82a8f2 | ||
|
|
76c16c0383 | ||
|
|
166f353aaa | ||
|
|
8be9e6d413 | ||
|
|
9363741231 | ||
|
|
2e1a098cfa | ||
|
|
db979d7a20 | ||
|
|
f3ea8d1cff | ||
|
|
74630b3a79 | ||
|
|
c56b9aafff | ||
|
|
dcba272dc5 | ||
|
|
5f8781c88e | ||
|
|
467fb1ab4a | ||
|
|
93f414892b | ||
|
|
e0436d73c3 | ||
|
|
c95f151bfc | ||
|
|
69ed00fc14 | ||
|
|
642136f6f8 | ||
|
|
b60ed95d20 | ||
|
|
1ae39d638a | ||
|
|
f0b104fef0 | ||
|
|
d77bd638c4 | ||
|
|
6ae5b09a01 | ||
|
|
52285239e9 | ||
|
|
19297e2d22 | ||
|
|
0f66077bf5 | ||
|
|
b6ee472276 | ||
|
|
cd41df5677 | ||
|
|
a1e54fda23 | ||
|
|
11c9b74faf | ||
|
|
a12907512f | ||
|
|
3272ca34ee | ||
|
|
4440260f8f | ||
|
|
1004fb2822 | ||
|
|
72bb74cf46 | ||
|
|
fa2f03aeca | ||
|
|
2e4198b8f1 | ||
|
|
f3d485bd58 | ||
|
|
719290cd2b | ||
|
|
97633fe01e | ||
|
|
6452596312 | ||
|
|
9e1789dc58 | ||
|
|
39b679705b | ||
|
|
595ff1f4b1 | ||
|
|
a6e498bb5d | ||
|
|
b89b960f86 | ||
|
|
608943255b | ||
|
|
ec0624918f | ||
|
|
e5cc45a95b | ||
|
|
70657251b9 | ||
|
|
44175188c4 | ||
|
|
06f66337fb | ||
|
|
0a38a783c7 | ||
|
|
8e0e2a04be | ||
|
|
37d7756271 | ||
|
|
9a8fa35d8d | ||
|
|
4125a087b5 | ||
|
|
783481e644 | ||
|
|
df4b555717 | ||
|
|
b7dcc29638 | ||
|
|
cdfaa941b1 | ||
|
|
04c83dbdcc | ||
|
|
dfc7c7aa7f | ||
|
|
0e9fdc9a09 | ||
|
|
e09328c74d | ||
|
|
38874345b7 | ||
|
|
e769ebe668 | ||
|
|
dd135b875b | ||
|
|
268ecd5157 | ||
|
|
f21b313848 | ||
|
|
ac2cc8cae6 | ||
|
|
5f3f4ef74e | ||
|
|
d492339841 | ||
|
|
7bfc36ff56 | ||
|
|
209edf182f | ||
|
|
80d04e2de5 | ||
|
|
9440f8f8cd | ||
|
|
84b7a2c92d | ||
|
|
8e84e47578 | ||
|
|
fd70ba5647 | ||
|
|
e0975b85df | ||
|
|
f83dd956eb | ||
|
|
fcc42883ab | ||
|
|
d43e8beb60 | ||
|
|
56d16d1792 | ||
|
|
7c7be2e0c1 | ||
|
|
6353ed57a9 | ||
|
|
1fe82ee452 | ||
|
|
c44068db52 | ||
|
|
a7bc05aeb6 | ||
|
|
a7d028e29b | ||
|
|
ec309333be | ||
|
|
de0da80040 | ||
|
|
b91d39a0d3 | ||
|
|
c38ca146c7 | ||
|
|
0a1b31e6bc | ||
|
|
fb1095fc28 | ||
|
|
de8c1ece14 | ||
|
|
e97bfc139b | ||
|
|
0ede4abe18 | ||
|
|
0bb0424998 | ||
|
|
e93398b647 | ||
|
|
61aaff025b | ||
|
|
b12e3562d5 | ||
|
|
adfb89a2ad | ||
|
|
28f87cc776 | ||
|
|
a992638ef3 | ||
|
|
41d806f67f | ||
|
|
433769eb36 | ||
|
|
121de11400 | ||
|
|
ca87bc1577 | ||
|
|
9b481b23f3 | ||
|
|
50b264ac7d | ||
|
|
4d4dc344a6 | ||
|
|
2c555687e7 | ||
|
|
189eaf2bea | ||
|
|
fbd478812e | ||
|
|
1b268c94c0 | ||
|
|
cbedc762fd | ||
|
|
0fba1e37a7 | ||
|
|
5be1c17aa7 | ||
|
|
bce96d04c7 | ||
|
|
4c8287251a | ||
|
|
50a06f9369 | ||
|
|
f19bc2e2be | ||
|
|
20314991a4 | ||
|
|
a4533703d4 | ||
|
|
c5ba327d8f | ||
|
|
b12476c422 | ||
|
|
1bcdae41b8 | ||
|
|
9e77960ee1 | ||
|
|
25c7dfbc12 |
@@ -1,4 +1,8 @@
|
|||||||
root = true
|
root = true
|
||||||
|
|
||||||
[*.js, *.css, *.tpl]
|
[{*.js, *.css, *.tpl, *.json}]
|
||||||
indent_style = tab
|
indent_style = tab
|
||||||
|
end_of_line = lf
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = false
|
||||||
|
|||||||
13
.gitattributes
vendored
Normal file
13
.gitattributes
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# These files are text and should be normalized (convert crlf => lf)
|
||||||
|
*.json text
|
||||||
|
*.css text
|
||||||
|
*.less text
|
||||||
|
*.tpl text
|
||||||
|
*.html text
|
||||||
|
*.js text
|
||||||
|
*.md text
|
||||||
|
|
||||||
|
# Images should be treated as binary
|
||||||
|
# (binary is a macro for -text -diff)
|
||||||
|
*.png binary
|
||||||
|
*.jpg binary
|
||||||
15
.gitignore
vendored
15
.gitignore
vendored
@@ -8,7 +8,6 @@ public/css/*.css
|
|||||||
*.sublime-project
|
*.sublime-project
|
||||||
*.sublime-workspace
|
*.sublime-workspace
|
||||||
.project
|
.project
|
||||||
.idea
|
|
||||||
*.swp
|
*.swp
|
||||||
Vagrantfile
|
Vagrantfile
|
||||||
.vagrant
|
.vagrant
|
||||||
@@ -17,9 +16,7 @@ provision.sh
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
feeds/recent.rss
|
feeds/recent.rss
|
||||||
|
|
||||||
# winston?
|
logs/
|
||||||
error.log
|
|
||||||
events.log
|
|
||||||
|
|
||||||
pidfile
|
pidfile
|
||||||
|
|
||||||
@@ -34,3 +31,13 @@ pidfile
|
|||||||
/public/admin.css
|
/public/admin.css
|
||||||
/public/nodebb.min.js
|
/public/nodebb.min.js
|
||||||
/public/nodebb.min.js.map
|
/public/nodebb.min.js.map
|
||||||
|
|
||||||
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio
|
||||||
|
*.iml
|
||||||
|
|
||||||
|
## Directory-based project format:
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
## File-based project format:
|
||||||
|
*.ipr
|
||||||
|
*.iws
|
||||||
@@ -1,8 +1,14 @@
|
|||||||
services:
|
services:
|
||||||
- redis-server
|
- redis-server
|
||||||
before_install:
|
before_install:
|
||||||
|
- "sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10"
|
||||||
|
- "echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list"
|
||||||
|
- "sudo apt-get update"
|
||||||
|
- "sudo apt-get install mongodb-org-server"
|
||||||
- npm i --production
|
- npm i --production
|
||||||
- node app --setup="{\"base_url\":\"http://127.0.0.1\",\"port\":4567,\"use_port\":false,\"secret\":\"abcdef\",\"bind_address\":\"0.0.0.0\",\"database\":\"redis\",\"redis:host\":\"127.0.0.1\",\"redis:port\":6379,\"redis:password\":\"\",\"redis:database\":0,\"admin:username\":\"admin\",\"admin:email\":\"test@example.org\",\"admin:password\":\"abcdef\",\"admin:password:confirm\":\"abcdef\"}" --ci="{\"host\":\"127.0.0.1\",\"port\":6379,\"database\":0}"
|
- node app --setup="{\"url\":\"http://127.0.0.1:4567/\",\"secret\":\"abcdef\",\"database\":\"mongo\",\"mongo:host\":\"127.0.0.1\",\"mongo:port\":27017,\"mongo:username\":\"\",\"mongo:password\":\"\",\"mongo:database\":0,\"redis:host\":\"127.0.0.1\",\"redis:port\":6379,\"redis:password\":\"\",\"redis:database\":0,\"admin:username\":\"admin\",\"admin:email\":\"test@example.org\",\"admin:password\":\"abcdef\",\"admin:password:confirm\":\"abcdef\"}" --ci="{\"host\":\"127.0.0.1\",\"port\":27017,\"database\":0}"
|
||||||
|
before_script:
|
||||||
|
- "until nc -z localhost 27017; do echo Waiting for MongoDB; sleep 1; done"
|
||||||
language: node_js
|
language: node_js
|
||||||
node_js:
|
node_js:
|
||||||
- "0.11"
|
- "0.11"
|
||||||
|
|||||||
138
.tx/config
138
.tx/config
@@ -6,8 +6,12 @@ file_filter = public/language/<lang>/category.json
|
|||||||
source_file = public/language/en_GB/category.json
|
source_file = public/language/en_GB/category.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/category.json
|
trans.ar = public/language/ar/category.json
|
||||||
|
trans.bn = public/language/bn/category.json
|
||||||
|
trans.bg = public/language/bg/category.json
|
||||||
trans.cs = public/language/cs/category.json
|
trans.cs = public/language/cs/category.json
|
||||||
|
trans.da = public/language/da/category.json
|
||||||
trans.de = public/language/de/category.json
|
trans.de = public/language/de/category.json
|
||||||
|
trans.el = public/language/el/category.json
|
||||||
trans.en_US = public/language/en_US/category.json
|
trans.en_US = public/language/en_US/category.json
|
||||||
trans.en@pirate = public/language/en@pirate/category.json
|
trans.en@pirate = public/language/en@pirate/category.json
|
||||||
trans.es = public/language/es/category.json
|
trans.es = public/language/es/category.json
|
||||||
@@ -17,6 +21,7 @@ trans.fi = public/language/fi/category.json
|
|||||||
trans.fr = public/language/fr/category.json
|
trans.fr = public/language/fr/category.json
|
||||||
trans.he = public/language/he/category.json
|
trans.he = public/language/he/category.json
|
||||||
trans.hu = public/language/hu/category.json
|
trans.hu = public/language/hu/category.json
|
||||||
|
trans.id = public/language/id/category.json
|
||||||
trans.it = public/language/it/category.json
|
trans.it = public/language/it/category.json
|
||||||
trans.ja = public/language/ja/category.json
|
trans.ja = public/language/ja/category.json
|
||||||
trans.ko = public/language/ko/category.json
|
trans.ko = public/language/ko/category.json
|
||||||
@@ -30,6 +35,7 @@ trans.ru = public/language/ru/category.json
|
|||||||
trans.ro = public/language/ro/category.json
|
trans.ro = public/language/ro/category.json
|
||||||
trans.sc = public/language/sc/category.json
|
trans.sc = public/language/sc/category.json
|
||||||
trans.sk = public/language/sk/category.json
|
trans.sk = public/language/sk/category.json
|
||||||
|
trans.sr = public/language/sr/category.json
|
||||||
trans.sv = public/language/sv/category.json
|
trans.sv = public/language/sv/category.json
|
||||||
trans.th = public/language/th/category.json
|
trans.th = public/language/th/category.json
|
||||||
trans.tr = public/language/tr/category.json
|
trans.tr = public/language/tr/category.json
|
||||||
@@ -43,8 +49,12 @@ file_filter = public/language/<lang>/login.json
|
|||||||
source_file = public/language/en_GB/login.json
|
source_file = public/language/en_GB/login.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/login.json
|
trans.ar = public/language/ar/login.json
|
||||||
|
trans.bn = public/language/bn/login.json
|
||||||
|
trans.bg = public/language/bg/login.json
|
||||||
trans.cs = public/language/cs/login.json
|
trans.cs = public/language/cs/login.json
|
||||||
|
trans.da = public/language/da/login.json
|
||||||
trans.de = public/language/de/login.json
|
trans.de = public/language/de/login.json
|
||||||
|
trans.el = public/language/el/login.json
|
||||||
trans.en_US = public/language/en_US/login.json
|
trans.en_US = public/language/en_US/login.json
|
||||||
trans.en@pirate = public/language/en@pirate/login.json
|
trans.en@pirate = public/language/en@pirate/login.json
|
||||||
trans.es = public/language/es/login.json
|
trans.es = public/language/es/login.json
|
||||||
@@ -54,6 +64,7 @@ trans.fi = public/language/fi/login.json
|
|||||||
trans.fr = public/language/fr/login.json
|
trans.fr = public/language/fr/login.json
|
||||||
trans.he = public/language/he/login.json
|
trans.he = public/language/he/login.json
|
||||||
trans.hu = public/language/hu/login.json
|
trans.hu = public/language/hu/login.json
|
||||||
|
trans.id = public/language/id/login.json
|
||||||
trans.it = public/language/it/login.json
|
trans.it = public/language/it/login.json
|
||||||
trans.ja = public/language/ja/login.json
|
trans.ja = public/language/ja/login.json
|
||||||
trans.ko = public/language/ko/login.json
|
trans.ko = public/language/ko/login.json
|
||||||
@@ -67,6 +78,7 @@ trans.ru = public/language/ru/login.json
|
|||||||
trans.ro = public/language/ro/login.json
|
trans.ro = public/language/ro/login.json
|
||||||
trans.sc = public/language/sc/login.json
|
trans.sc = public/language/sc/login.json
|
||||||
trans.sk = public/language/sk/login.json
|
trans.sk = public/language/sk/login.json
|
||||||
|
trans.sr = public/language/sr/login.json
|
||||||
trans.sv = public/language/sv/login.json
|
trans.sv = public/language/sv/login.json
|
||||||
trans.th = public/language/th/login.json
|
trans.th = public/language/th/login.json
|
||||||
trans.tr = public/language/tr/login.json
|
trans.tr = public/language/tr/login.json
|
||||||
@@ -76,11 +88,16 @@ trans.zh_TW = public/language/zh_TW/login.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.recent]
|
[nodebb.recent]
|
||||||
|
file_filter = public/language/<lang>/recent.json
|
||||||
source_file = public/language/en_GB/recent.json
|
source_file = public/language/en_GB/recent.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/recent.json
|
trans.ar = public/language/ar/recent.json
|
||||||
|
trans.bn = public/language/bn/recent.json
|
||||||
|
trans.bg = public/language/bg/recent.json
|
||||||
trans.cs = public/language/cs/recent.json
|
trans.cs = public/language/cs/recent.json
|
||||||
|
trans.da = public/language/da/recent.json
|
||||||
trans.de = public/language/de/recent.json
|
trans.de = public/language/de/recent.json
|
||||||
|
trans.el = public/language/el/recent.json
|
||||||
trans.en_US = public/language/en_US/recent.json
|
trans.en_US = public/language/en_US/recent.json
|
||||||
trans.en@pirate = public/language/en@pirate/recent.json
|
trans.en@pirate = public/language/en@pirate/recent.json
|
||||||
trans.es = public/language/es/recent.json
|
trans.es = public/language/es/recent.json
|
||||||
@@ -90,6 +107,7 @@ trans.fi = public/language/fi/recent.json
|
|||||||
trans.fr = public/language/fr/recent.json
|
trans.fr = public/language/fr/recent.json
|
||||||
trans.he = public/language/he/recent.json
|
trans.he = public/language/he/recent.json
|
||||||
trans.hu = public/language/hu/recent.json
|
trans.hu = public/language/hu/recent.json
|
||||||
|
trans.id = public/language/id/recent.json
|
||||||
trans.it = public/language/it/recent.json
|
trans.it = public/language/it/recent.json
|
||||||
trans.ja = public/language/ja/recent.json
|
trans.ja = public/language/ja/recent.json
|
||||||
trans.ko = public/language/ko/recent.json
|
trans.ko = public/language/ko/recent.json
|
||||||
@@ -103,6 +121,7 @@ trans.ru = public/language/ru/recent.json
|
|||||||
trans.ro = public/language/ro/recent.json
|
trans.ro = public/language/ro/recent.json
|
||||||
trans.sc = public/language/sc/recent.json
|
trans.sc = public/language/sc/recent.json
|
||||||
trans.sk = public/language/sk/recent.json
|
trans.sk = public/language/sk/recent.json
|
||||||
|
trans.sr = public/language/sr/recent.json
|
||||||
trans.sv = public/language/sv/recent.json
|
trans.sv = public/language/sv/recent.json
|
||||||
trans.th = public/language/th/recent.json
|
trans.th = public/language/th/recent.json
|
||||||
trans.tr = public/language/tr/recent.json
|
trans.tr = public/language/tr/recent.json
|
||||||
@@ -112,11 +131,16 @@ trans.zh_TW = public/language/zh_TW/recent.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.unread]
|
[nodebb.unread]
|
||||||
|
file_filter = public/language/<lang>/unread.json
|
||||||
source_file = public/language/en_GB/unread.json
|
source_file = public/language/en_GB/unread.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/unread.json
|
trans.ar = public/language/ar/unread.json
|
||||||
|
trans.bn = public/language/bn/unread.json
|
||||||
|
trans.bg = public/language/bg/unread.json
|
||||||
trans.cs = public/language/cs/unread.json
|
trans.cs = public/language/cs/unread.json
|
||||||
|
trans.da = public/language/da/unread.json
|
||||||
trans.de = public/language/de/unread.json
|
trans.de = public/language/de/unread.json
|
||||||
|
trans.el = public/language/el/unread.json
|
||||||
trans.en_US = public/language/en_US/unread.json
|
trans.en_US = public/language/en_US/unread.json
|
||||||
trans.en@pirate = public/language/en@pirate/unread.json
|
trans.en@pirate = public/language/en@pirate/unread.json
|
||||||
trans.es = public/language/es/unread.json
|
trans.es = public/language/es/unread.json
|
||||||
@@ -126,6 +150,7 @@ trans.fi = public/language/fi/unread.json
|
|||||||
trans.fr = public/language/fr/unread.json
|
trans.fr = public/language/fr/unread.json
|
||||||
trans.he = public/language/he/unread.json
|
trans.he = public/language/he/unread.json
|
||||||
trans.hu = public/language/hu/unread.json
|
trans.hu = public/language/hu/unread.json
|
||||||
|
trans.id = public/language/id/unread.json
|
||||||
trans.it = public/language/it/unread.json
|
trans.it = public/language/it/unread.json
|
||||||
trans.ja = public/language/ja/unread.json
|
trans.ja = public/language/ja/unread.json
|
||||||
trans.ko = public/language/ko/unread.json
|
trans.ko = public/language/ko/unread.json
|
||||||
@@ -139,6 +164,7 @@ trans.ru = public/language/ru/unread.json
|
|||||||
trans.ro = public/language/ro/unread.json
|
trans.ro = public/language/ro/unread.json
|
||||||
trans.sc = public/language/sc/unread.json
|
trans.sc = public/language/sc/unread.json
|
||||||
trans.sk = public/language/sk/unread.json
|
trans.sk = public/language/sk/unread.json
|
||||||
|
trans.sr = public/language/sr/unread.json
|
||||||
trans.sv = public/language/sv/unread.json
|
trans.sv = public/language/sv/unread.json
|
||||||
trans.th = public/language/th/unread.json
|
trans.th = public/language/th/unread.json
|
||||||
trans.tr = public/language/tr/unread.json
|
trans.tr = public/language/tr/unread.json
|
||||||
@@ -148,11 +174,16 @@ trans.zh_TW = public/language/zh_TW/unread.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.modules]
|
[nodebb.modules]
|
||||||
|
file_filter = public/language/<lang>/modules.json
|
||||||
source_file = public/language/en_GB/modules.json
|
source_file = public/language/en_GB/modules.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/modules.json
|
trans.ar = public/language/ar/modules.json
|
||||||
|
trans.bn = public/language/bn/modules.json
|
||||||
|
trans.bg = public/language/bg/modules.json
|
||||||
trans.cs = public/language/cs/modules.json
|
trans.cs = public/language/cs/modules.json
|
||||||
|
trans.da = public/language/da/modules.json
|
||||||
trans.de = public/language/de/modules.json
|
trans.de = public/language/de/modules.json
|
||||||
|
trans.el = public/language/el/modules.json
|
||||||
trans.en_US = public/language/en_US/modules.json
|
trans.en_US = public/language/en_US/modules.json
|
||||||
trans.en@pirate = public/language/en@pirate/modules.json
|
trans.en@pirate = public/language/en@pirate/modules.json
|
||||||
trans.es = public/language/es/modules.json
|
trans.es = public/language/es/modules.json
|
||||||
@@ -162,6 +193,7 @@ trans.fi = public/language/fi/modules.json
|
|||||||
trans.fr = public/language/fr/modules.json
|
trans.fr = public/language/fr/modules.json
|
||||||
trans.he = public/language/he/modules.json
|
trans.he = public/language/he/modules.json
|
||||||
trans.hu = public/language/hu/modules.json
|
trans.hu = public/language/hu/modules.json
|
||||||
|
trans.id = public/language/id/modules.json
|
||||||
trans.it = public/language/it/modules.json
|
trans.it = public/language/it/modules.json
|
||||||
trans.ja = public/language/ja/modules.json
|
trans.ja = public/language/ja/modules.json
|
||||||
trans.ko = public/language/ko/modules.json
|
trans.ko = public/language/ko/modules.json
|
||||||
@@ -175,6 +207,7 @@ trans.ru = public/language/ru/modules.json
|
|||||||
trans.ro = public/language/ro/modules.json
|
trans.ro = public/language/ro/modules.json
|
||||||
trans.sc = public/language/sc/modules.json
|
trans.sc = public/language/sc/modules.json
|
||||||
trans.sk = public/language/sk/modules.json
|
trans.sk = public/language/sk/modules.json
|
||||||
|
trans.sr = public/language/sr/modules.json
|
||||||
trans.sv = public/language/sv/modules.json
|
trans.sv = public/language/sv/modules.json
|
||||||
trans.th = public/language/th/modules.json
|
trans.th = public/language/th/modules.json
|
||||||
trans.tr = public/language/tr/modules.json
|
trans.tr = public/language/tr/modules.json
|
||||||
@@ -184,11 +217,16 @@ trans.zh_TW = public/language/zh_TW/modules.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.register]
|
[nodebb.register]
|
||||||
|
file_filter = public/language/<lang>/register.json
|
||||||
source_file = public/language/en_GB/register.json
|
source_file = public/language/en_GB/register.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/register.json
|
trans.ar = public/language/ar/register.json
|
||||||
|
trans.bn = public/language/bn/register.json
|
||||||
|
trans.bg = public/language/bg/register.json
|
||||||
trans.cs = public/language/cs/register.json
|
trans.cs = public/language/cs/register.json
|
||||||
|
trans.da = public/language/da/register.json
|
||||||
trans.de = public/language/de/register.json
|
trans.de = public/language/de/register.json
|
||||||
|
trans.el = public/language/el/register.json
|
||||||
trans.en_US = public/language/en_US/register.json
|
trans.en_US = public/language/en_US/register.json
|
||||||
trans.en@pirate = public/language/en@pirate/register.json
|
trans.en@pirate = public/language/en@pirate/register.json
|
||||||
trans.es = public/language/es/register.json
|
trans.es = public/language/es/register.json
|
||||||
@@ -198,6 +236,7 @@ trans.fi = public/language/fi/register.json
|
|||||||
trans.fr = public/language/fr/register.json
|
trans.fr = public/language/fr/register.json
|
||||||
trans.he = public/language/he/register.json
|
trans.he = public/language/he/register.json
|
||||||
trans.hu = public/language/hu/register.json
|
trans.hu = public/language/hu/register.json
|
||||||
|
trans.id = public/language/id/register.json
|
||||||
trans.it = public/language/it/register.json
|
trans.it = public/language/it/register.json
|
||||||
trans.ja = public/language/ja/register.json
|
trans.ja = public/language/ja/register.json
|
||||||
trans.ko = public/language/ko/register.json
|
trans.ko = public/language/ko/register.json
|
||||||
@@ -211,6 +250,7 @@ trans.ru = public/language/ru/register.json
|
|||||||
trans.ro = public/language/ro/register.json
|
trans.ro = public/language/ro/register.json
|
||||||
trans.sc = public/language/sc/register.json
|
trans.sc = public/language/sc/register.json
|
||||||
trans.sk = public/language/sk/register.json
|
trans.sk = public/language/sk/register.json
|
||||||
|
trans.sr = public/language/sr/register.json
|
||||||
trans.sv = public/language/sv/register.json
|
trans.sv = public/language/sv/register.json
|
||||||
trans.th = public/language/th/register.json
|
trans.th = public/language/th/register.json
|
||||||
trans.tr = public/language/tr/register.json
|
trans.tr = public/language/tr/register.json
|
||||||
@@ -220,11 +260,16 @@ trans.zh_TW = public/language/zh_TW/register.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.user]
|
[nodebb.user]
|
||||||
|
file_filter = public/language/<lang>/user.json
|
||||||
source_file = public/language/en_GB/user.json
|
source_file = public/language/en_GB/user.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/user.json
|
trans.ar = public/language/ar/user.json
|
||||||
|
trans.bn = public/language/bn/user.json
|
||||||
|
trans.bg = public/language/bg/user.json
|
||||||
trans.cs = public/language/cs/user.json
|
trans.cs = public/language/cs/user.json
|
||||||
|
trans.da = public/language/da/user.json
|
||||||
trans.de = public/language/de/user.json
|
trans.de = public/language/de/user.json
|
||||||
|
trans.el = public/language/el/user.json
|
||||||
trans.en_US = public/language/en_US/user.json
|
trans.en_US = public/language/en_US/user.json
|
||||||
trans.en@pirate = public/language/en@pirate/user.json
|
trans.en@pirate = public/language/en@pirate/user.json
|
||||||
trans.es = public/language/es/user.json
|
trans.es = public/language/es/user.json
|
||||||
@@ -234,6 +279,7 @@ trans.fi = public/language/fi/user.json
|
|||||||
trans.fr = public/language/fr/user.json
|
trans.fr = public/language/fr/user.json
|
||||||
trans.he = public/language/he/user.json
|
trans.he = public/language/he/user.json
|
||||||
trans.hu = public/language/hu/user.json
|
trans.hu = public/language/hu/user.json
|
||||||
|
trans.id = public/language/id/user.json
|
||||||
trans.it = public/language/it/user.json
|
trans.it = public/language/it/user.json
|
||||||
trans.ja = public/language/ja/user.json
|
trans.ja = public/language/ja/user.json
|
||||||
trans.ko = public/language/ko/user.json
|
trans.ko = public/language/ko/user.json
|
||||||
@@ -247,6 +293,7 @@ trans.ru = public/language/ru/user.json
|
|||||||
trans.ro = public/language/ro/user.json
|
trans.ro = public/language/ro/user.json
|
||||||
trans.sc = public/language/sc/user.json
|
trans.sc = public/language/sc/user.json
|
||||||
trans.sk = public/language/sk/user.json
|
trans.sk = public/language/sk/user.json
|
||||||
|
trans.sr = public/language/sr/user.json
|
||||||
trans.sv = public/language/sv/user.json
|
trans.sv = public/language/sv/user.json
|
||||||
trans.th = public/language/th/user.json
|
trans.th = public/language/th/user.json
|
||||||
trans.tr = public/language/tr/user.json
|
trans.tr = public/language/tr/user.json
|
||||||
@@ -256,11 +303,16 @@ trans.zh_TW = public/language/zh_TW/user.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.global]
|
[nodebb.global]
|
||||||
|
file_filter = public/language/<lang>/global.json
|
||||||
source_file = public/language/en_GB/global.json
|
source_file = public/language/en_GB/global.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/global.json
|
trans.ar = public/language/ar/global.json
|
||||||
|
trans.bn = public/language/bn/global.json
|
||||||
|
trans.bg = public/language/bg/global.json
|
||||||
trans.cs = public/language/cs/global.json
|
trans.cs = public/language/cs/global.json
|
||||||
|
trans.da = public/language/da/global.json
|
||||||
trans.de = public/language/de/global.json
|
trans.de = public/language/de/global.json
|
||||||
|
trans.el = public/language/el/global.json
|
||||||
trans.en_US = public/language/en_US/global.json
|
trans.en_US = public/language/en_US/global.json
|
||||||
trans.en@pirate = public/language/en@pirate/global.json
|
trans.en@pirate = public/language/en@pirate/global.json
|
||||||
trans.es = public/language/es/global.json
|
trans.es = public/language/es/global.json
|
||||||
@@ -270,6 +322,7 @@ trans.fi = public/language/fi/global.json
|
|||||||
trans.fr = public/language/fr/global.json
|
trans.fr = public/language/fr/global.json
|
||||||
trans.he = public/language/he/global.json
|
trans.he = public/language/he/global.json
|
||||||
trans.hu = public/language/hu/global.json
|
trans.hu = public/language/hu/global.json
|
||||||
|
trans.id = public/language/id/global.json
|
||||||
trans.it = public/language/it/global.json
|
trans.it = public/language/it/global.json
|
||||||
trans.ja = public/language/ja/global.json
|
trans.ja = public/language/ja/global.json
|
||||||
trans.ko = public/language/ko/global.json
|
trans.ko = public/language/ko/global.json
|
||||||
@@ -283,6 +336,7 @@ trans.ru = public/language/ru/global.json
|
|||||||
trans.ro = public/language/ro/global.json
|
trans.ro = public/language/ro/global.json
|
||||||
trans.sc = public/language/sc/global.json
|
trans.sc = public/language/sc/global.json
|
||||||
trans.sk = public/language/sk/global.json
|
trans.sk = public/language/sk/global.json
|
||||||
|
trans.sr = public/language/sr/global.json
|
||||||
trans.sv = public/language/sv/global.json
|
trans.sv = public/language/sv/global.json
|
||||||
trans.th = public/language/th/global.json
|
trans.th = public/language/th/global.json
|
||||||
trans.tr = public/language/tr/global.json
|
trans.tr = public/language/tr/global.json
|
||||||
@@ -292,11 +346,16 @@ trans.zh_TW = public/language/zh_TW/global.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.notifications]
|
[nodebb.notifications]
|
||||||
|
file_filter = public/language/<lang>/notifications.json
|
||||||
source_file = public/language/en_GB/notifications.json
|
source_file = public/language/en_GB/notifications.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/notifications.json
|
trans.ar = public/language/ar/notifications.json
|
||||||
|
trans.bn = public/language/bn/notifications.json
|
||||||
|
trans.bg = public/language/bg/notifications.json
|
||||||
trans.cs = public/language/cs/notifications.json
|
trans.cs = public/language/cs/notifications.json
|
||||||
|
trans.da = public/language/da/notifications.json
|
||||||
trans.de = public/language/de/notifications.json
|
trans.de = public/language/de/notifications.json
|
||||||
|
trans.el = public/language/el/notifications.json
|
||||||
trans.en_US = public/language/en_US/notifications.json
|
trans.en_US = public/language/en_US/notifications.json
|
||||||
trans.en@pirate = public/language/en@pirate/notifications.json
|
trans.en@pirate = public/language/en@pirate/notifications.json
|
||||||
trans.es = public/language/es/notifications.json
|
trans.es = public/language/es/notifications.json
|
||||||
@@ -306,6 +365,7 @@ trans.fi = public/language/fi/notifications.json
|
|||||||
trans.fr = public/language/fr/notifications.json
|
trans.fr = public/language/fr/notifications.json
|
||||||
trans.he = public/language/he/notifications.json
|
trans.he = public/language/he/notifications.json
|
||||||
trans.hu = public/language/hu/notifications.json
|
trans.hu = public/language/hu/notifications.json
|
||||||
|
trans.id = public/language/id/notifications.json
|
||||||
trans.it = public/language/it/notifications.json
|
trans.it = public/language/it/notifications.json
|
||||||
trans.ja = public/language/ja/notifications.json
|
trans.ja = public/language/ja/notifications.json
|
||||||
trans.ko = public/language/ko/notifications.json
|
trans.ko = public/language/ko/notifications.json
|
||||||
@@ -319,6 +379,7 @@ trans.ru = public/language/ru/notifications.json
|
|||||||
trans.ro = public/language/ro/notifications.json
|
trans.ro = public/language/ro/notifications.json
|
||||||
trans.sc = public/language/sc/notifications.json
|
trans.sc = public/language/sc/notifications.json
|
||||||
trans.sk = public/language/sk/notifications.json
|
trans.sk = public/language/sk/notifications.json
|
||||||
|
trans.sr = public/language/sr/notifications.json
|
||||||
trans.sv = public/language/sv/notifications.json
|
trans.sv = public/language/sv/notifications.json
|
||||||
trans.th = public/language/th/notifications.json
|
trans.th = public/language/th/notifications.json
|
||||||
trans.tr = public/language/tr/notifications.json
|
trans.tr = public/language/tr/notifications.json
|
||||||
@@ -328,11 +389,16 @@ trans.zh_TW = public/language/zh_TW/notifications.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.reset_password]
|
[nodebb.reset_password]
|
||||||
|
file_filter = public/language/<lang>/reset_password.json
|
||||||
source_file = public/language/en_GB/reset_password.json
|
source_file = public/language/en_GB/reset_password.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/reset_password.json
|
trans.ar = public/language/ar/reset_password.json
|
||||||
|
trans.bn = public/language/bn/reset_password.json
|
||||||
|
trans.bg = public/language/bg/reset_password.json
|
||||||
trans.cs = public/language/cs/reset_password.json
|
trans.cs = public/language/cs/reset_password.json
|
||||||
|
trans.da = public/language/da/reset_password.json
|
||||||
trans.de = public/language/de/reset_password.json
|
trans.de = public/language/de/reset_password.json
|
||||||
|
trans.el = public/language/el/reset_password.json
|
||||||
trans.en_US = public/language/en_US/reset_password.json
|
trans.en_US = public/language/en_US/reset_password.json
|
||||||
trans.en@pirate = public/language/en@pirate/reset_password.json
|
trans.en@pirate = public/language/en@pirate/reset_password.json
|
||||||
trans.es = public/language/es/reset_password.json
|
trans.es = public/language/es/reset_password.json
|
||||||
@@ -342,6 +408,7 @@ trans.fi = public/language/fi/reset_password.json
|
|||||||
trans.fr = public/language/fr/reset_password.json
|
trans.fr = public/language/fr/reset_password.json
|
||||||
trans.he = public/language/he/reset_password.json
|
trans.he = public/language/he/reset_password.json
|
||||||
trans.hu = public/language/hu/reset_password.json
|
trans.hu = public/language/hu/reset_password.json
|
||||||
|
trans.id = public/language/id/reset_password.json
|
||||||
trans.it = public/language/it/reset_password.json
|
trans.it = public/language/it/reset_password.json
|
||||||
trans.ja = public/language/ja/reset_password.json
|
trans.ja = public/language/ja/reset_password.json
|
||||||
trans.ko = public/language/ko/reset_password.json
|
trans.ko = public/language/ko/reset_password.json
|
||||||
@@ -355,6 +422,7 @@ trans.ru = public/language/ru/reset_password.json
|
|||||||
trans.ro = public/language/ro/reset_password.json
|
trans.ro = public/language/ro/reset_password.json
|
||||||
trans.sc = public/language/sc/reset_password.json
|
trans.sc = public/language/sc/reset_password.json
|
||||||
trans.sk = public/language/sk/reset_password.json
|
trans.sk = public/language/sk/reset_password.json
|
||||||
|
trans.sr = public/language/sr/reset_password.json
|
||||||
trans.sv = public/language/sv/reset_password.json
|
trans.sv = public/language/sv/reset_password.json
|
||||||
trans.th = public/language/th/reset_password.json
|
trans.th = public/language/th/reset_password.json
|
||||||
trans.tr = public/language/tr/reset_password.json
|
trans.tr = public/language/tr/reset_password.json
|
||||||
@@ -364,11 +432,16 @@ trans.zh_TW = public/language/zh_TW/reset_password.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.users]
|
[nodebb.users]
|
||||||
|
file_filter = public/language/<lang>/users.json
|
||||||
source_file = public/language/en_GB/users.json
|
source_file = public/language/en_GB/users.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/users.json
|
trans.ar = public/language/ar/users.json
|
||||||
|
trans.bn = public/language/bn/users.json
|
||||||
|
trans.bg = public/language/bg/users.json
|
||||||
trans.cs = public/language/cs/users.json
|
trans.cs = public/language/cs/users.json
|
||||||
|
trans.da = public/language/da/users.json
|
||||||
trans.de = public/language/de/users.json
|
trans.de = public/language/de/users.json
|
||||||
|
trans.el = public/language/el/users.json
|
||||||
trans.en_US = public/language/en_US/users.json
|
trans.en_US = public/language/en_US/users.json
|
||||||
trans.en@pirate = public/language/en@pirate/users.json
|
trans.en@pirate = public/language/en@pirate/users.json
|
||||||
trans.es = public/language/es/users.json
|
trans.es = public/language/es/users.json
|
||||||
@@ -378,6 +451,7 @@ trans.fi = public/language/fi/users.json
|
|||||||
trans.fr = public/language/fr/users.json
|
trans.fr = public/language/fr/users.json
|
||||||
trans.he = public/language/he/users.json
|
trans.he = public/language/he/users.json
|
||||||
trans.hu = public/language/hu/users.json
|
trans.hu = public/language/hu/users.json
|
||||||
|
trans.id = public/language/id/users.json
|
||||||
trans.it = public/language/it/users.json
|
trans.it = public/language/it/users.json
|
||||||
trans.ja = public/language/ja/users.json
|
trans.ja = public/language/ja/users.json
|
||||||
trans.ko = public/language/ko/users.json
|
trans.ko = public/language/ko/users.json
|
||||||
@@ -391,6 +465,7 @@ trans.ru = public/language/ru/users.json
|
|||||||
trans.ro = public/language/ro/users.json
|
trans.ro = public/language/ro/users.json
|
||||||
trans.sc = public/language/sc/users.json
|
trans.sc = public/language/sc/users.json
|
||||||
trans.sk = public/language/sk/users.json
|
trans.sk = public/language/sk/users.json
|
||||||
|
trans.sr = public/language/sr/users.json
|
||||||
trans.sv = public/language/sv/users.json
|
trans.sv = public/language/sv/users.json
|
||||||
trans.th = public/language/th/users.json
|
trans.th = public/language/th/users.json
|
||||||
trans.tr = public/language/tr/users.json
|
trans.tr = public/language/tr/users.json
|
||||||
@@ -400,11 +475,16 @@ trans.zh_TW = public/language/zh_TW/users.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.language]
|
[nodebb.language]
|
||||||
|
file_filter = public/language/<lang>/language.json
|
||||||
source_file = public/language/en_GB/language.json
|
source_file = public/language/en_GB/language.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/language.json
|
trans.ar = public/language/ar/language.json
|
||||||
|
trans.bn = public/language/bn/language.json
|
||||||
|
trans.bg = public/language/bg/language.json
|
||||||
trans.cs = public/language/cs/language.json
|
trans.cs = public/language/cs/language.json
|
||||||
|
trans.da = public/language/da/language.json
|
||||||
trans.de = public/language/de/language.json
|
trans.de = public/language/de/language.json
|
||||||
|
trans.el = public/language/el/language.json
|
||||||
trans.en_US = public/language/en_US/language.json
|
trans.en_US = public/language/en_US/language.json
|
||||||
trans.en@pirate = public/language/en@pirate/language.json
|
trans.en@pirate = public/language/en@pirate/language.json
|
||||||
trans.es = public/language/es/language.json
|
trans.es = public/language/es/language.json
|
||||||
@@ -414,6 +494,7 @@ trans.fi = public/language/fi/language.json
|
|||||||
trans.fr = public/language/fr/language.json
|
trans.fr = public/language/fr/language.json
|
||||||
trans.he = public/language/he/language.json
|
trans.he = public/language/he/language.json
|
||||||
trans.hu = public/language/hu/language.json
|
trans.hu = public/language/hu/language.json
|
||||||
|
trans.id = public/language/id/language.json
|
||||||
trans.it = public/language/it/language.json
|
trans.it = public/language/it/language.json
|
||||||
trans.ja = public/language/ja/language.json
|
trans.ja = public/language/ja/language.json
|
||||||
trans.ko = public/language/ko/language.json
|
trans.ko = public/language/ko/language.json
|
||||||
@@ -427,6 +508,7 @@ trans.ru = public/language/ru/language.json
|
|||||||
trans.ro = public/language/ro/language.json
|
trans.ro = public/language/ro/language.json
|
||||||
trans.sc = public/language/sc/language.json
|
trans.sc = public/language/sc/language.json
|
||||||
trans.sk = public/language/sk/language.json
|
trans.sk = public/language/sk/language.json
|
||||||
|
trans.sr = public/language/sr/language.json
|
||||||
trans.sv = public/language/sv/language.json
|
trans.sv = public/language/sv/language.json
|
||||||
trans.th = public/language/th/language.json
|
trans.th = public/language/th/language.json
|
||||||
trans.tr = public/language/tr/language.json
|
trans.tr = public/language/tr/language.json
|
||||||
@@ -436,11 +518,16 @@ trans.zh_TW = public/language/zh_TW/language.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.pages]
|
[nodebb.pages]
|
||||||
|
file_filter = public/language/<lang>/pages.json
|
||||||
source_file = public/language/en_GB/pages.json
|
source_file = public/language/en_GB/pages.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/pages.json
|
trans.ar = public/language/ar/pages.json
|
||||||
|
trans.bn = public/language/bn/pages.json
|
||||||
|
trans.bg = public/language/bg/pages.json
|
||||||
trans.cs = public/language/cs/pages.json
|
trans.cs = public/language/cs/pages.json
|
||||||
|
trans.da = public/language/da/pages.json
|
||||||
trans.de = public/language/de/pages.json
|
trans.de = public/language/de/pages.json
|
||||||
|
trans.el = public/language/el/pages.json
|
||||||
trans.en_US = public/language/en_US/pages.json
|
trans.en_US = public/language/en_US/pages.json
|
||||||
trans.en@pirate = public/language/en@pirate/pages.json
|
trans.en@pirate = public/language/en@pirate/pages.json
|
||||||
trans.es = public/language/es/pages.json
|
trans.es = public/language/es/pages.json
|
||||||
@@ -450,6 +537,7 @@ trans.fi = public/language/fi/pages.json
|
|||||||
trans.fr = public/language/fr/pages.json
|
trans.fr = public/language/fr/pages.json
|
||||||
trans.he = public/language/he/pages.json
|
trans.he = public/language/he/pages.json
|
||||||
trans.hu = public/language/hu/pages.json
|
trans.hu = public/language/hu/pages.json
|
||||||
|
trans.id = public/language/id/pages.json
|
||||||
trans.it = public/language/it/pages.json
|
trans.it = public/language/it/pages.json
|
||||||
trans.ja = public/language/ja/pages.json
|
trans.ja = public/language/ja/pages.json
|
||||||
trans.ko = public/language/ko/pages.json
|
trans.ko = public/language/ko/pages.json
|
||||||
@@ -463,6 +551,7 @@ trans.ru = public/language/ru/pages.json
|
|||||||
trans.ro = public/language/ro/pages.json
|
trans.ro = public/language/ro/pages.json
|
||||||
trans.sc = public/language/sc/pages.json
|
trans.sc = public/language/sc/pages.json
|
||||||
trans.sk = public/language/sk/pages.json
|
trans.sk = public/language/sk/pages.json
|
||||||
|
trans.sr = public/language/sr/pages.json
|
||||||
trans.sv = public/language/sv/pages.json
|
trans.sv = public/language/sv/pages.json
|
||||||
trans.th = public/language/th/pages.json
|
trans.th = public/language/th/pages.json
|
||||||
trans.tr = public/language/tr/pages.json
|
trans.tr = public/language/tr/pages.json
|
||||||
@@ -472,11 +561,16 @@ trans.zh_TW = public/language/zh_TW/pages.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.topic]
|
[nodebb.topic]
|
||||||
|
file_filter = public/language/<lang>/topic.json
|
||||||
source_file = public/language/en_GB/topic.json
|
source_file = public/language/en_GB/topic.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/topic.json
|
trans.ar = public/language/ar/topic.json
|
||||||
|
trans.bn = public/language/bn/topic.json
|
||||||
|
trans.bg = public/language/bg/topic.json
|
||||||
trans.cs = public/language/cs/topic.json
|
trans.cs = public/language/cs/topic.json
|
||||||
|
trans.da = public/language/da/topic.json
|
||||||
trans.de = public/language/de/topic.json
|
trans.de = public/language/de/topic.json
|
||||||
|
trans.el = public/language/el/topic.json
|
||||||
trans.en_US = public/language/en_US/topic.json
|
trans.en_US = public/language/en_US/topic.json
|
||||||
trans.en@pirate = public/language/en@pirate/topic.json
|
trans.en@pirate = public/language/en@pirate/topic.json
|
||||||
trans.es = public/language/es/topic.json
|
trans.es = public/language/es/topic.json
|
||||||
@@ -486,6 +580,7 @@ trans.fi = public/language/fi/topic.json
|
|||||||
trans.fr = public/language/fr/topic.json
|
trans.fr = public/language/fr/topic.json
|
||||||
trans.he = public/language/he/topic.json
|
trans.he = public/language/he/topic.json
|
||||||
trans.hu = public/language/hu/topic.json
|
trans.hu = public/language/hu/topic.json
|
||||||
|
trans.id = public/language/id/topic.json
|
||||||
trans.it = public/language/it/topic.json
|
trans.it = public/language/it/topic.json
|
||||||
trans.ja = public/language/ja/topic.json
|
trans.ja = public/language/ja/topic.json
|
||||||
trans.ko = public/language/ko/topic.json
|
trans.ko = public/language/ko/topic.json
|
||||||
@@ -499,6 +594,7 @@ trans.ru = public/language/ru/topic.json
|
|||||||
trans.ro = public/language/ro/topic.json
|
trans.ro = public/language/ro/topic.json
|
||||||
trans.sc = public/language/sc/topic.json
|
trans.sc = public/language/sc/topic.json
|
||||||
trans.sk = public/language/sk/topic.json
|
trans.sk = public/language/sk/topic.json
|
||||||
|
trans.sr = public/language/sr/topic.json
|
||||||
trans.sv = public/language/sv/topic.json
|
trans.sv = public/language/sv/topic.json
|
||||||
trans.th = public/language/th/topic.json
|
trans.th = public/language/th/topic.json
|
||||||
trans.tr = public/language/tr/topic.json
|
trans.tr = public/language/tr/topic.json
|
||||||
@@ -508,11 +604,16 @@ trans.zh_TW = public/language/zh_TW/topic.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.success]
|
[nodebb.success]
|
||||||
|
file_filter = public/language/<lang>/success.json
|
||||||
source_file = public/language/en_GB/success.json
|
source_file = public/language/en_GB/success.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/success.json
|
trans.ar = public/language/ar/success.json
|
||||||
|
trans.bn = public/language/bn/success.json
|
||||||
|
trans.bg = public/language/bg/success.json
|
||||||
trans.cs = public/language/cs/success.json
|
trans.cs = public/language/cs/success.json
|
||||||
|
trans.da = public/language/da/success.json
|
||||||
trans.de = public/language/de/success.json
|
trans.de = public/language/de/success.json
|
||||||
|
trans.el = public/language/el/success.json
|
||||||
trans.en_US = public/language/en_US/success.json
|
trans.en_US = public/language/en_US/success.json
|
||||||
trans.en@pirate = public/language/en@pirate/success.json
|
trans.en@pirate = public/language/en@pirate/success.json
|
||||||
trans.es = public/language/es/success.json
|
trans.es = public/language/es/success.json
|
||||||
@@ -522,6 +623,7 @@ trans.fi = public/language/fi/success.json
|
|||||||
trans.fr = public/language/fr/success.json
|
trans.fr = public/language/fr/success.json
|
||||||
trans.he = public/language/he/success.json
|
trans.he = public/language/he/success.json
|
||||||
trans.hu = public/language/hu/success.json
|
trans.hu = public/language/hu/success.json
|
||||||
|
trans.id = public/language/id/success.json
|
||||||
trans.it = public/language/it/success.json
|
trans.it = public/language/it/success.json
|
||||||
trans.ja = public/language/ja/success.json
|
trans.ja = public/language/ja/success.json
|
||||||
trans.ko = public/language/ko/success.json
|
trans.ko = public/language/ko/success.json
|
||||||
@@ -535,6 +637,7 @@ trans.ru = public/language/ru/success.json
|
|||||||
trans.ro = public/language/ro/success.json
|
trans.ro = public/language/ro/success.json
|
||||||
trans.sc = public/language/sc/success.json
|
trans.sc = public/language/sc/success.json
|
||||||
trans.sk = public/language/sk/success.json
|
trans.sk = public/language/sk/success.json
|
||||||
|
trans.sr = public/language/sr/success.json
|
||||||
trans.sv = public/language/sv/success.json
|
trans.sv = public/language/sv/success.json
|
||||||
trans.th = public/language/th/success.json
|
trans.th = public/language/th/success.json
|
||||||
trans.tr = public/language/tr/success.json
|
trans.tr = public/language/tr/success.json
|
||||||
@@ -544,11 +647,16 @@ trans.zh_TW = public/language/zh_TW/success.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.error]
|
[nodebb.error]
|
||||||
|
file_filter = public/language/<lang>/error.json
|
||||||
source_file = public/language/en_GB/error.json
|
source_file = public/language/en_GB/error.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/error.json
|
trans.ar = public/language/ar/error.json
|
||||||
|
trans.bn = public/language/bn/error.json
|
||||||
|
trans.bg = public/language/bg/error.json
|
||||||
trans.cs = public/language/cs/error.json
|
trans.cs = public/language/cs/error.json
|
||||||
|
trans.da = public/language/da/error.json
|
||||||
trans.de = public/language/de/error.json
|
trans.de = public/language/de/error.json
|
||||||
|
trans.el = public/language/el/error.json
|
||||||
trans.en_US = public/language/en_US/error.json
|
trans.en_US = public/language/en_US/error.json
|
||||||
trans.en@pirate = public/language/en@pirate/error.json
|
trans.en@pirate = public/language/en@pirate/error.json
|
||||||
trans.es = public/language/es/error.json
|
trans.es = public/language/es/error.json
|
||||||
@@ -558,6 +666,7 @@ trans.fi = public/language/fi/error.json
|
|||||||
trans.fr = public/language/fr/error.json
|
trans.fr = public/language/fr/error.json
|
||||||
trans.he = public/language/he/error.json
|
trans.he = public/language/he/error.json
|
||||||
trans.hu = public/language/hu/error.json
|
trans.hu = public/language/hu/error.json
|
||||||
|
trans.id = public/language/id/error.json
|
||||||
trans.it = public/language/it/error.json
|
trans.it = public/language/it/error.json
|
||||||
trans.ja = public/language/ja/error.json
|
trans.ja = public/language/ja/error.json
|
||||||
trans.ko = public/language/ko/error.json
|
trans.ko = public/language/ko/error.json
|
||||||
@@ -571,6 +680,7 @@ trans.ru = public/language/ru/error.json
|
|||||||
trans.ro = public/language/ro/error.json
|
trans.ro = public/language/ro/error.json
|
||||||
trans.sc = public/language/sc/error.json
|
trans.sc = public/language/sc/error.json
|
||||||
trans.sk = public/language/sk/error.json
|
trans.sk = public/language/sk/error.json
|
||||||
|
trans.sr = public/language/sr/error.json
|
||||||
trans.sv = public/language/sv/error.json
|
trans.sv = public/language/sv/error.json
|
||||||
trans.th = public/language/th/error.json
|
trans.th = public/language/th/error.json
|
||||||
trans.tr = public/language/tr/error.json
|
trans.tr = public/language/tr/error.json
|
||||||
@@ -580,11 +690,16 @@ trans.zh_TW = public/language/zh_TW/error.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.tags]
|
[nodebb.tags]
|
||||||
|
file_filter = public/language/<lang>/tags.json
|
||||||
source_file = public/language/en_GB/tags.json
|
source_file = public/language/en_GB/tags.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/tags.json
|
trans.ar = public/language/ar/tags.json
|
||||||
|
trans.bn = public/language/bn/tags.json
|
||||||
|
trans.bg = public/language/bg/tags.json
|
||||||
trans.cs = public/language/cs/tags.json
|
trans.cs = public/language/cs/tags.json
|
||||||
|
trans.da = public/language/da/tags.json
|
||||||
trans.de = public/language/de/tags.json
|
trans.de = public/language/de/tags.json
|
||||||
|
trans.el = public/language/el/tags.json
|
||||||
trans.en_US = public/language/en_US/tags.json
|
trans.en_US = public/language/en_US/tags.json
|
||||||
trans.en@pirate = public/language/en@pirate/tags.json
|
trans.en@pirate = public/language/en@pirate/tags.json
|
||||||
trans.es = public/language/es/tags.json
|
trans.es = public/language/es/tags.json
|
||||||
@@ -594,6 +709,7 @@ trans.fi = public/language/fi/tags.json
|
|||||||
trans.fr = public/language/fr/tags.json
|
trans.fr = public/language/fr/tags.json
|
||||||
trans.he = public/language/he/tags.json
|
trans.he = public/language/he/tags.json
|
||||||
trans.hu = public/language/hu/tags.json
|
trans.hu = public/language/hu/tags.json
|
||||||
|
trans.id = public/language/id/tags.json
|
||||||
trans.it = public/language/it/tags.json
|
trans.it = public/language/it/tags.json
|
||||||
trans.ja = public/language/ja/tags.json
|
trans.ja = public/language/ja/tags.json
|
||||||
trans.ko = public/language/ko/tags.json
|
trans.ko = public/language/ko/tags.json
|
||||||
@@ -607,6 +723,7 @@ trans.ru = public/language/ru/tags.json
|
|||||||
trans.ro = public/language/ro/tags.json
|
trans.ro = public/language/ro/tags.json
|
||||||
trans.sc = public/language/sc/tags.json
|
trans.sc = public/language/sc/tags.json
|
||||||
trans.sk = public/language/sk/tags.json
|
trans.sk = public/language/sk/tags.json
|
||||||
|
trans.sr = public/language/sr/tags.json
|
||||||
trans.sv = public/language/sv/tags.json
|
trans.sv = public/language/sv/tags.json
|
||||||
trans.th = public/language/th/tags.json
|
trans.th = public/language/th/tags.json
|
||||||
trans.tr = public/language/tr/tags.json
|
trans.tr = public/language/tr/tags.json
|
||||||
@@ -616,11 +733,16 @@ trans.zh_TW = public/language/zh_TW/tags.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.email]
|
[nodebb.email]
|
||||||
|
file_filter = public/language/<lang>/email.json
|
||||||
source_file = public/language/en_GB/email.json
|
source_file = public/language/en_GB/email.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/email.json
|
trans.ar = public/language/ar/email.json
|
||||||
|
trans.bn = public/language/bn/email.json
|
||||||
|
trans.bg = public/language/bg/email.json
|
||||||
trans.cs = public/language/cs/email.json
|
trans.cs = public/language/cs/email.json
|
||||||
|
trans.da = public/language/da/email.json
|
||||||
trans.de = public/language/de/email.json
|
trans.de = public/language/de/email.json
|
||||||
|
trans.el = public/language/el/email.json
|
||||||
trans.en_US = public/language/en_US/email.json
|
trans.en_US = public/language/en_US/email.json
|
||||||
trans.en@pirate = public/language/en@pirate/email.json
|
trans.en@pirate = public/language/en@pirate/email.json
|
||||||
trans.es = public/language/es/email.json
|
trans.es = public/language/es/email.json
|
||||||
@@ -630,6 +752,7 @@ trans.fi = public/language/fi/email.json
|
|||||||
trans.fr = public/language/fr/email.json
|
trans.fr = public/language/fr/email.json
|
||||||
trans.he = public/language/he/email.json
|
trans.he = public/language/he/email.json
|
||||||
trans.hu = public/language/hu/email.json
|
trans.hu = public/language/hu/email.json
|
||||||
|
trans.id = public/language/id/email.json
|
||||||
trans.it = public/language/it/email.json
|
trans.it = public/language/it/email.json
|
||||||
trans.ja = public/language/ja/email.json
|
trans.ja = public/language/ja/email.json
|
||||||
trans.ko = public/language/ko/email.json
|
trans.ko = public/language/ko/email.json
|
||||||
@@ -643,6 +766,7 @@ trans.ru = public/language/ru/email.json
|
|||||||
trans.ro = public/language/ro/email.json
|
trans.ro = public/language/ro/email.json
|
||||||
trans.sc = public/language/sc/email.json
|
trans.sc = public/language/sc/email.json
|
||||||
trans.sk = public/language/sk/email.json
|
trans.sk = public/language/sk/email.json
|
||||||
|
trans.sr = public/language/sr/email.json
|
||||||
trans.sv = public/language/sv/email.json
|
trans.sv = public/language/sv/email.json
|
||||||
trans.th = public/language/th/email.json
|
trans.th = public/language/th/email.json
|
||||||
trans.tr = public/language/tr/email.json
|
trans.tr = public/language/tr/email.json
|
||||||
@@ -652,11 +776,16 @@ trans.zh_TW = public/language/zh_TW/email.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.search]
|
[nodebb.search]
|
||||||
|
file_filter = public/language/<lang>/search.json
|
||||||
source_file = public/language/en_GB/search.json
|
source_file = public/language/en_GB/search.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/search.json
|
trans.ar = public/language/ar/search.json
|
||||||
|
trans.bn = public/language/bn/search.json
|
||||||
|
trans.bg = public/language/bg/search.json
|
||||||
trans.cs = public/language/cs/search.json
|
trans.cs = public/language/cs/search.json
|
||||||
|
trans.da = public/language/da/search.json
|
||||||
trans.de = public/language/de/search.json
|
trans.de = public/language/de/search.json
|
||||||
|
trans.el = public/language/el/search.json
|
||||||
trans.en_US = public/language/en_US/search.json
|
trans.en_US = public/language/en_US/search.json
|
||||||
trans.en@pirate = public/language/en@pirate/search.json
|
trans.en@pirate = public/language/en@pirate/search.json
|
||||||
trans.es = public/language/es/search.json
|
trans.es = public/language/es/search.json
|
||||||
@@ -666,6 +795,7 @@ trans.fi = public/language/fi/search.json
|
|||||||
trans.fr = public/language/fr/search.json
|
trans.fr = public/language/fr/search.json
|
||||||
trans.he = public/language/he/search.json
|
trans.he = public/language/he/search.json
|
||||||
trans.hu = public/language/hu/search.json
|
trans.hu = public/language/hu/search.json
|
||||||
|
trans.id = public/language/id/search.json
|
||||||
trans.it = public/language/it/search.json
|
trans.it = public/language/it/search.json
|
||||||
trans.ja = public/language/ja/search.json
|
trans.ja = public/language/ja/search.json
|
||||||
trans.ko = public/language/ko/search.json
|
trans.ko = public/language/ko/search.json
|
||||||
@@ -679,6 +809,7 @@ trans.ru = public/language/ru/search.json
|
|||||||
trans.ro = public/language/ro/search.json
|
trans.ro = public/language/ro/search.json
|
||||||
trans.sc = public/language/sc/search.json
|
trans.sc = public/language/sc/search.json
|
||||||
trans.sk = public/language/sk/search.json
|
trans.sk = public/language/sk/search.json
|
||||||
|
trans.sr = public/language/sr/search.json
|
||||||
trans.sv = public/language/sv/search.json
|
trans.sv = public/language/sv/search.json
|
||||||
trans.th = public/language/th/search.json
|
trans.th = public/language/th/search.json
|
||||||
trans.tr = public/language/tr/search.json
|
trans.tr = public/language/tr/search.json
|
||||||
@@ -688,11 +819,16 @@ trans.zh_TW = public/language/zh_TW/search.json
|
|||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.groups]
|
[nodebb.groups]
|
||||||
|
file_filter = public/language/<lang>/groups.json
|
||||||
source_file = public/language/en_GB/groups.json
|
source_file = public/language/en_GB/groups.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/groups.json
|
trans.ar = public/language/ar/groups.json
|
||||||
|
trans.bn = public/language/bn/groups.json
|
||||||
|
trans.bg = public/language/bg/groups.json
|
||||||
trans.cs = public/language/cs/groups.json
|
trans.cs = public/language/cs/groups.json
|
||||||
|
trans.da = public/language/da/groups.json
|
||||||
trans.de = public/language/de/groups.json
|
trans.de = public/language/de/groups.json
|
||||||
|
trans.el = public/language/el/groups.json
|
||||||
trans.en_US = public/language/en_US/groups.json
|
trans.en_US = public/language/en_US/groups.json
|
||||||
trans.en@pirate = public/language/en@pirate/groups.json
|
trans.en@pirate = public/language/en@pirate/groups.json
|
||||||
trans.es = public/language/es/groups.json
|
trans.es = public/language/es/groups.json
|
||||||
@@ -702,6 +838,7 @@ trans.fi = public/language/fi/groups.json
|
|||||||
trans.fr = public/language/fr/groups.json
|
trans.fr = public/language/fr/groups.json
|
||||||
trans.he = public/language/he/groups.json
|
trans.he = public/language/he/groups.json
|
||||||
trans.hu = public/language/hu/groups.json
|
trans.hu = public/language/hu/groups.json
|
||||||
|
trans.id = public/language/id/groups.json
|
||||||
trans.it = public/language/it/groups.json
|
trans.it = public/language/it/groups.json
|
||||||
trans.ja = public/language/ja/groups.json
|
trans.ja = public/language/ja/groups.json
|
||||||
trans.ko = public/language/ko/groups.json
|
trans.ko = public/language/ko/groups.json
|
||||||
@@ -715,6 +852,7 @@ trans.ru = public/language/ru/groups.json
|
|||||||
trans.ro = public/language/ro/groups.json
|
trans.ro = public/language/ro/groups.json
|
||||||
trans.sc = public/language/sc/groups.json
|
trans.sc = public/language/sc/groups.json
|
||||||
trans.sk = public/language/sk/groups.json
|
trans.sk = public/language/sk/groups.json
|
||||||
|
trans.sr = public/language/sr/groups.json
|
||||||
trans.sv = public/language/sv/groups.json
|
trans.sv = public/language/sv/groups.json
|
||||||
trans.th = public/language/th/groups.json
|
trans.th = public/language/th/groups.json
|
||||||
trans.tr = public/language/tr/groups.json
|
trans.tr = public/language/tr/groups.json
|
||||||
|
|||||||
@@ -1,14 +1,30 @@
|
|||||||
|
# Submitting a Pull Request to NodeBB?
|
||||||
|
|
||||||
|
First of all, thank you! Please consider this [style guide](https://docs.nodebb.org/en/latest/contributing/style-guide.html) when submitting your changes. Also, please join our [community](https://community.nodebb.org) to meet other NodeBB developers and designers :)
|
||||||
|
|
||||||
|
## Contributor License Agreement
|
||||||
|
|
||||||
|
Thank you for considering contributing to NodeBB. **Before we can accept any pull requests, please take a moment to read and sign our [license agreement](https://www.clahub.com/agreements/NodeBB/NodeBB)**. In summary, signing this document means that 1) you own the code that you are contributing and 2) you give permission to NodeBB Inc. to license the code to others. This agreement applies to any repository under the NodeBB organization.
|
||||||
|
|
||||||
|
If you are writing contributions as part of employment from another company / individual, then your employer will need to sign a separate agreement. Please [contact us](mailto:accounts@nodebb.org) so that we can send this additional agreement to your employer.
|
||||||
|
|
||||||
|
|
||||||
|
# Having problems installing NodeBB?
|
||||||
|
|
||||||
|
Chances are somebody has run into this problem before. After consulting our [documentation](https://docs.nodebb.org/en/latest/installing/os.html), please head over to our [community support forum](https://community.nodebb.org) for advice.
|
||||||
|
|
||||||
|
# Found a Security Vulnerability?
|
||||||
|
|
||||||
|
If you believe you have identified a security vulnerability with NodeBB, report it as soon as possible via email to **security@nodebb.org**.
|
||||||
|
A member of the NodeBB security team will respond to the issue.
|
||||||
|
Please do not post it to the public bug tracker.
|
||||||
|
|
||||||
# Issues & Bugs
|
# Issues & Bugs
|
||||||
|
|
||||||
Thanks for reporting an issue with NodeBB! Please follow these guidelines in order to streamline the debugging process. The more guidelines you follow, the easier it will be for us to reproduce your problem.
|
Thanks for reporting an issue with NodeBB! Please follow these guidelines in order to streamline the debugging process. The more guidelines you follow, the easier it will be for us to reproduce your problem.
|
||||||
|
|
||||||
In general, if we can't reproduce it, we can't fix it!
|
In general, if we can't reproduce it, we can't fix it!
|
||||||
|
|
||||||
> #### **Important**
|
|
||||||
> If you believe you have identified a security vulnerability with NodeBB, report it as soon as possible via email to **security@nodebb.org**.
|
|
||||||
> A member of the NodeBB security team will respond to the issue.
|
|
||||||
> Please do not post it to the public bug tracker.
|
|
||||||
|
|
||||||
## Try the latest version of NodeBB
|
## Try the latest version of NodeBB
|
||||||
|
|
||||||
There is a chance that the issue you are experiencing may have already been fixed.
|
There is a chance that the issue you are experiencing may have already been fixed.
|
||||||
@@ -34,6 +50,15 @@ $ git rev-parse HEAD
|
|||||||
|
|
||||||
If you have downloaded the `.zip` or `.tar.gz` packages from GitHub (or elsewhere), please let us know.
|
If you have downloaded the `.zip` or `.tar.gz` packages from GitHub (or elsewhere), please let us know.
|
||||||
|
|
||||||
|
## Provide theme versions if issue is related to the theme/display
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
$ npm ls nodebb-theme-vanilla nodebb-theme-lavender
|
||||||
|
nodebb@0.7.0-dev /home/julian/Projects/nodebb/forum
|
||||||
|
├── nodebb-theme-lavender@0.2.13
|
||||||
|
└── nodebb-theme-vanilla@0.2.35
|
||||||
|
```
|
||||||
|
|
||||||
## Attempt to use `git bisect`
|
## Attempt to use `git bisect`
|
||||||
|
|
||||||
If you have installed NodeBB via GitHub clone, are familiar with utilising git, and are willing to help us narrow down the specific commit that causes a bug, consider running `git bisect`.
|
If you have installed NodeBB via GitHub clone, are familiar with utilising git, and are willing to help us narrow down the specific commit that causes a bug, consider running `git bisect`.
|
||||||
|
|||||||
78
Gruntfile.js
Normal file
78
Gruntfile.js
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
var fork = require('child_process').fork,
|
||||||
|
env = process.env,
|
||||||
|
worker,
|
||||||
|
incomplete = [];
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = function(grunt) {
|
||||||
|
function update(action, filepath, target) {
|
||||||
|
var args = [],
|
||||||
|
fromFile = '',
|
||||||
|
compiling = '',
|
||||||
|
time = Date.now();
|
||||||
|
|
||||||
|
if (!grunt.option('verbose')) {
|
||||||
|
args.push('--log-level=info');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target === 'lessUpdated') {
|
||||||
|
fromFile = ['js','tpl'];
|
||||||
|
compiling = 'less';
|
||||||
|
} else if (target === 'clientUpdated') {
|
||||||
|
fromFile = ['less','tpl'];
|
||||||
|
compiling = 'js';
|
||||||
|
} else if (target === 'templatesUpdated') {
|
||||||
|
fromFile = ['js','less'];
|
||||||
|
compiling = 'tpl';
|
||||||
|
} else if (target === 'serverUpdated') {
|
||||||
|
fromFile = ['less','js','tpl'];
|
||||||
|
}
|
||||||
|
|
||||||
|
fromFile = fromFile.filter(function(ext) {
|
||||||
|
return incomplete.indexOf(ext) === -1;
|
||||||
|
});
|
||||||
|
|
||||||
|
args.push('--from-file=' + fromFile.join(','));
|
||||||
|
incomplete.push(compiling);
|
||||||
|
|
||||||
|
worker.kill();
|
||||||
|
worker = fork('app.js', args, { env: env });
|
||||||
|
|
||||||
|
worker.on('message', function() {
|
||||||
|
if (incomplete.length) {
|
||||||
|
incomplete = [];
|
||||||
|
|
||||||
|
if (grunt.option('verbose')) {
|
||||||
|
grunt.log.writeln('NodeBB restarted in ' + (Date.now() - time) + ' ms');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
grunt.initConfig({
|
||||||
|
watch: {
|
||||||
|
lessUpdated: {
|
||||||
|
files: ['public/**/*.less', 'node_modules/nodebb-*/*.less', 'node_modules/nodebb-*/*/*.less', 'node_modules/nodebb-*/*/*/*.less', 'node_modules/nodebb-*/*/*/*/*.less']
|
||||||
|
},
|
||||||
|
clientUpdated: {
|
||||||
|
files: ['public/src/**/*.js', 'node_modules/nodebb-*/*.js', 'node_modules/nodebb-*/*/*.js', 'node_modules/nodebb-*/*/*/*.js', 'node_modules/nodebb-*/*/*/*/*.js', 'node_modules/templates.js/lib/templates.js']
|
||||||
|
},
|
||||||
|
serverUpdated: {
|
||||||
|
files: ['*.js', 'install/*.js', 'src/**/*.js']
|
||||||
|
},
|
||||||
|
templatesUpdated: {
|
||||||
|
files: ['src/views/**/*.tpl', 'node_modules/nodebb-*/*.tpl', 'node_modules/nodebb-*/*/*.tpl', 'node_modules/nodebb-*/*/*/*.tpl', 'node_modules/nodebb-*/*/*/*/*.tpl', 'node_modules/nodebb-*/*/*/*/*/*.tpl']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||||
|
grunt.registerTask('default', ['watch']);
|
||||||
|
|
||||||
|
env.NODE_ENV = 'development';
|
||||||
|
|
||||||
|
worker = fork('app.js', [], { env: env });
|
||||||
|
grunt.event.on('watch', update);
|
||||||
|
};
|
||||||
31
README.md
31
README.md
@@ -1,28 +1,37 @@
|
|||||||
# <img alt="NodeBB" src="http://i.imgur.com/mYxPPtB.png" />
|
# <img alt="NodeBB" src="http://i.imgur.com/mYxPPtB.png" />
|
||||||
|
|
||||||
|
[](https://gitter.im/NodeBB/NodeBB?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
[](https://travis-ci.org/NodeBB/NodeBB)
|
[](https://travis-ci.org/NodeBB/NodeBB)
|
||||||
[](https://david-dm.org/nodebb/nodebb)
|
[](https://david-dm.org/nodebb/nodebb)
|
||||||
[](https://codeclimate.com/github/NodeBB/NodeBB)
|
[](https://codeclimate.com/github/NodeBB/NodeBB)
|
||||||
[](https://readthedocs.org/projects/nodebb/?badge=latest)
|
[](https://readthedocs.org/projects/nodebb/?badge=latest)
|
||||||
|
|
||||||
**NodeBB Forum Software** is powered by Node.js and built on a Redis database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB is compatible down to IE8 and has many modern features out of the box such as social network integration and streaming discussions.
|
**NodeBB Forum Software** is powered by Node.js and built on either a Redis or MongoDB database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB is compatible down to IE8 and has many modern features out of the box such as social network integration and streaming discussions.
|
||||||
|
|
||||||
|
Additional functionality is enabled through the use of third-party plugins.
|
||||||
|
|
||||||
* [Get NodeBB](http://www.nodebb.org/ "NodeBB")
|
* [Get NodeBB](http://www.nodebb.org/ "NodeBB")
|
||||||
* [Demo & Meta Discussion](http://community.nodebb.org)
|
* [Demo & Meta Discussion](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)
|
* [NodeBB Blog](http://blog.nodebb.org)
|
||||||
* [Documentation](http://docs.nodebb.org) - includes setup instructions for other platforms
|
|
||||||
* [Join us on IRC](https://kiwiirc.com/client/irc.freenode.net/nodebb) - #nodebb on Freenode
|
* [Join us on IRC](https://kiwiirc.com/client/irc.freenode.net/nodebb) - #nodebb on Freenode
|
||||||
* [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
|
* [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
|
||||||
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")
|
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")
|
||||||
* [Get Plugins](http://community.nodebb.org/category/7/nodebb-plugins "NodeBB Plugins")
|
|
||||||
* [Get Themes](http://community.nodebb.org/category/10/nodebb-themes "NodeBB Themes")
|
|
||||||
* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/)
|
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||
[<img src="http://i.imgur.com/FLOUuIqb.png" />](http://i.imgur.com/FLOUuIq.png) [<img src="http://i.imgur.com/Ud1LrfIb.png" />](http://i.imgur.com/Ud1LrfI.png) [<img src="http://i.imgur.com/ZC8W39ab.png" />](http://i.imgur.com/ZC8W39a.png) [<img src="http://i.imgur.com/o90kVPib.png" />](http://i.imgur.com/o90kVPi.png) [<img src="http://i.imgur.com/AaRRrU2b.png" />](http://i.imgur.com/AaRRrU2.png) [<img src="http://i.imgur.com/LmHtPhob.png" />](http://i.imgur.com/LmHtPho.png) [<img src="http://i.imgur.com/paiJPJkb.jpg" />](http://i.imgur.com/paiJPJk.jpg) [<img src="http://i.imgur.com/ZfavPHDb.png" />](http://i.imgur.com/ZfavPHD.png) [<img src="http://i.imgur.com/8OLssij.png" />](http://i.imgur.com/8OLssij.png) [<img src="http://i.imgur.com/JKOc0LZ.png"/>](http://i.imgur.com/JKOc0LZ.png)
|
[](http://i.imgur.com/VCoOFyq.png)
|
||||||
|
[](http://i.imgur.com/FLOUuIq.png)
|
||||||
Credit: [Convoe](http://www.convoe.com), [Kano](http://www.kano.me), [Manchester United Forum](http://manutdforums.com/).
|
[](http://i.imgur.com/Ud1LrfI.png)
|
||||||
|
[](http://i.imgur.com/h6yZ66s.png)
|
||||||
|
[](http://i.imgur.com/o90kVPi.png)
|
||||||
|
[](http://i.imgur.com/AaRRrU2.png)
|
||||||
|
[](http://i.imgur.com/LmHtPho.png)
|
||||||
|
[](http://i.imgur.com/paiJPJk.jpg)
|
||||||
|
|
||||||
|
[](http://i.imgur.com/8OLssij.png)
|
||||||
|
[](http://i.imgur.com/JKOc0LZ.png)
|
||||||
|
|
||||||
## How can I follow along/contribute?
|
## How can I follow along/contribute?
|
||||||
|
|
||||||
@@ -37,7 +46,7 @@ Credit: [Convoe](http://www.convoe.com), [Kano](http://www.kano.me), [Manchester
|
|||||||
NodeBB requires the following software to be installed:
|
NodeBB requires the following software to be installed:
|
||||||
|
|
||||||
* A version of Node.js at least 0.10 or greater
|
* A version of Node.js at least 0.10 or greater
|
||||||
* Redis, version 2.6 or greater **or** MongoDB, version 2.6 or greater
|
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
|
||||||
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
|
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
@@ -61,4 +70,6 @@ Detailed upgrade instructions are listed in [Upgrading NodeBB](https://docs.node
|
|||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
NodeBB is licensed under the **GNU General Public License v3 (GPL-3)** (http://www.gnu.org/copyleft/gpl.html)
|
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.
|
||||||
251
app.js
251
app.js
@@ -21,36 +21,31 @@
|
|||||||
/*global require, global, process*/
|
/*global require, global, process*/
|
||||||
|
|
||||||
var nconf = require('nconf');
|
var nconf = require('nconf');
|
||||||
nconf.argv().env();
|
nconf.argv().env('__');
|
||||||
|
|
||||||
var fs = require('fs'),
|
var fs = require('fs'),
|
||||||
os = require('os'),
|
os = require('os'),
|
||||||
|
url = require('url'),
|
||||||
|
async = require('async'),
|
||||||
semver = require('semver'),
|
semver = require('semver'),
|
||||||
winston = require('winston'),
|
winston = require('winston'),
|
||||||
|
colors = require('colors'),
|
||||||
path = require('path'),
|
path = require('path'),
|
||||||
cluster = require('cluster'),
|
|
||||||
pkg = require('./package.json'),
|
pkg = require('./package.json'),
|
||||||
utils = require('./public/src/utils.js');
|
utils = require('./public/src/utils.js');
|
||||||
|
|
||||||
|
|
||||||
global.env = process.env.NODE_ENV || 'production';
|
global.env = process.env.NODE_ENV || 'production';
|
||||||
|
|
||||||
winston.remove(winston.transports.Console);
|
winston.remove(winston.transports.Console);
|
||||||
winston.add(winston.transports.Console, {
|
winston.add(winston.transports.Console, {
|
||||||
colorize: true,
|
colorize: true,
|
||||||
timestamp: true
|
timestamp: function() {
|
||||||
|
var date = new Date();
|
||||||
|
return date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0,5) + ' [' + global.process.pid + ']';
|
||||||
|
},
|
||||||
|
level: nconf.get('log-level') || (global.env === 'production' ? 'info' : 'verbose')
|
||||||
});
|
});
|
||||||
|
|
||||||
winston.add(winston.transports.File, {
|
|
||||||
filename: 'logs/error.log',
|
|
||||||
level: 'error'
|
|
||||||
});
|
|
||||||
|
|
||||||
// TODO: remove once https://github.com/flatiron/winston/issues/280 is fixed
|
|
||||||
winston.err = function (err) {
|
|
||||||
winston.error(err.stack);
|
|
||||||
};
|
|
||||||
|
|
||||||
if(os.platform() === 'linux') {
|
if(os.platform() === 'linux') {
|
||||||
require('child_process').exec('/usr/bin/which convert', function(err, stdout, stderr) {
|
require('child_process').exec('/usr/bin/which convert', function(err, stdout, stderr) {
|
||||||
if(err || !stdout) {
|
if(err || !stdout) {
|
||||||
@@ -59,14 +54,6 @@ if(os.platform() === 'linux') {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cluster.isWorker) {
|
|
||||||
// If run using `node app`, log GNU copyright info along with server info
|
|
||||||
winston.info('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.');
|
|
||||||
winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
|
|
||||||
winston.info('This is free software, and you are welcome to redistribute it under certain conditions.');
|
|
||||||
winston.info('');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Alternate configuration file support
|
// Alternate configuration file support
|
||||||
var configFile = path.join(__dirname, '/config.json'),
|
var configFile = path.join(__dirname, '/config.json'),
|
||||||
configExists;
|
configExists;
|
||||||
@@ -78,8 +65,10 @@ configExists = fs.existsSync(configFile);
|
|||||||
|
|
||||||
if (!nconf.get('setup') && !nconf.get('install') && !nconf.get('upgrade') && !nconf.get('reset') && configExists) {
|
if (!nconf.get('setup') && !nconf.get('install') && !nconf.get('upgrade') && !nconf.get('reset') && configExists) {
|
||||||
start();
|
start();
|
||||||
} else if (nconf.get('setup') || nconf.get('install') || !configExists) {
|
} else if (nconf.get('setup') || nconf.get('install')) {
|
||||||
setup();
|
setup();
|
||||||
|
} else if (!configExists) {
|
||||||
|
require('./install/web').install(nconf.get('port'));
|
||||||
} else if (nconf.get('upgrade')) {
|
} else if (nconf.get('upgrade')) {
|
||||||
upgrade();
|
upgrade();
|
||||||
} else if (nconf.get('reset')) {
|
} else if (nconf.get('reset')) {
|
||||||
@@ -94,68 +83,67 @@ function loadConfig() {
|
|||||||
nconf.defaults({
|
nconf.defaults({
|
||||||
base_dir: __dirname,
|
base_dir: __dirname,
|
||||||
themes_path: path.join(__dirname, 'node_modules'),
|
themes_path: path.join(__dirname, 'node_modules'),
|
||||||
upload_url: '/uploads/',
|
views_dir: path.join(__dirname, 'public/templates'),
|
||||||
views_dir: path.join(__dirname, 'public/templates')
|
version: pkg.version
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!nconf.get('isCluster')) {
|
||||||
|
nconf.set('isPrimary', 'true');
|
||||||
|
nconf.set('isCluster', 'false');
|
||||||
|
}
|
||||||
|
|
||||||
// Ensure themes_path is a full filepath
|
// Ensure themes_path is a full filepath
|
||||||
nconf.set('themes_path', path.resolve(__dirname, nconf.get('themes_path')));
|
nconf.set('themes_path', path.resolve(__dirname, nconf.get('themes_path')));
|
||||||
nconf.set('core_templates_path', path.join(__dirname, 'src/views'));
|
nconf.set('core_templates_path', path.join(__dirname, 'src/views'));
|
||||||
nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-vanilla/templates'));
|
nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-vanilla/templates'));
|
||||||
|
|
||||||
|
if (!process.send) {
|
||||||
|
// If run using `node app`, log GNU copyright info along with server info
|
||||||
|
winston.info('NodeBB v' + nconf.get('version') + ' Copyright (C) 2013-2014 NodeBB Inc.');
|
||||||
|
winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
|
||||||
|
winston.info('This is free software, and you are welcome to redistribute it under certain conditions.');
|
||||||
|
winston.info('');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
loadConfig();
|
loadConfig();
|
||||||
|
var db = require('./src/database');
|
||||||
|
|
||||||
if (!cluster.isWorker || process.env.cluster_setup === 'true') {
|
// nconf defaults, if not set in config
|
||||||
winston.info('Time: ' + new Date());
|
if (!nconf.get('upload_path')) {
|
||||||
winston.info('Initializing NodeBB v' + pkg.version);
|
nconf.set('upload_path', '/public/uploads');
|
||||||
winston.info('* using configuration stored in: ' + configFile);
|
|
||||||
}
|
}
|
||||||
|
// Parse out the relative_url and other goodies from the configured URL
|
||||||
|
var urlObject = url.parse(nconf.get('url'));
|
||||||
|
var relativePath = urlObject.pathname !== '/' ? urlObject.pathname : '';
|
||||||
|
nconf.set('base_url', urlObject.protocol + '//' + urlObject.host);
|
||||||
|
nconf.set('use_port', !!urlObject.port);
|
||||||
|
nconf.set('relative_path', relativePath);
|
||||||
|
nconf.set('port', urlObject.port || nconf.get('port') || nconf.get('PORT') || 4567);
|
||||||
|
nconf.set('upload_url', '/uploads/');
|
||||||
|
|
||||||
|
if (nconf.get('isPrimary') === 'true') {
|
||||||
|
winston.info('Time: %s', (new Date()).toString());
|
||||||
|
winston.info('Initializing NodeBB v%s', nconf.get('version'));
|
||||||
|
winston.verbose('* using configuration stored in: %s', configFile);
|
||||||
|
|
||||||
if (cluster.isWorker && process.env.cluster_setup === 'true') {
|
|
||||||
var host = nconf.get(nconf.get('database') + ':host'),
|
var host = nconf.get(nconf.get('database') + ':host'),
|
||||||
storeLocation = host ? 'at ' + host + (host.indexOf('/') === -1 ? ':' + nconf.get(nconf.get('database') + ':port') : '') : '';
|
storeLocation = host ? 'at ' + host + (host.indexOf('/') === -1 ? ':' + nconf.get(nconf.get('database') + ':port') : '') : '';
|
||||||
|
|
||||||
winston.info('* using ' + nconf.get('database') +' store ' + storeLocation);
|
winston.verbose('* using %s store %s', nconf.get('database'), storeLocation);
|
||||||
winston.info('* using themes stored in: ' + nconf.get('themes_path'));
|
winston.verbose('* using themes stored in: %s', nconf.get('themes_path'));
|
||||||
}
|
}
|
||||||
|
|
||||||
require('./src/database').init(function(err) {
|
|
||||||
if (err) {
|
|
||||||
winston.error(err.stack);
|
|
||||||
process.exit();
|
|
||||||
}
|
|
||||||
var meta = require('./src/meta');
|
|
||||||
meta.configs.init(function () {
|
|
||||||
var templates = require('templates.js'),
|
|
||||||
webserver = require('./src/webserver'),
|
|
||||||
sockets = require('./src/socket.io'),
|
|
||||||
plugins = require('./src/plugins'),
|
|
||||||
upgrade = require('./src/upgrade');
|
|
||||||
|
|
||||||
templates.setGlobal('relative_path', nconf.get('relative_path'));
|
|
||||||
|
|
||||||
upgrade.check(function(schema_ok) {
|
|
||||||
if (schema_ok || nconf.get('check-schema') === false) {
|
|
||||||
sockets.init(webserver.server);
|
|
||||||
|
|
||||||
nconf.set('url', nconf.get('base_url') + (nconf.get('use_port') ? ':' + nconf.get('port') : '') + nconf.get('relative_path'));
|
|
||||||
|
|
||||||
plugins.ready(function() {
|
|
||||||
webserver.init(function() {
|
|
||||||
webserver.listen(function() {
|
|
||||||
process.send({
|
|
||||||
action: 'ready'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
process.on('SIGTERM', shutdown);
|
process.on('SIGTERM', shutdown);
|
||||||
process.on('SIGINT', shutdown);
|
process.on('SIGINT', shutdown);
|
||||||
process.on('SIGHUP', restart);
|
process.on('SIGHUP', restart);
|
||||||
process.on('message', function(message) {
|
process.on('message', function(message) {
|
||||||
|
if (typeof message !== 'object') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var meta = require('./src/meta');
|
||||||
|
var emitter = require('./src/emitter');
|
||||||
switch (message.action) {
|
switch (message.action) {
|
||||||
case 'reload':
|
case 'reload':
|
||||||
meta.reload();
|
meta.reload();
|
||||||
@@ -163,12 +151,19 @@ function start() {
|
|||||||
case 'js-propagate':
|
case 'js-propagate':
|
||||||
meta.js.cache = message.cache;
|
meta.js.cache = message.cache;
|
||||||
meta.js.map = message.map;
|
meta.js.map = message.map;
|
||||||
winston.info('[cluster] Client-side javascript and mapping propagated to worker ' + cluster.worker.id);
|
meta.js.hash = message.hash;
|
||||||
|
emitter.emit('meta:js.compiled');
|
||||||
|
winston.verbose('[cluster] Client-side javascript and mapping propagated to worker %s', process.pid);
|
||||||
break;
|
break;
|
||||||
case 'css-propagate':
|
case 'css-propagate':
|
||||||
meta.css.cache = message.cache;
|
meta.css.cache = message.cache;
|
||||||
meta.css.acpCache = message.acpCache;
|
meta.css.acpCache = message.acpCache;
|
||||||
winston.info('[cluster] Stylesheets propagated to worker ' + cluster.worker.id);
|
meta.css.hash = message.hash;
|
||||||
|
emitter.emit('meta:css.compiled');
|
||||||
|
winston.verbose('[cluster] Stylesheets propagated to worker %s', process.pid);
|
||||||
|
break;
|
||||||
|
case 'templates:compiled':
|
||||||
|
emitter.emit('templates:compiled');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -177,43 +172,95 @@ function start() {
|
|||||||
winston.error(err.stack);
|
winston.error(err.stack);
|
||||||
console.log(err.stack);
|
console.log(err.stack);
|
||||||
|
|
||||||
meta.js.killMinifier();
|
require('./src/meta').js.killMinifier();
|
||||||
shutdown(1);
|
shutdown(1);
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
|
async.waterfall([
|
||||||
|
async.apply(db.init),
|
||||||
|
async.apply(db.checkCompatibility),
|
||||||
|
function(next) {
|
||||||
|
require('./src/meta').configs.init(next);
|
||||||
|
},
|
||||||
|
function(next) {
|
||||||
|
require('./src/meta').dependencies.check(next);
|
||||||
|
},
|
||||||
|
function(next) {
|
||||||
|
require('./src/upgrade').check(next);
|
||||||
|
},
|
||||||
|
function(next) {
|
||||||
|
var webserver = require('./src/webserver');
|
||||||
|
require('./src/socket.io').init(webserver.server);
|
||||||
|
|
||||||
|
if (nconf.get('isPrimary') === 'true' && !nconf.get('jobsDisabled')) {
|
||||||
|
require('./src/notifications').init();
|
||||||
|
require('./src/user').startJobs();
|
||||||
|
}
|
||||||
|
|
||||||
|
webserver.listen();
|
||||||
|
}
|
||||||
|
], function(err) {
|
||||||
|
if (err) {
|
||||||
|
switch(err.message) {
|
||||||
|
case 'schema-out-of-date':
|
||||||
winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:');
|
winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:');
|
||||||
winston.warn(' ./nodebb upgrade');
|
winston.warn(' ./nodebb upgrade');
|
||||||
if (cluster.isWorker) {
|
break;
|
||||||
cluster.worker.kill();
|
case 'dependencies-out-of-date':
|
||||||
|
winston.warn('One or more of NodeBB\'s dependent packages are out-of-date. Please run the following command to update them:');
|
||||||
|
winston.warn(' ./nodebb upgrade');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (err.stacktrace !== false) {
|
||||||
|
winston.error(err.stack);
|
||||||
} else {
|
} else {
|
||||||
|
winston.error(err.message);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Either way, bad stuff happened. Abort start.
|
||||||
process.exit();
|
process.exit();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup() {
|
function setup() {
|
||||||
loadConfig();
|
loadConfig();
|
||||||
|
|
||||||
if (nconf.get('setup')) {
|
|
||||||
winston.info('NodeBB Setup Triggered via Command Line');
|
winston.info('NodeBB Setup Triggered via Command Line');
|
||||||
} else {
|
|
||||||
winston.warn('Configuration not found, starting NodeBB setup');
|
|
||||||
}
|
|
||||||
|
|
||||||
var install = require('./src/install');
|
var install = require('./src/install');
|
||||||
|
|
||||||
winston.info('Welcome to NodeBB!');
|
process.stdout.write('\nWelcome to NodeBB!\n');
|
||||||
winston.info('This looks like a new installation, so you\'ll have to answer a few questions about your environment before we can proceed.');
|
process.stdout.write('\nThis looks like a new installation, so you\'ll have to answer a few questions about your environment before we can proceed.\n');
|
||||||
winston.info('Press enter to accept the default setting (shown in brackets).');
|
process.stdout.write('Press enter to accept the default setting (shown in brackets).\n');
|
||||||
|
|
||||||
|
install.setup(function (err, data) {
|
||||||
|
var separator = ' ';
|
||||||
|
if (process.stdout.columns > 10) {
|
||||||
|
for(var x=0,cols=process.stdout.columns-10;x<cols;x++) {
|
||||||
|
separator += '=';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
process.stdout.write('\n' + separator + '\n\n');
|
||||||
|
|
||||||
install.setup(function (err) {
|
|
||||||
if (err) {
|
if (err) {
|
||||||
winston.error('There was a problem completing NodeBB setup: ', err.message);
|
winston.error('There was a problem completing NodeBB setup: ', err.message);
|
||||||
} else {
|
} else {
|
||||||
winston.info('NodeBB Setup Completed. Run \'./nodebb start\' to manually start your NodeBB server.');
|
if (data.hasOwnProperty('password')) {
|
||||||
|
process.stdout.write('An administrative user was automatically created for you:\n');
|
||||||
|
process.stdout.write(' Username: ' + data.username + '\n');
|
||||||
|
process.stdout.write(' Password: ' + data.password + '\n');
|
||||||
|
process.stdout.write('\n');
|
||||||
|
}
|
||||||
|
process.stdout.write('NodeBB Setup Completed. Run \'./nodebb start\' to manually start your NodeBB server.\n');
|
||||||
|
|
||||||
|
// If I am a child process, notify the parent of the returned data before exiting (useful for notifying
|
||||||
|
// hosts of auto-generated username/password during headless setups)
|
||||||
|
if (process.send) {
|
||||||
|
process.send(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
process.exit();
|
process.exit();
|
||||||
@@ -243,27 +290,40 @@ function reset() {
|
|||||||
process.exit();
|
process.exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nconf.get('themes')) {
|
if (nconf.get('t')) {
|
||||||
resetThemes();
|
resetThemes();
|
||||||
} else if (nconf.get('plugin')) {
|
} else if (nconf.get('p')) {
|
||||||
resetPlugin(nconf.get('plugin'));
|
if (nconf.get('p') === true) {
|
||||||
} else if (nconf.get('plugins')) {
|
|
||||||
resetPlugins();
|
resetPlugins();
|
||||||
} else if (nconf.get('widgets')) {
|
} else {
|
||||||
|
resetPlugin(nconf.get('p'));
|
||||||
|
}
|
||||||
|
} else if (nconf.get('w')) {
|
||||||
resetWidgets();
|
resetWidgets();
|
||||||
} else if (nconf.get('settings')) {
|
} else if (nconf.get('s')) {
|
||||||
resetSettings();
|
resetSettings();
|
||||||
} else if (nconf.get('all')) {
|
} else if (nconf.get('a')) {
|
||||||
require('async').series([resetWidgets, resetThemes, resetPlugins, resetSettings], function(err) {
|
require('async').series([resetWidgets, resetThemes, resetPlugins, resetSettings], function(err) {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
winston.info('[reset] Reset complete.');
|
winston.info('[reset] Reset complete.');
|
||||||
} else {
|
} else {
|
||||||
winston.error('[reset] Errors were encountered while resetting your forum settings: ' + err.message);
|
winston.error('[reset] Errors were encountered while resetting your forum settings: %s', err.message);
|
||||||
}
|
}
|
||||||
process.exit();
|
process.exit();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
winston.warn('[reset] Nothing reset.');
|
process.stdout.write('\nNodeBB Reset\n'.bold);
|
||||||
|
process.stdout.write('No arguments passed in, so nothing was reset.\n\n'.yellow);
|
||||||
|
process.stdout.write('Use ./nodebb reset ' + '{-t|-p|-w|-s|-a}\n'.red);
|
||||||
|
process.stdout.write(' -t\tthemes\n');
|
||||||
|
process.stdout.write(' -p\tplugins\n');
|
||||||
|
process.stdout.write(' -w\twidgets\n');
|
||||||
|
process.stdout.write(' -s\tsettings\n');
|
||||||
|
process.stdout.write(' -a\tall of the above\n');
|
||||||
|
|
||||||
|
process.stdout.write('\nPlugin reset flag (-p) can take a single argument\n');
|
||||||
|
process.stdout.write(' e.g. ./nodebb reset -p nodebb-plugin-mentions\n');
|
||||||
|
process.exit();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -298,16 +358,11 @@ function resetThemes(callback) {
|
|||||||
|
|
||||||
function resetPlugin(pluginId) {
|
function resetPlugin(pluginId) {
|
||||||
var db = require('./src/database');
|
var db = require('./src/database');
|
||||||
db.setRemove('plugins:active', pluginId, function(err, result) {
|
db.sortedSetRemove('plugins:active', pluginId, function(err) {
|
||||||
if (err || result !== 1) {
|
|
||||||
winston.error('[reset] Could not disable plugin: ' + pluginId);
|
|
||||||
if (err) {
|
if (err) {
|
||||||
winston.error('[reset] Encountered error: ' + err.message);
|
winston.error('[reset] Could not disable plugin: %s encountered error %s', pluginId, err.message);
|
||||||
} else {
|
} else {
|
||||||
winston.info('[reset] Perhaps it has already been disabled?');
|
winston.info('[reset] Plugin `%s` disabled', pluginId);
|
||||||
}
|
|
||||||
} else {
|
|
||||||
winston.info('[reset] Plugin `' + pluginId + '` disabled');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
process.exit();
|
process.exit();
|
||||||
|
|||||||
39
bcrypt.js
39
bcrypt.js
@@ -2,28 +2,33 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var bcrypt = require('bcryptjs'),
|
var bcrypt = require('bcryptjs'),
|
||||||
async = require('async'),
|
async = require('async');
|
||||||
action = process.argv[2];
|
|
||||||
|
|
||||||
switch(action) {
|
|
||||||
case 'compare':
|
process.on('message', function(msg) {
|
||||||
bcrypt.compare(process.argv[3], process.argv[4], function(err, res) {
|
if (msg.type === 'hash') {
|
||||||
process.stdout.write(res ? 'true' : 'false');
|
hashPassword(msg.password, msg.rounds);
|
||||||
|
} else if (msg.type === 'compare') {
|
||||||
|
bcrypt.compare(msg.password, msg.hash, done);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
break;
|
|
||||||
|
|
||||||
case 'hash':
|
function hashPassword(password, rounds) {
|
||||||
async.waterfall([
|
async.waterfall([
|
||||||
async.apply(bcrypt.genSalt, parseInt(process.argv[3], 10)),
|
function(next) {
|
||||||
|
bcrypt.genSalt(parseInt(rounds, 10), next);
|
||||||
|
},
|
||||||
function(salt, next) {
|
function(salt, next) {
|
||||||
bcrypt.hash(process.argv[4], salt, next);
|
bcrypt.hash(password, salt, next);
|
||||||
}
|
}
|
||||||
], function(err, hash) {
|
], done);
|
||||||
if (!err) {
|
|
||||||
process.stdout.write(hash);
|
|
||||||
} else {
|
|
||||||
process.stderr.write(err.message);
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
break;
|
function done(err, result) {
|
||||||
|
if (err) {
|
||||||
|
process.send({err: err.message});
|
||||||
|
return process.disconnect();
|
||||||
|
}
|
||||||
|
process.send({result: result});
|
||||||
|
process.disconnect();
|
||||||
}
|
}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "General Discussion",
|
"name": "General Discussion",
|
||||||
"description": "A place to talk about whateeeever you want",
|
"description": "A place to talk about whatever you want",
|
||||||
"bgColor": "#59b3d0",
|
"bgColor": "#59b3d0",
|
||||||
"color": "#fff",
|
"color": "#fff",
|
||||||
"icon" : "fa-comments-o",
|
"icon" : "fa-comments-o",
|
||||||
|
|||||||
@@ -1,86 +1,31 @@
|
|||||||
[
|
|
||||||
{
|
{
|
||||||
"field": "title",
|
"title": "NodeBB",
|
||||||
"value": "NodeBB"
|
"showSiteTitle": 1,
|
||||||
},
|
"postDelay": 10,
|
||||||
{
|
"initialPostDelay": 10,
|
||||||
"field": "showSiteTitle",
|
"newbiePostDelay": 120,
|
||||||
"value": "1"
|
"newbiePostDelayThreshold": 3,
|
||||||
},
|
"minimumPostLength": 8,
|
||||||
{
|
"maximumPostLength": 32767,
|
||||||
"field": "postDelay",
|
"minimumTagsPerTopic": 0,
|
||||||
"value": 10
|
"maximumTagsPerTopic": 5,
|
||||||
},
|
"allowGuestSearching": 0,
|
||||||
{
|
"allowTopicsThumbnail": 0,
|
||||||
"field": "initialPostDelay",
|
"registrationType": "normal",
|
||||||
"value": 10
|
"allowLocalLogin": 1,
|
||||||
},
|
"allowAccountDelete": 1,
|
||||||
{
|
"allowFileUploads": 0,
|
||||||
"field": "minimumPostLength",
|
"maximumFileSize": 2048,
|
||||||
"value": 8
|
"minimumTitleLength": 3,
|
||||||
},
|
"maximumTitleLength": 255,
|
||||||
{
|
"minimumUsernameLength": 2,
|
||||||
"field": "allowGuestSearching",
|
"maximumUsernameLength": 16,
|
||||||
"value": 0
|
"minimumPasswordLength": 6,
|
||||||
},
|
"maximumSignatureLength": 255,
|
||||||
{
|
"maximumAboutMeLength": 1000,
|
||||||
"field": "allowTopicsThumbnail",
|
"maximumProfileImageSize": 256,
|
||||||
"value": 0
|
"profileImageDimension": 128,
|
||||||
},
|
"requireEmailConfirmation": 0,
|
||||||
{
|
"profile:allowProfileImageUploads": 1,
|
||||||
"field": "allowRegistration",
|
"teaserPost": "last"
|
||||||
"value": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "allowLocalLogin",
|
|
||||||
"value": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "allowAccountDelete",
|
|
||||||
"value": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "allowFileUploads",
|
|
||||||
"value": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "maximumFileSize",
|
|
||||||
"value": 2048
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "minimumTitleLength",
|
|
||||||
"value": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "maximumTitleLength",
|
|
||||||
"value": 255
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "minimumUsernameLength",
|
|
||||||
"value": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "maximumUsernameLength",
|
|
||||||
"value": 16
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "minimumPasswordLength",
|
|
||||||
"value": 6
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "maximumSignatureLength",
|
|
||||||
"value": 255
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "maximumProfileImageSize",
|
|
||||||
"value": 256
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "profileImageDimension",
|
|
||||||
"value": 128
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "requireEmailConfirmation",
|
|
||||||
"value": 0
|
|
||||||
}
|
}
|
||||||
]
|
|
||||||
|
|||||||
10
install/data/footer.json
Normal file
10
install/data/footer.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"widget": "html",
|
||||||
|
"data" : {
|
||||||
|
"html": "<footer id=\"footer\" class=\"container footer\">\r\n\t<div class=\"copyright\">\r\n\t\tCopyright © 2014 <a target=\"_blank\" href=\"https://nodebb.org\">NodeBB Forums</a> | <a target=\"_blank\" href=\"//github.com/NodeBB/NodeBB/graphs/contributors\">Contributors</a>\r\n\t</div>\r\n</footer>",
|
||||||
|
"title":"",
|
||||||
|
"container":""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
87
install/data/navigation.json
Normal file
87
install/data/navigation.json
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"route": "/categories",
|
||||||
|
"title": "\\[\\[global:header.categories\\]\\]",
|
||||||
|
"enabled": true,
|
||||||
|
"iconClass": "fa-list",
|
||||||
|
"textClass": "visible-xs-inline",
|
||||||
|
"text": "\\[\\[global:header.categories\\]\\]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "unread-count",
|
||||||
|
"route": "/unread",
|
||||||
|
"title": "\\[\\[global:header.unread\\]\\]",
|
||||||
|
"enabled": true,
|
||||||
|
"iconClass": "fa-inbox",
|
||||||
|
"textClass": "visible-xs-inline",
|
||||||
|
"text": "\\[\\[global:header.unread\\]\\]",
|
||||||
|
"properties": {
|
||||||
|
"loggedIn": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/recent",
|
||||||
|
"title": "\\[\\[global:header.recent\\]\\]",
|
||||||
|
"enabled": true,
|
||||||
|
"iconClass": "fa-clock-o",
|
||||||
|
"textClass": "visible-xs-inline",
|
||||||
|
"text": "\\[\\[global:header.recent\\]\\]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/tags",
|
||||||
|
"title": "\\[\\[global:header.tags\\]\\]",
|
||||||
|
"enabled": true,
|
||||||
|
"iconClass": "fa-tags",
|
||||||
|
"textClass": "visible-xs-inline",
|
||||||
|
"text": "\\[\\[global:header.tags\\]\\]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/popular",
|
||||||
|
"title": "\\[\\[global:header.popular\\]\\]",
|
||||||
|
"enabled": true,
|
||||||
|
"iconClass": "fa-fire",
|
||||||
|
"textClass": "visible-xs-inline",
|
||||||
|
"text": "\\[\\[global:header.popular\\]\\]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/users",
|
||||||
|
"title": "\\[\\[global:header.users\\]\\]",
|
||||||
|
"enabled": true,
|
||||||
|
"iconClass": "fa-user",
|
||||||
|
"textClass": "visible-xs-inline",
|
||||||
|
"text": "\\[\\[global:header.users\\]\\]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/groups",
|
||||||
|
"title": "\\[\\[global:header.groups\\]\\]",
|
||||||
|
"enabled": true,
|
||||||
|
"iconClass": "fa-group",
|
||||||
|
"textClass": "visible-xs-inline",
|
||||||
|
"text": "\\[\\[global:header.groups\\]\\]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/admin",
|
||||||
|
"title": "\\[\\[global:header.admin\\]\\]",
|
||||||
|
"enabled": true,
|
||||||
|
"iconClass": "fa-cogs",
|
||||||
|
"textClass": "visible-xs-inline",
|
||||||
|
"text": "\\[\\[global:header.admin\\]\\]",
|
||||||
|
"properties": {
|
||||||
|
"targetBlank": false,
|
||||||
|
"adminOnly": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/search",
|
||||||
|
"title": "\\[\\[global:header.search\\]\\]",
|
||||||
|
"enabled": true,
|
||||||
|
"iconClass": "fa-search",
|
||||||
|
"textClass": "visible-xs-inline",
|
||||||
|
"text": "\\[\\[global:header.search\\]\\]",
|
||||||
|
"properties": {
|
||||||
|
"installed": {
|
||||||
|
"search": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
10
install/data/welcome.md
Normal file
10
install/data/welcome.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Welcome to your brand new NodeBB forum!
|
||||||
|
|
||||||
|
This is what a topic and post looks like. As an administator, you can edit the post\'s title and content.
|
||||||
|
To customise your forum, go to the [Administrator Control Panel](../../admin). You can modify all aspects of your forum there, including installation of third-party plugins.
|
||||||
|
|
||||||
|
## Additional Resources
|
||||||
|
|
||||||
|
* [NodeBB Documentation](https://docs.nodebb.org)
|
||||||
|
* [Community Support Forum](https://community.nodebb.org)
|
||||||
|
* [Project repository](https://github.com/nodebb/nodebb)
|
||||||
148
install/web.js
Normal file
148
install/web.js
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
var winston = require('winston'),
|
||||||
|
express = require('express'),
|
||||||
|
bodyParser = require('body-parser'),
|
||||||
|
fs = require('fs'),
|
||||||
|
path = require('path'),
|
||||||
|
less = require('less'),
|
||||||
|
async = require('async'),
|
||||||
|
uglify = require('uglify-js'),
|
||||||
|
nconf = require('nconf'),
|
||||||
|
app = express(),
|
||||||
|
server;
|
||||||
|
|
||||||
|
var web = {},
|
||||||
|
scripts = [
|
||||||
|
'public/vendor/xregexp/xregexp.js',
|
||||||
|
'public/vendor/xregexp/unicode/unicode-base.js',
|
||||||
|
'public/src/utils.js',
|
||||||
|
'public/src/installer/install.js'
|
||||||
|
];
|
||||||
|
|
||||||
|
web.install = function(port) {
|
||||||
|
port = port || 4567;
|
||||||
|
winston.info('Launching web installer on port', port);
|
||||||
|
|
||||||
|
app.use(express.static('public', {}));
|
||||||
|
app.engine('tpl', require('templates.js').__express);
|
||||||
|
app.set('view engine', 'tpl');
|
||||||
|
app.set('views', path.join(__dirname, '../src/views'));
|
||||||
|
app.use(bodyParser.urlencoded({
|
||||||
|
extended: true
|
||||||
|
}));
|
||||||
|
|
||||||
|
async.parallel([compileLess, compileJS], function() {
|
||||||
|
setupRoutes();
|
||||||
|
launchExpress(port);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
function launchExpress(port) {
|
||||||
|
server = app.listen(port, function() {
|
||||||
|
winston.info('Web installer listening on http://%s:%s', '0.0.0.0', port);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function setupRoutes() {
|
||||||
|
app.get('/', welcome);
|
||||||
|
app.post('/', install);
|
||||||
|
app.post('/launch', launch);
|
||||||
|
}
|
||||||
|
|
||||||
|
function welcome(req, res) {
|
||||||
|
var dbs = ['redis', 'mongo'],
|
||||||
|
databases = [];
|
||||||
|
|
||||||
|
dbs.forEach(function(el) {
|
||||||
|
databases.push({
|
||||||
|
name: el,
|
||||||
|
questions: require('../src/database/' + el).questions
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
res.render('install/index', {
|
||||||
|
databases: databases,
|
||||||
|
skipDatabaseSetup: !!nconf.get('database'),
|
||||||
|
error: res.locals.error ? true : false,
|
||||||
|
success: res.locals.success ? true : false,
|
||||||
|
values: req.body
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function install(req, res) {
|
||||||
|
for (var i in req.body) {
|
||||||
|
if (req.body.hasOwnProperty(i) && !process.env.hasOwnProperty(i)) {
|
||||||
|
process.env[i.replace(':', '__')] = req.body[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var child = require('child_process').fork('app', ['--setup'], {
|
||||||
|
env: process.env
|
||||||
|
});
|
||||||
|
|
||||||
|
child.on('close', function(data) {
|
||||||
|
if (data === 0) {
|
||||||
|
res.locals.success = true;
|
||||||
|
} else {
|
||||||
|
res.locals.error = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
welcome(req, res);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function launch(req, res) {
|
||||||
|
var pidFilePath = __dirname + '../pidfile';
|
||||||
|
res.json({});
|
||||||
|
server.close();
|
||||||
|
|
||||||
|
var child = require('child_process').spawn('node', ['loader.js'], {
|
||||||
|
detached: true,
|
||||||
|
stdio: ['ignore', 'ignore', 'ignore']
|
||||||
|
});
|
||||||
|
|
||||||
|
process.stdout.write('\nStarting NodeBB\n');
|
||||||
|
process.stdout.write(' "./nodebb stop" to stop the NodeBB server\n');
|
||||||
|
process.stdout.write(' "./nodebb log" to view server output\n');
|
||||||
|
process.stdout.write(' "./nodebb restart" to restart NodeBB\n');
|
||||||
|
|
||||||
|
child.unref();
|
||||||
|
process.exit(0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function compileLess(callback) {
|
||||||
|
if ((nconf.get('from-file') || '').indexOf('less') !== -1) {
|
||||||
|
winston.info('LESS compilation skipped');
|
||||||
|
return callback(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
fs.readFile(path.join(__dirname, '../public/less/install.less'), function(err, style) {
|
||||||
|
less.render(style.toString(), function(err, css) {
|
||||||
|
if(err) {
|
||||||
|
return winston.error('Unable to compile LESS: ', err);
|
||||||
|
}
|
||||||
|
|
||||||
|
fs.writeFile(path.join(__dirname, '../public/stylesheet.css'), css.css, callback);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function compileJS(callback) {
|
||||||
|
if ((nconf.get('from-file') || '').indexOf('js') !== -1) {
|
||||||
|
winston.info('Client-side JS compilation skipped');
|
||||||
|
return callback(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
var scriptPath = path.join(__dirname, '..'),
|
||||||
|
result = uglify.minify(scripts.map(function(script) {
|
||||||
|
return path.join(scriptPath, script);
|
||||||
|
}));
|
||||||
|
|
||||||
|
|
||||||
|
fs.writeFile(path.join(__dirname, '../public/nodebb.min.js'), result.code, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = web;
|
||||||
322
loader.js
322
loader.js
@@ -1,22 +1,28 @@
|
|||||||
"use strict";
|
'use strict';
|
||||||
|
|
||||||
var nconf = require('nconf'),
|
var nconf = require('nconf'),
|
||||||
fs = require('fs'),
|
fs = require('fs'),
|
||||||
|
url = require('url'),
|
||||||
path = require('path'),
|
path = require('path'),
|
||||||
cluster = require('cluster'),
|
fork = require('child_process').fork,
|
||||||
|
|
||||||
async = require('async'),
|
async = require('async'),
|
||||||
logrotate = require('logrotate-stream'),
|
logrotate = require('logrotate-stream'),
|
||||||
|
|
||||||
pkg = require('./package.json'),
|
pkg = require('./package.json');
|
||||||
|
|
||||||
pidFilePath = __dirname + '/pidfile',
|
nconf.argv().env().file({
|
||||||
|
file: path.join(__dirname, '/config.json')
|
||||||
|
});
|
||||||
|
|
||||||
|
var pidFilePath = __dirname + '/pidfile',
|
||||||
output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }),
|
output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }),
|
||||||
silent = process.env.NODE_ENV !== 'development' ? true : false,
|
silent = nconf.get('silent') === 'false' ? false : nconf.get('silent') !== false,
|
||||||
numProcs,
|
numProcs,
|
||||||
|
workers = [],
|
||||||
|
|
||||||
Loader = {
|
Loader = {
|
||||||
timesStarted: 0,
|
timesStarted: 0,
|
||||||
shutdown_queue: [],
|
|
||||||
js: {
|
js: {
|
||||||
cache: undefined,
|
cache: undefined,
|
||||||
map: undefined
|
map: undefined
|
||||||
@@ -28,12 +34,6 @@ var nconf = require('nconf'),
|
|||||||
};
|
};
|
||||||
|
|
||||||
Loader.init = function(callback) {
|
Loader.init = function(callback) {
|
||||||
cluster.setupMaster({
|
|
||||||
exec: "app.js",
|
|
||||||
silent: silent
|
|
||||||
});
|
|
||||||
Loader.primaryWorker = 1;
|
|
||||||
|
|
||||||
if (silent) {
|
if (silent) {
|
||||||
console.log = function(value) {
|
console.log = function(value) {
|
||||||
output.write(value + '\n');
|
output.write(value + '\n');
|
||||||
@@ -41,6 +41,8 @@ Loader.init = function(callback) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
process.on('SIGHUP', Loader.restart);
|
process.on('SIGHUP', Loader.restart);
|
||||||
|
process.on('SIGUSR2', Loader.reload);
|
||||||
|
process.on('SIGTERM', Loader.stop);
|
||||||
callback();
|
callback();
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -54,98 +56,9 @@ Loader.displayStartupMessages = function(callback) {
|
|||||||
callback();
|
callback();
|
||||||
};
|
};
|
||||||
|
|
||||||
Loader.addClusterEvents = function(callback) {
|
Loader.addWorkerEvents = function(worker) {
|
||||||
cluster.on('fork', function(worker) {
|
|
||||||
worker.on('message', function(message) {
|
|
||||||
if (message && typeof message === 'object' && message.action) {
|
|
||||||
var otherWorkers;
|
|
||||||
|
|
||||||
switch (message.action) {
|
worker.on('exit', function(code, signal) {
|
||||||
case 'ready':
|
|
||||||
if (Loader.js.cache) {
|
|
||||||
worker.send({
|
|
||||||
action: 'js-propagate',
|
|
||||||
cache: Loader.js.cache,
|
|
||||||
map: Loader.js.map
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Loader.css.cache) {
|
|
||||||
worker.send({
|
|
||||||
action: 'css-propagate',
|
|
||||||
cache: Loader.css.cache,
|
|
||||||
acpCache: Loader.css.acpCache
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Kill an instance in the shutdown queue
|
|
||||||
var workerToKill = Loader.shutdown_queue.pop();
|
|
||||||
if (workerToKill) {
|
|
||||||
cluster.workers[workerToKill].kill();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'restart':
|
|
||||||
console.log('[cluster] Restarting...');
|
|
||||||
Loader.restart(function(err) {
|
|
||||||
console.log('[cluster] Restarting...');
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case 'reload':
|
|
||||||
console.log('[cluster] Reloading...');
|
|
||||||
Loader.reload();
|
|
||||||
break;
|
|
||||||
case 'js-propagate':
|
|
||||||
Loader.js.cache = message.cache;
|
|
||||||
Loader.js.map = message.map;
|
|
||||||
|
|
||||||
otherWorkers = Object.keys(cluster.workers).filter(function(worker_id) {
|
|
||||||
return parseInt(worker_id, 10) !== parseInt(worker.id, 10);
|
|
||||||
});
|
|
||||||
|
|
||||||
otherWorkers.forEach(function(worker_id) {
|
|
||||||
cluster.workers[worker_id].send({
|
|
||||||
action: 'js-propagate',
|
|
||||||
cache: message.cache,
|
|
||||||
map: message.map
|
|
||||||
});
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case 'css-propagate':
|
|
||||||
Loader.css.cache = message.cache;
|
|
||||||
Loader.css.acpCache = message.acpCache;
|
|
||||||
|
|
||||||
otherWorkers = Object.keys(cluster.workers).filter(function(worker_id) {
|
|
||||||
return parseInt(worker_id, 10) !== parseInt(worker.id, 10);
|
|
||||||
});
|
|
||||||
|
|
||||||
otherWorkers.forEach(function(worker_id) {
|
|
||||||
cluster.workers[worker_id].send({
|
|
||||||
action: 'css-propagate',
|
|
||||||
cache: message.cache,
|
|
||||||
acpCache: message.acpCache
|
|
||||||
});
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case 'listening':
|
|
||||||
if (message.primary) {
|
|
||||||
Loader.primaryWorker = parseInt(worker.id, 10);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'user:connect':
|
|
||||||
case 'user:disconnect':
|
|
||||||
case 'config:update':
|
|
||||||
Loader.notifyWorkers(message);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
cluster.on('listening', function(worker) {
|
|
||||||
console.log('[cluster] Child Process (' + worker.process.pid + ') listening for connections.');
|
|
||||||
});
|
|
||||||
|
|
||||||
cluster.on('exit', function(worker, code, signal) {
|
|
||||||
if (code !== 0) {
|
if (code !== 0) {
|
||||||
if (Loader.timesStarted < numProcs*3) {
|
if (Loader.timesStarted < numProcs*3) {
|
||||||
Loader.timesStarted++;
|
Loader.timesStarted++;
|
||||||
@@ -154,82 +67,188 @@ Loader.addClusterEvents = function(callback) {
|
|||||||
}
|
}
|
||||||
Loader.crashTimer = setTimeout(function() {
|
Loader.crashTimer = setTimeout(function() {
|
||||||
Loader.timesStarted = 0;
|
Loader.timesStarted = 0;
|
||||||
});
|
}, 10000);
|
||||||
} else {
|
} else {
|
||||||
console.log(numProcs*3 + ' restarts in 10 seconds, most likely an error on startup. Halting.');
|
console.log(numProcs*3 + ' restarts in 10 seconds, most likely an error on startup. Halting.');
|
||||||
process.exit();
|
process.exit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('[cluster] Child Process (' + worker.process.pid + ') has exited (code: ' + code + ')');
|
console.log('[cluster] Child Process (' + worker.pid + ') has exited (code: ' + code + ', signal: ' + signal +')');
|
||||||
if (!worker.suicide) {
|
if (!(worker.suicide || code === 0)) {
|
||||||
console.log('[cluster] Spinning up another process...');
|
console.log('[cluster] Spinning up another process...');
|
||||||
|
|
||||||
var wasPrimary = parseInt(worker.id, 10) === Loader.primaryWorker;
|
forkWorker(worker.index, worker.isPrimary);
|
||||||
cluster.fork({
|
|
||||||
handle_jobs: wasPrimary
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
cluster.on('disconnect', function(worker) {
|
worker.on('message', function(message) {
|
||||||
console.log('[cluster] Child Process (' + worker.process.pid + ') has disconnected');
|
if (message && typeof message === 'object' && message.action) {
|
||||||
|
switch (message.action) {
|
||||||
|
case 'ready':
|
||||||
|
if (Loader.js.cache && !worker.isPrimary) {
|
||||||
|
worker.send({
|
||||||
|
action: 'js-propagate',
|
||||||
|
cache: Loader.js.cache,
|
||||||
|
map: Loader.js.map,
|
||||||
|
hash: Loader.js.hash
|
||||||
});
|
});
|
||||||
|
|
||||||
callback();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Loader.start = function(callback) {
|
if (Loader.css.cache && !worker.isPrimary) {
|
||||||
var output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }),
|
worker.send({
|
||||||
worker;
|
action: 'css-propagate',
|
||||||
|
cache: Loader.css.cache,
|
||||||
console.log('Clustering enabled: Spinning up ' + numProcs + ' process(es).\n');
|
acpCache: Loader.css.acpCache,
|
||||||
|
hash: Loader.css.hash
|
||||||
for(var x=0;x<numProcs;x++) {
|
|
||||||
// Only the first worker sets up templates/sounds/jobs/etc
|
|
||||||
worker = cluster.fork({
|
|
||||||
cluster_setup: x === 0,
|
|
||||||
handle_jobs: x === 0
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Logging
|
|
||||||
if (silent) {
|
|
||||||
worker.process.stdout.pipe(output);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (callback) callback();
|
|
||||||
|
break;
|
||||||
|
case 'restart':
|
||||||
|
console.log('[cluster] Restarting...');
|
||||||
|
Loader.restart();
|
||||||
|
break;
|
||||||
|
case 'reload':
|
||||||
|
console.log('[cluster] Reloading...');
|
||||||
|
Loader.reload();
|
||||||
|
break;
|
||||||
|
case 'js-propagate':
|
||||||
|
Loader.js.cache = message.cache;
|
||||||
|
Loader.js.map = message.map;
|
||||||
|
Loader.js.hash = message.hash;
|
||||||
|
|
||||||
|
Loader.notifyWorkers({
|
||||||
|
action: 'js-propagate',
|
||||||
|
cache: message.cache,
|
||||||
|
map: message.map,
|
||||||
|
hash: message.hash
|
||||||
|
}, worker.pid);
|
||||||
|
break;
|
||||||
|
case 'css-propagate':
|
||||||
|
Loader.css.cache = message.cache;
|
||||||
|
Loader.css.acpCache = message.acpCache;
|
||||||
|
Loader.css.hash = message.hash;
|
||||||
|
|
||||||
|
Loader.notifyWorkers({
|
||||||
|
action: 'css-propagate',
|
||||||
|
cache: message.cache,
|
||||||
|
acpCache: message.acpCache,
|
||||||
|
hash: message.hash
|
||||||
|
}, worker.pid);
|
||||||
|
break;
|
||||||
|
case 'templates:compiled':
|
||||||
|
Loader.notifyWorkers({
|
||||||
|
action: 'templates:compiled',
|
||||||
|
}, worker.pid);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
Loader.restart = function(callback) {
|
Loader.start = function(callback) {
|
||||||
// Slate existing workers for termination -- welcome to death row.
|
numProcs = getPorts().length;
|
||||||
Loader.shutdown_queue = Loader.shutdown_queue.concat(Object.keys(cluster.workers));
|
console.log('Clustering enabled: Spinning up ' + numProcs + ' process(es).\n');
|
||||||
|
|
||||||
|
for (var x=0; x<numProcs; ++x) {
|
||||||
|
forkWorker(x, x === 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (callback) {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
function forkWorker(index, isPrimary) {
|
||||||
|
var ports = getPorts();
|
||||||
|
|
||||||
|
if(!ports[index]) {
|
||||||
|
return console.log('[cluster] invalid port for worker : ' + index + ' ports: ' + ports.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
process.env.isPrimary = isPrimary;
|
||||||
|
process.env.isCluster = true;
|
||||||
|
process.env.port = ports[index];
|
||||||
|
|
||||||
|
var worker = fork('app.js', [], {
|
||||||
|
silent: silent,
|
||||||
|
env: process.env
|
||||||
|
});
|
||||||
|
|
||||||
|
worker.index = index;
|
||||||
|
worker.isPrimary = isPrimary;
|
||||||
|
|
||||||
|
workers[index] = worker;
|
||||||
|
|
||||||
|
Loader.addWorkerEvents(worker);
|
||||||
|
|
||||||
|
if (silent) {
|
||||||
|
var output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true });
|
||||||
|
worker.stdout.pipe(output);
|
||||||
|
worker.stderr.pipe(output);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPorts() {
|
||||||
|
var _url = nconf.get('url');
|
||||||
|
if (!_url) {
|
||||||
|
console.log('[cluster] url is undefined, please check your config.json');
|
||||||
|
process.exit();
|
||||||
|
}
|
||||||
|
var urlObject = url.parse(_url);
|
||||||
|
var port = nconf.get('port') || nconf.get('PORT') || urlObject.port || 4567;
|
||||||
|
if (!Array.isArray(port)) {
|
||||||
|
port = [port];
|
||||||
|
}
|
||||||
|
return port;
|
||||||
|
}
|
||||||
|
|
||||||
|
Loader.restart = function() {
|
||||||
|
killWorkers();
|
||||||
|
|
||||||
Loader.start();
|
Loader.start();
|
||||||
};
|
};
|
||||||
|
|
||||||
Loader.reload = function() {
|
Loader.reload = function() {
|
||||||
Object.keys(cluster.workers).forEach(function(worker_id) {
|
workers.forEach(function(worker) {
|
||||||
cluster.workers[worker_id].send({
|
worker.send({
|
||||||
action: 'reload'
|
action: 'reload'
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
Loader.notifyWorkers = function (msg) {
|
Loader.stop = function() {
|
||||||
Object.keys(cluster.workers).forEach(function(id) {
|
killWorkers();
|
||||||
cluster.workers[id].send(msg);
|
|
||||||
|
// Clean up the pidfile
|
||||||
|
fs.unlinkSync(__dirname + '/pidfile');
|
||||||
|
};
|
||||||
|
|
||||||
|
function killWorkers() {
|
||||||
|
workers.forEach(function(worker) {
|
||||||
|
worker.suicide = true;
|
||||||
|
worker.kill();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loader.notifyWorkers = function(msg, worker_pid) {
|
||||||
nconf.argv().file({
|
worker_pid = parseInt(worker_pid, 10);
|
||||||
file: path.join(__dirname, '/config.json')
|
workers.forEach(function(worker) {
|
||||||
|
if (parseInt(worker.pid, 10) !== worker_pid) {
|
||||||
|
try {
|
||||||
|
worker.send(msg);
|
||||||
|
} catch (e) {
|
||||||
|
console.log('[cluster/notifyWorkers] Failed to reach pid ' + worker_pid);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
};
|
||||||
|
|
||||||
numProcs = nconf.get('cluster') || 1;
|
fs.open(path.join(__dirname, 'config.json'), 'r', function(err) {
|
||||||
numProcs = (numProcs === true) ? require('os').cpus().length : numProcs;
|
if (!err) {
|
||||||
|
if (nconf.get('daemon') !== 'false' && nconf.get('daemon') !== false) {
|
||||||
if (nconf.get('daemon') !== false) {
|
|
||||||
if (fs.existsSync(pidFilePath)) {
|
if (fs.existsSync(pidFilePath)) {
|
||||||
try {
|
try {
|
||||||
var pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
|
var pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
|
||||||
@@ -240,7 +259,10 @@ if (nconf.get('daemon') !== false) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
require('daemon')();
|
require('daemon')({
|
||||||
|
stdout: process.stdout,
|
||||||
|
stderr: process.stderr
|
||||||
|
});
|
||||||
|
|
||||||
fs.writeFile(__dirname + '/pidfile', process.pid);
|
fs.writeFile(__dirname + '/pidfile', process.pid);
|
||||||
}
|
}
|
||||||
@@ -248,10 +270,14 @@ if (nconf.get('daemon') !== false) {
|
|||||||
async.series([
|
async.series([
|
||||||
Loader.init,
|
Loader.init,
|
||||||
Loader.displayStartupMessages,
|
Loader.displayStartupMessages,
|
||||||
Loader.addClusterEvents,
|
|
||||||
Loader.start
|
Loader.start
|
||||||
], function(err) {
|
], function(err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log('[loader] Error during startup: ' + err.message);
|
console.log('[loader] Error during startup: ' + err.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
// No config detected, kickstart web installer
|
||||||
|
var child = require('child_process').fork('app');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|||||||
73
minifier.js
73
minifier.js
@@ -6,31 +6,49 @@ var uglifyjs = require('uglify-js'),
|
|||||||
fs = require('fs'),
|
fs = require('fs'),
|
||||||
path = require('path'),
|
path = require('path'),
|
||||||
crypto = require('crypto'),
|
crypto = require('crypto'),
|
||||||
|
utils = require('./public/src/utils'),
|
||||||
|
|
||||||
Minifier = {
|
Minifier = {
|
||||||
js: {}
|
js: {}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Javascript */
|
/* Javascript */
|
||||||
Minifier.js.minify = function (scripts, relativePath, minify, callback) {
|
Minifier.js.minify = function (scripts, minify, callback) {
|
||||||
var options = {
|
|
||||||
compress: false,
|
|
||||||
sourceMapURL: '/nodebb.min.js.map',
|
|
||||||
outSourceMap: 'nodebb.min.js.map',
|
|
||||||
sourceRoot: relativePath
|
|
||||||
};
|
|
||||||
|
|
||||||
scripts = scripts.filter(function(file) {
|
scripts = scripts.filter(function(file) {
|
||||||
return fs.existsSync(file);
|
return fs.existsSync(file) && file.endsWith('.js');
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!minify) {
|
if (minify) {
|
||||||
options.mangle = false;
|
minifyScripts(scripts, function() {
|
||||||
options.prefix = 1;
|
callback.apply(this, arguments);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
concatenateScripts(scripts, callback);
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
process.on('message', function(payload) {
|
||||||
|
switch(payload.action) {
|
||||||
|
case 'js':
|
||||||
|
Minifier.js.minify(payload.scripts, payload.minify, function(minified/*, sourceMap*/) {
|
||||||
|
process.send({
|
||||||
|
type: 'end',
|
||||||
|
// sourceMap: sourceMap,
|
||||||
|
minified: minified
|
||||||
|
});
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function minifyScripts(scripts, callback) {
|
||||||
|
// The portions of code involving the source map are commented out as they're broken in UglifyJS2
|
||||||
|
// Follow along here: https://github.com/mishoo/UglifyJS2/issues/700
|
||||||
try {
|
try {
|
||||||
var minified = uglifyjs.minify(scripts, options),
|
var minified = uglifyjs.minify(scripts, {
|
||||||
|
// outSourceMap: "nodebb.min.js.map",
|
||||||
|
compress: false
|
||||||
|
}),
|
||||||
hasher = crypto.createHash('md5'),
|
hasher = crypto.createHash('md5'),
|
||||||
hash;
|
hash;
|
||||||
|
|
||||||
@@ -42,27 +60,26 @@ Minifier.js.minify = function (scripts, relativePath, minify, callback) {
|
|||||||
payload: hash.slice(0, 8)
|
payload: hash.slice(0, 8)
|
||||||
});
|
});
|
||||||
|
|
||||||
callback({
|
callback(minified.code/*, minified.map*/);
|
||||||
js: minified.code,
|
|
||||||
map: minified.map
|
|
||||||
});
|
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
|
process.send({
|
||||||
|
type: 'error',
|
||||||
|
payload: err.message
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function concatenateScripts(scripts, callback) {
|
||||||
|
async.map(scripts, fs.readFile, function(err, scripts) {
|
||||||
|
if (err) {
|
||||||
process.send({
|
process.send({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
payload: err
|
payload: err
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
process.on('message', function(payload) {
|
scripts = scripts.join(require('os').EOL + ';');
|
||||||
switch(payload.action) {
|
|
||||||
case 'js':
|
callback(scripts);
|
||||||
Minifier.js.minify(payload.scripts, payload.relativePath, payload.minify, function(data) {
|
|
||||||
process.send({
|
|
||||||
type: 'end',
|
|
||||||
data: data
|
|
||||||
});
|
});
|
||||||
});
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
263
nodebb
263
nodebb
@@ -1,125 +1,168 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env node
|
||||||
|
|
||||||
# $0 script path
|
var colors = require('colors'),
|
||||||
# $1 action
|
cproc = require('child_process'),
|
||||||
# $2 subaction
|
argv = require('minimist')(process.argv.slice(2)),
|
||||||
|
fs = require('fs'),
|
||||||
|
async = require('async'),
|
||||||
|
touch = require('touch'),
|
||||||
|
npm = require('npm');
|
||||||
|
|
||||||
node="$(which nodejs 2>/dev/null)";
|
var getRunningPid = function(callback) {
|
||||||
if [ $? -gt 0 ];
|
fs.readFile(__dirname + '/pidfile', {
|
||||||
then node="$(which node)";
|
encoding: 'utf-8'
|
||||||
fi
|
}, function(err, pid) {
|
||||||
|
if (err) {
|
||||||
function pidExists() {
|
return callback(err);
|
||||||
if [ -e "pidfile" ];
|
|
||||||
then
|
|
||||||
kill -s 0 $(cat pidfile);
|
|
||||||
if [ !$? ];
|
|
||||||
then return 1;
|
|
||||||
else return 0;
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$1" in
|
try {
|
||||||
start)
|
process.kill(parseInt(pid, 10), 0);
|
||||||
echo "Starting NodeBB";
|
callback(null, parseInt(pid, 10));
|
||||||
echo " \"./nodebb stop\" to stop the NodeBB server";
|
} catch(e) {
|
||||||
echo " \"./nodebb log\" to view server output";
|
callback(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
# Start the loader daemon
|
switch(process.argv[2]) {
|
||||||
"$node" loader -d "$@"
|
case 'status':
|
||||||
;;
|
getRunningPid(function(err, pid) {
|
||||||
|
if (!err) {
|
||||||
|
process.stdout.write('\nNodeBB Running '.bold + '(pid '.cyan + pid.toString().cyan + ')\n'.cyan);
|
||||||
|
process.stdout.write('\t"' + './nodebb stop'.yellow + '" to stop the NodeBB server\n');
|
||||||
|
process.stdout.write('\t"' + './nodebb log'.yellow + '" to view server output\n');
|
||||||
|
process.stdout.write('\t"' + './nodebb restart'.yellow + '" to restart NodeBB\n\n');
|
||||||
|
} else {
|
||||||
|
process.stdout.write('\nNodeBB is not running\n'.bold);
|
||||||
|
process.stdout.write('\t"' + './nodebb start'.yellow + '" to launch the NodeBB server\n\n'.reset);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
break;
|
||||||
|
|
||||||
stop)
|
case 'start':
|
||||||
pidExists;
|
process.stdout.write('\nStarting NodeBB\n'.bold);
|
||||||
if [ 0 -eq $? ];
|
process.stdout.write(' "' + './nodebb stop'.yellow + '" to stop the NodeBB server\n');
|
||||||
then
|
process.stdout.write(' "' + './nodebb log'.yellow + '" to view server output\n');
|
||||||
echo "NodeBB is already stopped.";
|
process.stdout.write(' "' + './nodebb restart'.yellow + '" to restart NodeBB\n\n'.reset);
|
||||||
else
|
|
||||||
echo "Stopping NodeBB. Goodbye!";
|
|
||||||
kill $(cat pidfile);
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
reload|restart)
|
// Spawn a new NodeBB process
|
||||||
pidExists;
|
cproc.fork(__dirname + '/loader.js', {
|
||||||
if [ 0 -eq $? ];
|
env: process.env
|
||||||
then
|
});
|
||||||
echo "NodeBB could not be restarted, as a running instance could not be found.";
|
break;
|
||||||
else
|
|
||||||
echo "Restarting NodeBB.";
|
|
||||||
kill -1 $(cat pidfile);
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
status)
|
case 'stop':
|
||||||
pidExists;
|
getRunningPid(function(err, pid) {
|
||||||
if [ 0 -eq $? ];
|
if (!err) {
|
||||||
then
|
process.kill(pid, 'SIGTERM');
|
||||||
echo "NodeBB is not running";
|
process.stdout.write('Stopping NodeBB. Goodbye!\n')
|
||||||
echo " \"./nodebb start\" to launch the NodeBB server";
|
} else {
|
||||||
else
|
process.stdout.write('NodeBB is already stopped.\n');
|
||||||
echo "NodeBB Running (pid $(cat pidfile))";
|
}
|
||||||
echo " \"./nodebb stop\" to stop the NodeBB server";
|
});
|
||||||
echo " \"./nodebb log\" to view server output";
|
break;
|
||||||
echo " \"./nodebb restart\" to restart NodeBB";
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
log)
|
case 'restart':
|
||||||
clear;
|
getRunningPid(function(err, pid) {
|
||||||
tail -F ./logs/output.log;
|
if (!err) {
|
||||||
;;
|
process.kill(pid, 'SIGHUP');
|
||||||
|
} else {
|
||||||
|
process.stdout.write('NodeBB could not be restarted, as a running instance could not be found.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
|
||||||
upgrade)
|
case 'reload':
|
||||||
npm install
|
getRunningPid(function(err, pid) {
|
||||||
# ls -d node_modules/nodebb* | xargs -n1 basename | xargs npm install
|
if (!err) {
|
||||||
# ls -d node_modules/nodebb* | xargs -n1 basename | xargs npm update
|
process.kill(pid, 'SIGUSR2');
|
||||||
npm i nodebb-theme-vanilla nodebb-theme-lavender nodebb-widget-essentials
|
} else {
|
||||||
"$node" app --upgrade
|
process.stdout.write('NodeBB could not be reloaded, as a running instance could not be found.');
|
||||||
touch package.json
|
}
|
||||||
echo -e "\n\e[00;32mNodeBB Dependencies up-to-date!\e[00;00m";
|
});
|
||||||
;;
|
break;
|
||||||
|
|
||||||
setup)
|
case 'dev':
|
||||||
"$node" app --setup "$@"
|
process.env.NODE_ENV = 'development';
|
||||||
;;
|
cproc.fork(__dirname + '/loader.js', ['--no-daemon', '--no-silent'], {
|
||||||
|
env: process.env
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
|
||||||
reset)
|
case 'log':
|
||||||
"$node" app --reset --$2
|
process.stdout.write('\nType '.red + 'Ctrl-C '.bold + 'to exit'.red);
|
||||||
;;
|
process.stdout.write('\n\n'.reset);
|
||||||
|
cproc.spawn('tail', ['-F', './logs/output.log'], {
|
||||||
|
cwd: __dirname,
|
||||||
|
stdio: 'inherit'
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
|
||||||
dev)
|
case 'setup':
|
||||||
echo "Launching NodeBB in \"development\" mode."
|
cproc.fork('app.js', ['--setup'], {
|
||||||
echo "To run the production build of NodeBB, please use \"forever\"."
|
cwd: __dirname,
|
||||||
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
|
silent: false
|
||||||
NODE_ENV=development "$node" loader --no-daemon "$@"
|
});
|
||||||
;;
|
break;
|
||||||
|
|
||||||
watch)
|
case 'reset':
|
||||||
echo "Launching NodeBB in \"development\" mode."
|
var args = process.argv.slice(0);
|
||||||
echo "To run the production build of NodeBB, please use \"forever\"."
|
args.unshift('--reset');
|
||||||
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
|
|
||||||
NODE_ENV=development supervisor -q --ignore public/templates,public/nodebb.min.js,public/nodebb.min.js.map --extensions 'node|js|tpl|less' -- app "$@"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
cproc.fork('app.js', args, {
|
||||||
echo "Welcome to NodeBB"
|
cwd: __dirname,
|
||||||
echo $"Usage: $0 {start|stop|reload|restart|log|setup|reset|upgrade|dev|watch}"
|
silent: false
|
||||||
echo ''
|
});
|
||||||
column -s ' ' -t <<< '
|
break;
|
||||||
start Start the NodeBB server
|
|
||||||
stop Stops the NodeBB server
|
case 'upgrade':
|
||||||
reload Restarts NodeBB
|
async.series([
|
||||||
restart Restarts NodeBB
|
function(next) {
|
||||||
log Opens the logging interface (useful for debugging)
|
process.stdout.write('1. '.bold + 'Bringing base dependencies up to date\n'.yellow);
|
||||||
setup Runs the NodeBB setup script
|
npm.load({
|
||||||
reset Disables all plugins, restores the default theme.
|
loglevel: 'silent'
|
||||||
upgrade Run NodeBB upgrade scripts, ensure packages are up-to-date
|
}, function() {
|
||||||
dev Start NodeBB in interactive development mode
|
npm.commands.install(next);
|
||||||
watch Start NodeBB in development mode and watch for changes
|
});
|
||||||
'
|
},
|
||||||
exit 1
|
function(next) {
|
||||||
esac
|
process.stdout.write('2. '.bold + 'Updating NodeBB data store schema\n'.yellow);
|
||||||
|
var upgradeProc = cproc.fork('app.js', ['--upgrade'], {
|
||||||
|
cwd: __dirname,
|
||||||
|
silent: false
|
||||||
|
});
|
||||||
|
|
||||||
|
upgradeProc.on('close', next)
|
||||||
|
},
|
||||||
|
function(next) {
|
||||||
|
process.stdout.write('3. '.bold + 'Storing upgrade date in "package.json"\n'.yellow);
|
||||||
|
touch(__dirname + '/package.json', {}, next);
|
||||||
|
}
|
||||||
|
], function(err) {
|
||||||
|
if (err) {
|
||||||
|
process.stdout.write('\nError'.red + ': ' + err.message + '\n');
|
||||||
|
} else {
|
||||||
|
var message = 'NodeBB Upgrade Complete!',
|
||||||
|
spaces = new Array(Math.floor(process.stdout.columns / 2) - (message.length / 2) + 1).join(' ');
|
||||||
|
process.stdout.write('\n' + spaces + message.green.bold + '\n\n'.reset);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
process.stdout.write('\nWelcome to NodeBB\n\n'.bold);
|
||||||
|
process.stdout.write('Usage: ./nodebb {start|stop|reload|restart|log|setup|reset|upgrade|dev}\n\n');
|
||||||
|
process.stdout.write('\t' + 'start'.yellow + '\tStart the NodeBB server\n');
|
||||||
|
process.stdout.write('\t' + 'stop'.yellow + '\tStops the NodeBB server\n');
|
||||||
|
process.stdout.write('\t' + 'reload'.yellow + '\tRestarts NodeBB\n');
|
||||||
|
process.stdout.write('\t' + 'restart'.yellow + '\tRestarts NodeBB\n');
|
||||||
|
process.stdout.write('\t' + 'log'.yellow + '\tOpens the logging interface (useful for debugging)\n');
|
||||||
|
process.stdout.write('\t' + 'setup'.yellow + '\tRuns the NodeBB setup script\n');
|
||||||
|
process.stdout.write('\t' + 'reset'.yellow + '\tDisables all plugins, restores the default theme.\n');
|
||||||
|
process.stdout.write('\t' + 'upgrade'.yellow + '\tRun NodeBB upgrade scripts, ensure packages are up-to-date\n');
|
||||||
|
process.stdout.write('\t' + 'dev'.yellow + '\tStart NodeBB in interactive development mode\n');
|
||||||
|
process.stdout.write('\t' + 'watch'.yellow + '\tStart NodeBB in development mode and watch for changes\n');
|
||||||
|
process.stdout.write('\n'.reset);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|||||||
122
nodebb.bat
Normal file
122
nodebb.bat
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
rem %1 action
|
||||||
|
rem %2 subaction
|
||||||
|
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
2>nul call :CASE_%1
|
||||||
|
if ERRORLEVEL 1 call :DEFAULT_CASE
|
||||||
|
|
||||||
|
exit /B
|
||||||
|
|
||||||
|
:CASE_start
|
||||||
|
echo Starting NodeBB
|
||||||
|
echo "nodebb.bat stop" to stop the NodeBB server
|
||||||
|
echo "nodebb.bat log" to view server output
|
||||||
|
|
||||||
|
rem Start the loader daemon
|
||||||
|
node loader %*
|
||||||
|
|
||||||
|
goto END_CASE
|
||||||
|
|
||||||
|
:CASE_stop
|
||||||
|
call :pidexists
|
||||||
|
if %_result%==0 (
|
||||||
|
echo NodeBB is already stopped.
|
||||||
|
) else (
|
||||||
|
echo Stopping NodeBB. Goodbye!
|
||||||
|
|
||||||
|
rem Doing this forcefully is probably not the best method
|
||||||
|
taskkill /PID !_pid! /f>nul
|
||||||
|
)
|
||||||
|
|
||||||
|
goto END_CASE
|
||||||
|
|
||||||
|
:CASE_restart
|
||||||
|
echo Unsupported
|
||||||
|
|
||||||
|
goto END_CASE
|
||||||
|
|
||||||
|
:CASE_reload
|
||||||
|
echo Unsupported
|
||||||
|
|
||||||
|
goto END_CASE
|
||||||
|
|
||||||
|
:CASE_status
|
||||||
|
call :pidexists
|
||||||
|
if %_result%==0 (
|
||||||
|
echo NodeBB is not running
|
||||||
|
echo "nodebb.bat start" to launch the NodeBB server
|
||||||
|
) else (
|
||||||
|
echo NodeBB Running ^(pid !_pid!^)
|
||||||
|
echo "nodebb.bat stop" to stop the NodeBB server
|
||||||
|
echo "nodebb.bat log" to view server output
|
||||||
|
echo "nodebb.bat restart" to restart NodeBB
|
||||||
|
)
|
||||||
|
|
||||||
|
goto END_CASE
|
||||||
|
|
||||||
|
:CASE_log
|
||||||
|
cls
|
||||||
|
type .\logs\output.log
|
||||||
|
|
||||||
|
goto END_CASE
|
||||||
|
|
||||||
|
:CASE_upgrade
|
||||||
|
call npm install
|
||||||
|
call npm i nodebb-theme-vanilla nodebb-theme-lavender nodebb-widget-essentials
|
||||||
|
node app --upgrade
|
||||||
|
copy /b package.json +,,>nul
|
||||||
|
|
||||||
|
goto END_CASE
|
||||||
|
|
||||||
|
:CASE_setup
|
||||||
|
node app --setup %*
|
||||||
|
|
||||||
|
goto END_CASE
|
||||||
|
|
||||||
|
:CASE_reset
|
||||||
|
node app --reset --%2
|
||||||
|
|
||||||
|
goto END_CASE
|
||||||
|
|
||||||
|
:CASE_dev
|
||||||
|
echo Launching NodeBB in "development" mode.
|
||||||
|
echo To run the production build of NodeBB, please use "forever".
|
||||||
|
echo More Information: https://docs.nodebb.org/en/latest/running/index.html
|
||||||
|
set NODE_ENV=development
|
||||||
|
node loader --no-daemon %*
|
||||||
|
|
||||||
|
goto END_CASE
|
||||||
|
|
||||||
|
:CASE_watch
|
||||||
|
echo Not supported
|
||||||
|
|
||||||
|
goto END_CASE
|
||||||
|
|
||||||
|
:DEFAULT_CASE
|
||||||
|
echo Welcome to NodeBB
|
||||||
|
echo Usage: nodebb.bat ^{start^|stop^|reload^|restart^|log^|setup^|reset^|upgrade^|dev^|watch^}
|
||||||
|
|
||||||
|
goto END_CASE
|
||||||
|
|
||||||
|
:END_CASE
|
||||||
|
endlocal
|
||||||
|
VER > NUL
|
||||||
|
goto :EOF
|
||||||
|
|
||||||
|
:pidexists
|
||||||
|
if exist %~dp0pidfile (
|
||||||
|
set /p _pid=<pidfile
|
||||||
|
|
||||||
|
for /f "usebackq" %%Z in (`tasklist /nh /fi "PID eq !_pid!"`) do (
|
||||||
|
if %%Z==INFO: (
|
||||||
|
del pidfile
|
||||||
|
set _result=0
|
||||||
|
) else (
|
||||||
|
set _result=1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
) else (
|
||||||
|
set _result=0
|
||||||
|
)
|
||||||
3534
npm-shrinkwrap.json
generated
Normal file
3534
npm-shrinkwrap.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
77
package.json
77
package.json
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "nodebb",
|
"name": "nodebb",
|
||||||
"license": "GPLv3 or later",
|
"license": "GPL-3.0",
|
||||||
"description": "NodeBB Forum",
|
"description": "NodeBB Forum",
|
||||||
"version": "0.5.3-dev",
|
"version": "0.7.1",
|
||||||
"homepage": "http://www.nodebb.org",
|
"homepage": "http://www.nodebb.org",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@@ -10,14 +10,14 @@
|
|||||||
},
|
},
|
||||||
"main": "app.js",
|
"main": "app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "./nodebb start",
|
"start": "node loader.js",
|
||||||
"stop": "./nodebb stop",
|
|
||||||
"test": "mocha ./tests -t 10000"
|
"test": "mocha ./tests -t 10000"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"async": "~0.9.0",
|
"async": "~0.9.0",
|
||||||
"bcryptjs": "~2.0.1",
|
"bcryptjs": "~2.1.0",
|
||||||
"body-parser": "^1.9.0",
|
"body-parser": "^1.9.0",
|
||||||
|
"colors": "^1.1.0",
|
||||||
"compression": "^1.1.0",
|
"compression": "^1.1.0",
|
||||||
"connect-ensure-login": "^0.1.1",
|
"connect-ensure-login": "^0.1.1",
|
||||||
"connect-flash": "^0.1.1",
|
"connect-flash": "^0.1.1",
|
||||||
@@ -28,43 +28,58 @@
|
|||||||
"daemon": "~1.1.0",
|
"daemon": "~1.1.0",
|
||||||
"express": "^4.9.5",
|
"express": "^4.9.5",
|
||||||
"express-session": "^1.8.2",
|
"express-session": "^1.8.2",
|
||||||
"gm": "1.16.0",
|
|
||||||
"gravatar": "^1.1.0",
|
"gravatar": "^1.1.0",
|
||||||
"less": "^1.7.5",
|
"heapdump": "^0.3.0",
|
||||||
|
"less": "^2.0.0",
|
||||||
"logrotate-stream": "^0.2.3",
|
"logrotate-stream": "^0.2.3",
|
||||||
|
"lru-cache": "^2.6.1",
|
||||||
|
"lwip": "0.0.7",
|
||||||
|
"mime": "^1.3.4",
|
||||||
|
"minimist": "^1.1.1",
|
||||||
"mkdirp": "~0.5.0",
|
"mkdirp": "~0.5.0",
|
||||||
|
"mmmagic": "^0.3.13",
|
||||||
"morgan": "^1.3.2",
|
"morgan": "^1.3.2",
|
||||||
"nconf": "~0.6.7",
|
"nconf": "~0.7.1",
|
||||||
"nodebb-plugin-dbsearch": "0.0.15",
|
"nodebb-plugin-composer-default": "^1.0.7",
|
||||||
"nodebb-plugin-markdown": "^0.7.0",
|
"nodebb-plugin-dbsearch": "^0.2.12",
|
||||||
"nodebb-plugin-mentions": "~0.6.0",
|
"nodebb-plugin-emoji-extended": "^0.4.8",
|
||||||
"nodebb-plugin-soundpack-default": "~0.1.1",
|
"nodebb-plugin-markdown": "^4.0.0",
|
||||||
"nodebb-theme-lavender": "~0.1.0",
|
"nodebb-plugin-mentions": "^0.11.7",
|
||||||
"nodebb-theme-vanilla": "~0.1.0",
|
"nodebb-plugin-soundpack-default": "^0.1.1",
|
||||||
"nodebb-widget-essentials": "~0.1.1",
|
"nodebb-plugin-spam-be-gone": "^0.4.0",
|
||||||
|
"nodebb-rewards-essentials": "^0.0.1",
|
||||||
|
"nodebb-theme-lavender": "^1.0.48",
|
||||||
|
"nodebb-theme-persona": "^1.0.16",
|
||||||
|
"nodebb-theme-vanilla": "^2.0.14",
|
||||||
|
"nodebb-widget-essentials": "^1.0.2",
|
||||||
"npm": "^2.1.4",
|
"npm": "^2.1.4",
|
||||||
"passport": "^0.2.1",
|
"passport": "^0.2.1",
|
||||||
"passport-local": "1.0.0",
|
"passport-local": "1.0.0",
|
||||||
"prompt": "^0.2.14",
|
"prompt": "^0.2.14",
|
||||||
"request": "^2.44.0",
|
"request": "^2.44.0",
|
||||||
"rimraf": "~2.2.6",
|
"rimraf": "~2.3.2",
|
||||||
"rss": "^1.0.0",
|
"rss": "^1.0.0",
|
||||||
"semver": "^4.0.3",
|
"semver": "^4.3.3",
|
||||||
"serve-favicon": "^2.1.5",
|
"serve-favicon": "^2.1.5",
|
||||||
"sitemap": "^0.7.4",
|
"sitemap": "^0.8.1",
|
||||||
"socket.io": "^0.9.17",
|
"socket.io": "^1.2.1",
|
||||||
"socket.io-client": "^0.9.17",
|
"socket.io-client": "^1.2.1",
|
||||||
"socket.io-wildcard": "~0.1.1",
|
"socket.io-redis": "^0.1.3",
|
||||||
"string": "^2.1.0",
|
"socketio-wildcard": "~0.1.1",
|
||||||
"templates.js": "0.1.2",
|
"string": "^3.0.0",
|
||||||
"uglify-js": "git+https://github.com/julianlam/UglifyJS2.git",
|
"templates.js": "^0.2.6",
|
||||||
"underscore": "~1.7.0",
|
"touch": "0.0.3",
|
||||||
"validator": "~3.21.0",
|
"uglify-js": "^2.4.23",
|
||||||
"winston": "^0.8.0",
|
"underscore": "~1.8.3",
|
||||||
|
"underscore.deep": "^0.5.1",
|
||||||
|
"validator": "^3.30.0",
|
||||||
|
"winston": "^0.9.0",
|
||||||
"xregexp": "~2.0.0"
|
"xregexp": "~2.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"mocha": "~1.13.0"
|
"mocha": "~1.13.0",
|
||||||
|
"grunt": "~0.4.5",
|
||||||
|
"grunt-contrib-watch": "^0.6.1"
|
||||||
},
|
},
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/NodeBB/NodeBB/issues"
|
"url": "https://github.com/NodeBB/NodeBB/issues"
|
||||||
@@ -75,17 +90,17 @@
|
|||||||
"maintainers": [
|
"maintainers": [
|
||||||
{
|
{
|
||||||
"name": "Andrew Rodrigues",
|
"name": "Andrew Rodrigues",
|
||||||
"email": "andrew@designcreateplay.com",
|
"email": "andrew@nodebb.org",
|
||||||
"url": "https://github.com/psychobunny"
|
"url": "https://github.com/psychobunny"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Julian Lam",
|
"name": "Julian Lam",
|
||||||
"email": "julian@designcreateplay.com",
|
"email": "julian@nodebb.org",
|
||||||
"url": "https://github.com/julianlam"
|
"url": "https://github.com/julianlam"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Barış Soner Uşaklı",
|
"name": "Barış Soner Uşaklı",
|
||||||
"email": "baris@designcreateplay.com",
|
"email": "baris@nodebb.org",
|
||||||
"url": "https://github.com/barisusakli"
|
"url": "https://github.com/barisusakli"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 521 B |
BIN
public/images/cover-default.png
Normal file
BIN
public/images/cover-default.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
@@ -1,8 +1,12 @@
|
|||||||
{
|
{
|
||||||
"new_topic_button": "موضوع جديد",
|
"new_topic_button": "موضوع جديد",
|
||||||
"no_topics": "<strong>لا توجد مواضيع في هذه الفئة</strong>لماذا لا تحاول نشر موضوع؟<br />",
|
"guest-login-post": "يجب عليك تسجيل الدخول للرد",
|
||||||
|
"no_topics": "<strong>لا توجد مواضيع في هذه الفئة</strong>لم لا تحاول إنشاء موضوع؟<br />",
|
||||||
"browsing": "تصفح",
|
"browsing": "تصفح",
|
||||||
"no_replies": "لم يرد أحد",
|
"no_replies": "لا توجد ردود.",
|
||||||
"share_this_category": "انشر هذه الفئة",
|
"share_this_category": "انشر هذه الفئة",
|
||||||
"ignore": "Ignore"
|
"watch": "متابعة",
|
||||||
|
"ignore": "تجاهل",
|
||||||
|
"watch.message": "أنت اﻷن متابع لتحديثات هذه الفئة",
|
||||||
|
"ignore.message": "أنت اﻷن تتجاهل تحديثات هذه الفئة"
|
||||||
}
|
}
|
||||||
@@ -1,23 +1,32 @@
|
|||||||
{
|
{
|
||||||
"password-reset-requested": "Password Reset Requested - %1!",
|
"password-reset-requested": "تم طلب إعادة تعيين كلمة المرور - %1!",
|
||||||
"welcome-to": "Welcome to %1",
|
"welcome-to": "مرحبًا بك في %1",
|
||||||
"greeting_no_name": "Hello",
|
"invite": "Invitation from %1",
|
||||||
"greeting_with_name": "Hello %1",
|
"greeting_no_name": "مرحبًا",
|
||||||
"welcome.text1": "Thank you for registering with %1!",
|
"greeting_with_name": "مرحبًا بك يا %1",
|
||||||
"welcome.text2": "To fully activate your account, we need to verify that you own the email address you registered with.",
|
"welcome.text1": "شكرًا على تسجيلك في %1!",
|
||||||
"welcome.cta": "Click here to confirm your email address",
|
"welcome.text2": "لتفعيل حسابك، نحتاج إلى التأكد من صحة عنوان البريد الإلكتروني الذي تسجلت به.",
|
||||||
"reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.",
|
"welcome.text3": "An administrator has accepted your registration application. You can login with your username/password now.",
|
||||||
"reset.text2": "To continue with the password reset, please click on the following link:",
|
"welcome.cta": "انقر هنا لتفعيل عنوان بريدك الإلكتروني",
|
||||||
"reset.cta": "Click here to reset your password",
|
"invitation.text1": "%1 has invited you to join %2",
|
||||||
"digest.notifications": "You have unread notifications from %1:",
|
"invitation.ctr": "Click here to create your account.",
|
||||||
"digest.latest_topics": "Latest topics from %1",
|
"reset.text1": "لقد توصلنا بطلب إعادة تعيين كلمة المرور الخاصة بك، ربما لكونك قد نسيتها, إن لم يكن الأمر كذلك، المرجو تجاهل هذه الرسالة.",
|
||||||
"digest.cta": "Click here to visit %1",
|
"reset.text2": "لمواصلة طلب إعاة تعيين كلمة المرور، الرجاء تتبع هذا الرابط.",
|
||||||
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
"reset.cta": "انقر هنا لإعادة تعيين كلمة السر الخاصة بك.",
|
||||||
"digest.daily.no_topics": "There have been no active topics in the past day",
|
"reset.notify.subject": "تم تغيير كلمة المرور بنجاح",
|
||||||
"notif.chat.subject": "New chat message received from %1",
|
"reset.notify.text1": "نحيطك علما أن كلمة مرورك قد تم تغييرها في %1",
|
||||||
"notif.chat.cta": "Click here to continue the conversation",
|
"reset.notify.text2": "إن لم يكن لديك علم بهذا، المرجو إشعار مدبر النظام بأسرع مايمكن.",
|
||||||
"notif.chat.unsub.info": "This chat notification was sent to you due to your subscription settings.",
|
"digest.notifications": "لديك تنبيهات غير مقروءة من طرف %1:",
|
||||||
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
"digest.latest_topics": "آخر المستجدات من %1",
|
||||||
"unsub.cta": "Click here to alter those settings",
|
"digest.cta": "انقر هنا لمشاهدة %1",
|
||||||
"closing": "Thanks!"
|
"digest.unsub.info": "تم إرسال هذا الإشعار بآخر المستجدات وفقا لخيارات تسجيلكم.",
|
||||||
|
"digest.no_topics": "ليس هناك مواضيع نشيطة في %1 الماضي",
|
||||||
|
"notif.chat.subject": "هناك محادثة جديدة من %1",
|
||||||
|
"notif.chat.cta": "انقر هنا لمتابعة المحادثة",
|
||||||
|
"notif.chat.unsub.info": "تم إرسال هذا الإشعار بوجودة محادثة جديدة وفقا لخيارات تسجيلك.",
|
||||||
|
"notif.post.cta": "انقر هنا لقراءة الموضوع بأكمله",
|
||||||
|
"notif.post.unsub.info": "تم إشعارك بهذه المشاركة بناءً على الخيارات التي سبق وأن حددتها.",
|
||||||
|
"test.text1": "هذه رسالة تجريبية للتأكد من صحة إعدادت الرسائل الإلكترونية في منتدى NodeBB خاصتك.",
|
||||||
|
"unsub.cta": "انقر هنا لتغيير تلك الإعدادات",
|
||||||
|
"closing": "شكرًا لك!"
|
||||||
}
|
}
|
||||||
@@ -1,64 +1,88 @@
|
|||||||
{
|
{
|
||||||
"invalid-data": "بيانات غير صالحة",
|
"invalid-data": "بيانات غير صالحة",
|
||||||
"not-logged-in": "لم تقم بتسجيل الدخول",
|
"not-logged-in": "لم تقم بتسجيل الدخول",
|
||||||
"account-locked": "Your account has been locked temporarily",
|
"account-locked": "تم حظر حسابك مؤقتًا.",
|
||||||
"search-requires-login": "Searching requires an account! Please login or register!",
|
"search-requires-login": "البحث في المنتدى يتطلب حساب - الرجاء تسجيل الدخول أو التسجيل",
|
||||||
"invalid-cid": "Invalid Category ID",
|
"invalid-cid": "قائمة غير موجودة",
|
||||||
"invalid-tid": "Invalid Topic ID",
|
"invalid-tid": "موضوع غير متواجد",
|
||||||
"invalid-pid": "Invalid Post ID",
|
"invalid-pid": "رد غير موجود",
|
||||||
"invalid-uid": "Invalid User ID",
|
"invalid-uid": "مستخدم غير موجود",
|
||||||
"invalid-username": "اسم المستخدم غير مقبول",
|
"invalid-username": "اسم المستخدم غير مقبول",
|
||||||
"invalid-email": "البريد الاكتروني غير مقبول",
|
"invalid-email": "البريد الاكتروني غير مقبول",
|
||||||
"invalid-title": "Invalid title!",
|
"invalid-title": "عنوان غير صحيح",
|
||||||
"invalid-user-data": "Invalid User Data",
|
"invalid-user-data": "بيانات المستخدم غير صحيحة",
|
||||||
"invalid-password": "كلمة السر غير مقبولة",
|
"invalid-password": "كلمة السر غير مقبولة",
|
||||||
"invalid-username-or-password": "Please specify both a username and password",
|
"invalid-username-or-password": "المرجود تحديد اسم مستخدم و كلمة مرور",
|
||||||
"invalid-search-term": "Invalid search term",
|
"invalid-search-term": "كلمة البحث غير صحيحة",
|
||||||
"invalid-pagination-value": "Invalid pagination value",
|
"invalid-pagination-value": "رقم الصفحة غير موجود",
|
||||||
"username-taken": "اسم المستخدم ماخوذ",
|
"username-taken": "اسم المستخدم مأخوذ",
|
||||||
"email-taken": "البريد الالكتروني ماخوذ",
|
"email-taken": "البريد الالكتروني مأخوذ",
|
||||||
"email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
|
"email-not-confirmed": "عنوان بريدك الإلكتروني غير مفعل بعد. انقر هنا لتفعيله من فضلك.",
|
||||||
"username-too-short": "Username too short",
|
"email-not-confirmed-chat": "لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
|
||||||
"username-too-long": "Username too long",
|
"no-email-to-confirm": "هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.",
|
||||||
|
"email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.",
|
||||||
|
"confirm-email-already-sent": "لقد تم ارسال بريد التأكيد، الرجاء اﻹنتظار 1% دقائق لإعادة اﻹرسال",
|
||||||
|
"username-too-short": "اسم المستخدم قصير.",
|
||||||
|
"username-too-long": "اسم المستخدم طويل",
|
||||||
"user-banned": "المستخدم محظور",
|
"user-banned": "المستخدم محظور",
|
||||||
"user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
|
"user-too-new": "عذرا, يجب أن تنتظر 1% ثواني قبل قيامك بأول مشاركة",
|
||||||
"no-category": "Category does not exist",
|
"no-category": "قائمة غير موجودة",
|
||||||
"no-topic": "Topic does not exist",
|
"no-topic": "موضوع غير موجود",
|
||||||
"no-post": "Post does not exist",
|
"no-post": "رد غير موجود",
|
||||||
"no-group": "Group does not exist",
|
"no-group": "مجموعة غير موجودة",
|
||||||
"no-user": "User does not exist",
|
"no-user": "اسم مستخدم غير موجود",
|
||||||
"no-teaser": "Teaser does not exist",
|
"no-teaser": "مقتطف غير موجود",
|
||||||
"no-privileges": "You do not have enough privileges for this action.",
|
"no-privileges": "لاتملك الصلاحيات اللازمة للقيام بهذه العملية",
|
||||||
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
|
"no-emailers-configured": "لا يمكن إرسال رسالة إلكترونية تجريبية لعدم وجود قوالب خاصة بالرسائل الإلكترونية،",
|
||||||
"category-disabled": "Category disabled",
|
"category-disabled": "قائمة معطلة",
|
||||||
"topic-locked": "الموضوع مقفول",
|
"topic-locked": "الموضوع مقفول",
|
||||||
|
"post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting",
|
||||||
"still-uploading": "الرجاء انتظار الرفع",
|
"still-uploading": "الرجاء انتظار الرفع",
|
||||||
"content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
|
"content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).",
|
||||||
"title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
|
"content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).",
|
||||||
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
|
"title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).",
|
||||||
"too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
|
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 character(s).",
|
||||||
"file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
|
"too-many-posts": "You can only post once every %1 second(s) - please wait before posting again",
|
||||||
"cant-vote-self-post": "You cannot vote for your own post",
|
"too-many-posts-newbie": "As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
|
||||||
"already-favourited": "You have already favourited this post",
|
"tag-too-short": "Please enter a longer tag. Tags should contain at least %1 character(s)",
|
||||||
"already-unfavourited": "You have already unfavourited this post",
|
"tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 character(s)",
|
||||||
"cant-ban-other-admins": "You can't ban other admins!",
|
"file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file",
|
||||||
"invalid-image-type": "نوع الصورة ممنوع",
|
"cant-vote-self-post": "لايمكنك التصويت لردك",
|
||||||
"group-name-too-short": "Group name too short",
|
"already-favourited": "لقد سبق وأضفت هذا الرد إلى المفضلة",
|
||||||
"group-already-exists": "Group already exists",
|
"already-unfavourited": "لقد سبق وحذفت هذا الرد من المفضلة",
|
||||||
"group-name-change-not-allowed": "Group name change not allowed",
|
"cant-ban-other-admins": "لايمكن حظر مدبر نظام آخر.",
|
||||||
"post-already-deleted": "This post has already been deleted",
|
"cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin",
|
||||||
"post-already-restored": "This post has already been restored",
|
"invalid-image-type": "Invalid image type. Allowed types are: %1",
|
||||||
"topic-already-deleted": "This topic has already been deleted",
|
"invalid-image-extension": "Invalid image extension",
|
||||||
"topic-already-restored": "This topic has already been restored",
|
"invalid-file-type": "Invalid file type. Allowed types are: %1",
|
||||||
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
"group-name-too-short": "اسم المجموعة قصير",
|
||||||
"invalid-file": "Invalid File",
|
"group-already-exists": "المجموعة موجودة مسبقا",
|
||||||
"uploads-are-disabled": "Uploads are disabled",
|
"group-name-change-not-allowed": "لايسمح بتغيير أسماء المجموعات",
|
||||||
"upload-error": "مشكلة في الرفع: 1%",
|
"group-already-member": "أنت بالفعل عضو في هذه المجموعة ",
|
||||||
"signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
|
"group-needs-owner": "هذه المجموعة تتطلب مالك واحد على اﻷقل",
|
||||||
"cant-chat-with-yourself": "You can't chat with yourself!",
|
"group-already-invited": "This user has already been invited",
|
||||||
"reputation-system-disabled": "Reputation system is disabled.",
|
"group-already-requested": "Your membership request has already been submitted",
|
||||||
"downvoting-disabled": "Downvoting is disabled",
|
"post-already-deleted": "سبق وتم حذف هذا الرد",
|
||||||
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post",
|
"post-already-restored": "سبق وتم إلغاء حذف هذا الرد",
|
||||||
"not-enough-reputation-to-flag": "You do not have enough reputation to flag this post",
|
"topic-already-deleted": "سبق وتم حذف هذا الموضوع",
|
||||||
"reload-failed": "NodeBB encountered a problem while reloading: \"%1\". NodeBB will continue to serve the existing client-side assets, although you should undo what you did just prior to reloading."
|
"topic-already-restored": "سبق وتم إلغاء حذف هذا الرد",
|
||||||
|
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
|
||||||
|
"topic-thumbnails-are-disabled": "الصور المصغرة غير مفعلة.",
|
||||||
|
"invalid-file": "ملف غير مقبول",
|
||||||
|
"uploads-are-disabled": "رفع الملفات غير مفعل",
|
||||||
|
"signature-too-long": "عذرا، توقيعك يجب ألا يتجاوز %1 حرفًا.",
|
||||||
|
"about-me-too-long": "Sorry, your about me cannot be longer than %1 character(s).",
|
||||||
|
"cant-chat-with-yourself": "لايمكنك فتح محادثة مع نفسك",
|
||||||
|
"chat-restricted": "هذا المستخدم عطل المحادثات الواردة عليه. يجب أن يتبعك حتى تتمكن من فتح محادثة معه.",
|
||||||
|
"too-many-messages": "لقد أرسلت الكثير من الرسائل، الرجاء اﻹنتظار قليلاً",
|
||||||
|
"reputation-system-disabled": "نظام السمعة معطل",
|
||||||
|
"downvoting-disabled": "التصويتات السلبية معطلة",
|
||||||
|
"not-enough-reputation-to-downvote": "ليس لديك سمعة تكفي لإضافة صوت سلبي لهذا الموضوع",
|
||||||
|
"not-enough-reputation-to-flag": "ليس لديك سمعة تكفي للإشعار بموضوع مخل",
|
||||||
|
"already-flagged": "You have already flagged this post",
|
||||||
|
"reload-failed": "المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
|
||||||
|
"registration-error": "حدث خطأ أثناء التسجيل",
|
||||||
|
"parse-error": "حدث خطأ ما أثناء تحليل استجابة الخادم",
|
||||||
|
"wrong-login-type-email": "الرجاء استعمال بريدك اﻹلكتروني للدخول",
|
||||||
|
"wrong-login-type-username": "الرجاء استعمال اسم المستخدم الخاص بك للدخول"
|
||||||
}
|
}
|
||||||
@@ -3,74 +3,80 @@
|
|||||||
"search": "بحث",
|
"search": "بحث",
|
||||||
"buttons.close": "أغلق",
|
"buttons.close": "أغلق",
|
||||||
"403.title": "غير مسموح بالدخول",
|
"403.title": "غير مسموح بالدخول",
|
||||||
"403.message": "يبدو أنك قد تعثر على الصفحة التي لم يكن لديك الوصول إليها. ربما يجب عليك <a href='/login'> تسجيل الدخول </a> ",
|
"403.message": "يبدو أنك قد تعثرت على صفحة لا تمتلك الصلاحية للدخول إليها",
|
||||||
|
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
|
||||||
"404.title": "لم يتم العثور",
|
"404.title": "لم يتم العثور",
|
||||||
"404.message": "يبدو أنك قد تعثرت على صفحة غير موجودة. عودة إلى الصفحة الرئيسية.",
|
"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
|
||||||
"500.title": "خطأ داخلي.",
|
"500.title": "خطأ داخلي.",
|
||||||
"500.message": "عفوا! يبدو وكأنه شيء ذهب على نحو خاطئ!",
|
"500.message": "عفوا! يبدو وكأنه شيء ذهب على نحو خاطئ!",
|
||||||
"register": "تسجيل",
|
"register": "تسجيل",
|
||||||
"login": "دخول",
|
"login": "دخول",
|
||||||
"please_log_in": "Please Log In",
|
"please_log_in": "المرجو تسجيل الدخول",
|
||||||
"logout": "تسجيل الخروج",
|
"logout": "تسجيل الخروج",
|
||||||
"posting_restriction_info": "Posting is currently restricted to registered members only, click here to log in.",
|
"posting_restriction_info": "إضافة مشاركات جديد حكر على الأعضاء المسجلين، انقر هنا لتسجيل الدخول.",
|
||||||
"welcome_back": "Welcome Back",
|
"welcome_back": "مرحبًا بعودتك",
|
||||||
"you_have_successfully_logged_in": "You have successfully logged in",
|
"you_have_successfully_logged_in": "تم سجيل الدخول بنجاح",
|
||||||
"save_changes": "حفظ التغييرات",
|
"save_changes": "حفظ التغييرات",
|
||||||
"close": "أغلق",
|
"close": "أغلق",
|
||||||
"pagination": "Pagination",
|
"pagination": "الصفحات",
|
||||||
"pagination.out_of": "%1 out of %2",
|
"pagination.out_of": "%1 من %2",
|
||||||
"pagination.enter_index": "Enter index",
|
"pagination.enter_index": "أدخل الرقم التسلسلي",
|
||||||
"header.admin": "مشرف",
|
"header.admin": "مدبر نظام",
|
||||||
"header.recent": "حديث",
|
"header.recent": "حديث",
|
||||||
"header.unread": "غير مقروء",
|
"header.unread": "غير مقروء",
|
||||||
"header.tags": "Tags",
|
"header.tags": "وسم",
|
||||||
"header.popular": "Popular",
|
"header.popular": "الأكثر شهرة",
|
||||||
"header.users": "المستخدمين",
|
"header.users": "المستخدمين",
|
||||||
"header.chats": "Chats",
|
"header.groups": "المجموعات",
|
||||||
"header.notifications": "Notifications",
|
"header.chats": "المحادثات",
|
||||||
|
"header.notifications": "التنبيهات",
|
||||||
"header.search": "بحث",
|
"header.search": "بحث",
|
||||||
"header.profile": "ملف",
|
"header.profile": "ملف",
|
||||||
"notifications.loading": "تحميل التبليغات",
|
"notifications.loading": "تحميل التبليغات",
|
||||||
"chats.loading": "تحميل الدردشات",
|
"chats.loading": "تحميل الدردشات",
|
||||||
"motd.welcome": "مرحبا بكم NodeBB، منصة مناقشة المستقبل",
|
"motd.welcome": "مرحبا بكم NodeBB، منصة مناقشة المستقبل",
|
||||||
"previouspage": "Previous Page",
|
"previouspage": "الصفحة السابقة",
|
||||||
"nextpage": "Next Page",
|
"nextpage": "الصفحة التالية",
|
||||||
"alert.success": "Success",
|
"alert.success": "نجاح",
|
||||||
"alert.error": "Error",
|
"alert.error": "خطأ",
|
||||||
"alert.banned": "Banned",
|
"alert.banned": "محظور",
|
||||||
"alert.banned.message": "You have just been banned, you will now be logged out.",
|
"alert.banned.message": "لقد تم حظر حسابك. سيتم تسجيل الخروج.",
|
||||||
"alert.unfollow": "You are no longer following %1!",
|
"alert.unfollow": "أنت لا تتابع %1 بعد الآن!",
|
||||||
"alert.follow": "You are now following %1!",
|
"alert.follow": "أنت الآن تتابع %1!",
|
||||||
"online": "Online",
|
"online": "المتواجدون حاليًّا",
|
||||||
"users": "Users",
|
"users": "الأعضاء",
|
||||||
"topics": "Topics",
|
"topics": "المواضيع",
|
||||||
"posts": "Posts",
|
"posts": "المشاركات",
|
||||||
"views": "Views",
|
"views": "المشاهدات",
|
||||||
"reputation": "Reputation",
|
"reputation": "السمعة",
|
||||||
"read_more": "read more",
|
"read_more": "اقرأ المزيد",
|
||||||
"posted_ago_by_guest": "posted %1 by Guest",
|
"more": "More",
|
||||||
"posted_ago_by": "posted %1 by %2",
|
"posted_ago_by_guest": "كتب %1 من طرف زائر",
|
||||||
"posted_ago": "posted %1",
|
"posted_ago_by": "كتب %1 من طرف %2",
|
||||||
"posted_in_ago_by_guest": "posted in %1 %2 by Guest",
|
"posted_ago": "كتب %1",
|
||||||
"posted_in_ago_by": "posted in %1 %2 by %3",
|
"posted_in_ago_by_guest": "كتب في %1 %2 من طرف زائر",
|
||||||
"posted_in_ago": "posted in %1 %2",
|
"posted_in_ago_by": "كتب في %1 %2 من طرف %3",
|
||||||
"replied_ago": "replied %1",
|
"posted_in_ago": "كتب في %1 %2",
|
||||||
"user_posted_ago": "%1 posted %2",
|
"replied_ago": "رد %1",
|
||||||
"guest_posted_ago": "Guest posted %1",
|
"user_posted_ago": "%1 كتب %2",
|
||||||
"last_edited_by_ago": "last edited by %1 %2",
|
"guest_posted_ago": "كتب زائر %1",
|
||||||
"norecentposts": "No Recent Posts",
|
"last_edited_by_ago": "آخر تعديل من طرف %1 %2",
|
||||||
"norecenttopics": "No Recent Topics",
|
"norecentposts": "لاوجود لمشاركات جديدة",
|
||||||
"recentposts": "Recent Posts",
|
"norecenttopics": "لاوجود لمواضيع جديدة",
|
||||||
"recentips": "Recently Logged In IPs",
|
"recentposts": "آخر المشاركات",
|
||||||
"away": "Away",
|
"recentips": "آخر عناوين ال IP التي سجلت الدخول",
|
||||||
"dnd": "Do not Disturb",
|
"away": "غير متواجد",
|
||||||
"invisible": "Invisible",
|
"dnd": "المرجو عدم الإزعاج",
|
||||||
"offline": "Offline",
|
"invisible": "مخفي",
|
||||||
"email": "Email",
|
"offline": "غير متصل",
|
||||||
"language": "Language",
|
"email": "عنوان البريد الإلكتروني",
|
||||||
"guest": "Guest",
|
"language": "اللغة",
|
||||||
"guests": "Guests",
|
"guest": "زائر",
|
||||||
"updated.title": "Forum Updated",
|
"guests": "الزوار",
|
||||||
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
|
"updated.title": "تم تحديث المنتدى",
|
||||||
"privacy": "Privacy"
|
"updated.message": "لقد تم تحديث المنتدى إلى آخر نسخة للتو. المرجو إعادة تحميل الصفحة.",
|
||||||
|
"privacy": "الخصوصية",
|
||||||
|
"follow": "متابعة",
|
||||||
|
"unfollow": "إلغاء المتابعة",
|
||||||
|
"delete_all": "حذف الكل"
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,43 @@
|
|||||||
{
|
{
|
||||||
"groups": "Groups",
|
"groups": "المجموعات",
|
||||||
"view_group": "View Group",
|
"view_group": "معاينة المجموعة",
|
||||||
"details.title": "Group Details",
|
"owner": "مالك المجموعة",
|
||||||
"details.members": "Member List",
|
"new_group": "أنشئ مجموعة جديدة",
|
||||||
"details.has_no_posts": "This group's members have not made any posts.",
|
"no_groups_found": "لاوجدود لمجموعات يمكن معاينتها",
|
||||||
"details.latest_posts": "Latest Posts"
|
"pending.accept": "موافق",
|
||||||
|
"pending.reject": "رفض",
|
||||||
|
"pending.accept_all": "Accept All",
|
||||||
|
"pending.reject_all": "Reject All",
|
||||||
|
"pending.none": "There are no pending members at this time",
|
||||||
|
"invited.none": "There are no invited members at this time",
|
||||||
|
"invited.uninvite": "Rescind Invitation",
|
||||||
|
"invited.search": "Search for a user to invite to this group",
|
||||||
|
"cover-instructions": "اسحب وأسقِط صورة، اسحبها للموضع المرغوب، وانقر على <strong>حفظ</strong>",
|
||||||
|
"cover-change": "تغيير",
|
||||||
|
"cover-save": "حفظ",
|
||||||
|
"cover-saving": "جاري الحفظ",
|
||||||
|
"details.title": "تفاصيل المجموعة",
|
||||||
|
"details.members": "لائحة الأعضاء",
|
||||||
|
"details.pending": "المستخدمون في الانتظار",
|
||||||
|
"details.invited": "Invited Members",
|
||||||
|
"details.has_no_posts": "أعضاء هذه المجموعة لم يضيفوا أية مشاركة",
|
||||||
|
"details.latest_posts": "آخر المشاركات",
|
||||||
|
"details.private": "خاص",
|
||||||
|
"details.grant": "منح/سحب المِلكية",
|
||||||
|
"details.kick": "طرد",
|
||||||
|
"details.owner_options": "إدارة المجموعة",
|
||||||
|
"details.group_name": "اسم المجموعة",
|
||||||
|
"details.member_count": "عدد اﻷعضاء",
|
||||||
|
"details.creation_date": "تاريخ الإنشاء",
|
||||||
|
"details.description": "الوصف",
|
||||||
|
"details.badge_preview": "معاينة الوسام",
|
||||||
|
"details.change_icon": "تغيير الأيقونة",
|
||||||
|
"details.change_colour": "تغيير اللون",
|
||||||
|
"details.badge_text": "نص الوسام",
|
||||||
|
"details.userTitleEnabled": "إظهار الوسام",
|
||||||
|
"details.private_help": "في حالة تفعيل الخيار، الانضمام إلى المجموعة يستلزم قبول مالكها",
|
||||||
|
"details.hidden": "مخفي",
|
||||||
|
"details.hidden_help": "في حالة تفعيل الخيار، لن تظهر المجموعة للعموم والإنضمام إليها سيتلزم دعوة يدوية.",
|
||||||
|
"event.updated": "تم تحديث بيانات المجموعة",
|
||||||
|
"event.deleted": "تم حذف المجموعة %1"
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"username": "Username / Email",
|
"username-email": "اسم المستخدم / البريد الإلكتروني",
|
||||||
|
"username": "اسم المستخدم",
|
||||||
|
"email": "البريد الإلكتروني",
|
||||||
"remember_me": "تذكرني؟",
|
"remember_me": "تذكرني؟",
|
||||||
"forgot_password": "نسيت كلمة المرور؟",
|
"forgot_password": "نسيت كلمة المرور؟",
|
||||||
"alternative_logins": "تسجيلات الدخول البديلة",
|
"alternative_logins": "تسجيلات الدخول البديلة",
|
||||||
"failed_login_attempt": "فشلت محاولة تسجيل الدخول، يرجى المحاولة مرة أخرى.",
|
"failed_login_attempt": "فشلت محاولة تسجيل الدخول، يرجى المحاولة مرة أخرى.",
|
||||||
"login_successful": "قمت بتسجيل الدخول بنجاح!",
|
"login_successful": "قمت بتسجيل الدخول بنجاح!",
|
||||||
"dont_have_account": "Don't have an account?"
|
"dont_have_account": "لا تملك حساب؟"
|
||||||
}
|
}
|
||||||
@@ -1,22 +1,26 @@
|
|||||||
{
|
{
|
||||||
"chat.chatting_with": "الدردشة مع <span id=\"chat-with-name\"></span>",
|
"chat.chatting_with": "الدردشة مع <span id=\"chat-with-name\"></span>",
|
||||||
"chat.placeholder": "Type chat message here, press enter to send",
|
"chat.placeholder": "أكتب رسالة دردشة هنا، اضغط ENTER للإرسال",
|
||||||
"chat.send": "أرسل",
|
"chat.send": "أرسل",
|
||||||
"chat.no_active": "لا يوجد لديك دردشات نشطة.",
|
"chat.no_active": "لا يوجد لديك دردشات نشطة.",
|
||||||
"chat.user_typing": "%1 is typing ...",
|
"chat.user_typing": "%1 يكتب رسالة...",
|
||||||
"chat.user_has_messaged_you": "%1 has messaged you.",
|
"chat.user_has_messaged_you": "%1 أرسل لك رسالة.",
|
||||||
"chat.see_all": "See all Chats",
|
"chat.see_all": "معاينة كل الدردشات",
|
||||||
"chat.no-messages": "Please select a recipient to view chat message history",
|
"chat.no-messages": "المرجو اختيار مرسل إليه لمعاينة تاريخ الدردشات",
|
||||||
"chat.recent-chats": "Recent Chats",
|
"chat.recent-chats": "آخر الدردشات",
|
||||||
"chat.contacts": "Contacts",
|
"chat.contacts": "الأصدقاء",
|
||||||
"chat.message-history": "Message History",
|
"chat.message-history": "تاريخ الرسائل",
|
||||||
"chat.pop-out": "Pop out chat",
|
"chat.pop-out": "افتح الدردشة في نافذة خاصة",
|
||||||
"chat.maximize": "Maximize",
|
"chat.maximize": "تكبير",
|
||||||
"chat.yesterday": "Yesterday",
|
"chat.seven_days": "7 أيام",
|
||||||
"chat.seven_days": "7 Days",
|
"chat.thirty_days": "30 يومًا",
|
||||||
"chat.thirty_days": "30 Days",
|
"chat.three_months": "3 أشهر",
|
||||||
"chat.three_months": "3 Months",
|
"composer.compose": "اكتب",
|
||||||
"composer.user_said_in": "%1 said in %2:",
|
"composer.show_preview": "عرض المعاينة",
|
||||||
"composer.user_said": "%1 said:",
|
"composer.hide_preview": "إخفاء المعاينة",
|
||||||
"composer.discard": "Are you sure you wish to discard this post?"
|
"composer.user_said_in": "%1 كتب في %2",
|
||||||
|
"composer.user_said": "%1 كتب:",
|
||||||
|
"composer.discard": "هل أنت متأكد أنك تريد التخلي عن التغييرات؟",
|
||||||
|
"composer.submit_and_lock": "Submit and Lock",
|
||||||
|
"composer.toggle_dropdown": "Toggle Dropdown"
|
||||||
}
|
}
|
||||||
@@ -1,27 +1,28 @@
|
|||||||
{
|
{
|
||||||
"title": "إعلام",
|
"title": "التنبيهات",
|
||||||
"no_notifs": "You have no new notifications",
|
"no_notifs": "ليس لديك أية تنبيهات جديدة",
|
||||||
"see_all": "See all Notifications",
|
"see_all": "معاينة كل التنبيهات",
|
||||||
"back_to_home": "Back to %1",
|
"mark_all_read": "اجعل كل التنبيهات مقروءة",
|
||||||
|
"back_to_home": "عودة إلى %1",
|
||||||
"outgoing_link": "رابط خارجي",
|
"outgoing_link": "رابط خارجي",
|
||||||
"outgoing_link_message": "You are now leaving %1.",
|
"outgoing_link_message": "أنت تغادر %1 حاليا.",
|
||||||
"continue_to": "Continue to %1",
|
"continue_to": "استمر إلى %1",
|
||||||
"return_to": "Return to %1",
|
"return_to": "عودة إى %1",
|
||||||
"new_notification": "New Notification",
|
"new_notification": "تنبيه جديد",
|
||||||
"you_have_unread_notifications": "You have unread notifications.",
|
"you_have_unread_notifications": "لديك تنبيهات غير مقروءة.",
|
||||||
"new_message_from": "New message from <strong>%1</strong>",
|
"new_message_from": "رسالة جديدة من <strong>%1</strong>",
|
||||||
"upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
|
"upvoted_your_post_in": "<strong>%1</strong> أضاف صوتًا إيجابيا إلى مشاركتك في <strong>%2</strong>.",
|
||||||
"moved_your_post": "<strong>%1</strong> has moved your post.",
|
"moved_your_post": "<strong>%1</strong> نقل مشاركتك.",
|
||||||
"moved_your_topic": "<strong>%1</strong> has moved your topic.",
|
"moved_your_topic": "<strong>%1</strong> نقل موضوعك.",
|
||||||
"favourited_your_post_in": "<strong>%1</strong> has favourited your post in <strong>%2</strong>.",
|
"favourited_your_post_in": "<strong>%1</strong> أضاف مشاركتك في <strong>%2</strong> إلى مفضلته.",
|
||||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
"user_flagged_post_in": "<strong>%1</strong> أشعَرَ بمشاركة مخلة في <strong>%2</strong>",
|
||||||
"user_posted_to": "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
|
"user_posted_to": "<strong>%1</strong> أضاف ردا إلى: <strong>%2</strong>",
|
||||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
"user_posted_topic": "<strong>%1</strong> أنشأ موضوعًا جديدًا: <strong>%2</strong>",
|
||||||
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
"user_mentioned_you_in": "<strong>%1</strong> ذكرَ اسمك في <strong>%2</strong>",
|
||||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
"user_started_following_you": "<strong>%1</strong> صار يتابعك.",
|
||||||
"email-confirmed": "Email Confirmed",
|
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||||
"email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.",
|
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
|
||||||
"email-confirm-error": "An error occurred...",
|
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
|
||||||
"email-confirm-error-message": "There was a problem validating your email address. Perhaps the code was invalid or has expired.",
|
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
|
||||||
"email-confirm-sent": "Confirmation email sent."
|
"email-confirm-sent": "تم إرسال بريد التفعيل."
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,21 @@
|
|||||||
{
|
{
|
||||||
"home": "Home",
|
"home": "الصفحة الرئيسية",
|
||||||
"unread": "Unread Topics",
|
"unread": "المواضيع الغير مقروءة",
|
||||||
"popular": "Popular Topics",
|
"popular": "المواضيع الأكثر شهرة",
|
||||||
"recent": "Recent Topics",
|
"recent": "المواضيع الحديثة",
|
||||||
"users": "Registered Users",
|
"users": "اﻷعضاء المسجلون",
|
||||||
"notifications": "Notifications",
|
"notifications": "التنبيهات",
|
||||||
"tags": "Topics tagged under \"%1\"",
|
"tags": "الكلمات الدلالية",
|
||||||
"user.edit": "Editing \"%1\"",
|
"tag": "Topics tagged under \"%1\"",
|
||||||
"user.following": "People %1 Follows",
|
"user.edit": "تعديل \"%1\"",
|
||||||
"user.followers": "People who Follow %1",
|
"user.following": "المستخدمون الذين يتبعهم %1",
|
||||||
"user.posts": "Posts made by %1",
|
"user.followers": "المستخدمون الذين يتبعون %1",
|
||||||
"user.topics": "Topics created by %1",
|
"user.posts": "ردود %1",
|
||||||
"user.favourites": "%1's Favourite Posts",
|
"user.topics": "مواضيع %1",
|
||||||
"user.settings": "User Settings",
|
"user.groups": "مجموعات %1",
|
||||||
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
|
"user.favourites": "مفضلات %1",
|
||||||
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
|
"user.settings": "خيارات المستخدم",
|
||||||
|
"user.watched": "المواضيع المتابعة من قبل %1 ",
|
||||||
|
"maintenance.text": "جاري صيانة %1. المرجو العودة لاحقًا.",
|
||||||
|
"maintenance.messageIntro": "بالإضافة إلى ذلك، قام مدبر النظام بترك هذه الرسالة:"
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,19 @@
|
|||||||
{
|
{
|
||||||
"title": "Recent",
|
"title": "الحديثة",
|
||||||
"day": "يوم",
|
"day": "يوم",
|
||||||
"week": "أسبوع",
|
"week": "أسبوع",
|
||||||
"month": "شهر",
|
"month": "شهر",
|
||||||
"year": "Year",
|
"year": "سنة",
|
||||||
"alltime": "All Time",
|
"alltime": "دائمًا",
|
||||||
"no_recent_topics": "There are no recent topics."
|
"no_recent_topics": "لايوجد مواضيع جديدة",
|
||||||
|
"no_popular_topics": "There are no popular topics.",
|
||||||
|
"there-is-a-new-topic": "يوجد موضوع جديد",
|
||||||
|
"there-is-a-new-topic-and-a-new-post": "يوجد موضوع جديد و رد جديد",
|
||||||
|
"there-is-a-new-topic-and-new-posts": "يوجد موضوع جديد و %1 ردود جديدة ",
|
||||||
|
"there-are-new-topics": "يوجد %1 مواضيع جديدة",
|
||||||
|
"there-are-new-topics-and-a-new-post": "يوجد %1 مواضيع جديدة و رد جديد",
|
||||||
|
"there-are-new-topics-and-new-posts": "يوجد %1 مواضيع جديدة و %2 مشاركات جديدة",
|
||||||
|
"there-is-a-new-post": "يوجد مشاركة جديدة",
|
||||||
|
"there-are-new-posts": "يوجد %1 مشاركات جديدة",
|
||||||
|
"click-here-to-reload": "إضغط هنا لإعادة التحميل"
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,19 @@
|
|||||||
{
|
{
|
||||||
"register": "تسجيل",
|
"register": "تسجيل",
|
||||||
"help.email": "افتراضيا، سيتم إخفاء بريدك الإلكتروني من الجمهور.",
|
"help.email": "افتراضيا، سيتم إخفاء بريدك الإلكتروني من العامة.",
|
||||||
"help.username_restrictions": "اسم مستخدم فريدة من نوعها بين1% و2% حرفا. يمكن للآخرين ذكرك @ <'span id='your-username> اسم المستخدم </span>.",
|
"help.username_restrictions": "اسم مستخدم فريدة من نوعها بين1% و2% حرفا. يمكن للآخرين ذكرك @ <'span id='your-username> اسم المستخدم </span>.",
|
||||||
"help.minimum_password_length": "كلمتك السر يجب أن تكون على الأقل متألفة من 1% أحرف",
|
"help.minimum_password_length": "كلمة المرور يجب أن تكون على الأقل بها 1% أحرف",
|
||||||
"email_address": "عنوان البريد الإلكتروني",
|
"email_address": "عنوان البريد الإلكتروني",
|
||||||
"email_address_placeholder": "ادخل عنوان البريد الإلكتروني",
|
"email_address_placeholder": "ادخل عنوان البريد الإلكتروني",
|
||||||
"username": "اسم المستخدم",
|
"username": "اسم المستخدم",
|
||||||
"username_placeholder": "أدخل اسم المستخدم",
|
"username_placeholder": "أدخل اسم المستخدم",
|
||||||
"password": "كلمة السر",
|
"password": "كلمة المرور",
|
||||||
"password_placeholder": "أدخل كلمة السر",
|
"password_placeholder": "أدخل كلمة المرور",
|
||||||
"confirm_password": "تأكيد كلمة السر",
|
"confirm_password": "تأكيد كلمة المرور",
|
||||||
"confirm_password_placeholder": "تأكيد كلمة السر",
|
"confirm_password_placeholder": "تأكيد كلمة المرور",
|
||||||
"register_now_button": "قم بالتسجيل الآن",
|
"register_now_button": "قم بالتسجيل الآن",
|
||||||
"alternative_registration": "التسجيل البديلة",
|
"alternative_registration": "طريقة تسجيل بديلة",
|
||||||
"terms_of_use": "Terms of Use",
|
"terms_of_use": "شروط الاستخدام",
|
||||||
"agree_to_terms_of_use": "I agree to the Terms of Use"
|
"agree_to_terms_of_use": "أوافق على شروط الاستخدام",
|
||||||
|
"registration-added-to-queue": "Your registration has been added to the approval queue. You will receive an email when it is accepted by an administrator."
|
||||||
}
|
}
|
||||||
@@ -1,14 +1,17 @@
|
|||||||
{
|
{
|
||||||
"reset_password": "إعادة تعيين كلمة السر",
|
"reset_password": "إعادة تعيين كلمة المرور",
|
||||||
"update_password": "تحديث كلمة السر",
|
"update_password": "تحديث كلمة المرور",
|
||||||
"password_changed.title": "تم تغير كلمة السر",
|
"password_changed.title": "تم تغير كلمة المرور",
|
||||||
"password_changed.message": "<p>تم تغير كلمة السر بنجاح. يرجى <a href='/login'>إعادة الدخول</a></p>",
|
"password_changed.message": "<p>تم تغير كلمة المرور بنجاح، الرجاء <a href='/login'>إعادة الدخول</a></p>",
|
||||||
"wrong_reset_code.title": "إعادة تعيين رمز غير صحيح",
|
"wrong_reset_code.title": "رمز إعادة التعيين غير صحيح",
|
||||||
"wrong_reset_code.message": "رامز إعادة التعين غير صحيح، يرجى المحاولة مرة أخرى أو <a href='/reset'>اطلب رمز جديد</a>",
|
"wrong_reset_code.message": "رمز إعادة التعين غير صحيح، يرجى المحاولة مرة أخرى أو <a href='/reset'>اطلب رمزا جديدا</a>",
|
||||||
"new_password": "كلمة السر الجديدة",
|
"new_password": "كلمة المرور الجديدة",
|
||||||
"repeat_password": "تأكيد كلمة السر",
|
"repeat_password": "تأكيد كلمة المرور",
|
||||||
"enter_email": "يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
|
"enter_email": "يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
|
||||||
"enter_email_address": "Enter Email Address",
|
"enter_email_address": "ادخل عنوان البريد الإلكتروني",
|
||||||
"password_reset_sent": "إعادة تعيين كلمة السر أرسلت",
|
"password_reset_sent": "إعادة تعيين كلمة السر أرسلت",
|
||||||
"invalid_email": "بريد إلكتروني غير صالح أو غير موجود"
|
"invalid_email": "بريد إلكتروني غير صالح أو غير موجود",
|
||||||
|
"password_too_short": "كلمة المرور التي أدخلتها قصيرة، الرجاء اختر كلمة مرور مختلفة",
|
||||||
|
"passwords_do_not_match": "كلمتا السر التي أدخلتهما غير متطابقتان",
|
||||||
|
"password_expired": "لقد انتهت صلاحية كلمة المرور الخاصة بك، الرجاء اختيار كلمة مرور جديدة"
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,40 @@
|
|||||||
{
|
{
|
||||||
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
|
"results_matching": "%1 نتيجة (نتائج) موافقة لـ \"%2\", (%3 ثواني)",
|
||||||
"no-matches": "No posts found"
|
"no-matches": "لم يتم العثور على نتائج.",
|
||||||
|
"advanced-search": "بحث متقدم",
|
||||||
|
"in": "في",
|
||||||
|
"titles": "العناوين",
|
||||||
|
"titles-posts": "العناوين والمشاركات",
|
||||||
|
"posted-by": "مشاركة من طرف",
|
||||||
|
"in-categories": "في الفئات",
|
||||||
|
"search-child-categories": "بحث في الفئات الفرعية",
|
||||||
|
"reply-count": "عدد المشاركات",
|
||||||
|
"at-least": "على اﻷقل",
|
||||||
|
"at-most": "على اﻷكثر",
|
||||||
|
"post-time": "تاريخ المشاركة",
|
||||||
|
"newer-than": "أحدث من",
|
||||||
|
"older-than": "أقدم من",
|
||||||
|
"any-date": "أي وقت",
|
||||||
|
"yesterday": "أمس",
|
||||||
|
"one-week": "أسبوع",
|
||||||
|
"two-weeks": "أسبوعان",
|
||||||
|
"one-month": "شهر",
|
||||||
|
"three-months": "ثلاثة أشهر",
|
||||||
|
"six-months": "ستة أشهر",
|
||||||
|
"one-year": "عام",
|
||||||
|
"sort-by": "عرض حسب",
|
||||||
|
"last-reply-time": "تاريخ آخر رد",
|
||||||
|
"topic-title": "عنوان الموضوع",
|
||||||
|
"number-of-replies": "عدد الردود",
|
||||||
|
"number-of-views": "عدد المشاهدات",
|
||||||
|
"topic-start-date": "تاريخ بدأ الموضوع",
|
||||||
|
"username": "اسم المستخدم",
|
||||||
|
"category": "فئة",
|
||||||
|
"descending": "في ترتيب تنازلي",
|
||||||
|
"ascending": "في ترتيب تصاعدي",
|
||||||
|
"save-preferences": "حفظ التفضيلات",
|
||||||
|
"clear-preferences": "ازالة التفضيلات",
|
||||||
|
"search-preferences-saved": "تم حفظ تفضيلات البحث",
|
||||||
|
"search-preferences-cleared": "تم ازالة تفضيلات البحث",
|
||||||
|
"show-results-as": "عرض النتائج كـ"
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"success": "Success",
|
"success": "نجاح",
|
||||||
"topic-post": "You have successfully posted.",
|
"topic-post": "لقد تمت الإضافة بنجاح.",
|
||||||
"authentication-successful": "Authentication Successful",
|
"authentication-successful": "تم تسجيل الدخول بنجاح",
|
||||||
"settings-saved": "Settings saved!"
|
"settings-saved": "تم حفظ التغييرات!"
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"no_tag_topics": "There are no topics with this tag.",
|
"no_tag_topics": "لا يوجد مواضيع بهذه الكلمة الدلالية.",
|
||||||
"tags": "Tags",
|
"tags": "الكلمات الدلالية",
|
||||||
"enter_tags_here": "Enter tags here. Press enter after each tag.",
|
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
|
||||||
"enter_tags_here_short": "Enter tags...",
|
"enter_tags_here_short": "أدخل الكلمات الدلالية...",
|
||||||
"no_tags": "There are no tags yet."
|
"no_tags": "لا يوجد كلمات دلالية بعد."
|
||||||
}
|
}
|
||||||
@@ -1,96 +1,100 @@
|
|||||||
{
|
{
|
||||||
"topic": "موضوع",
|
"topic": "موضوع",
|
||||||
"topic_id": "Topic ID",
|
"topic_id": "معرف الموضوع",
|
||||||
"topic_id_placeholder": "Enter topic ID",
|
"topic_id_placeholder": "أدخل معرف الموضوع",
|
||||||
"no_topics_found": "لا توجد مواضيع !",
|
"no_topics_found": "لا توجد مواضيع !",
|
||||||
"no_posts_found": "No posts found!",
|
"no_posts_found": "لا توجد مشاركات!",
|
||||||
"post_is_deleted": "This post is deleted!",
|
"post_is_deleted": "هذه المشاركة محذوفة!",
|
||||||
"profile": "ملف",
|
"topic_is_deleted": "هذا الموضوع محذوف",
|
||||||
"posted_by": "Posted by %1",
|
"profile": "الملف الشخصي",
|
||||||
"posted_by_guest": "Posted by Guest",
|
"posted_by": "كتب من طرف %1",
|
||||||
|
"posted_by_guest": "كتب من طرف زائر",
|
||||||
"chat": "دردشة",
|
"chat": "دردشة",
|
||||||
"notify_me": "تنبه من ردود جديدة في هذا الموضوع",
|
"notify_me": "تلق تنبيهات بالردود الجديدة في هذا الموضوع",
|
||||||
"quote": "اقتبس",
|
"quote": "اقتبس",
|
||||||
"reply": "رد",
|
"reply": "رد",
|
||||||
"edit": "صحح",
|
"guest-login-reply": "يجب عليك تسجيل الدخول للرد",
|
||||||
|
"edit": "تعديل",
|
||||||
"delete": "حذف",
|
"delete": "حذف",
|
||||||
"purge": "Purge",
|
"purge": "تطهير",
|
||||||
"restore": "Restore",
|
"restore": "استعادة",
|
||||||
"move": "انقل",
|
"move": "نقل",
|
||||||
"fork": "فرع",
|
"fork": "فرع",
|
||||||
"link": "رابط",
|
"link": "رابط",
|
||||||
"share": "شارك",
|
"share": "نشر",
|
||||||
"tools": "أدوات",
|
"tools": "أدوات",
|
||||||
"flag": "Flag",
|
"flag": "تبليغ",
|
||||||
"locked": "Locked",
|
"locked": "مقفل",
|
||||||
"bookmark_instructions": "Click here to return to your last position or close to discard.",
|
"bookmark_instructions": "إضغط هنا للعودة إلى آخر موضع أو غلق للإلغاء",
|
||||||
"flag_title": "Flag this post for moderation",
|
"flag_title": "إشعار بمشاركة مخلة.",
|
||||||
"flag_confirm": "Are you sure you want to flag this post?",
|
"flag_confirm": "هل تريد حقًّا التبليغ بهذه المشاركة؟",
|
||||||
"flag_success": "This post has been flagged for moderation.",
|
"flag_success": "تم الإشعار بهذه المشاركة على أنها مخلة",
|
||||||
"deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
|
"deleted_message": "هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
|
||||||
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
"following_topic.message": "ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
|
||||||
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
"not_following_topic.message": "لن تستلم أي تنبيه بخصوص عذا الموضوع بعد الآن.",
|
||||||
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
"login_to_subscribe": "المرجو إنشاء حساب أو تسجيل الدخول حتى يمكنك متابعة هذا الموضوع.",
|
||||||
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
"markAsUnreadForAll.success": "تم تحديد الموضوع على أنه غير مقروء.",
|
||||||
"watch": "Watch",
|
"watch": "مراقبة",
|
||||||
"unwatch": "Unwatch",
|
"unwatch": "الغاء المراقبة",
|
||||||
"watch.title": "Be notified of new replies in this topic",
|
"watch.title": "استلم تنبيها بالردود الجديدة في هذا الموضوع",
|
||||||
"unwatch.title": "Stop watching this topic",
|
"unwatch.title": "ألغ مراقبة هذا الموضوع",
|
||||||
"share_this_post": "Share this Post",
|
"share_this_post": "انشر هذا الموضوع",
|
||||||
"thread_tools.title": "Topic Tools",
|
"thread_tools.title": "أدوات الموضوع",
|
||||||
"thread_tools.markAsUnreadForAll": "علم غير مقروء",
|
"thread_tools.markAsUnreadForAll": "علم غير مقروء",
|
||||||
"thread_tools.pin": "علق الموضوع",
|
"thread_tools.pin": "علق الموضوع",
|
||||||
"thread_tools.unpin": "Unpin Topic",
|
"thread_tools.unpin": "إلغاء تعليق الموضوع",
|
||||||
"thread_tools.lock": "قفل الموضوع",
|
"thread_tools.lock": "أقفل الموضوع",
|
||||||
"thread_tools.unlock": "Unlock Topic",
|
"thread_tools.unlock": "إلغاء إقفال الموضوع",
|
||||||
"thread_tools.move": "نقل الموضوع",
|
"thread_tools.move": "نقل الموضوع",
|
||||||
"thread_tools.move_all": "Move All",
|
"thread_tools.move_all": "نقل الكل",
|
||||||
"thread_tools.fork": "تفرع الموضوع",
|
"thread_tools.fork": "إنشاء فرع الموضوع",
|
||||||
"thread_tools.delete": "حذف الموضوع",
|
"thread_tools.delete": "حذف الموضوع",
|
||||||
"thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
|
"thread_tools.delete_confirm": "هل أنت متأكد أنك تريد حذف هذا الموضوع؟",
|
||||||
"thread_tools.restore": "Restore Topic",
|
"thread_tools.restore": "استعادة الموضوع",
|
||||||
"thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
|
"thread_tools.restore_confirm": "هل أنت متأكد أنك تريد استعادة هذا الموضوع؟",
|
||||||
"thread_tools.purge": "Purge Topic",
|
"thread_tools.purge": "تطهير الموضوع",
|
||||||
"thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
|
"thread_tools.purge_confirm": "هل أنت متأكد أنك تريد تطهير هذا الموضوع؟",
|
||||||
"topic_move_success": "This topic has been successfully moved to %1",
|
"topic_move_success": "تم نقل هذا الموضوع إلى %1 بنجاح",
|
||||||
"post_delete_confirm": "Are you sure you want to delete this post?",
|
"post_delete_confirm": "هل أنت متأكد أنك تريد حذف هذه المشاركة؟",
|
||||||
"post_restore_confirm": "Are you sure you want to restore this post?",
|
"post_restore_confirm": "هل أنت متأكد أنك تريد استعادة هذه المشاركة؟",
|
||||||
"post_purge_confirm": "Are you sure you want to purge this post?",
|
"post_purge_confirm": "هل أنت متأكد أنك تريد تطهير هذه المشاركة؟",
|
||||||
"load_categories": "تحميل الفئات",
|
"load_categories": "تحميل الفئات",
|
||||||
"disabled_categories_note": "الفئات المجلدة رمادية",
|
"disabled_categories_note": "الفئات المعطلة رمادية",
|
||||||
"confirm_move": "انقل",
|
"confirm_move": "انقل",
|
||||||
"confirm_fork": "فرع",
|
"confirm_fork": "فرع",
|
||||||
"favourite": "المفضل",
|
"favourite": "إضافة إلى المفضلة",
|
||||||
"favourites": "المفضلة",
|
"favourites": "المفضلة",
|
||||||
"favourites.has_no_favourites": "ليس لديك أي ردود مفضلة. فضل بعد الردود لرؤيتهم هنا",
|
"favourites.has_no_favourites": "ليس لديك أي ردود مفضلة. أضف بعض المشاركات إلى المفضلة لرؤيتهم هنا",
|
||||||
"loading_more_posts": "تحميل المزيد من المشاركات",
|
"loading_more_posts": "تحميل المزيد من المشاركات",
|
||||||
"move_topic": "نقل الموضوع",
|
"move_topic": "نقل الموضوع",
|
||||||
"move_topics": "Move Topics",
|
"move_topics": "نقل المواضيع",
|
||||||
"move_post": "نقل الرد",
|
"move_post": "نقل المشاركة",
|
||||||
"post_moved": "Post moved!",
|
"post_moved": "تم نقل المشاركة",
|
||||||
"fork_topic": "فرع الموضوع",
|
"fork_topic": "فرع الموضوع",
|
||||||
"topic_will_be_moved_to": "هذا الموضوع سوف ينقل إلى فئة",
|
"topic_will_be_moved_to": "هذا الموضوع سوف ينقل إلى فئة",
|
||||||
"fork_topic_instruction": "إضغط على الردود لتفريعهم",
|
"fork_topic_instruction": "إضغط على المشاركات التي تريد تفريعها",
|
||||||
"fork_no_pids": "لم تختار أي رد",
|
"fork_no_pids": "لم تختر أي مشاركة",
|
||||||
"fork_success": "Successfully forked topic! Click here to go to the forked topic.",
|
"fork_success": "تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
|
||||||
"composer.title_placeholder": "Enter your topic title here...",
|
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
|
||||||
"composer.discard": "Discard",
|
"composer.handle_placeholder": "اﻹسم",
|
||||||
"composer.submit": "Submit",
|
"composer.discard": "نبذ التغييرات",
|
||||||
"composer.replying_to": "Replying to %1",
|
"composer.submit": "حفظ",
|
||||||
"composer.new_topic": "New Topic",
|
"composer.replying_to": "الرد على %1",
|
||||||
"composer.uploading": "uploading...",
|
"composer.new_topic": "موضوع جديد",
|
||||||
"composer.thumb_url_label": "Paste a topic thumbnail URL",
|
"composer.uploading": "جاري الرفع",
|
||||||
"composer.thumb_title": "Add a thumbnail to this topic",
|
"composer.thumb_url_label": "ألصق رابط الصورة المصغرة للموضوع",
|
||||||
|
"composer.thumb_title": "إضافة صورة مصغرة للموضوع",
|
||||||
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
|
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
|
||||||
"composer.thumb_file_label": "Or upload a file",
|
"composer.thumb_file_label": "أو قم برفع ملف",
|
||||||
"composer.thumb_remove": "Clear fields",
|
"composer.thumb_remove": "تفريغ الخانات",
|
||||||
"composer.drag_and_drop_images": "Drag and Drop Images Here",
|
"composer.drag_and_drop_images": "اسحب وأسقص الصور هنا",
|
||||||
"more_users_and_guests": "%1 more user(s) and %2 guest(s)",
|
"more_users_and_guests": "%1 مستخدم(ين) و %2 زائر(ين)",
|
||||||
"more_users": "%1 more user(s)",
|
"more_users": "%1 مستخدم(ين)",
|
||||||
"more_guests": "%1 more guest(s)",
|
"more_guests": "%1 زائر(ين)",
|
||||||
"users_and_others": "%1 and %2 others",
|
"users_and_others": "%1 و %2 آخرين",
|
||||||
"sort_by": "Sort by",
|
"sort_by": "ترتيب حسب",
|
||||||
"oldest_to_newest": "Oldest to Newest",
|
"oldest_to_newest": "من الأقدم إلى الأحدث",
|
||||||
"newest_to_oldest": "Newest to Oldest",
|
"newest_to_oldest": "من الأحدث إلى الأقدم",
|
||||||
"most_votes": "Most votes"
|
"most_votes": "الأكثر تصويتًا",
|
||||||
|
"most_posts": "اﻷكثر رداً"
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
{
|
{
|
||||||
"title": "Unread",
|
"title": "غير مقروء",
|
||||||
"no_unread_topics": "ليس هناك أي موضوع غير مقروء",
|
"no_unread_topics": "ليس هناك أي موضوع غير مقروء",
|
||||||
"load_more": "حمل المزيد",
|
"load_more": "حمل المزيد",
|
||||||
"mark_as_read": "Mark as Read",
|
"mark_as_read": "حدد غير مقروء",
|
||||||
"selected": "Selected",
|
"selected": "المحددة",
|
||||||
"all": "All",
|
"all": "الكل",
|
||||||
"topics_marked_as_read.success": "Topics marked as read!"
|
"all_categories": "All categories",
|
||||||
|
"topics_marked_as_read.success": "تم تحديد المواضيع على أنها مقروءة!"
|
||||||
}
|
}
|
||||||
@@ -1,72 +1,88 @@
|
|||||||
{
|
{
|
||||||
"banned": "محظور",
|
"banned": "محظور",
|
||||||
"offline": "ليس موجود حالياً",
|
"offline": "غير متصل",
|
||||||
"username": "إسم المستخدم",
|
"username": "إسم المستخدم",
|
||||||
|
"joindate": "تاريخ الإنضمام",
|
||||||
|
"postcount": "عدد المشاركات",
|
||||||
"email": "البريد الإلكتروني",
|
"email": "البريد الإلكتروني",
|
||||||
"confirm_email": "Confirm Email",
|
"confirm_email": "تأكيد عنوان البريد الإلكتروني",
|
||||||
"delete_account": "Delete Account",
|
"ban_account": "Ban Account",
|
||||||
"delete_account_confirm": "Are you sure you want to delete your account? <br /><strong>This action is irreversible and you will not be able to recover any of your data</strong><br /><br />Enter your username to confirm that you wish to destroy this account.",
|
"ban_account_confirm": "Do you really want to ban this user?",
|
||||||
|
"unban_account": "Unban Account",
|
||||||
|
"delete_account": "حذف الحساب",
|
||||||
|
"delete_account_confirm": "هل أن متأكد أنك تريد حذف حسابك؟<br /><strong> هذه العملية غير قابلة للإلغاء ولن يكون بالإمكان استعادة بياناتك</strong><br /><br />أدخل اسم المستخدم الخاص بك لتأكيد عملية الحذف",
|
||||||
|
"delete_this_account_confirm": "Are you sure you want to delete this account? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
|
||||||
"fullname": "الاسم الكامل",
|
"fullname": "الاسم الكامل",
|
||||||
"website": "الموقع الإلكتروني",
|
"website": "الموقع الإلكتروني",
|
||||||
"location": "موقع",
|
"location": "الموقع",
|
||||||
"age": "عمر",
|
"age": "السن",
|
||||||
"joined": "تاريخ التسجيل",
|
"joined": "تاريخ التسجيل",
|
||||||
"lastonline": "تاريخ أخر دخول",
|
"lastonline": "تاريخ آخر دخول",
|
||||||
"profile": "Profile",
|
"profile": "الملف الشخصي",
|
||||||
"profile_views": "مشاهد الملف",
|
"profile_views": "عدد المشاهدات",
|
||||||
"reputation": "سمعة",
|
"reputation": "السمعة",
|
||||||
"favourites": "Favourites",
|
"favourites": "التفضيلات",
|
||||||
"followers": "أتباع",
|
"watched": "متابع",
|
||||||
"following": "يتبع",
|
"followers": "المتابعون",
|
||||||
|
"following": "يتابع",
|
||||||
|
"aboutme": "معلومة عنك او السيرة الذاتية",
|
||||||
"signature": "توقيع",
|
"signature": "توقيع",
|
||||||
"gravatar": "Gravatar",
|
"gravatar": "Gravatar",
|
||||||
"birthday": "عيد ميلاد",
|
"birthday": "عيد ميلاد",
|
||||||
"chat": "Chat",
|
"chat": "محادثة",
|
||||||
"follow": "Follow",
|
"follow": "تابع",
|
||||||
"unfollow": "Unfollow",
|
"unfollow": "إلغاء المتابعة",
|
||||||
"profile_update_success": "Profile has been updated successfully!",
|
"more": "المزيد",
|
||||||
|
"profile_update_success": "تم تحديث الملف الشخصي بنجاح",
|
||||||
"change_picture": "تغيير الصورة",
|
"change_picture": "تغيير الصورة",
|
||||||
"edit": "صحح",
|
"edit": "تعديل",
|
||||||
"uploaded_picture": "صورة تم تحميلها",
|
"uploaded_picture": "الصورة المرفوعة",
|
||||||
"upload_new_picture": "تحميل صورة جديدة",
|
"upload_new_picture": "رفع صورة جديدة",
|
||||||
"upload_new_picture_from_url": "Upload New Picture From URL",
|
"upload_new_picture_from_url": "رفع صورة جديدة من رابط",
|
||||||
"current_password": "Current Password",
|
"current_password": "كلمة السر الحالية",
|
||||||
"change_password": "تغيير كلمة السر",
|
"change_password": "تغيير كلمة السر",
|
||||||
"change_password_error": "Invalid Password!",
|
"change_password_error": "كلمة سر غير صحيحة",
|
||||||
"change_password_error_wrong_current": "Your current password is not correct!",
|
"change_password_error_wrong_current": "كلمة السر الحالية ليست صحيحة",
|
||||||
"change_password_error_length": "Password too short!",
|
"change_password_error_length": "كلمة السر قصيرة",
|
||||||
"change_password_error_match": "Passwords must match!",
|
"change_password_error_match": "كلمة السر غير مطابقة لتأكيد كلمة السر",
|
||||||
"change_password_error_privileges": "You do not have the rights to change this password.",
|
"change_password_error_privileges": "ليس لديك الصلاحيات الكافية لتغيير كلمة السر هذه.",
|
||||||
"change_password_success": "Your password is updated!",
|
"change_password_success": "تم تحديث كلمة السر خاصتك.",
|
||||||
"confirm_password": "تأكيد كلمة السر",
|
"confirm_password": "تأكيد كلمة السر",
|
||||||
"password": "كلمة السر",
|
"password": "كلمة السر",
|
||||||
"username_taken_workaround": "The username you requested was already taken, so we have altered it slightly. You are now known as <strong>%1</strong>",
|
"username_taken_workaround": "اسم المستخدم الذي اخترته سبق أخذه، لذا تم تغييره قليلا. أن الآن مسجل تحت الاسم <strong>%1</strong>",
|
||||||
"upload_picture": "تحميل الصورة",
|
"upload_picture": "ارفع الصورة",
|
||||||
"upload_a_picture": "تحميل صورة",
|
"upload_a_picture": "رفع صورة",
|
||||||
"image_spec": "You may only upload PNG, JPG, or GIF files",
|
"image_spec": "لايمكنك رفع إلا الصور ذات الصيغ PNG أو JPG أو GIF.",
|
||||||
"max": "max.",
|
"settings": "خيارات",
|
||||||
"settings": "Settings",
|
|
||||||
"show_email": "أظهر بريدي الإلكتروني",
|
"show_email": "أظهر بريدي الإلكتروني",
|
||||||
"show_fullname": "Show My Full Name",
|
"show_fullname": "أظهر اسمي الكامل",
|
||||||
"digest_label": "Subscribe to Digest",
|
"restrict_chats": "لاتسمح بورود محادثات إلا من طرف المستخدمين الذين أتابعهم.",
|
||||||
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
|
"digest_label": "اشترك في النشرة الدورية",
|
||||||
"digest_off": "Off",
|
"digest_description": "استلام اشعارات بآخر مستجدات هذا القسم (التنبيهات والمواضيع الجديدة) عبر البريد الإلكتروني وفقا لجدول زمني محدد.",
|
||||||
"digest_daily": "Daily",
|
"digest_off": "غير مفعل",
|
||||||
"digest_weekly": "Weekly",
|
"digest_daily": "يوميا",
|
||||||
"digest_monthly": "Monthly",
|
"digest_weekly": "أسبوعيًّا",
|
||||||
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
|
"digest_monthly": "شهريًّا",
|
||||||
"has_no_follower": "هذا المستخدم ليس لديه أي أتباع :(",
|
"send_chat_notifications": "استلام رسالة إلكترونية عند ورود محادثة وأنا غير متصل.",
|
||||||
"follows_no_one": "هذا المستخدم لا يتبع أحد :(",
|
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
|
||||||
"has_no_posts": "This user didn't post anything yet.",
|
"settings-require-reload": "تغيير بعض اﻹعدادات يتطلب تحديث الصفحة. إضغط هنا لتحديث الصفحة",
|
||||||
"has_no_topics": "This user didn't post any topics yet.",
|
"has_no_follower": "هذا المستخدم ليس لديه أي متابع :(",
|
||||||
|
"follows_no_one": "هذا المستخدم لا يتابع أحد :(",
|
||||||
|
"has_no_posts": "This user hasn't posted anything yet.",
|
||||||
|
"has_no_topics": "This user hasn't posted any topics yet.",
|
||||||
|
"has_no_watched_topics": "This user hasn't watched any topics yet.",
|
||||||
"email_hidden": "البريد الإلكتروني مخفي",
|
"email_hidden": "البريد الإلكتروني مخفي",
|
||||||
"hidden": "مخفي",
|
"hidden": "مخفي",
|
||||||
"paginate_description": "Paginate topics and posts instead of using infinite scroll.",
|
"paginate_description": "Paginate topics and posts instead of using infinite scroll",
|
||||||
"topics_per_page": "Topics per Page",
|
"topics_per_page": "المواضيع في كل صفحة",
|
||||||
"posts_per_page": "Posts per Page",
|
"posts_per_page": "الردود في كل صفحة",
|
||||||
"notification_sounds": "Play a sound when you receive a notification.",
|
"notification_sounds": "تشغيل صوت عند تلقي تنبيه",
|
||||||
"browsing": "Browsing Settings",
|
"browsing": "خيارات التصفح",
|
||||||
"open_links_in_new_tab": "Open outgoing links in new tab?",
|
"open_links_in_new_tab": "فتح الروابط الخارجية في نافدة جديدة",
|
||||||
"follow_topics_you_reply_to": "Follow topics that you reply to.",
|
"enable_topic_searching": "تفعيل خاصية البحث داخل المواضيع",
|
||||||
"follow_topics_you_create": "Follow topics you create."
|
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen",
|
||||||
|
"follow_topics_you_reply_to": "متابعة المواضيع التي تقوم بالرد فيها",
|
||||||
|
"follow_topics_you_create": "متابعة المواضيع التي تنشئها",
|
||||||
|
"grouptitle": "حدد عنوان المجموعة الذي تريد عرضه",
|
||||||
|
"no-group-title": "لا يوجد عنوان للمجموعة"
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,21 @@
|
|||||||
{
|
{
|
||||||
"latest_users": "أحدث المستخدمين",
|
"latest_users": "أحدث الأعضاء",
|
||||||
"top_posters": "أكثر المشتركين",
|
"top_posters": "اﻷكثر مشاركة",
|
||||||
"most_reputation": "أعلى سمعة",
|
"most_reputation": "أعلى سمعة",
|
||||||
"search": "بحث",
|
"search": "بحث",
|
||||||
"enter_username": "أدخل اسم مستخدم للبحث",
|
"enter_username": "أدخل اسم مستخدم للبحث",
|
||||||
"load_more": "حمل المزيد",
|
"load_more": "حمل المزيد",
|
||||||
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
|
"users-found-search-took": "تم إيجاد %1 مستخدمـ(ين)! استغرق البحث %2 ثانية.",
|
||||||
|
"filter-by": "Filter By",
|
||||||
|
"online-only": "المتصلون فقط",
|
||||||
|
"picture-only": "صورة فقط",
|
||||||
|
"invite": "Invite",
|
||||||
|
"invitation-email-sent": "An invitation email has been sent to %1",
|
||||||
|
"user_list": "User List",
|
||||||
|
"recent_topics": "Recent Topics",
|
||||||
|
"popular_topics": "Popular Topics",
|
||||||
|
"unread_topics": "Unread Topics",
|
||||||
|
"categories": "Categories",
|
||||||
|
"tags": "Tags",
|
||||||
|
"map": "Map"
|
||||||
}
|
}
|
||||||
12
public/language/bg/category.json
Normal file
12
public/language/bg/category.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"new_topic_button": "Нова тема",
|
||||||
|
"guest-login-post": "Влезте, за да можете да публикувате",
|
||||||
|
"no_topics": "<strong>Все още няма теми в тази категория.</strong><br />Защо не създадеш една?",
|
||||||
|
"browsing": "Разглежда",
|
||||||
|
"no_replies": "Все още никой не е отговорил",
|
||||||
|
"share_this_category": "Споделяне на тази категория",
|
||||||
|
"watch": "Следене",
|
||||||
|
"ignore": "Игнориране",
|
||||||
|
"watch.message": "Вече следите обновленията в тази категория",
|
||||||
|
"ignore.message": "Вече не следите обновленията в тази категория"
|
||||||
|
}
|
||||||
32
public/language/bg/email.json
Normal file
32
public/language/bg/email.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"password-reset-requested": "Изпратена е заявка за подновяване на паролата – %1!",
|
||||||
|
"welcome-to": "Добре дошли в %1",
|
||||||
|
"invite": "Покана от %1",
|
||||||
|
"greeting_no_name": "Здравейте",
|
||||||
|
"greeting_with_name": "Здравейте, %1",
|
||||||
|
"welcome.text1": "Благодарим Ви, че се регистрирахте с %1",
|
||||||
|
"welcome.text2": "За да активирате напълно Вашия акаунт, трябва да потвърдите е-пощата, с която сте се регистрирали.",
|
||||||
|
"welcome.text3": "Вашата заявка за регистрация беше приета от администратор. Вече можете да се впишете с Вашето потребителско име и парола.",
|
||||||
|
"welcome.cta": "Натиснете тук, за да потвърдите Вашата е-поща.",
|
||||||
|
"invitation.text1": "%1 Ви покани да се присъедините към %2",
|
||||||
|
"invitation.ctr": "Натиснете тук, за да си създадете акаунт.",
|
||||||
|
"reset.text1": "Получихме заявка за подновяване на Вашата парола, най-вероятно защото сте я забравили. Ако това не е така, моля не обръщайте внимание на това е-писмо.",
|
||||||
|
"reset.text2": "За да продължите с процедурата по подновяване на паролата, моля последвайте следната връзка:",
|
||||||
|
"reset.cta": "Натиснете тук, за да подновите паролата си",
|
||||||
|
"reset.notify.subject": "Паролата беше променена успешно",
|
||||||
|
"reset.notify.text1": "Известяваме Ви, че на %1, Вашата парола беше променена успешно.",
|
||||||
|
"reset.notify.text2": "Ако не сте поискали това, моля, свържете се незабавно с администратор.",
|
||||||
|
"digest.notifications": "Имате непрочетени известия от %1:",
|
||||||
|
"digest.latest_topics": "Последни теми от %1",
|
||||||
|
"digest.cta": "Натиснете тук, за да посетите %1",
|
||||||
|
"digest.unsub.info": "Това резюме беше изпратено до Вас поради настройките Ви за абонаментите.",
|
||||||
|
"digest.no_topics": "Не е имало дейност по темите в последните %1",
|
||||||
|
"notif.chat.subject": "Получено е ново чат съобщение от %1",
|
||||||
|
"notif.chat.cta": "Натиснете тук, за да продължите разговора",
|
||||||
|
"notif.chat.unsub.info": "Това известие за чата беше изпратено до Вас поради настройките Ви за абонаментите.",
|
||||||
|
"notif.post.cta": "Натиснете тук, за да прочетете цялата тема",
|
||||||
|
"notif.post.unsub.info": "Това известие за публикация беше изпратено до Вас поради настройките Ви за абонаментите.",
|
||||||
|
"test.text1": "Това е пробно е-писмо, за да потвърдим, че изпращачът на е-поща е правилно настроен за Вашия NodeBB.",
|
||||||
|
"unsub.cta": "Натиснете тук, за да промените тези настройки",
|
||||||
|
"closing": "Благодарим Ви!"
|
||||||
|
}
|
||||||
88
public/language/bg/error.json
Normal file
88
public/language/bg/error.json
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"invalid-data": "Невалидни данни",
|
||||||
|
"not-logged-in": "Изглежда не сте влезли в системата.",
|
||||||
|
"account-locked": "Вашият акаунт беше заключен временно",
|
||||||
|
"search-requires-login": "Търсенето изисква акаунт – моля, влезте или се регистрирайте.",
|
||||||
|
"invalid-cid": "Невалиден идентификатор на категория",
|
||||||
|
"invalid-tid": "Невалиден идентификатор на тема",
|
||||||
|
"invalid-pid": "Невалиден идентификатор на публикация",
|
||||||
|
"invalid-uid": "Невалиден идентификатор на потребител",
|
||||||
|
"invalid-username": "Невалидно потребителско име",
|
||||||
|
"invalid-email": "Невалидна е-поща",
|
||||||
|
"invalid-title": "Невалидно заглавие!",
|
||||||
|
"invalid-user-data": "Невалидни потребителски данни",
|
||||||
|
"invalid-password": "Невалидна парола",
|
||||||
|
"invalid-username-or-password": "Моля, посочете потребителско име и парола",
|
||||||
|
"invalid-search-term": "Невалиден текст за търсене",
|
||||||
|
"invalid-pagination-value": "Невалиден номер на страница",
|
||||||
|
"username-taken": "Потребителското име е заето",
|
||||||
|
"email-taken": "Е-пощата е заета",
|
||||||
|
"email-not-confirmed": "Вашата е-поща все още не е потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
||||||
|
"email-not-confirmed-chat": "Няма да можете да пишете в чата, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
||||||
|
"no-email-to-confirm": "Този форум изисква потвърдена е-поща. Моля, натиснете тук, за да въведете е-поща",
|
||||||
|
"email-confirm-failed": "Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
|
||||||
|
"confirm-email-already-sent": "Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
|
||||||
|
"username-too-short": "Потребителското име е твърде кратко",
|
||||||
|
"username-too-long": "Потребителското име е твърде дълго",
|
||||||
|
"user-banned": "Потребителят е блокиран",
|
||||||
|
"user-too-new": "Съжаляваме, но трябва да изчакате поне %1 секунда/и, преди да направите първата си публикация",
|
||||||
|
"no-category": "Категорията не съществува",
|
||||||
|
"no-topic": "Темата не съществува",
|
||||||
|
"no-post": "Публикацията не съществува",
|
||||||
|
"no-group": "Групата не съществува",
|
||||||
|
"no-user": "Потребителят не съществува",
|
||||||
|
"no-teaser": "Резюмето не съществува",
|
||||||
|
"no-privileges": "Нямате достатъчно права за това действие.",
|
||||||
|
"no-emailers-configured": "Добавките за е-поща не са заредени, така че не може да бъде изпратено пробно е-писмо",
|
||||||
|
"category-disabled": "Категорията е изключена",
|
||||||
|
"topic-locked": "Темата е заключена",
|
||||||
|
"post-edit-duration-expired": "Можете да редактирате публикациите си до %1 секунда/и, след като ги пуснете",
|
||||||
|
"still-uploading": "Моля, изчакайте качването да приключи.",
|
||||||
|
"content-too-short": "Моля, въведете по-дълъг текст на публикацията. Публикациите трябва да съдържат поне %1 символ(а).",
|
||||||
|
"content-too-long": "Моля, въведете по-кратък текст на публикацията. Публикациите трябва да съдържат не повече от %1 символ(а).",
|
||||||
|
"title-too-short": "Моля, въведете по-дълго заглавие. Заглавията трябва да съдържат поне %1 символ(а).",
|
||||||
|
"title-too-long": "Моля, въведете по-кратко заглавие. Заглавията трябва да съдържат не повече от %1 символ(а).",
|
||||||
|
"too-many-posts": "Можете да публикувате веднъж на %1 секунда/и – моля, изчакайте малко, преди да опитате да публикувате отново",
|
||||||
|
"too-many-posts-newbie": "Като нов потребител, Вие можете да публикувате веднъж на %1 секунда/и, докато не натрупате %2 репутация – моля, изчакайте малко, преди да опитате да публикувате отново",
|
||||||
|
"tag-too-short": "Моля, въведете по-дълъг етикет. Етикетите трябва да съдържат поне %1 символ(а)",
|
||||||
|
"tag-too-long": "Моля, въведете по-кратък етикет. Етикетите трябва да съдържат не повече от %1 символ(а)",
|
||||||
|
"file-too-big": "Максималният разрешен размер на файл е %1 КБ – моля, качете по-малък файл",
|
||||||
|
"cant-vote-self-post": "Не можете да гласувате за собствената си публикация",
|
||||||
|
"already-favourited": "Вече сте отбелязали тази публикация като любима",
|
||||||
|
"already-unfavourited": "Вече сте премахнали тази публикация от любимите си",
|
||||||
|
"cant-ban-other-admins": "Не можете да блокирате другите администратори!",
|
||||||
|
"cant-remove-last-admin": "Вие сте единственият администратор. Добавете друг потребител като администратор, преди да премахнете себе си като администратор",
|
||||||
|
"invalid-image-type": "Грешен тип на изображение. Позволените типове са: %1",
|
||||||
|
"invalid-image-extension": "Грешно разширение на изображението",
|
||||||
|
"invalid-file-type": "Грешен тип на файл. Позволените типове са: %1",
|
||||||
|
"group-name-too-short": "Името на групата е твърде кратко",
|
||||||
|
"group-already-exists": "Вече съществува такава група",
|
||||||
|
"group-name-change-not-allowed": "Промяната на името на групата не е разрешено",
|
||||||
|
"group-already-member": "Вече сте част от тази група",
|
||||||
|
"group-needs-owner": "Тази група се нуждае от поне един собственик",
|
||||||
|
"group-already-invited": "Този потребител вече е бил поканен",
|
||||||
|
"group-already-requested": "Вашата заявка за членство вече е била изпратена",
|
||||||
|
"post-already-deleted": "Тази публикация вече е изтрита",
|
||||||
|
"post-already-restored": "Тази публикация вече е възстановена",
|
||||||
|
"topic-already-deleted": "Тази тема вече е изтрита",
|
||||||
|
"topic-already-restored": "Тази тема вече е възстановена",
|
||||||
|
"cant-purge-main-post": "Не можете да изчистите първоначалната публикация. Моля, вместо това изтрийте темата.",
|
||||||
|
"topic-thumbnails-are-disabled": "Иконките на темите са изключени.",
|
||||||
|
"invalid-file": "Грешен файл",
|
||||||
|
"uploads-are-disabled": "Качването не е разрешено",
|
||||||
|
"signature-too-long": "Съжаляваме, но подписът Ви трябва да съдържа не повече от %1 символ(а).",
|
||||||
|
"about-me-too-long": "Съжаляваме, но информацията за Вас трябва да съдържа не повече от %1 символ(а).",
|
||||||
|
"cant-chat-with-yourself": "Не можете да пишете чат съобщение на себе си!",
|
||||||
|
"chat-restricted": "Този потребител е ограничил чат съобщенията до себе си. Той трябва първо да Ви последва, преди да можете да си пишете с него.",
|
||||||
|
"too-many-messages": "Изпратили сте твърде много съобщения. Моля, изчакайте малко.",
|
||||||
|
"reputation-system-disabled": "Системата за репутация е изключена.",
|
||||||
|
"downvoting-disabled": "Отрицателното гласуване е изключено",
|
||||||
|
"not-enough-reputation-to-downvote": "Нямате достатъчно репутация, за да гласувате отрицателно за тази публикация",
|
||||||
|
"not-enough-reputation-to-flag": "Нямате достатъчно репутация, за да докладвате тази публикация",
|
||||||
|
"already-flagged": "Вече сте докладвали тази публикация",
|
||||||
|
"reload-failed": "NodeBB срещна проблем при презареждането: „%1“. NodeBB ще продължи да поддържа съществуващите клиентски ресурси, но Вие трябва да отмените последните си действия преди презареждането.",
|
||||||
|
"registration-error": "Грешка при регистрацията",
|
||||||
|
"parse-error": "Нещо се обърка при прочитането на отговора на сървъра",
|
||||||
|
"wrong-login-type-email": "Моля, използвайте е-пощата си, за да влезете",
|
||||||
|
"wrong-login-type-username": "Моля, използвайте потребителското си име, за да влезете"
|
||||||
|
}
|
||||||
82
public/language/bg/global.json
Normal file
82
public/language/bg/global.json
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"home": "Начало",
|
||||||
|
"search": "Търсене",
|
||||||
|
"buttons.close": "Затваряне",
|
||||||
|
"403.title": "Достъпът е отказан",
|
||||||
|
"403.message": "Изглежда сте посетили страница, до която нямате достъп.",
|
||||||
|
"403.login": "Може би трябва да <a href='%1/login'>опитате да влезете</a>?",
|
||||||
|
"404.title": "Не е открита",
|
||||||
|
"404.message": "Изглежда сте се опитали да посетите страница, която не съществува. Върнете се към <a href='%1/'>началната страница</a>.",
|
||||||
|
"500.title": "Вътрешна грешка.",
|
||||||
|
"500.message": "Опа! Изглежда нещо се обърка!",
|
||||||
|
"register": "Регистриране",
|
||||||
|
"login": "Влизане",
|
||||||
|
"please_log_in": "Моля, влезте",
|
||||||
|
"logout": "Изход",
|
||||||
|
"posting_restriction_info": "Публикуването в момента е позволено само за регистрираните потребители. Натиснете тук, за да влезете.",
|
||||||
|
"welcome_back": "Добре дошли отново",
|
||||||
|
"you_have_successfully_logged_in": "Вие влязохте успешно",
|
||||||
|
"save_changes": "Запазване на промените",
|
||||||
|
"close": "Затваряне",
|
||||||
|
"pagination": "Страници",
|
||||||
|
"pagination.out_of": "%1 от %2",
|
||||||
|
"pagination.enter_index": "Въведете номер",
|
||||||
|
"header.admin": "Администратор",
|
||||||
|
"header.recent": "Скорошни",
|
||||||
|
"header.unread": "Непрочетени",
|
||||||
|
"header.tags": "Етикети",
|
||||||
|
"header.popular": "Популярни",
|
||||||
|
"header.users": "Потребители",
|
||||||
|
"header.groups": "Групи",
|
||||||
|
"header.chats": "Чатове",
|
||||||
|
"header.notifications": "Известия",
|
||||||
|
"header.search": "Търсене",
|
||||||
|
"header.profile": "Профил",
|
||||||
|
"notifications.loading": "Зареждане на известията",
|
||||||
|
"chats.loading": "Зареждане на чатовете",
|
||||||
|
"motd.welcome": "Добре дошли в NodeBB, системата за дискусии на бъдещето.",
|
||||||
|
"previouspage": "Предишна страница",
|
||||||
|
"nextpage": "Следваща страница",
|
||||||
|
"alert.success": "Готово",
|
||||||
|
"alert.error": "Грешка",
|
||||||
|
"alert.banned": "Блокиран",
|
||||||
|
"alert.banned.message": "Вие току-що бяхте блокиран. Сега ще излезете от системата.",
|
||||||
|
"alert.unfollow": "Вие вече не следвате %1!",
|
||||||
|
"alert.follow": "Вие следвате %1!",
|
||||||
|
"online": "На линия",
|
||||||
|
"users": "Потребители",
|
||||||
|
"topics": "Теми",
|
||||||
|
"posts": "Публикации",
|
||||||
|
"views": "Преглеждания",
|
||||||
|
"reputation": "Репутация",
|
||||||
|
"read_more": "още",
|
||||||
|
"more": "Още",
|
||||||
|
"posted_ago_by_guest": "публикувано %1 от гост",
|
||||||
|
"posted_ago_by": "публикувано %1 от %2",
|
||||||
|
"posted_ago": "публикувано %1",
|
||||||
|
"posted_in_ago_by_guest": "публикувано в %1 %2 от гост",
|
||||||
|
"posted_in_ago_by": "публикувано в %1 %2 от %3",
|
||||||
|
"posted_in_ago": "публикувано в %1 %2",
|
||||||
|
"replied_ago": "отговори %1",
|
||||||
|
"user_posted_ago": "%1 публикува %2",
|
||||||
|
"guest_posted_ago": "гост публикува %1",
|
||||||
|
"last_edited_by_ago": "последно редактирано от %1 %2",
|
||||||
|
"norecentposts": "Няма скорошни публикации",
|
||||||
|
"norecenttopics": "Няма скорошни теми",
|
||||||
|
"recentposts": "Скорошни публикации",
|
||||||
|
"recentips": "Наскоро ползвани IP адреси",
|
||||||
|
"away": "Отсъстващ",
|
||||||
|
"dnd": "Отпочиващ",
|
||||||
|
"invisible": "Невидим",
|
||||||
|
"offline": "Извън линия",
|
||||||
|
"email": "Е-поща",
|
||||||
|
"language": "Език",
|
||||||
|
"guest": "Гост",
|
||||||
|
"guests": "Гости",
|
||||||
|
"updated.title": "Форумът е актуализиран",
|
||||||
|
"updated.message": "Този форум току-що беше актуализиран до най-новата версия. Натиснете тук, за да опресните страницата.",
|
||||||
|
"privacy": "Поверителност",
|
||||||
|
"follow": "Следване",
|
||||||
|
"unfollow": "Прекратяване на следването",
|
||||||
|
"delete_all": "Изтриване на всичко"
|
||||||
|
}
|
||||||
43
public/language/bg/groups.json
Normal file
43
public/language/bg/groups.json
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"groups": "Групи",
|
||||||
|
"view_group": "Преглед на групата",
|
||||||
|
"owner": "Собственик на групата",
|
||||||
|
"new_group": "Създаване на нова група",
|
||||||
|
"no_groups_found": "Няма групи",
|
||||||
|
"pending.accept": "Приемане",
|
||||||
|
"pending.reject": "Отхвърляне",
|
||||||
|
"pending.accept_all": "Приемане на всички",
|
||||||
|
"pending.reject_all": "Отхвърляне на всички",
|
||||||
|
"pending.none": "В момента няма чакащи членове",
|
||||||
|
"invited.none": "В момента няма поканени членове",
|
||||||
|
"invited.uninvite": "Отмяна на поканата",
|
||||||
|
"invited.search": "Потърсете потребител, когото да поканите в тази група",
|
||||||
|
"cover-instructions": "Плъзнете снимка, наместете я в предпочитаната позиция и натистнете <strong>Запазване</strong>",
|
||||||
|
"cover-change": "Промяна",
|
||||||
|
"cover-save": "Запазване",
|
||||||
|
"cover-saving": "Запазване",
|
||||||
|
"details.title": "Подробности за групата",
|
||||||
|
"details.members": "Списък на членовете",
|
||||||
|
"details.pending": "Кандидатстващи членове",
|
||||||
|
"details.invited": "Поканени членове",
|
||||||
|
"details.has_no_posts": "Членовете на тази група не са публикували нищо.",
|
||||||
|
"details.latest_posts": "Скорошни публикации",
|
||||||
|
"details.private": "Частна",
|
||||||
|
"details.grant": "Даване/отнемане на собственост",
|
||||||
|
"details.kick": "Изгонване",
|
||||||
|
"details.owner_options": "Администрация на групата",
|
||||||
|
"details.group_name": "Име на групата",
|
||||||
|
"details.member_count": "Брой на членовете",
|
||||||
|
"details.creation_date": "Дата на създаване",
|
||||||
|
"details.description": "Описание",
|
||||||
|
"details.badge_preview": "Преглед на емблемата",
|
||||||
|
"details.change_icon": "Промяна на иконката",
|
||||||
|
"details.change_colour": "Промяна на цвета",
|
||||||
|
"details.badge_text": "Текст на емблемата",
|
||||||
|
"details.userTitleEnabled": "Показване на емблемата",
|
||||||
|
"details.private_help": "Ако е включено, присъединяването към група изисква одобрението на собственика ѝ",
|
||||||
|
"details.hidden": "Скрита",
|
||||||
|
"details.hidden_help": "Ако е включено, тази група няма да бъде извеждана в списъка от групи и потребителите ще трябва да бъдат поканени лично",
|
||||||
|
"event.updated": "Подробностите за групата бяха обновени",
|
||||||
|
"event.deleted": "Групата „%1“ беше изтрита"
|
||||||
|
}
|
||||||
5
public/language/bg/language.json
Normal file
5
public/language/bg/language.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"name": "Български",
|
||||||
|
"code": "bg",
|
||||||
|
"dir": "ltr"
|
||||||
|
}
|
||||||
11
public/language/bg/login.json
Normal file
11
public/language/bg/login.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"username-email": "Потребителско име / е-поща",
|
||||||
|
"username": "Потребителско име",
|
||||||
|
"email": "Е-поща",
|
||||||
|
"remember_me": "Запомнете ме?",
|
||||||
|
"forgot_password": "Забравена парола?",
|
||||||
|
"alternative_logins": "Други начини за влизане",
|
||||||
|
"failed_login_attempt": "Неуспешно влизане. Моля, опитайте отново.",
|
||||||
|
"login_successful": "Вие влязохте успешно!",
|
||||||
|
"dont_have_account": "Нямате акаунт?"
|
||||||
|
}
|
||||||
26
public/language/bg/modules.json
Normal file
26
public/language/bg/modules.json
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"chat.chatting_with": "Чат с <span id=\"chat-with-name\"></span>",
|
||||||
|
"chat.placeholder": "Въведете чат съобщението тук и натиснете Ентер за изпращане",
|
||||||
|
"chat.send": "Изпращане",
|
||||||
|
"chat.no_active": "Нямате текущи чатове.",
|
||||||
|
"chat.user_typing": "%1 пише...",
|
||||||
|
"chat.user_has_messaged_you": "%1 Ви написа съобщение.",
|
||||||
|
"chat.see_all": "Вижте всички чатове",
|
||||||
|
"chat.no-messages": "Моля, изберете получател, за да видите историята на чат съобщенията",
|
||||||
|
"chat.recent-chats": "Скорошни чатове",
|
||||||
|
"chat.contacts": "Контакти",
|
||||||
|
"chat.message-history": "История на съобщенията",
|
||||||
|
"chat.pop-out": "Отделяне на чата в прозорец",
|
||||||
|
"chat.maximize": "Уголемяване",
|
||||||
|
"chat.seven_days": "7 дни",
|
||||||
|
"chat.thirty_days": "30 дни",
|
||||||
|
"chat.three_months": "3 месеца",
|
||||||
|
"composer.compose": "Писане",
|
||||||
|
"composer.show_preview": "Показване на прегледа",
|
||||||
|
"composer.hide_preview": "Скриване на прегледа",
|
||||||
|
"composer.user_said_in": "%1 каза в %2:",
|
||||||
|
"composer.user_said": "%1 каза:",
|
||||||
|
"composer.discard": "Сигурни ли сте, че искате да отхвърлите тази публикация?",
|
||||||
|
"composer.submit_and_lock": "Публикуване и заключване",
|
||||||
|
"composer.toggle_dropdown": "Превключване на падащото меню"
|
||||||
|
}
|
||||||
28
public/language/bg/notifications.json
Normal file
28
public/language/bg/notifications.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"title": "Известия",
|
||||||
|
"no_notifs": "Нямате нови известия",
|
||||||
|
"see_all": "Вижте всички известия",
|
||||||
|
"mark_all_read": "Отбелязване на всички известия като прочетени",
|
||||||
|
"back_to_home": "Назад към %1",
|
||||||
|
"outgoing_link": "Външна връзка",
|
||||||
|
"outgoing_link_message": "Вие напускате %1.",
|
||||||
|
"continue_to": "Продължаване към %1",
|
||||||
|
"return_to": "Връщане към %1",
|
||||||
|
"new_notification": "Ново известие",
|
||||||
|
"you_have_unread_notifications": "Имате непрочетени известия",
|
||||||
|
"new_message_from": "Ново съобщение от <strong>%1</strong>",
|
||||||
|
"upvoted_your_post_in": "<strong>%1</strong> гласува положително за Ваша публикация в <strong>%2</strong>.",
|
||||||
|
"moved_your_post": "<strong>%1</strong> премести Ваша публикация.",
|
||||||
|
"moved_your_topic": "<strong>%1</strong> премести Ваша тема.",
|
||||||
|
"favourited_your_post_in": "<strong>%1</strong> отбеляза Ваша публикация в <strong>%2</strong> като любима.",
|
||||||
|
"user_flagged_post_in": "<strong>%1</strong> докладва Ваша публикация в <strong>%2</strong>",
|
||||||
|
"user_posted_to": "<strong>%1</strong> публикува отговор на: <strong>%2</strong>",
|
||||||
|
"user_posted_topic": "<strong>%1</strong> публикува нова тема: <strong>%2</strong>",
|
||||||
|
"user_mentioned_you_in": "<strong>%1</strong> Ви спомена в <strong>%2</strong>",
|
||||||
|
"user_started_following_you": "<strong>%1</strong> започна да Ви следва.",
|
||||||
|
"new_register": "<strong>%1</strong> изпрати заявка за регистрация.",
|
||||||
|
"email-confirmed": "Е-пощата беше потвърдена",
|
||||||
|
"email-confirmed-message": "Благодарим Ви, че потвърдихте е-пощата си. Акаунтът Ви е вече напълно активиран.",
|
||||||
|
"email-confirm-error-message": "Възникна проблем при потвърждаването на е-пощата Ви. Може кодът да е грешен или давността му да е изтекла.",
|
||||||
|
"email-confirm-sent": "Изпратено е е-писмо за потвърждение."
|
||||||
|
}
|
||||||
21
public/language/bg/pages.json
Normal file
21
public/language/bg/pages.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"home": "Начало",
|
||||||
|
"unread": "Непрочетени теми",
|
||||||
|
"popular": "Популярни теми",
|
||||||
|
"recent": "Скорошни теми",
|
||||||
|
"users": "Регистрирани потребители",
|
||||||
|
"notifications": "Известия",
|
||||||
|
"tags": "Етикети",
|
||||||
|
"tag": "Теми, отбелязани като „%1“",
|
||||||
|
"user.edit": "Редактиране на „%1“",
|
||||||
|
"user.following": "Хора, които %1 следва",
|
||||||
|
"user.followers": "Хора, които следват %1",
|
||||||
|
"user.posts": "Публикации от %1",
|
||||||
|
"user.topics": "Теми, създадени от %1",
|
||||||
|
"user.groups": "Групите на %1",
|
||||||
|
"user.favourites": "Любимите публикации на %1",
|
||||||
|
"user.settings": "Настройки на потребителя",
|
||||||
|
"user.watched": "Теми, следени от %1",
|
||||||
|
"maintenance.text": "%1 в момента е в профилактика. Моля, върнете се по-късно.",
|
||||||
|
"maintenance.messageIntro": "В допълнение, администраторът е оставил това съобщение:"
|
||||||
|
}
|
||||||
19
public/language/bg/recent.json
Normal file
19
public/language/bg/recent.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"title": "Скорошни",
|
||||||
|
"day": "Ден",
|
||||||
|
"week": "Седмица",
|
||||||
|
"month": "Месец",
|
||||||
|
"year": "Година",
|
||||||
|
"alltime": "Цялото време",
|
||||||
|
"no_recent_topics": "Няма скорошни теми.",
|
||||||
|
"no_popular_topics": "Няма популярни теми.",
|
||||||
|
"there-is-a-new-topic": "Има нова тема.",
|
||||||
|
"there-is-a-new-topic-and-a-new-post": "Има нова тема и нова публикация.",
|
||||||
|
"there-is-a-new-topic-and-new-posts": "Има нова тема и %1 нови публикации.",
|
||||||
|
"there-are-new-topics": "Има %1 нови теми.",
|
||||||
|
"there-are-new-topics-and-a-new-post": "Има %1 нови теми и нова публикация.",
|
||||||
|
"there-are-new-topics-and-new-posts": "Има %1 нови теми и %2 нови публикации.",
|
||||||
|
"there-is-a-new-post": "Има нова публикация",
|
||||||
|
"there-are-new-posts": "Има %1 нови публикации.",
|
||||||
|
"click-here-to-reload": "Натиснете тук, за да презаредите."
|
||||||
|
}
|
||||||
19
public/language/bg/register.json
Normal file
19
public/language/bg/register.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"register": "Регистрация",
|
||||||
|
"help.email": "По подразбиране, Вашата е-поща ще бъде скрита за останалите.",
|
||||||
|
"help.username_restrictions": "Уникално потребителско име с дължина между %1 и %2 символа. Другите ще могат да Ви споменават чрез @<span id='yourUsername'>потребител</span>.",
|
||||||
|
"help.minimum_password_length": "Дължината на паролата Ви трябва да е поне %1 символа.",
|
||||||
|
"email_address": "Е-поща",
|
||||||
|
"email_address_placeholder": "Въведете адрес на е-поща",
|
||||||
|
"username": "Потребителско име",
|
||||||
|
"username_placeholder": "Въведете потребителско име",
|
||||||
|
"password": "Парола",
|
||||||
|
"password_placeholder": "Въведете парола",
|
||||||
|
"confirm_password": "Потвърдете паролата",
|
||||||
|
"confirm_password_placeholder": "Потвърдете паролата",
|
||||||
|
"register_now_button": "Регистриране",
|
||||||
|
"alternative_registration": "Друг начин за регистриране",
|
||||||
|
"terms_of_use": "Условия за ползване",
|
||||||
|
"agree_to_terms_of_use": "Съгласен съм с условията за ползване",
|
||||||
|
"registration-added-to-queue": "Вашата регистрация беше добавена в опашката за одобрение. Ще получите е-писмо, когато тя бъде одобрена от администратор."
|
||||||
|
}
|
||||||
17
public/language/bg/reset_password.json
Normal file
17
public/language/bg/reset_password.json
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"reset_password": "Подновяване на паролата",
|
||||||
|
"update_password": "Обновяване на паролата",
|
||||||
|
"password_changed.title": "Паролата беше променена",
|
||||||
|
"password_changed.message": "<p>Паролата беше подновена. Моля, <a href=\"/login\">влезте отново</a>.",
|
||||||
|
"wrong_reset_code.title": "Грешен код за подновяване",
|
||||||
|
"wrong_reset_code.message": "Полученият код за подновяване беше грешен. Моля, опитайте отново или <a href=\"/reset\">поискайте нов код за подновяване</a>.",
|
||||||
|
"new_password": "Нова парола",
|
||||||
|
"repeat_password": "Потвърдете паролата",
|
||||||
|
"enter_email": "Моля, въведете Вашата <strong>е-поща</strong> и ние ще Ви изпратим е-писмо с инструкции за това как да достъпите акаунта си.",
|
||||||
|
"enter_email_address": "Въведете адрес на е-поща",
|
||||||
|
"password_reset_sent": "Информацията за подновяване на паролата беше изпратена",
|
||||||
|
"invalid_email": "Грешна е-поща / е-пощата не съществува!",
|
||||||
|
"password_too_short": "Паролата е твърде кратка. Моля, изберете друга парола.",
|
||||||
|
"passwords_do_not_match": "Двете пароли, които въведохте, са различни.",
|
||||||
|
"password_expired": "Паролата Ви е с изтекла давност. Моля, изберете нова парола"
|
||||||
|
}
|
||||||
40
public/language/bg/search.json
Normal file
40
public/language/bg/search.json
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"results_matching": "%1 резултат(а), отговарящи на „%2“, (%3 секунди)",
|
||||||
|
"no-matches": "Няма съвпадения",
|
||||||
|
"advanced-search": "Разширено търсене",
|
||||||
|
"in": "В",
|
||||||
|
"titles": "Заглавия",
|
||||||
|
"titles-posts": "Заглавия и публикации",
|
||||||
|
"posted-by": "Публикувано от",
|
||||||
|
"in-categories": "В категории",
|
||||||
|
"search-child-categories": "Претърсване на подкатегориите",
|
||||||
|
"reply-count": "Брой на отговорите",
|
||||||
|
"at-least": "Поне",
|
||||||
|
"at-most": "Най-много",
|
||||||
|
"post-time": "Време на публикуване",
|
||||||
|
"newer-than": "По-нови от",
|
||||||
|
"older-than": "По-стари от",
|
||||||
|
"any-date": "Която и да е дата",
|
||||||
|
"yesterday": "Вчера",
|
||||||
|
"one-week": "Една седмица",
|
||||||
|
"two-weeks": "Две седмици",
|
||||||
|
"one-month": "Един месец",
|
||||||
|
"three-months": "Три месеца",
|
||||||
|
"six-months": "Шест месеца",
|
||||||
|
"one-year": "Една година",
|
||||||
|
"sort-by": "Подреждане по",
|
||||||
|
"last-reply-time": "Време на последния отговор",
|
||||||
|
"topic-title": "Заглавие на темата",
|
||||||
|
"number-of-replies": "Брой на отговорите",
|
||||||
|
"number-of-views": "Брой на преглежданията",
|
||||||
|
"topic-start-date": "Начална дата на темата",
|
||||||
|
"username": "Потребителско име",
|
||||||
|
"category": "Категория",
|
||||||
|
"descending": "В низходящ ред",
|
||||||
|
"ascending": "Във възходящ ред",
|
||||||
|
"save-preferences": "Запазване на предпочитанията",
|
||||||
|
"clear-preferences": "Изчистване на предпочитанията",
|
||||||
|
"search-preferences-saved": "Предпочитанията за търсене бяха запазени",
|
||||||
|
"search-preferences-cleared": "Предпочитанията за търсене бяха изчистени",
|
||||||
|
"show-results-as": "Показване на резултатите като"
|
||||||
|
}
|
||||||
6
public/language/bg/success.json
Normal file
6
public/language/bg/success.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"success": "Готово",
|
||||||
|
"topic-post": "Вие публикувахте успешно.",
|
||||||
|
"authentication-successful": "Успешно удостоверяване",
|
||||||
|
"settings-saved": "Настройките са записани!"
|
||||||
|
}
|
||||||
7
public/language/bg/tags.json
Normal file
7
public/language/bg/tags.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"no_tag_topics": "Няма теми с този етикет.",
|
||||||
|
"tags": "Етикети",
|
||||||
|
"enter_tags_here": "Въведете етикетите тук, всеки може да е с дължина между %1 и %2 символа.",
|
||||||
|
"enter_tags_here_short": "Въведете етикети...",
|
||||||
|
"no_tags": "Все още няма етикети."
|
||||||
|
}
|
||||||
100
public/language/bg/topic.json
Normal file
100
public/language/bg/topic.json
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
{
|
||||||
|
"topic": "Тема",
|
||||||
|
"topic_id": "Идентификатора на темата",
|
||||||
|
"topic_id_placeholder": "Въведете идентификатор на темата",
|
||||||
|
"no_topics_found": "Няма открити теми!",
|
||||||
|
"no_posts_found": "Няма открити публикации!",
|
||||||
|
"post_is_deleted": "Тази публикация е изтрита!",
|
||||||
|
"topic_is_deleted": "Тази тема е изтрита!",
|
||||||
|
"profile": "Профил",
|
||||||
|
"posted_by": "Публикувано от %1",
|
||||||
|
"posted_by_guest": "Публикувано от гост",
|
||||||
|
"chat": "Чат",
|
||||||
|
"notify_me": "Получавайте известия за новите отговори в тази тема",
|
||||||
|
"quote": "Цитат",
|
||||||
|
"reply": "Отговор",
|
||||||
|
"guest-login-reply": "Влезте, за да отговорите",
|
||||||
|
"edit": "Редактиране",
|
||||||
|
"delete": "Изтриване",
|
||||||
|
"purge": "Изчистване",
|
||||||
|
"restore": "Възстановяване",
|
||||||
|
"move": "Преместване",
|
||||||
|
"fork": "Разделяне",
|
||||||
|
"link": "Връзка",
|
||||||
|
"share": "Споделяне",
|
||||||
|
"tools": "Инструменти",
|
||||||
|
"flag": "Докладване",
|
||||||
|
"locked": "Заключена",
|
||||||
|
"bookmark_instructions": "Натиснете, за да се върнете на последната си позиция или затворете, за да отхвърлите.",
|
||||||
|
"flag_title": "Докладване на тази публикация до модератор",
|
||||||
|
"flag_confirm": "Сигурни ли сте, че искате да докладвате тази публикация?",
|
||||||
|
"flag_success": "Тази публикация е била докладвана до модератор.",
|
||||||
|
"deleted_message": "Тази тема е била изтрита. Само потребители с права за управление на темите могат да я видят.",
|
||||||
|
"following_topic.message": "Вече ще получавате известия когато някой публикува коментар в тази тема.",
|
||||||
|
"not_following_topic.message": "Вече няма да получавате известия за тази тема.",
|
||||||
|
"login_to_subscribe": "Моля, регистрирайте се или влезте, за да се абонирате за тази тема.",
|
||||||
|
"markAsUnreadForAll.success": "Темата е отбелязана като непрочетена за всички.",
|
||||||
|
"watch": "Наблюдаване",
|
||||||
|
"unwatch": "Спиране на наблюдаването",
|
||||||
|
"watch.title": "Получавайте известия за новите отговори в тази тема",
|
||||||
|
"unwatch.title": "Спрете да наблюдавате тази тема",
|
||||||
|
"share_this_post": "Споделете тази публикация",
|
||||||
|
"thread_tools.title": "Инструменти за темата",
|
||||||
|
"thread_tools.markAsUnreadForAll": "Отбелязване като непрочетена",
|
||||||
|
"thread_tools.pin": "Закачане на темата",
|
||||||
|
"thread_tools.unpin": "Откачане на темата",
|
||||||
|
"thread_tools.lock": "Заключване на темата",
|
||||||
|
"thread_tools.unlock": "Отключване на темата",
|
||||||
|
"thread_tools.move": "Преместване на темата",
|
||||||
|
"thread_tools.move_all": "Преместване на всички",
|
||||||
|
"thread_tools.fork": "Разделяне на темата",
|
||||||
|
"thread_tools.delete": "Изтриване на темата",
|
||||||
|
"thread_tools.delete_confirm": "Сигурни ли сте, че искате да изтриете тази тема?",
|
||||||
|
"thread_tools.restore": "Възстановяване на темата",
|
||||||
|
"thread_tools.restore_confirm": "Сигурни ли сте, че искате да възстановите тази тема?",
|
||||||
|
"thread_tools.purge": "Изчистване на темата",
|
||||||
|
"thread_tools.purge_confirm": "Сигурни ли сте, че искате да изчистите тази тема?",
|
||||||
|
"topic_move_success": "Темата беше преместена успешно в %1",
|
||||||
|
"post_delete_confirm": "Сигурни ли сте, че искате да изтриете тази публикация?",
|
||||||
|
"post_restore_confirm": "Сигурни ли сте, че искате да възстановите тази публикация?",
|
||||||
|
"post_purge_confirm": "Сигурни ли сте, че искате да изчистите тази публикация?",
|
||||||
|
"load_categories": "Зареждане на категориите",
|
||||||
|
"disabled_categories_note": "Изключените категории са засивени",
|
||||||
|
"confirm_move": "Преместване",
|
||||||
|
"confirm_fork": "Разделяне",
|
||||||
|
"favourite": "Любима",
|
||||||
|
"favourites": "Любими",
|
||||||
|
"favourites.has_no_favourites": "Нямате любими, отбележете няколко публикации, за да ги видите тук!",
|
||||||
|
"loading_more_posts": "Зареждане на още публикации",
|
||||||
|
"move_topic": "Преместване на темата",
|
||||||
|
"move_topics": "Преместване на темите",
|
||||||
|
"move_post": "Преместване на публикацията",
|
||||||
|
"post_moved": "Публикацията беше преместена!",
|
||||||
|
"fork_topic": "Разделяне на темата",
|
||||||
|
"topic_will_be_moved_to": "Тази тема ще бъде преместена в категорията",
|
||||||
|
"fork_topic_instruction": "Натиснете публикациите, които искате да отделите",
|
||||||
|
"fork_no_pids": "Няма избрани публикации!",
|
||||||
|
"fork_success": "Темата е разделена успешно! Натиснете тук, за да преминете към отделената тема.",
|
||||||
|
"composer.title_placeholder": "Въведете заглавието на темата си тук...",
|
||||||
|
"composer.handle_placeholder": "Име",
|
||||||
|
"composer.discard": "Отхвърляне",
|
||||||
|
"composer.submit": "Публикуване",
|
||||||
|
"composer.replying_to": "Отговор на %1",
|
||||||
|
"composer.new_topic": "Нова тема",
|
||||||
|
"composer.uploading": "качване...",
|
||||||
|
"composer.thumb_url_label": "Поставете адреса на иконка за темата",
|
||||||
|
"composer.thumb_title": "Добавете иконка към тази тема",
|
||||||
|
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
|
||||||
|
"composer.thumb_file_label": "Или качете файл",
|
||||||
|
"composer.thumb_remove": "Изчистване на полетата",
|
||||||
|
"composer.drag_and_drop_images": "Плъзнете снимките тук",
|
||||||
|
"more_users_and_guests": "Още %1 потребител(и) и %2 гост(и)",
|
||||||
|
"more_users": "Още %1 потребител(и)",
|
||||||
|
"more_guests": "Още %1 гост(и)",
|
||||||
|
"users_and_others": "%1 и %2 други",
|
||||||
|
"sort_by": "Подреждане по",
|
||||||
|
"oldest_to_newest": "Първо най-старите",
|
||||||
|
"newest_to_oldest": "Първо най-новите",
|
||||||
|
"most_votes": "Най-много гласове",
|
||||||
|
"most_posts": "Най-много публикации"
|
||||||
|
}
|
||||||
10
public/language/bg/unread.json
Normal file
10
public/language/bg/unread.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"title": "Непрочетени",
|
||||||
|
"no_unread_topics": "Няма непрочетени теми.",
|
||||||
|
"load_more": "Зареждане на още",
|
||||||
|
"mark_as_read": "Отбелязване като прочетени",
|
||||||
|
"selected": "Избраните",
|
||||||
|
"all": "Всички",
|
||||||
|
"all_categories": "Всички категории",
|
||||||
|
"topics_marked_as_read.success": "Темите бяха отбелязани като прочетени!"
|
||||||
|
}
|
||||||
88
public/language/bg/user.json
Normal file
88
public/language/bg/user.json
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"banned": "Блокиран",
|
||||||
|
"offline": "Извън линия",
|
||||||
|
"username": "Потребителско име",
|
||||||
|
"joindate": "Дата на присъединяване",
|
||||||
|
"postcount": "Брой публикации",
|
||||||
|
"email": "Е-поща",
|
||||||
|
"confirm_email": "Потвърдете е-пощата",
|
||||||
|
"ban_account": "Блокиране на акаунта",
|
||||||
|
"ban_account_confirm": "Наистина ли искате да блокирате този потребител?",
|
||||||
|
"unban_account": "Отблокиране на акаунта",
|
||||||
|
"delete_account": "Изтриване на акаунта",
|
||||||
|
"delete_account_confirm": "Сигурни ли сте, че искате да изтриете акаунта си? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните си</strong><br /><br />Въведете потребителското си име, за да потвърдите, че искате да унищожите този акаунт.",
|
||||||
|
"delete_this_account_confirm": "Сигурни ли сте, че искате да изтриете този акаунт? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните</strong><br /><br />",
|
||||||
|
"fullname": "Цяло име",
|
||||||
|
"website": "Уеб сайт",
|
||||||
|
"location": "Местоположение",
|
||||||
|
"age": "Възраст",
|
||||||
|
"joined": "Присъединил се",
|
||||||
|
"lastonline": "Последно на линия",
|
||||||
|
"profile": "Профил",
|
||||||
|
"profile_views": "Преглеждания на профила",
|
||||||
|
"reputation": "Репутация",
|
||||||
|
"favourites": "Любими",
|
||||||
|
"watched": "Наблюдавани",
|
||||||
|
"followers": "Последователи",
|
||||||
|
"following": "Следва",
|
||||||
|
"aboutme": "За мен",
|
||||||
|
"signature": "Подпис",
|
||||||
|
"gravatar": "Граватар",
|
||||||
|
"birthday": "Рождена дата",
|
||||||
|
"chat": "Чат",
|
||||||
|
"follow": "Следване",
|
||||||
|
"unfollow": "Спиране на следването",
|
||||||
|
"more": "Още",
|
||||||
|
"profile_update_success": "Профилът беше обновен успешно!",
|
||||||
|
"change_picture": "Промяна на снимката",
|
||||||
|
"edit": "Редактиране",
|
||||||
|
"uploaded_picture": "Качена снимка",
|
||||||
|
"upload_new_picture": "Качване на нова снимка",
|
||||||
|
"upload_new_picture_from_url": "Качване на нова снимка от адрес",
|
||||||
|
"current_password": "Текуща парола",
|
||||||
|
"change_password": "Промяна на паролата",
|
||||||
|
"change_password_error": "Грешна парола!",
|
||||||
|
"change_password_error_wrong_current": "Текущата Ви парола е грешна!",
|
||||||
|
"change_password_error_length": "Паролата е твърде кратка!",
|
||||||
|
"change_password_error_match": "Паролите са различни!",
|
||||||
|
"change_password_error_privileges": "Нямате права да промените тази парола.",
|
||||||
|
"change_password_success": "Паролата ви е обновена!",
|
||||||
|
"confirm_password": "Потвърдете паролата",
|
||||||
|
"password": "Парола",
|
||||||
|
"username_taken_workaround": "Потребителското име, което искате, е заето и затова ние го променихме леко. Вие ще се наричате <strong>%1</strong>",
|
||||||
|
"upload_picture": "Качване на снимка",
|
||||||
|
"upload_a_picture": "Качване на снимка",
|
||||||
|
"image_spec": "Можете да качвате само PNG, JPG, или GIF файлове",
|
||||||
|
"settings": "Настройки",
|
||||||
|
"show_email": "Да се показва е-пощата ми",
|
||||||
|
"show_fullname": "Да се показва цялото ми име",
|
||||||
|
"restrict_chats": "Разрешаване на чат съобщенията само от потребители, които следвам",
|
||||||
|
"digest_label": "Абониране за резюмета",
|
||||||
|
"digest_description": "Абониране за новини по е-пощата относно този форум (нови известия и теми) според избрания график",
|
||||||
|
"digest_off": "Изключено",
|
||||||
|
"digest_daily": "Ежедневно",
|
||||||
|
"digest_weekly": "Ежеседмично",
|
||||||
|
"digest_monthly": "Ежемесечно",
|
||||||
|
"send_chat_notifications": "Изпращане на е-писмо, ако получа ново чат съобщения, а не съм на линия",
|
||||||
|
"send_post_notifications": "Изпращане на е-писмо, когато се появи отговор в темите, за които съм абониран/а.",
|
||||||
|
"settings-require-reload": "Някои промени в настройките изискват презареждане. Натиснете тук, за да презаредите страницата.",
|
||||||
|
"has_no_follower": "Този потребител няма последователи :(",
|
||||||
|
"follows_no_one": "Този потребител не следва никого :(",
|
||||||
|
"has_no_posts": "Този потребител не е публикувал нищо досега.",
|
||||||
|
"has_no_topics": "Този потребител не е създавал теми досега.",
|
||||||
|
"has_no_watched_topics": "Този потребител не е следил нито една тема досега.",
|
||||||
|
"email_hidden": "Е-пощата е скрита",
|
||||||
|
"hidden": "скрито",
|
||||||
|
"paginate_description": "Разделяне на темите и публикациите на страници, вместо да се превърта безкрайно",
|
||||||
|
"topics_per_page": "Теми на страница",
|
||||||
|
"posts_per_page": "Публикации на страница",
|
||||||
|
"notification_sounds": "Изпълняване на звук, когато получите известие",
|
||||||
|
"browsing": "Настройки за страниците",
|
||||||
|
"open_links_in_new_tab": "Отваряне на външните връзки в нов подпрозорец",
|
||||||
|
"enable_topic_searching": "Включване на търсенето в темите",
|
||||||
|
"topic_search_help": "Ако е включено, търсенето в темата ще замени стандартното поведение на браузъра при търсене в страницата и ще Ви позволи да претърсвате цялата тема, а не само това, което се вижда на екрана",
|
||||||
|
"follow_topics_you_reply_to": "Следване на темите, на които отговаряте",
|
||||||
|
"follow_topics_you_create": "Следване на темите, които създавате",
|
||||||
|
"grouptitle": "Изберете заглавието на групата, което искате да се показва",
|
||||||
|
"no-group-title": "Няма заглавие на група"
|
||||||
|
}
|
||||||
21
public/language/bg/users.json
Normal file
21
public/language/bg/users.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"latest_users": "Последни потребители",
|
||||||
|
"top_posters": "С най-много публикации",
|
||||||
|
"most_reputation": "С най-много репутация",
|
||||||
|
"search": "Търсене",
|
||||||
|
"enter_username": "Въведете потребителско име, което да потърсите",
|
||||||
|
"load_more": "Зареждане на още",
|
||||||
|
"users-found-search-took": "Намерени са %1 потребител(и)! Търсенето отне %2 секунди.",
|
||||||
|
"filter-by": "Филтриране",
|
||||||
|
"online-only": "Само тези на линия",
|
||||||
|
"picture-only": "Само със снимка",
|
||||||
|
"invite": "Канене",
|
||||||
|
"invitation-email-sent": "Беше изпратено е-писмо за потвърждение до %1",
|
||||||
|
"user_list": "Списък от потребители",
|
||||||
|
"recent_topics": "Скорошни теми",
|
||||||
|
"popular_topics": "Популярни теми",
|
||||||
|
"unread_topics": "Непрочетени теми",
|
||||||
|
"categories": "Категории",
|
||||||
|
"tags": "Етикети",
|
||||||
|
"map": "Карта"
|
||||||
|
}
|
||||||
12
public/language/bn/category.json
Normal file
12
public/language/bn/category.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"new_topic_button": "নতুন টপিক",
|
||||||
|
"guest-login-post": "Log in to post",
|
||||||
|
"no_topics": "<strong>এই বিভাগে কোন টপিক নেই! </strong><br /> আপনি চাইলে একটি পোষ্ট করতে পারেন।",
|
||||||
|
"browsing": "ব্রাউজিং",
|
||||||
|
"no_replies": "কোন রিপ্লাই নেই",
|
||||||
|
"share_this_category": "এই বিভাগটি অন্যের সাথে ভাগাভাগি করুন",
|
||||||
|
"watch": "Watch",
|
||||||
|
"ignore": "উপেক্ষা করুন",
|
||||||
|
"watch.message": "You are now watching updates from this category",
|
||||||
|
"ignore.message": "You are now ignoring updates from this category"
|
||||||
|
}
|
||||||
32
public/language/bn/email.json
Normal file
32
public/language/bn/email.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"password-reset-requested": "পাসওয়ার্ড রিসেটের জন্য অনুরোধ করা হয়েছে - %1!",
|
||||||
|
"welcome-to": "%1 এ স্বাগতম",
|
||||||
|
"invite": "Invitation from %1",
|
||||||
|
"greeting_no_name": "স্বাগতম",
|
||||||
|
"greeting_with_name": "স্বাগতম %1",
|
||||||
|
"welcome.text1": "%1 এ নিবন্ধন করার জন্য আপনাকে ধন্যবাদ!",
|
||||||
|
"welcome.text2": "আপনার একাউন্ট এ্যাক্টিভেট করার জন্য, আপনি যে ইমেইল এড্রেস ব্যাবহার করে নিবন্ধন করেছেন তা যাচাই করতে হবে",
|
||||||
|
"welcome.text3": "An administrator has accepted your registration application. You can login with your username/password now.",
|
||||||
|
"welcome.cta": "আপনার ইমেইল এড্রেস নিশ্চিত করার জন্য এখানে ক্লিক করুন",
|
||||||
|
"invitation.text1": "%1 has invited you to join %2",
|
||||||
|
"invitation.ctr": "Click here to create your account.",
|
||||||
|
"reset.text1": "আমরা আপনার পাসওয়ার্ড রিসেট করার অনুরোধ পেয়েছি, সম্ভবত আপনি আপনার পাসওয়ার্ড ভুলে গিয়েছেন বলেই। তবে যদি তা না হয়ে থাকে, তাহলে এই মেইলকে উপেক্ষা করতে পারেন।",
|
||||||
|
"reset.text2": "পাসওয়ার্ড রিসেট করতে নিচের লিংকে ক্লিক করুন",
|
||||||
|
"reset.cta": "পাসওয়ার্ড রিসেট করতে এখানে ক্লিক করুন",
|
||||||
|
"reset.notify.subject": "Password successfully changed",
|
||||||
|
"reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.",
|
||||||
|
"reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.",
|
||||||
|
"digest.notifications": "%1 থেকে আনরিড নোটিফিকেশন আছে।",
|
||||||
|
"digest.latest_topics": "%1 এর সর্বশেষ টপিকসমূহ",
|
||||||
|
"digest.cta": "%1 ভিজিট করতে এখানে ক্লিক করুন",
|
||||||
|
"digest.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনাকে এই ডাইজেষ্টটি পাঠানো হয়েছে।",
|
||||||
|
"digest.no_topics": "%1 এ কোন সক্রিয় টপিক নেই।",
|
||||||
|
"notif.chat.subject": "%1 এর থেকে নতুন মেসেজ এসেছে।",
|
||||||
|
"notif.chat.cta": "কথপোকথন চালিয়ে যেতে এখানে ক্লিক করুন",
|
||||||
|
"notif.chat.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনার এই নোটিফিকেশন পাঠানো হয়েছে",
|
||||||
|
"notif.post.cta": "Click here to read the full topic",
|
||||||
|
"notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.",
|
||||||
|
"test.text1": "আপনি সঠিকভাবে নোডবিবির জন্য মেইলার সেটাপ করেছেন কিনা নিশ্চিত করার জন্য এই টেষ্ট ইমেইল পাঠানো হয়েছে",
|
||||||
|
"unsub.cta": "সেটিংসগুলো পরিবর্তন করতে এখানে ক্লিক করুন",
|
||||||
|
"closing": "ধন্যবাদ!"
|
||||||
|
}
|
||||||
88
public/language/bn/error.json
Normal file
88
public/language/bn/error.json
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"invalid-data": "ভুল তথ্য",
|
||||||
|
"not-logged-in": "আপনি লগিন করেননি",
|
||||||
|
"account-locked": "আপনার অ্যাকাউন্ট সাময়িকভাবে লক করা হয়েছে",
|
||||||
|
"search-requires-login": "Searching requires an account - please login or register.",
|
||||||
|
"invalid-cid": "ভুল বিভাগ নাম্বার",
|
||||||
|
"invalid-tid": "ভুল টপিক নাম্বার",
|
||||||
|
"invalid-pid": "ভুল পোস্ট নাম্বার",
|
||||||
|
"invalid-uid": "ভুল ব্যবহারকারী নাম্বার",
|
||||||
|
"invalid-username": "ভুল ইউজারনেম",
|
||||||
|
"invalid-email": "ভুল ইমেইল",
|
||||||
|
"invalid-title": "ভুল শিরোনাম",
|
||||||
|
"invalid-user-data": "ভুল ব্যবহারকারী তথ্য",
|
||||||
|
"invalid-password": "ভুল পাসওয়ার্ড",
|
||||||
|
"invalid-username-or-password": "অনুগ্রহ পূর্বক ইউজারনেম এবং পাসওয়ার্ড উভয়ই প্রদান করুন",
|
||||||
|
"invalid-search-term": "অগ্রহনযোগ্য সার্চ টার্ম",
|
||||||
|
"invalid-pagination-value": "ভুল পৃষ্ঠা নাম্বার",
|
||||||
|
"username-taken": "ইউজারনেম আগেই ব্যবহৃত",
|
||||||
|
"email-taken": "ইমেইল আগেই ব্যবহৃত",
|
||||||
|
"email-not-confirmed": "আপনার ইমেইল এড্রেস নিশ্চিত করা হয় নি, নিশ্চিত করতে এখানে ক্লিক করুন।",
|
||||||
|
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
|
||||||
|
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
|
||||||
|
"email-confirm-failed": "We could not confirm your email, please try again later.",
|
||||||
|
"confirm-email-already-sent": "Confirmation email already sent, please wait %1 minute(s) to send another one.",
|
||||||
|
"username-too-short": "খুব ছোট ইউজারনেম",
|
||||||
|
"username-too-long": "ইউজারনেম বড় হয়ে গিয়েছে",
|
||||||
|
"user-banned": "ব্যবহারকারী নিষিদ্ধ",
|
||||||
|
"user-too-new": "Sorry, you are required to wait %1 second(s) before making your first post",
|
||||||
|
"no-category": "বিভাগটি খুজে পাওয়া যায় নি",
|
||||||
|
"no-topic": "এই টপিক নেই",
|
||||||
|
"no-post": "এই পোষ্ট নেই",
|
||||||
|
"no-group": "এই গ্রুপ অস্তিত্বহীন",
|
||||||
|
"no-user": "এই নামে কোন সদস্য নেই",
|
||||||
|
"no-teaser": "টিজারটি খুজে পাওয়া যায় নি",
|
||||||
|
"no-privileges": "এই কাজটির জন্য আপনার পর্যাপ্ত অধিকার নেই",
|
||||||
|
"no-emailers-configured": "কোন ইমেল প্লাগইন লোড করা নেই, কাজেই টেস্ট মেইল পাঠানো সম্ভব হচ্ছে না",
|
||||||
|
"category-disabled": "বিভাগটি নিষ্ক্রিয়",
|
||||||
|
"topic-locked": "টপিক বন্ধ",
|
||||||
|
"post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting",
|
||||||
|
"still-uploading": "আপলোড সম্পূর্ণ জন্য অনুগ্রহ করে অপেক্ষা করুন",
|
||||||
|
"content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).",
|
||||||
|
"content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).",
|
||||||
|
"title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).",
|
||||||
|
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 character(s).",
|
||||||
|
"too-many-posts": "You can only post once every %1 second(s) - please wait before posting again",
|
||||||
|
"too-many-posts-newbie": "As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
|
||||||
|
"tag-too-short": "Please enter a longer tag. Tags should contain at least %1 character(s)",
|
||||||
|
"tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 character(s)",
|
||||||
|
"file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file",
|
||||||
|
"cant-vote-self-post": "আপনি নিজের পোস্টে ভোট দিতে পারবেন না।",
|
||||||
|
"already-favourited": "আপনি ইতিমধ্যে এই পোষ্টটি পছন্দের তালিকায় যোগ করেছেন",
|
||||||
|
"already-unfavourited": "আপনি ইতিমধ্যে এই পোষ্টটি আপনার পছন্দের তালিকা থেকে সরিয়ে ফেলেছেন",
|
||||||
|
"cant-ban-other-admins": "আপনি অন্য এ্যাডমিনদের নিষিদ্ধ করতে পারেন না!",
|
||||||
|
"cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin",
|
||||||
|
"invalid-image-type": "Invalid image type. Allowed types are: %1",
|
||||||
|
"invalid-image-extension": "Invalid image extension",
|
||||||
|
"invalid-file-type": "Invalid file type. Allowed types are: %1",
|
||||||
|
"group-name-too-short": "গ্রুপের নাম খুব ছোট",
|
||||||
|
"group-already-exists": "গ্রুপ ইতিমধ্যেই বিদ্যমান",
|
||||||
|
"group-name-change-not-allowed": "গ্রুপের নাম পরিবর্তনের অনুমতি নেই",
|
||||||
|
"group-already-member": "You are already part of this group",
|
||||||
|
"group-needs-owner": "This group requires at least one owner",
|
||||||
|
"group-already-invited": "This user has already been invited",
|
||||||
|
"group-already-requested": "Your membership request has already been submitted",
|
||||||
|
"post-already-deleted": "এই পোস্টটি ইতিমধ্যে ডিলিট করা হয়ে গিয়েছে",
|
||||||
|
"post-already-restored": "এই পোষ্টটি ইতিমধ্যে পুনরোদ্ধার করা হয়েছে",
|
||||||
|
"topic-already-deleted": "এই টপিকটি ইতিমধ্যে ডিলিট করা হয়েছে",
|
||||||
|
"topic-already-restored": "এই টপিকটি ইতিমধ্যে পুনরোদ্ধার করা হয়েছে",
|
||||||
|
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
|
||||||
|
"topic-thumbnails-are-disabled": "টপিক থাম্বনেল নিষ্ক্রিয় করা। ",
|
||||||
|
"invalid-file": "ভুল ফাইল",
|
||||||
|
"uploads-are-disabled": "আপলোড নিষ্ক্রিয় করা",
|
||||||
|
"signature-too-long": "Sorry, your signature cannot be longer than %1 character(s).",
|
||||||
|
"about-me-too-long": "Sorry, your about me cannot be longer than %1 character(s).",
|
||||||
|
"cant-chat-with-yourself": "আপনি নিজের সাথে চ্যাট করতে পারবেন না!",
|
||||||
|
"chat-restricted": "এই সদস্য তার বার্তালাপ সংরক্ষিত রেখেছেন। এই সদস্য আপনাকে ফলো করার পরই কেবলমাত্র আপনি তার সাথে চ্যাট করতে পারবেন",
|
||||||
|
"too-many-messages": "You have sent too many messages, please wait awhile.",
|
||||||
|
"reputation-system-disabled": "সম্মাননা ব্যাবস্থা নিস্ক্রীয় রাখা হয়েছে",
|
||||||
|
"downvoting-disabled": "ঋণাত্মক ভোট নিস্ক্রীয় রাখা হয়েছে।",
|
||||||
|
"not-enough-reputation-to-downvote": "আপনার এই পোস্ট downvote করার জন্য পর্যাপ্ত সম্মাননা নেই",
|
||||||
|
"not-enough-reputation-to-flag": "এই পোষ্টকে ফ্লাগ করার জন্য আপনার পর্যাপ্ত সম্মাননা নেই",
|
||||||
|
"already-flagged": "You have already flagged this post",
|
||||||
|
"reload-failed": "\"%1\" রিলোড করতে সমস্যা হয়েছে। রিলোডের পূর্বে যা করা হয়েছিল সেটি আনডু করা সমীচীন। ",
|
||||||
|
"registration-error": "নিবন্ধন এরর!",
|
||||||
|
"parse-error": "Something went wrong while parsing server response",
|
||||||
|
"wrong-login-type-email": "Please use your email to login",
|
||||||
|
"wrong-login-type-username": "Please use your username to login"
|
||||||
|
}
|
||||||
82
public/language/bn/global.json
Normal file
82
public/language/bn/global.json
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"home": "নীড়পাতা",
|
||||||
|
"search": "অনুসন্ধান",
|
||||||
|
"buttons.close": "বন্ধ",
|
||||||
|
"403.title": "প্রবেশাধিকার প্রত্যাখ্যাত",
|
||||||
|
"403.message": "You seem to have stumbled upon a page that you do not have access to.",
|
||||||
|
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
|
||||||
|
"404.title": "পাওয়া যায়নি",
|
||||||
|
"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
|
||||||
|
"500.title": "অভ্যন্তরীণ ত্রুটি।",
|
||||||
|
"500.message": "ওহো! কিছু ভুল হয়েছে মনে হচ্ছে!",
|
||||||
|
"register": "নিবন্ধন",
|
||||||
|
"login": "প্রবেশ",
|
||||||
|
"please_log_in": "অনুগ্রহ করে প্রবেশ করুন",
|
||||||
|
"logout": "প্রস্থান",
|
||||||
|
"posting_restriction_info": "বর্তমানে নিবন্ধিত সদস্যরাই কেবল পোস্ট করতে পারেন, লগ ইন করতে এখানে ক্লিক করুন।",
|
||||||
|
"welcome_back": "আপনাকে স্বাগতম",
|
||||||
|
"you_have_successfully_logged_in": "আপনি সফলভাবে প্রবেশ করেছেন",
|
||||||
|
"save_changes": "পরিবর্তনগুলি সঞ্চয় করুন",
|
||||||
|
"close": "বন্ধ",
|
||||||
|
"pagination": "পাতা নং",
|
||||||
|
"pagination.out_of": "%2 এর মাঝে %1",
|
||||||
|
"pagination.enter_index": "সূচক লিখুন",
|
||||||
|
"header.admin": "অ্যাডমিন",
|
||||||
|
"header.recent": "সাম্প্রতিক",
|
||||||
|
"header.unread": "অপঠিত",
|
||||||
|
"header.tags": "ট্যাগ",
|
||||||
|
"header.popular": "জনপ্রিয়",
|
||||||
|
"header.users": "ব্যবহারকারীগণ",
|
||||||
|
"header.groups": "Groups",
|
||||||
|
"header.chats": "কথোপকথন",
|
||||||
|
"header.notifications": "বিজ্ঞপ্তি",
|
||||||
|
"header.search": "অনুসন্ধান",
|
||||||
|
"header.profile": "প্রোফাইল",
|
||||||
|
"notifications.loading": "বিজ্ঞপ্তিগুলি লোড হচ্ছে",
|
||||||
|
"chats.loading": "কথোপকথনগুলি লোড হচ্ছে ",
|
||||||
|
"motd.welcome": "ভবিষ্যতের আলোচনার প্লাটফর্ম, NodeBB তে স্বাগতম।",
|
||||||
|
"previouspage": "আগের পাতা",
|
||||||
|
"nextpage": "পরের পাতা",
|
||||||
|
"alert.success": "সফল",
|
||||||
|
"alert.error": "ত্রুটি",
|
||||||
|
"alert.banned": "নিষিদ্ধ",
|
||||||
|
"alert.banned.message": "আপনাকে কেবলই নিষিদ্ধ করা হয়েছে, আপনি এখন লগআউট হয়ে যাবেন।",
|
||||||
|
"alert.unfollow": "আপনি আর %1 কে অনুসরণ করছেন না!",
|
||||||
|
"alert.follow": "আপনি এখন %1 কে অনুসরণ করছেন!",
|
||||||
|
"online": "অনলাইন",
|
||||||
|
"users": "ব্যবহারকারীগণ",
|
||||||
|
"topics": "টপিক",
|
||||||
|
"posts": "পোস্টগুলি",
|
||||||
|
"views": "দেখেছেন",
|
||||||
|
"reputation": "সন্মাননা",
|
||||||
|
"read_more": "আরো পড়ুন",
|
||||||
|
"more": "More",
|
||||||
|
"posted_ago_by_guest": "অতিথি পোস্ট করেছেন %1",
|
||||||
|
"posted_ago_by": " %1 %2 দ্বারা পোস্টকৃত",
|
||||||
|
"posted_ago": "পোস্ট করেছেন %1",
|
||||||
|
"posted_in_ago_by_guest": "%1 বিভাগে অতিথি পোস্ট করেছেন %2",
|
||||||
|
"posted_in_ago_by": "%3 %1 বিভাগে পোস্ট করেছেন %2",
|
||||||
|
"posted_in_ago": "%1 বিভাগে পোস্ট করা হয়েছে %2 আগে",
|
||||||
|
"replied_ago": "উত্তর দেয়া হয়েছে %1 ",
|
||||||
|
"user_posted_ago": "%1 পোস্ট করেছেন %2",
|
||||||
|
"guest_posted_ago": "অতিথি পোস্ট করেছেন %1",
|
||||||
|
"last_edited_by_ago": "সর্বশেষ সম্পাদনা করেছেন %1 %2",
|
||||||
|
"norecentposts": "কোনও সাম্প্রতিক পোস্ট নেই",
|
||||||
|
"norecenttopics": "কোনও সাম্প্রতিক টপিক নেই",
|
||||||
|
"recentposts": "সাম্প্রতিক পোস্ট",
|
||||||
|
"recentips": "সাম্প্রতিক প্রবেশকৃত আইপি সমুহ",
|
||||||
|
"away": "দূরে",
|
||||||
|
"dnd": "বিরক্ত করবেন না",
|
||||||
|
"invisible": "অদৃশ্য",
|
||||||
|
"offline": "অফলাইন",
|
||||||
|
"email": "ইমেইল",
|
||||||
|
"language": "ভাষা",
|
||||||
|
"guest": "অতিথি",
|
||||||
|
"guests": "অতিথি",
|
||||||
|
"updated.title": "ফোরাম আপডেট করা হয়েছে",
|
||||||
|
"updated.message": "এই ফোরামে এইমাত্র সর্বশেষ সংস্করণে আপডেট করা হয়েছে। পৃষ্ঠাটি রিফ্রেশ করতে এখানে ক্লিক করুন।",
|
||||||
|
"privacy": "নিরাপত্তা",
|
||||||
|
"follow": "Follow",
|
||||||
|
"unfollow": "Unfollow",
|
||||||
|
"delete_all": "সব মুছে ফেলুন"
|
||||||
|
}
|
||||||
43
public/language/bn/groups.json
Normal file
43
public/language/bn/groups.json
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"groups": "গ্রুপসমূহ",
|
||||||
|
"view_group": "গ্রুপ দেখুন",
|
||||||
|
"owner": "Group Owner",
|
||||||
|
"new_group": "Create New Group",
|
||||||
|
"no_groups_found": "There are no groups to see",
|
||||||
|
"pending.accept": "Accept",
|
||||||
|
"pending.reject": "Reject",
|
||||||
|
"pending.accept_all": "Accept All",
|
||||||
|
"pending.reject_all": "Reject All",
|
||||||
|
"pending.none": "There are no pending members at this time",
|
||||||
|
"invited.none": "There are no invited members at this time",
|
||||||
|
"invited.uninvite": "Rescind Invitation",
|
||||||
|
"invited.search": "Search for a user to invite to this group",
|
||||||
|
"cover-instructions": "Drag and Drop a photo, drag to position, and hit <strong>Save</strong>",
|
||||||
|
"cover-change": "Change",
|
||||||
|
"cover-save": "Save",
|
||||||
|
"cover-saving": "Saving",
|
||||||
|
"details.title": "গ্রুপের বিস্তারিত",
|
||||||
|
"details.members": "সদস্য তালিকা",
|
||||||
|
"details.pending": "Pending Members",
|
||||||
|
"details.invited": "Invited Members",
|
||||||
|
"details.has_no_posts": "এই গ্রুপের সদস্যরা এখনো কোন পোষ্ট করেন নি",
|
||||||
|
"details.latest_posts": "সর্বশেষ পোষ্টসমূহ",
|
||||||
|
"details.private": "Private",
|
||||||
|
"details.grant": "Grant/Rescind Ownership",
|
||||||
|
"details.kick": "Kick",
|
||||||
|
"details.owner_options": "Group Administration",
|
||||||
|
"details.group_name": "Group Name",
|
||||||
|
"details.member_count": "Member Count",
|
||||||
|
"details.creation_date": "Creation Date",
|
||||||
|
"details.description": "Description",
|
||||||
|
"details.badge_preview": "Badge Preview",
|
||||||
|
"details.change_icon": "Change Icon",
|
||||||
|
"details.change_colour": "Change Colour",
|
||||||
|
"details.badge_text": "Badge Text",
|
||||||
|
"details.userTitleEnabled": "Show Badge",
|
||||||
|
"details.private_help": "If enabled, joining of groups requires approval from a group owner",
|
||||||
|
"details.hidden": "Hidden",
|
||||||
|
"details.hidden_help": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
|
||||||
|
"event.updated": "Group details have been updated",
|
||||||
|
"event.deleted": "The group \"%1\" has been deleted"
|
||||||
|
}
|
||||||
5
public/language/bn/language.json
Normal file
5
public/language/bn/language.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"name": "বাংলা",
|
||||||
|
"code": "bn",
|
||||||
|
"dir": "ltr"
|
||||||
|
}
|
||||||
11
public/language/bn/login.json
Normal file
11
public/language/bn/login.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"username-email": "Username / Email",
|
||||||
|
"username": "Username",
|
||||||
|
"email": "Email",
|
||||||
|
"remember_me": "মনে রাখুন",
|
||||||
|
"forgot_password": "পাসওয়ার্ড ভুলে গিয়েছেন?",
|
||||||
|
"alternative_logins": "বিকল্প প্রবেশ",
|
||||||
|
"failed_login_attempt": "প্রবেশ সফল হয় নি, আবার চেষ্টা করুন।",
|
||||||
|
"login_successful": "আপনি সফলভাবে প্রবেশ করেছেন!",
|
||||||
|
"dont_have_account": "কোন একাউন্ট নেই?"
|
||||||
|
}
|
||||||
26
public/language/bn/modules.json
Normal file
26
public/language/bn/modules.json
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"chat.chatting_with": "<span id=\"chat-with-name\"></span> এর সাথে কথোপকথন",
|
||||||
|
"chat.placeholder": "এখানে আপনার বার্তা লিখুন। পাঠানোর জন্য Enter চাপুন",
|
||||||
|
"chat.send": "প্রেরন করুন",
|
||||||
|
"chat.no_active": "আপনার কোন সচল কথোপকথন নেই",
|
||||||
|
"chat.user_typing": "%1 লিখছেন",
|
||||||
|
"chat.user_has_messaged_you": "%1 আপনাকে বার্তা পাঠিয়েছেন",
|
||||||
|
"chat.see_all": "সকল কথোপকথন দেখুন",
|
||||||
|
"chat.no-messages": "মেসেজ হিস্টোরী দেখতে প্রাপক নির্বাচন করুন",
|
||||||
|
"chat.recent-chats": "সাম্প্রতিক চ্যাটসমূহ",
|
||||||
|
"chat.contacts": "কন্টাক্টস",
|
||||||
|
"chat.message-history": "মেসেজ হিস্টোরী",
|
||||||
|
"chat.pop-out": "চ্যাট উইন্ডো আলাদা করুন",
|
||||||
|
"chat.maximize": "ম্যাক্সিমাইজ",
|
||||||
|
"chat.seven_days": "৭ দিন",
|
||||||
|
"chat.thirty_days": "৩০ দিন",
|
||||||
|
"chat.three_months": "৩ মাস",
|
||||||
|
"composer.compose": "Compose",
|
||||||
|
"composer.show_preview": "Show Preview",
|
||||||
|
"composer.hide_preview": "Hide Preview",
|
||||||
|
"composer.user_said_in": "%1 বলেছেন %2:",
|
||||||
|
"composer.user_said": "%1 বলেছেনঃ",
|
||||||
|
"composer.discard": "আপনি কি নিশ্চিত যে আপনি এই পোস্ট বাতিল করতে ইচ্ছুক?",
|
||||||
|
"composer.submit_and_lock": "Submit and Lock",
|
||||||
|
"composer.toggle_dropdown": "Toggle Dropdown"
|
||||||
|
}
|
||||||
28
public/language/bn/notifications.json
Normal file
28
public/language/bn/notifications.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"title": "বিজ্ঞপ্তিগুলো",
|
||||||
|
"no_notifs": "আপনার নতুন কোন বিজ্ঞপ্তি নেই",
|
||||||
|
"see_all": "সকল বিজ্ঞপ্তিগুলো দেখুন",
|
||||||
|
"mark_all_read": "Mark all notifications read",
|
||||||
|
"back_to_home": "ফিরুন %1",
|
||||||
|
"outgoing_link": "বহির্গামী লিঙ্ক",
|
||||||
|
"outgoing_link_message": "আপনি এখন %1 ত্যাগ করছেন",
|
||||||
|
"continue_to": "%1 তে আগান",
|
||||||
|
"return_to": "%1 এ ফেরত যান",
|
||||||
|
"new_notification": "নতুন বিজ্ঞপ্তি",
|
||||||
|
"you_have_unread_notifications": "আপনার অপঠিত বিজ্ঞপ্তি আছে।",
|
||||||
|
"new_message_from": "<strong>%1</strong> থেকে নতুন বার্তা",
|
||||||
|
"upvoted_your_post_in": "<strong>%1</strong> , <strong>%2</strong> এ আপানার পোষ্টকে আপভোট করেছেন। ",
|
||||||
|
"moved_your_post": "<strong>%1</strong> আপনার পোষ্ট সরিয়ে নিয়েছেন। ",
|
||||||
|
"moved_your_topic": "<strong>%1</strong> আপনার টপিক সরিয়ে নিয়েছেন। ",
|
||||||
|
"favourited_your_post_in": "<strong>%1</strong> has favourited your post in <strong>%2</strong>.",
|
||||||
|
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||||
|
"user_posted_to": "<strong>%1</strong> একটি উত্তর দিয়েছেন: <strong>%2</strong>",
|
||||||
|
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||||
|
"user_mentioned_you_in": "<strong>%1</strong>, <strong>%2</strong> এ আপনার নাম উল্লেখ করেছেন",
|
||||||
|
"user_started_following_you": "<strong>%1</strong> আপনাকে অনুসরন করা শুরু করেছেন।",
|
||||||
|
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||||
|
"email-confirmed": "ইমেইল নিশ্চিত করা হয়েছে",
|
||||||
|
"email-confirmed-message": "আপনার ইমেইল যাচাই করার জন্য আপনাকে ধন্যবাদ। আপনার অ্যাকাউন্টটি এখন সম্পূর্ণরূপে সক্রিয়।",
|
||||||
|
"email-confirm-error-message": "আপনার ইমেল ঠিকানার বৈধতা যাচাইয়ে একটি সমস্যা হয়েছে। সম্ভবত কোডটি ভুল ছিল অথবা কোডের মেয়াদ শেষ হয়ে গিয়েছে।",
|
||||||
|
"email-confirm-sent": "নিশ্চিতকরণ ইমেইল পাঠানো হয়েছে।"
|
||||||
|
}
|
||||||
21
public/language/bn/pages.json
Normal file
21
public/language/bn/pages.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"home": "নীড়পাতা",
|
||||||
|
"unread": "অপঠিত টপিক",
|
||||||
|
"popular": "জনপ্রিয় টপিক",
|
||||||
|
"recent": "সাম্প্রতিক টপিক",
|
||||||
|
"users": "নিবন্ধিত সদস্যগণ",
|
||||||
|
"notifications": "বিজ্ঞপ্তি",
|
||||||
|
"tags": "Tags",
|
||||||
|
"tag": "Topics tagged under \"%1\"",
|
||||||
|
"user.edit": "সম্পাদনা \"%1\"",
|
||||||
|
"user.following": "%1 যাদের অনুসরণ করেন",
|
||||||
|
"user.followers": "যারা %1 কে অনুসরণ করেন",
|
||||||
|
"user.posts": "%1 এর পোস্ট সমুহ",
|
||||||
|
"user.topics": "%1 এর টপিক সমুহ",
|
||||||
|
"user.groups": "%1's Groups",
|
||||||
|
"user.favourites": "%1'র প্রিয় পোস্টগুলো",
|
||||||
|
"user.settings": "সদস্য সেটিংস",
|
||||||
|
"user.watched": "Topics watched by %1",
|
||||||
|
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
|
||||||
|
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
|
||||||
|
}
|
||||||
19
public/language/bn/recent.json
Normal file
19
public/language/bn/recent.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"title": "সাম্প্রতিক",
|
||||||
|
"day": "দিন",
|
||||||
|
"week": "সপ্তাহ",
|
||||||
|
"month": "মাস",
|
||||||
|
"year": "বছর",
|
||||||
|
"alltime": "সবসময় ",
|
||||||
|
"no_recent_topics": "কোন সাম্প্রতিক টপিক নেই। ",
|
||||||
|
"no_popular_topics": "There are no popular topics.",
|
||||||
|
"there-is-a-new-topic": "There is a new topic.",
|
||||||
|
"there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
|
||||||
|
"there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
|
||||||
|
"there-are-new-topics": "There are %1 new topics.",
|
||||||
|
"there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
|
||||||
|
"there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
|
||||||
|
"there-is-a-new-post": "There is a new post.",
|
||||||
|
"there-are-new-posts": "There are %1 new posts.",
|
||||||
|
"click-here-to-reload": "Click here to reload."
|
||||||
|
}
|
||||||
19
public/language/bn/register.json
Normal file
19
public/language/bn/register.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"register": "নিবন্ধন",
|
||||||
|
"help.email": "ডিফল্টভাবে, আপনার ইমেইল সর্বসাধারণ থেকে লুকানো থাকবে।",
|
||||||
|
"help.username_restrictions": "%1 এবং %2 অক্ষরের মাঝে একটি অনন্য সদস্য নাম। বাকিরা আপনাকে @<span id='yourUsername'>নাম</span> দিয়ে উল্লেখ করতে পারবেন।",
|
||||||
|
"help.minimum_password_length": "আপনার পাসওয়ার্ড এর দৈর্ঘ্য অন্তত %1 অক্ষরের হতে হবে।",
|
||||||
|
"email_address": "ইমেইল অ্যাড্রেস",
|
||||||
|
"email_address_placeholder": "ইমেইল অ্যাড্রেস লিখুন",
|
||||||
|
"username": "ইউজারনেম",
|
||||||
|
"username_placeholder": "ইউজারনেম লিখুন",
|
||||||
|
"password": "পাসওয়ার্ড",
|
||||||
|
"password_placeholder": "পাসওয়ার্ড লিখুন",
|
||||||
|
"confirm_password": "পাসওয়ার্ড নিশ্চিত করুন",
|
||||||
|
"confirm_password_placeholder": "পাসওয়ার্ড নিশ্চিত করুন",
|
||||||
|
"register_now_button": "নিবন্ধন করুন",
|
||||||
|
"alternative_registration": "বিকল্প নিবন্ধন",
|
||||||
|
"terms_of_use": "নিয়মাবলী",
|
||||||
|
"agree_to_terms_of_use": "আমি নিয়মাবলী মেনে চলতে সম্মতি জানালাম",
|
||||||
|
"registration-added-to-queue": "Your registration has been added to the approval queue. You will receive an email when it is accepted by an administrator."
|
||||||
|
}
|
||||||
17
public/language/bn/reset_password.json
Normal file
17
public/language/bn/reset_password.json
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"reset_password": "পাসওয়ার্ড রিসেট",
|
||||||
|
"update_password": "পাসওয়ার্ড হালনাগাদ",
|
||||||
|
"password_changed.title": "পাসওয়ার্ড পরিবর্তন করা হয়েছে",
|
||||||
|
"password_changed.message": "<p>পাসওয়ার্ড সফলভাবে রিসেট করা হয়েছে, পুনরায় <a href=\"/login\">প্রবেশ<a> করুন।",
|
||||||
|
"wrong_reset_code.title": "ভুল রিসেট কোড",
|
||||||
|
"wrong_reset_code.message": "প্রাপ্ত রিসেট কোডটি ভুল ছিল। আবার চেষ্টা করুন, অথবা <a href=\"/reset\">একটি নতুন রিসেট কোড</a> অনুরোধ করুন।",
|
||||||
|
"new_password": "নতুন পাসওয়ার্ড",
|
||||||
|
"repeat_password": "পাসওয়ার্ড নিশ্চিত করুন",
|
||||||
|
"enter_email": "অনুগ্রহপূর্বক আপনার ইমেইল এড্রেস প্রদান করুন, আমরা আপনাকে আপনার পাসওয়ার্ড রিসেট সম্পর্কিত তথ্যাবলী ইমেইলে পাঠিয়ে দিবো। ",
|
||||||
|
"enter_email_address": "আপনার ইমেইল এড্রেস",
|
||||||
|
"password_reset_sent": "পাসওয়ার্ড রিসেট মেইল পাঠানো হয়েছে",
|
||||||
|
"invalid_email": "ভুল ইমেইল / ইমেইল ডেটাবেইজে নেই",
|
||||||
|
"password_too_short": "The password entered is too short, please pick a different password.",
|
||||||
|
"passwords_do_not_match": "The two passwords you've entered do not match.",
|
||||||
|
"password_expired": "Your password has expired, please choose a new password"
|
||||||
|
}
|
||||||
40
public/language/bn/search.json
Normal file
40
public/language/bn/search.json
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"results_matching": "\"%2\" এর সাথে মিলিয়ে %1 ফলাফল পাওয়া গেছে, ( %3 seconds সময় লেগেছে )",
|
||||||
|
"no-matches": "No matches found",
|
||||||
|
"advanced-search": "Advanced Search",
|
||||||
|
"in": "In",
|
||||||
|
"titles": "Titles",
|
||||||
|
"titles-posts": "Titles and Posts",
|
||||||
|
"posted-by": "Posted by",
|
||||||
|
"in-categories": "In Categories",
|
||||||
|
"search-child-categories": "Search child categories",
|
||||||
|
"reply-count": "Reply Count",
|
||||||
|
"at-least": "At least",
|
||||||
|
"at-most": "At most",
|
||||||
|
"post-time": "Post time",
|
||||||
|
"newer-than": "Newer than",
|
||||||
|
"older-than": "Older than",
|
||||||
|
"any-date": "Any date",
|
||||||
|
"yesterday": "Yesterday",
|
||||||
|
"one-week": "One week",
|
||||||
|
"two-weeks": "Two weeks",
|
||||||
|
"one-month": "One month",
|
||||||
|
"three-months": "Three months",
|
||||||
|
"six-months": "Six months",
|
||||||
|
"one-year": "One year",
|
||||||
|
"sort-by": "Sort by",
|
||||||
|
"last-reply-time": "Last reply time",
|
||||||
|
"topic-title": "Topic title",
|
||||||
|
"number-of-replies": "Number of replies",
|
||||||
|
"number-of-views": "Number of views",
|
||||||
|
"topic-start-date": "Topic start date",
|
||||||
|
"username": "Username",
|
||||||
|
"category": "Category",
|
||||||
|
"descending": "In descending order",
|
||||||
|
"ascending": "In ascending order",
|
||||||
|
"save-preferences": "Save preferences",
|
||||||
|
"clear-preferences": "Clear preferences",
|
||||||
|
"search-preferences-saved": "Search preferences saved",
|
||||||
|
"search-preferences-cleared": "Search preferences cleared",
|
||||||
|
"show-results-as": "Show results as"
|
||||||
|
}
|
||||||
6
public/language/bn/success.json
Normal file
6
public/language/bn/success.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"success": "সফল হয়েছে",
|
||||||
|
"topic-post": "আপনি সফলভাবে পোষ্ট করেছেন। ",
|
||||||
|
"authentication-successful": "অথেন্টিকেশন সফল হয়েছে",
|
||||||
|
"settings-saved": "সেটিংস সেভ করা হয়েছে। "
|
||||||
|
}
|
||||||
7
public/language/bn/tags.json
Normal file
7
public/language/bn/tags.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"no_tag_topics": "এই ট্যাগ সম্বলিত কোন টপিক নেই",
|
||||||
|
"tags": "ট্যাগসমূহ",
|
||||||
|
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
|
||||||
|
"enter_tags_here_short": "ট্যাগ বসান",
|
||||||
|
"no_tags": "এখন পর্যন্ত কোন ট্যাগ নেই"
|
||||||
|
}
|
||||||
100
public/language/bn/topic.json
Normal file
100
public/language/bn/topic.json
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
{
|
||||||
|
"topic": "টপিক",
|
||||||
|
"topic_id": "টপিক নাম্বার ",
|
||||||
|
"topic_id_placeholder": "টপিক নাম্বার দিন ",
|
||||||
|
"no_topics_found": "কোন টপিক পাওয়া যায়নি!",
|
||||||
|
"no_posts_found": "কোন পোস্ট পাওয়া যায়নি",
|
||||||
|
"post_is_deleted": "এই পোস্টটি মুছে ফেলা হয়েছে!",
|
||||||
|
"topic_is_deleted": "This topic is deleted!",
|
||||||
|
"profile": "প্রোফাইল ",
|
||||||
|
"posted_by": "পোস্ট করেছেন %1",
|
||||||
|
"posted_by_guest": "অতিথি পোস্ট ",
|
||||||
|
"chat": "আলাপচারি",
|
||||||
|
"notify_me": "এই টপিকে নতুন উত্তর আসলে জানুন",
|
||||||
|
"quote": "উদ্ধৃতি",
|
||||||
|
"reply": "উত্তর",
|
||||||
|
"guest-login-reply": "Log in to reply",
|
||||||
|
"edit": "সম্পাদণা",
|
||||||
|
"delete": "মুছে ফেলুন",
|
||||||
|
"purge": "পার্জ",
|
||||||
|
"restore": "পুনরূদ্ধার",
|
||||||
|
"move": "সরানো",
|
||||||
|
"fork": "শাখা",
|
||||||
|
"link": "লিঙ্ক",
|
||||||
|
"share": "শেয়ার",
|
||||||
|
"tools": "টুলস",
|
||||||
|
"flag": "ফ্ল্যাগ",
|
||||||
|
"locked": "বন্ধ",
|
||||||
|
"bookmark_instructions": "আপনার সর্বশেষ অবস্থানে ফিরে যাবার জন্য এখানে ক্লিক করুন অথবা অগ্রাহ্য করতে চাইলে বন্ধ করুন",
|
||||||
|
"flag_title": "মডারেশনের জন্য এই পোস্টটি ফ্ল্যাগ করুন",
|
||||||
|
"flag_confirm": "আপনি কি নিশ্চিত যে এই পোস্টটিকে আপনি ফ্ল্যাগ করতে চান? ",
|
||||||
|
"flag_success": "এই পোস্টটি মডারেশনের জন্য ফ্ল্যাগ করা হয়েছে।",
|
||||||
|
"deleted_message": "এই টপিকটি মুছে ফেলা হয়েছে। শুধুমাত্র টপিক ব্যবস্থাপনার ক্ষমতাপ্রাপ্ত সদস্যগণ এটি দেখতে পারবেন।",
|
||||||
|
"following_topic.message": "এখন থেকে এই টপিকে অন্যকেউ পোস্ট করলে আপনি নোটিফিকেশন পাবেন।",
|
||||||
|
"not_following_topic.message": "এই টপিক থেকে আপনি আর নোটিফিকেশন পাবেন না।",
|
||||||
|
"login_to_subscribe": "এই টপিকে সাবস্ক্রাইব করতে চাইলে অনুগ্রহ করে নিবন্ধণ করুন অথবা প্রবেশ করুন।",
|
||||||
|
"markAsUnreadForAll.success": "টপিকটি সবার জন্য অপঠিত হিসাবে মার্ক করুন।",
|
||||||
|
"watch": "দেখা",
|
||||||
|
"unwatch": "অদেখা",
|
||||||
|
"watch.title": "এই টপিকে নতুন উত্তর এলে বিজ্ঞাপণের মাধ্যমে জানুন।",
|
||||||
|
"unwatch.title": "এই টপিক দেখা বন্ধ করুন",
|
||||||
|
"share_this_post": "এই পোষ্টটি শেয়ার করুন",
|
||||||
|
"thread_tools.title": "টপিক সম্পর্কিত টুলস",
|
||||||
|
"thread_tools.markAsUnreadForAll": "\"অপঠিত\" হিসেবে চিহ্নিত করুন",
|
||||||
|
"thread_tools.pin": "টপিক পিন করুন",
|
||||||
|
"thread_tools.unpin": "টপিক আনপিন করুন",
|
||||||
|
"thread_tools.lock": "টপিক বন্ধ করুন",
|
||||||
|
"thread_tools.unlock": "টপিক খুলে দিন",
|
||||||
|
"thread_tools.move": "টপিক সরান",
|
||||||
|
"thread_tools.move_all": "সমস্ত টপিক সরান",
|
||||||
|
"thread_tools.fork": "টপিক ফর্ক করুন",
|
||||||
|
"thread_tools.delete": "টপিক মুছে ফেলুন",
|
||||||
|
"thread_tools.delete_confirm": "আপনি নিশ্চিত যে আপনি এই টপিকটি মুছে ফেলতে চান?",
|
||||||
|
"thread_tools.restore": "টপিক পুনরূদ্ধার করুন",
|
||||||
|
"thread_tools.restore_confirm": "আপনি নিশ্চিত যে আপনি টপিকটি পুনরূদ্ধার করতে চান?",
|
||||||
|
"thread_tools.purge": "টপিক পার্জ করুন",
|
||||||
|
"thread_tools.purge_confirm": "আপনি নিশ্চিত যে আপনি টপিকটি পার্জ করতে চাচ্ছেন ? ",
|
||||||
|
"topic_move_success": "টপিকটি %1 এ সরিয়ে নেয়া হয়েছে",
|
||||||
|
"post_delete_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি মুছে ফেলতে চান ?",
|
||||||
|
"post_restore_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি পুনরূূদ্ধার করতে চান ? ",
|
||||||
|
"post_purge_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি পার্জ করতে চান ? ",
|
||||||
|
"load_categories": "ক্যাটাগরী লোড করা হচ্ছে",
|
||||||
|
"disabled_categories_note": "নিস্ক্রীয় ক্যাটাগরীসমূহ ধূসর কালিতে লেখা রয়েছে। ",
|
||||||
|
"confirm_move": "সরান",
|
||||||
|
"confirm_fork": "ফর্ক",
|
||||||
|
"favourite": "পছন্দ",
|
||||||
|
"favourites": "পছন্দতালিকা",
|
||||||
|
"favourites.has_no_favourites": "আপনার যদি কোন পছন্দের পোষ্ট না থেকে থাকে তাহলে কিছু পোষ্ট ফেভারিট করা হলে সেগুলো এখানে দেখতে পাবেন।",
|
||||||
|
"loading_more_posts": "আরো পোষ্ট লোড করা হচ্ছে",
|
||||||
|
"move_topic": "টপিক সরান",
|
||||||
|
"move_topics": "টপিক সমূহ সরান",
|
||||||
|
"move_post": "পোষ্ট সরান",
|
||||||
|
"post_moved": "পোষ্ট সরানো হয়েছে",
|
||||||
|
"fork_topic": "টপিক ফর্ক করুন",
|
||||||
|
"topic_will_be_moved_to": "এই টপিকটি ক্যাটাগরীতে সরানো হবে",
|
||||||
|
"fork_topic_instruction": "যে পোষ্টটি ফর্ক করতে চান সেটি ক্লিক করুন",
|
||||||
|
"fork_no_pids": "কোন পোষ্ট সিলেক্ট করা হয় নি",
|
||||||
|
"fork_success": "টপিক ফর্ক করা হয়েছে। ফর্ক করা টপিকে যেতে এখানে ক্লিক করুন",
|
||||||
|
"composer.title_placeholder": "আপনার টপিকের শিরোনাম দিন",
|
||||||
|
"composer.handle_placeholder": "Name",
|
||||||
|
"composer.discard": "বাতিল",
|
||||||
|
"composer.submit": "সাবমিট",
|
||||||
|
"composer.replying_to": "%1 এর উত্তরে:",
|
||||||
|
"composer.new_topic": "নতুন টপিক",
|
||||||
|
"composer.uploading": "আপলোডিং",
|
||||||
|
"composer.thumb_url_label": "টপিকে থাম্বনেইল URL পেষ্ট করুন",
|
||||||
|
"composer.thumb_title": "এই টপিকে থাম্বনেইল যোগ করুন",
|
||||||
|
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
|
||||||
|
"composer.thumb_file_label": "অথবা একটি ফাইল আপলোড করুন",
|
||||||
|
"composer.thumb_remove": "ফিল্ড ক্লিয়ার করুন",
|
||||||
|
"composer.drag_and_drop_images": "ছবি এখানে ড্র্যাগ করে এনে ছেড়ে দিন",
|
||||||
|
"more_users_and_guests": "%1 more user(s) and %2 guest(s)",
|
||||||
|
"more_users": "%1 more user(s)",
|
||||||
|
"more_guests": "%1 more guest(s)",
|
||||||
|
"users_and_others": "%1 and %2 others",
|
||||||
|
"sort_by": "সাজানোর ভিত্তি:",
|
||||||
|
"oldest_to_newest": "পুরাতন থেকে নতুন",
|
||||||
|
"newest_to_oldest": "নতুন থেকে পুরাতন",
|
||||||
|
"most_votes": "সর্বোচ্চ ভোট",
|
||||||
|
"most_posts": "Most posts"
|
||||||
|
}
|
||||||
10
public/language/bn/unread.json
Normal file
10
public/language/bn/unread.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"title": "অপঠিত",
|
||||||
|
"no_unread_topics": "কোন অপঠিত টপিক নেই",
|
||||||
|
"load_more": "আরো লোড করুন",
|
||||||
|
"mark_as_read": "পঠিত হিসেবে চিহ্নিত করুন",
|
||||||
|
"selected": "নির্বাচিত",
|
||||||
|
"all": "সবগুলো",
|
||||||
|
"all_categories": "All categories",
|
||||||
|
"topics_marked_as_read.success": "পঠিত হিসেবে চিহ্নিত টপিকসমূহ"
|
||||||
|
}
|
||||||
88
public/language/bn/user.json
Normal file
88
public/language/bn/user.json
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"banned": "নিষিদ্ধ",
|
||||||
|
"offline": "অফলাইন",
|
||||||
|
"username": "সদস্যের নাম",
|
||||||
|
"joindate": "Join Date",
|
||||||
|
"postcount": "Post Count",
|
||||||
|
"email": "ইমেইল",
|
||||||
|
"confirm_email": "ইমেইল নিশ্চিত করুন",
|
||||||
|
"ban_account": "Ban Account",
|
||||||
|
"ban_account_confirm": "Do you really want to ban this user?",
|
||||||
|
"unban_account": "Unban Account",
|
||||||
|
"delete_account": "একাউন্ট মুছে ফেলুন",
|
||||||
|
"delete_account_confirm": "আপনি কি নিশ্চিত যে আপনি আপনার একাউন্ট মুছে ফেলতে চান ? <br /><strong>এই কাজটির ফলে আপনার কোন তথ্য পুনরূদ্ধার করা সম্ভব নয় </strong><br /><br /> নিশ্চিত করতে আপনার ইউজারনেম প্রবেশ করান। ",
|
||||||
|
"delete_this_account_confirm": "Are you sure you want to delete this account? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
|
||||||
|
"fullname": "পুর্ণ নাম",
|
||||||
|
"website": "ওয়েবসাইট",
|
||||||
|
"location": "স্থান",
|
||||||
|
"age": "বয়স",
|
||||||
|
"joined": "যোগদান করেছেন",
|
||||||
|
"lastonline": "সর্বশেষ অনলাইনে ছিলেন",
|
||||||
|
"profile": "প্রোফাইল",
|
||||||
|
"profile_views": "প্রোফাইল দেখেছেন",
|
||||||
|
"reputation": "সন্মাননা",
|
||||||
|
"favourites": "পছন্দের তালিকা",
|
||||||
|
"watched": "Watched",
|
||||||
|
"followers": "যাদের অনুসরণ করছেন",
|
||||||
|
"following": "যারা আপনাকে অনুসরণ করছে",
|
||||||
|
"aboutme": "About me",
|
||||||
|
"signature": "স্বাক্ষর",
|
||||||
|
"gravatar": "গ্রাভাতার",
|
||||||
|
"birthday": "জন্মদিন",
|
||||||
|
"chat": "বার্তালাপ",
|
||||||
|
"follow": "অনুসরন করুন",
|
||||||
|
"unfollow": "অনুসরন করা থেকে বিরত থাকুন",
|
||||||
|
"more": "More",
|
||||||
|
"profile_update_success": "প্রোফাইল আপডেট সফল হয়েছে",
|
||||||
|
"change_picture": "ছবি পরিবর্তন",
|
||||||
|
"edit": "সম্পাদনা",
|
||||||
|
"uploaded_picture": "ছবি আপলোড করুন",
|
||||||
|
"upload_new_picture": "নতুন ছবি আপলোড করুন",
|
||||||
|
"upload_new_picture_from_url": "URL থেকে নতুন ছবি আপলোড করুন",
|
||||||
|
"current_password": "বর্তমান পাসওয়ার্ড",
|
||||||
|
"change_password": "পাসওয়ার্ড পরিবর্তন",
|
||||||
|
"change_password_error": "অগ্রহনযোগ্য পাসওয়ার্ড",
|
||||||
|
"change_password_error_wrong_current": "আপনার পাসওয়ার্ড সঠিক নয়",
|
||||||
|
"change_password_error_length": "পাসওয়ার্ড অতিরিক্ত ছোট",
|
||||||
|
"change_password_error_match": "পাসওয়ার্ড অবশ্যই একই হতে হবে",
|
||||||
|
"change_password_error_privileges": "আপনার পাসওয়ার্ড পরিবর্তন করার অনুমতি নেই",
|
||||||
|
"change_password_success": "আপনার পাসওয়ার্ড আপডেট করা হয়েছে",
|
||||||
|
"confirm_password": "পাসওয়ার্ড নিশ্চিত করুন",
|
||||||
|
"password": "পাসওয়ার্ড",
|
||||||
|
"username_taken_workaround": "আপনি যে ইউজারনেম চাচ্ছিলেন সেটি ইতিমধ্যে নেয়া হয়ে গেছে, কাজেই আমরা এটি কিঞ্চিং পরিবর্তন করেছি। আপনি এখন <strong>%1</strong> হিসেবে পরিচিত",
|
||||||
|
"upload_picture": "ছবি আপলোড করুন",
|
||||||
|
"upload_a_picture": "ছবি (একটি) আপলোড করুন",
|
||||||
|
"image_spec": "আপনি কেবলমাত্র PNG, JPG অথবা GIF ফাইল আপলোড করতে পারবেন",
|
||||||
|
"settings": "সেটিংস",
|
||||||
|
"show_email": "আমার ইমেইল দেখাও",
|
||||||
|
"show_fullname": "আমার সম্পূর্ণ নাম দেখাও",
|
||||||
|
"restrict_chats": "আমি যাদের ফলো করি কেবলমাত্র তাদের থেকে বার্তা গ্রহন করা হোক",
|
||||||
|
"digest_label": "ডাইজেষ্টে সাবস্ক্রাইব করুন",
|
||||||
|
"digest_description": "শিডিউল অনূযায়ী এই ফোরামের ইমেইল আপডেটের জন্য সাবস্ক্রাইব করুন (নতুন নোটিফিকেশন এবং টপিকসমূহ )",
|
||||||
|
"digest_off": "বন্ধ",
|
||||||
|
"digest_daily": "দৈনিক",
|
||||||
|
"digest_weekly": "সাপ্তাহিক",
|
||||||
|
"digest_monthly": "মাসিক",
|
||||||
|
"send_chat_notifications": "যদি আমি অনলাইনে না থাকি, সেক্ষেত্রে নতুন চ্যাট মেসেজ আসলে আমাকে ইমেইল করুন",
|
||||||
|
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
|
||||||
|
"settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
|
||||||
|
"has_no_follower": "এই সদস্যের কোন ফলোয়ার নেই :(",
|
||||||
|
"follows_no_one": "এই সদস্য কাউকে ফলো করছেন না :(",
|
||||||
|
"has_no_posts": "This user hasn't posted anything yet.",
|
||||||
|
"has_no_topics": "This user hasn't posted any topics yet.",
|
||||||
|
"has_no_watched_topics": "This user hasn't watched any topics yet.",
|
||||||
|
"email_hidden": "ইমেইল গোপন রাখা হয়েছে",
|
||||||
|
"hidden": "গোপন করা হয়েছে",
|
||||||
|
"paginate_description": "Paginate topics and posts instead of using infinite scroll",
|
||||||
|
"topics_per_page": "প্রতি পেজে কতগুলো টপিক থাকবে",
|
||||||
|
"posts_per_page": "প্রতি পেইজে কতগুলো পোষ্ট থাকবে",
|
||||||
|
"notification_sounds": "Play a sound when you receive a notification",
|
||||||
|
"browsing": "Browsing সেটিংস",
|
||||||
|
"open_links_in_new_tab": "Open outgoing links in new tab",
|
||||||
|
"enable_topic_searching": "In-Topic সার্চ সক্রীয় করো",
|
||||||
|
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen",
|
||||||
|
"follow_topics_you_reply_to": "Follow topics that you reply to",
|
||||||
|
"follow_topics_you_create": "Follow topics you create",
|
||||||
|
"grouptitle": "Select the group title you would like to display",
|
||||||
|
"no-group-title": "No group title"
|
||||||
|
}
|
||||||
21
public/language/bn/users.json
Normal file
21
public/language/bn/users.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"latest_users": "সর্বশেষ নিবন্ধিত সদস্যরা:",
|
||||||
|
"top_posters": "সর্বোচ্চ পোষ্টকারী",
|
||||||
|
"most_reputation": "সর্বোচ্চ সম্মাননাধারী",
|
||||||
|
"search": "খুঁজুন",
|
||||||
|
"enter_username": "ইউজারনেম এর ভিত্তিতে সার্চ করুন",
|
||||||
|
"load_more": "আরো লোড করুন",
|
||||||
|
"users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
|
||||||
|
"filter-by": "Filter By",
|
||||||
|
"online-only": "Online only",
|
||||||
|
"picture-only": "Picture only",
|
||||||
|
"invite": "Invite",
|
||||||
|
"invitation-email-sent": "An invitation email has been sent to %1",
|
||||||
|
"user_list": "User List",
|
||||||
|
"recent_topics": "Recent Topics",
|
||||||
|
"popular_topics": "Popular Topics",
|
||||||
|
"unread_topics": "Unread Topics",
|
||||||
|
"categories": "Categories",
|
||||||
|
"tags": "Tags",
|
||||||
|
"map": "Map"
|
||||||
|
}
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
{
|
{
|
||||||
"new_topic_button": "Nové téma",
|
"new_topic_button": "Nové téma",
|
||||||
|
"guest-login-post": "Log in to post",
|
||||||
"no_topics": "<strong>V této kategorii zatím nejsou žádné příspěvky.</strong><br />Můžeš být první!",
|
"no_topics": "<strong>V této kategorii zatím nejsou žádné příspěvky.</strong><br />Můžeš být první!",
|
||||||
"browsing": "prohlíží",
|
"browsing": "prohlíží",
|
||||||
"no_replies": "Nikdo ještě neodpověděl",
|
"no_replies": "Nikdo ještě neodpověděl",
|
||||||
"share_this_category": "Share this category",
|
"share_this_category": "Share this category",
|
||||||
"ignore": "Ignore"
|
"watch": "Watch",
|
||||||
|
"ignore": "Ignorovat",
|
||||||
|
"watch.message": "You are now watching updates from this category",
|
||||||
|
"ignore.message": "You are now ignoring updates from this category"
|
||||||
}
|
}
|
||||||
@@ -1,23 +1,32 @@
|
|||||||
{
|
{
|
||||||
"password-reset-requested": "Password Reset Requested - %1!",
|
"password-reset-requested": "Požadována obnova hesla - %1!",
|
||||||
"welcome-to": "Welcome to %1",
|
"welcome-to": "Vítejte v %1",
|
||||||
"greeting_no_name": "Hello",
|
"invite": "Invitation from %1",
|
||||||
"greeting_with_name": "Hello %1",
|
"greeting_no_name": "Dobrý den",
|
||||||
"welcome.text1": "Thank you for registering with %1!",
|
"greeting_with_name": "Dobrý den %1",
|
||||||
"welcome.text2": "To fully activate your account, we need to verify that you own the email address you registered with.",
|
"welcome.text1": "Děkujeme vám za registraci s %1!",
|
||||||
"welcome.cta": "Click here to confirm your email address",
|
"welcome.text2": "Pro úplnou aktivaci vašeho účtu potřebujeme ověřit vaší emailovou adresu.",
|
||||||
"reset.text1": "We received a request to reset your password, possibly because you have forgotten it. If this is not the case, please ignore this email.",
|
"welcome.text3": "An administrator has accepted your registration application. You can login with your username/password now.",
|
||||||
"reset.text2": "To continue with the password reset, please click on the following link:",
|
"welcome.cta": "Klikněte zde pro potvrzení vaší emailové adresy",
|
||||||
"reset.cta": "Click here to reset your password",
|
"invitation.text1": "%1 has invited you to join %2",
|
||||||
"digest.notifications": "You have unread notifications from %1:",
|
"invitation.ctr": "Click here to create your account.",
|
||||||
"digest.latest_topics": "Latest topics from %1",
|
"reset.text1": "Obdrželi jsme požadavek na obnovu hesla, pravděpodobně kvůli tomu, že jste ho zapomněli. Pokud to není tento případ, ignorujte, prosím, tento email.",
|
||||||
"digest.cta": "Click here to visit %1",
|
"reset.text2": "Přejete-li si pokračovat v obnově vašeho hesla, klikněte, prosím, na následující odkaz:",
|
||||||
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
"reset.cta": "Klikněte zde, chcete-li obnovit vaše heslo",
|
||||||
"digest.daily.no_topics": "There have been no active topics in the past day",
|
"reset.notify.subject": "Password successfully changed",
|
||||||
"notif.chat.subject": "New chat message received from %1",
|
"reset.notify.text1": "We are notifying you that on %1, your password was changed successfully.",
|
||||||
"notif.chat.cta": "Click here to continue the conversation",
|
"reset.notify.text2": "If you did not authorise this, please notify an administrator immediately.",
|
||||||
"notif.chat.unsub.info": "This chat notification was sent to you due to your subscription settings.",
|
"digest.notifications": "Máte tu nepřečtená oznámení od %1:",
|
||||||
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
"digest.latest_topics": "Nejnovější témata od %1",
|
||||||
"unsub.cta": "Click here to alter those settings",
|
"digest.cta": "Kliknutím zde navštívíte %1",
|
||||||
"closing": "Thanks!"
|
"digest.unsub.info": "Tento výtah vám byl odeslán, protože jste si to nastavili ve vašich odběrech.",
|
||||||
|
"digest.no_topics": "Dosud tu nebyly žádné aktivní témata %1",
|
||||||
|
"notif.chat.subject": "Nová zpráva z chatu od %1",
|
||||||
|
"notif.chat.cta": "Chcete-li pokračovat v konverzaci, klikněte zde.",
|
||||||
|
"notif.chat.unsub.info": "Toto oznámení z chatu vám bylo zasláno, protože jste si to nastavili ve vašich odběrech.",
|
||||||
|
"notif.post.cta": "Click here to read the full topic",
|
||||||
|
"notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.",
|
||||||
|
"test.text1": "Tento testovací email slouží k ověření, že mailer je správně nastaven. NodeBB.",
|
||||||
|
"unsub.cta": "Chcete-li změnit tyto nastavení, klikněte zde.",
|
||||||
|
"closing": "Díky!"
|
||||||
}
|
}
|
||||||
@@ -1,64 +1,88 @@
|
|||||||
{
|
{
|
||||||
"invalid-data": "Invalid Data",
|
"invalid-data": "Neplatná data",
|
||||||
"not-logged-in": "You don't seem to be logged in.",
|
"not-logged-in": "Zdá se, že nejste přihlášen(a)",
|
||||||
"account-locked": "Your account has been locked temporarily",
|
"account-locked": "Váš účet byl dočasně uzamčen",
|
||||||
"search-requires-login": "Searching requires an account! Please login or register!",
|
"search-requires-login": "Searching requires an account - please login or register.",
|
||||||
"invalid-cid": "Invalid Category ID",
|
"invalid-cid": "Neplatné ID kategorie",
|
||||||
"invalid-tid": "Invalid Topic ID",
|
"invalid-tid": "Neplatné ID tématu",
|
||||||
"invalid-pid": "Invalid Post ID",
|
"invalid-pid": "Neplatné ID příspěvku",
|
||||||
"invalid-uid": "Invalid User ID",
|
"invalid-uid": "Neplatné ID uživatele",
|
||||||
"invalid-username": "Invalid Username",
|
"invalid-username": "Neplatné uživatelské jméno",
|
||||||
"invalid-email": "Invalid Email",
|
"invalid-email": "Neplatný email",
|
||||||
"invalid-title": "Invalid title!",
|
"invalid-title": "Neplatný titulek!",
|
||||||
"invalid-user-data": "Invalid User Data",
|
"invalid-user-data": "Neplatná uživatelská data",
|
||||||
"invalid-password": "Invalid Password",
|
"invalid-password": "Neplatné heslo",
|
||||||
"invalid-username-or-password": "Please specify both a username and password",
|
"invalid-username-or-password": "Stanovte, prosím, oboje, jak uživatelské jméno, tak heslo",
|
||||||
"invalid-search-term": "Invalid search term",
|
"invalid-search-term": "Neplatný výraz pro vyhledávání",
|
||||||
"invalid-pagination-value": "Invalid pagination value",
|
"invalid-pagination-value": "Neplatná hodnota pro stránkování",
|
||||||
"username-taken": "Username taken",
|
"username-taken": "Uživatelské jméno je již použito",
|
||||||
"email-taken": "Email taken",
|
"email-taken": "Email je již použit",
|
||||||
"email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
|
"email-not-confirmed": "Vaše emailová adresa zatím nebyla potvrzena. Kliknutím zde svůj email potvrdíte.",
|
||||||
"username-too-short": "Username too short",
|
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
|
||||||
"username-too-long": "Username too long",
|
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
|
||||||
"user-banned": "User banned",
|
"email-confirm-failed": "We could not confirm your email, please try again later.",
|
||||||
"user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
|
"confirm-email-already-sent": "Confirmation email already sent, please wait %1 minute(s) to send another one.",
|
||||||
"no-category": "Category does not exist",
|
"username-too-short": "Uživatelské jméno je příliš krátké",
|
||||||
"no-topic": "Topic does not exist",
|
"username-too-long": "Uživatelské jméno je příliš dlouhé",
|
||||||
"no-post": "Post does not exist",
|
"user-banned": "Uživatel byl zakázán",
|
||||||
"no-group": "Group does not exist",
|
"user-too-new": "Sorry, you are required to wait %1 second(s) before making your first post",
|
||||||
"no-user": "User does not exist",
|
"no-category": "Kategorie neexistuje",
|
||||||
|
"no-topic": "Téma neexistuje",
|
||||||
|
"no-post": "Příspěvek neexistuje",
|
||||||
|
"no-group": "Skupina neexistuje",
|
||||||
|
"no-user": "Uživatel neexistuje",
|
||||||
"no-teaser": "Teaser does not exist",
|
"no-teaser": "Teaser does not exist",
|
||||||
"no-privileges": "You do not have enough privileges for this action.",
|
"no-privileges": "Na tuto akci nemáte dostatečná práva",
|
||||||
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
|
"no-emailers-configured": "Protože není zaveden žádný emailový plugin, není možné odeslat testovací email.",
|
||||||
"category-disabled": "Category disabled",
|
"category-disabled": "Kategorie zakázána",
|
||||||
"topic-locked": "Topic Locked",
|
"topic-locked": "Téma uzamčeno",
|
||||||
"still-uploading": "Please wait for uploads to complete.",
|
"post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting",
|
||||||
"content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
|
"still-uploading": "Vyčkejte, prosím, nežli se vše kompletně nahraje.",
|
||||||
"title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
|
"content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).",
|
||||||
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
|
"content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).",
|
||||||
"too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
|
"title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).",
|
||||||
"file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
|
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 character(s).",
|
||||||
"cant-vote-self-post": "You cannot vote for your own post",
|
"too-many-posts": "You can only post once every %1 second(s) - please wait before posting again",
|
||||||
|
"too-many-posts-newbie": "As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
|
||||||
|
"tag-too-short": "Please enter a longer tag. Tags should contain at least %1 character(s)",
|
||||||
|
"tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 character(s)",
|
||||||
|
"file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file",
|
||||||
|
"cant-vote-self-post": "Nemůžete hlasovat pro svůj vlastní příspěvek",
|
||||||
"already-favourited": "You have already favourited this post",
|
"already-favourited": "You have already favourited this post",
|
||||||
"already-unfavourited": "You have already unfavourited this post",
|
"already-unfavourited": "You have already unfavourited this post",
|
||||||
"cant-ban-other-admins": "You can't ban other admins!",
|
"cant-ban-other-admins": "Nemůžete zakazovat ostatní administrátory!",
|
||||||
"invalid-image-type": "Invalid image type",
|
"cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin",
|
||||||
"group-name-too-short": "Group name too short",
|
"invalid-image-type": "Invalid image type. Allowed types are: %1",
|
||||||
"group-already-exists": "Group already exists",
|
"invalid-image-extension": "Invalid image extension",
|
||||||
"group-name-change-not-allowed": "Group name change not allowed",
|
"invalid-file-type": "Invalid file type. Allowed types are: %1",
|
||||||
"post-already-deleted": "This post has already been deleted",
|
"group-name-too-short": "Název skupiny je příliš krátký",
|
||||||
"post-already-restored": "This post has already been restored",
|
"group-already-exists": "Skupina už exstuje",
|
||||||
"topic-already-deleted": "This topic has already been deleted",
|
"group-name-change-not-allowed": "Změna názvu skupiny není povolena",
|
||||||
"topic-already-restored": "This topic has already been restored",
|
"group-already-member": "You are already part of this group",
|
||||||
|
"group-needs-owner": "This group requires at least one owner",
|
||||||
|
"group-already-invited": "This user has already been invited",
|
||||||
|
"group-already-requested": "Your membership request has already been submitted",
|
||||||
|
"post-already-deleted": "Tento příspěvek byl již vymazán",
|
||||||
|
"post-already-restored": "Tento příspěvek byl již obnoven",
|
||||||
|
"topic-already-deleted": "Toto téma bylo již vymazáno",
|
||||||
|
"topic-already-restored": "Toto téma bylo již obnoveno",
|
||||||
|
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
|
||||||
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
||||||
"invalid-file": "Invalid File",
|
"invalid-file": "Neplatný soubor",
|
||||||
"uploads-are-disabled": "Uploads are disabled",
|
"uploads-are-disabled": "Nahrávání je zakázáno",
|
||||||
"upload-error": "Upload Error : %1",
|
"signature-too-long": "Sorry, your signature cannot be longer than %1 character(s).",
|
||||||
"signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
|
"about-me-too-long": "Sorry, your about me cannot be longer than %1 character(s).",
|
||||||
"cant-chat-with-yourself": "You can't chat with yourself!",
|
"cant-chat-with-yourself": "Nemůžete chatovat sami se sebou!",
|
||||||
"reputation-system-disabled": "Reputation system is disabled.",
|
"chat-restricted": "This user has restricted their chat messages. They must follow you before you can chat with them",
|
||||||
|
"too-many-messages": "You have sent too many messages, please wait awhile.",
|
||||||
|
"reputation-system-disabled": "Systém reputací je zakázán.",
|
||||||
"downvoting-disabled": "Downvoting is disabled",
|
"downvoting-disabled": "Downvoting is disabled",
|
||||||
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post",
|
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post",
|
||||||
"not-enough-reputation-to-flag": "You do not have enough reputation to flag this post",
|
"not-enough-reputation-to-flag": "You do not have enough reputation to flag this post",
|
||||||
"reload-failed": "NodeBB encountered a problem while reloading: \"%1\". NodeBB will continue to serve the existing client-side assets, although you should undo what you did just prior to reloading."
|
"already-flagged": "You have already flagged this post",
|
||||||
|
"reload-failed": "NodeBB encountered a problem while reloading: \"%1\". NodeBB will continue to serve the existing client-side assets, although you should undo what you did just prior to reloading.",
|
||||||
|
"registration-error": "Chyba při registraci",
|
||||||
|
"parse-error": "Something went wrong while parsing server response",
|
||||||
|
"wrong-login-type-email": "Please use your email to login",
|
||||||
|
"wrong-login-type-username": "Please use your username to login"
|
||||||
}
|
}
|
||||||
@@ -3,31 +3,33 @@
|
|||||||
"search": "Hledat",
|
"search": "Hledat",
|
||||||
"buttons.close": "Zavřít",
|
"buttons.close": "Zavřít",
|
||||||
"403.title": "Přístup odepřen",
|
"403.title": "Přístup odepřen",
|
||||||
"403.message": "K této stránce nemáte přístup. Zkuste se <a href='/login'>přihlásit</a>?",
|
"403.message": "You seem to have stumbled upon a page that you do not have access to.",
|
||||||
|
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
|
||||||
"404.title": "Stránka nenalezena",
|
"404.title": "Stránka nenalezena",
|
||||||
"404.message": "Tato stránka bohužel neexistuje. Vraťte se na <a href='/'>domovskou stránku</a>.",
|
"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
|
||||||
"500.title": "Neznámá chyba",
|
"500.title": "Neznámá chyba",
|
||||||
"500.message": "Jejda, vypadá to, že se něco pokazilo.",
|
"500.message": "Jejda, vypadá to, že se něco pokazilo.",
|
||||||
"register": "Registrovat",
|
"register": "Registrovat",
|
||||||
"login": "Přihlásit se",
|
"login": "Přihlásit se",
|
||||||
"please_log_in": "Please Log In",
|
"please_log_in": "Přihlašte se, prosím",
|
||||||
"logout": "Odhlásit se",
|
"logout": "Odhlásit se",
|
||||||
"posting_restriction_info": "Posting is currently restricted to registered members only, click here to log in.",
|
"posting_restriction_info": "V současné době je zasílání příspěvků povoleno pouze registrovaným členům, klikněte zde a přihlašte se.",
|
||||||
"welcome_back": "Welcome Back",
|
"welcome_back": "Vítejte zpět",
|
||||||
"you_have_successfully_logged_in": "You have successfully logged in",
|
"you_have_successfully_logged_in": "Vaše přihlášení proběhlo úspěšně",
|
||||||
"save_changes": "Uložit změny",
|
"save_changes": "Uložit změny",
|
||||||
"close": "Zrušit",
|
"close": "Zrušit",
|
||||||
"pagination": "Pagination",
|
"pagination": "Stránkování",
|
||||||
"pagination.out_of": "%1 out of %2",
|
"pagination.out_of": "%1 z %2",
|
||||||
"pagination.enter_index": "Enter index",
|
"pagination.enter_index": "Enter index",
|
||||||
"header.admin": "Administrace",
|
"header.admin": "Administrace",
|
||||||
"header.recent": "Aktuality",
|
"header.recent": "Aktuality",
|
||||||
"header.unread": "Nepřečtené",
|
"header.unread": "Nepřečtené",
|
||||||
"header.tags": "Tags",
|
"header.tags": "Tagy",
|
||||||
"header.popular": "Populární",
|
"header.popular": "Populární",
|
||||||
"header.users": "Uživatelé",
|
"header.users": "Uživatelé",
|
||||||
|
"header.groups": "Groups",
|
||||||
"header.chats": "Chats",
|
"header.chats": "Chats",
|
||||||
"header.notifications": "Notifications",
|
"header.notifications": "Oznámení",
|
||||||
"header.search": "Hledat",
|
"header.search": "Hledat",
|
||||||
"header.profile": "Můj profil",
|
"header.profile": "Můj profil",
|
||||||
"notifications.loading": "Načítání upozornění",
|
"notifications.loading": "Načítání upozornění",
|
||||||
@@ -36,18 +38,19 @@
|
|||||||
"previouspage": "Předchozí stránka",
|
"previouspage": "Předchozí stránka",
|
||||||
"nextpage": "Další stránka",
|
"nextpage": "Další stránka",
|
||||||
"alert.success": "Success",
|
"alert.success": "Success",
|
||||||
"alert.error": "Error",
|
"alert.error": "Chyba",
|
||||||
"alert.banned": "Banned",
|
"alert.banned": "Banned",
|
||||||
"alert.banned.message": "You have just been banned, you will now be logged out.",
|
"alert.banned.message": "You have just been banned, you will now be logged out.",
|
||||||
"alert.unfollow": "You are no longer following %1!",
|
"alert.unfollow": "You are no longer following %1!",
|
||||||
"alert.follow": "You are now following %1!",
|
"alert.follow": "You are now following %1!",
|
||||||
"online": "Online",
|
"online": "Online",
|
||||||
"users": "Users",
|
"users": "Uživatelé",
|
||||||
"topics": "Topics",
|
"topics": "Témata",
|
||||||
"posts": "Příspěvky",
|
"posts": "Příspěvky",
|
||||||
"views": "Zobrazení",
|
"views": "Zobrazení",
|
||||||
"reputation": "Reputation",
|
"reputation": "Reputation",
|
||||||
"read_more": "read more",
|
"read_more": "read more",
|
||||||
|
"more": "More",
|
||||||
"posted_ago_by_guest": "posted %1 by Guest",
|
"posted_ago_by_guest": "posted %1 by Guest",
|
||||||
"posted_ago_by": "posted %1 by %2",
|
"posted_ago_by": "posted %1 by %2",
|
||||||
"posted_ago": "posted %1",
|
"posted_ago": "posted %1",
|
||||||
@@ -58,8 +61,8 @@
|
|||||||
"user_posted_ago": "%1 posted %2",
|
"user_posted_ago": "%1 posted %2",
|
||||||
"guest_posted_ago": "Guest posted %1",
|
"guest_posted_ago": "Guest posted %1",
|
||||||
"last_edited_by_ago": "last edited by %1 %2",
|
"last_edited_by_ago": "last edited by %1 %2",
|
||||||
"norecentposts": "No Recent Posts",
|
"norecentposts": "Žádné nedávné příspěvky",
|
||||||
"norecenttopics": "No Recent Topics",
|
"norecenttopics": "Žádné nedávné témata",
|
||||||
"recentposts": "Nedávné příspěvky",
|
"recentposts": "Nedávné příspěvky",
|
||||||
"recentips": "Recently Logged In IPs",
|
"recentips": "Recently Logged In IPs",
|
||||||
"away": "Pryč",
|
"away": "Pryč",
|
||||||
@@ -67,10 +70,13 @@
|
|||||||
"invisible": "Neviditelný",
|
"invisible": "Neviditelný",
|
||||||
"offline": "Offline",
|
"offline": "Offline",
|
||||||
"email": "Email",
|
"email": "Email",
|
||||||
"language": "Language",
|
"language": "Jazyk",
|
||||||
"guest": "Guest",
|
"guest": "Host",
|
||||||
"guests": "Guests",
|
"guests": "Hosté",
|
||||||
"updated.title": "Forum Updated",
|
"updated.title": "Fórum zaktualizováno",
|
||||||
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
|
"updated.message": "Toto fórum bylo právě aktualizováno na poslední verzi. Klikněte zde a obnovte tuto stránku.",
|
||||||
"privacy": "Privacy"
|
"privacy": "Privacy",
|
||||||
|
"follow": "Follow",
|
||||||
|
"unfollow": "Unfollow",
|
||||||
|
"delete_all": "Vymazat vše"
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,43 @@
|
|||||||
{
|
{
|
||||||
"groups": "Groups",
|
"groups": "Skupiny",
|
||||||
"view_group": "View Group",
|
"view_group": "Prohlédnout skupinu",
|
||||||
"details.title": "Group Details",
|
"owner": "Group Owner",
|
||||||
"details.members": "Member List",
|
"new_group": "Create New Group",
|
||||||
"details.has_no_posts": "This group's members have not made any posts.",
|
"no_groups_found": "There are no groups to see",
|
||||||
"details.latest_posts": "Latest Posts"
|
"pending.accept": "Accept",
|
||||||
|
"pending.reject": "Reject",
|
||||||
|
"pending.accept_all": "Accept All",
|
||||||
|
"pending.reject_all": "Reject All",
|
||||||
|
"pending.none": "There are no pending members at this time",
|
||||||
|
"invited.none": "There are no invited members at this time",
|
||||||
|
"invited.uninvite": "Rescind Invitation",
|
||||||
|
"invited.search": "Search for a user to invite to this group",
|
||||||
|
"cover-instructions": "Drag and Drop a photo, drag to position, and hit <strong>Save</strong>",
|
||||||
|
"cover-change": "Change",
|
||||||
|
"cover-save": "Save",
|
||||||
|
"cover-saving": "Saving",
|
||||||
|
"details.title": "podrobnosti skupiny",
|
||||||
|
"details.members": "Seznam členů",
|
||||||
|
"details.pending": "Pending Members",
|
||||||
|
"details.invited": "Invited Members",
|
||||||
|
"details.has_no_posts": "Členové této skupiny dosud neodeslali ani jeden příspěvek.",
|
||||||
|
"details.latest_posts": "Nejnovější příspěvky",
|
||||||
|
"details.private": "Private",
|
||||||
|
"details.grant": "Grant/Rescind Ownership",
|
||||||
|
"details.kick": "Kick",
|
||||||
|
"details.owner_options": "Group Administration",
|
||||||
|
"details.group_name": "Group Name",
|
||||||
|
"details.member_count": "Member Count",
|
||||||
|
"details.creation_date": "Creation Date",
|
||||||
|
"details.description": "Description",
|
||||||
|
"details.badge_preview": "Badge Preview",
|
||||||
|
"details.change_icon": "Change Icon",
|
||||||
|
"details.change_colour": "Change Colour",
|
||||||
|
"details.badge_text": "Badge Text",
|
||||||
|
"details.userTitleEnabled": "Show Badge",
|
||||||
|
"details.private_help": "If enabled, joining of groups requires approval from a group owner",
|
||||||
|
"details.hidden": "Hidden",
|
||||||
|
"details.hidden_help": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
|
||||||
|
"event.updated": "Group details have been updated",
|
||||||
|
"event.deleted": "The group \"%1\" has been deleted"
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"username": "Username / Email",
|
"username-email": "Username / Email",
|
||||||
|
"username": "Username",
|
||||||
|
"email": "Email",
|
||||||
"remember_me": "Zapamatovat si mě?",
|
"remember_me": "Zapamatovat si mě?",
|
||||||
"forgot_password": "Zapomněli jste heslo?",
|
"forgot_password": "Zapomněli jste heslo?",
|
||||||
"alternative_logins": "Další způsoby přihlášení",
|
"alternative_logins": "Další způsoby přihlášení",
|
||||||
"failed_login_attempt": "Přihlášení se nezdařilo, zkuste to prosím znovu.",
|
"failed_login_attempt": "Přihlášení se nezdařilo, zkuste to prosím znovu.",
|
||||||
"login_successful": "Přihlášení proběhlo úspěšně!",
|
"login_successful": "Přihlášení proběhlo úspěšně!",
|
||||||
"dont_have_account": "Don't have an account?"
|
"dont_have_account": "Nemáte účet?"
|
||||||
}
|
}
|
||||||
@@ -1,22 +1,26 @@
|
|||||||
{
|
{
|
||||||
"chat.chatting_with": "Chat s <span id=\"chat-with-name\"></span>",
|
"chat.chatting_with": "Chat s <span id=\"chat-with-name\"></span>",
|
||||||
"chat.placeholder": "Type chat message here, press enter to send",
|
"chat.placeholder": "Zprávu do chatu napište zde, pro odeslání stiskněte enter",
|
||||||
"chat.send": "Odeslat",
|
"chat.send": "Odeslat",
|
||||||
"chat.no_active": "Nemáte žádné aktivní konverzace.",
|
"chat.no_active": "Nemáte žádné aktivní konverzace.",
|
||||||
"chat.user_typing": "%1 is typing ...",
|
"chat.user_typing": "%1 píše ...",
|
||||||
"chat.user_has_messaged_you": "%1 has messaged you.",
|
"chat.user_has_messaged_you": "%1 has messaged you.",
|
||||||
"chat.see_all": "See all Chats",
|
"chat.see_all": "See all Chats",
|
||||||
"chat.no-messages": "Please select a recipient to view chat message history",
|
"chat.no-messages": "Please select a recipient to view chat message history",
|
||||||
"chat.recent-chats": "Recent Chats",
|
"chat.recent-chats": "Recent Chats",
|
||||||
"chat.contacts": "Contacts",
|
"chat.contacts": "Kontakty",
|
||||||
"chat.message-history": "Message History",
|
"chat.message-history": "Historie zpráv",
|
||||||
"chat.pop-out": "Pop out chat",
|
"chat.pop-out": "Pop out chat",
|
||||||
"chat.maximize": "Maximize",
|
"chat.maximize": "Maximalizovat",
|
||||||
"chat.yesterday": "Yesterday",
|
"chat.seven_days": "7 dní",
|
||||||
"chat.seven_days": "7 Days",
|
"chat.thirty_days": "30 dní",
|
||||||
"chat.thirty_days": "30 Days",
|
"chat.three_months": "3 měsíce",
|
||||||
"chat.three_months": "3 Months",
|
"composer.compose": "Compose",
|
||||||
|
"composer.show_preview": "Show Preview",
|
||||||
|
"composer.hide_preview": "Hide Preview",
|
||||||
"composer.user_said_in": "%1 said in %2:",
|
"composer.user_said_in": "%1 said in %2:",
|
||||||
"composer.user_said": "%1 said:",
|
"composer.user_said": "%1 said:",
|
||||||
"composer.discard": "Are you sure you wish to discard this post?"
|
"composer.discard": "Are you sure you wish to discard this post?",
|
||||||
|
"composer.submit_and_lock": "Submit and Lock",
|
||||||
|
"composer.toggle_dropdown": "Toggle Dropdown"
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
"title": "Upozornění",
|
"title": "Upozornění",
|
||||||
"no_notifs": "You have no new notifications",
|
"no_notifs": "You have no new notifications",
|
||||||
"see_all": "See all Notifications",
|
"see_all": "See all Notifications",
|
||||||
|
"mark_all_read": "Mark all notifications read",
|
||||||
"back_to_home": "Back to %1",
|
"back_to_home": "Back to %1",
|
||||||
"outgoing_link": "Odkaz mimo fórum",
|
"outgoing_link": "Odkaz mimo fórum",
|
||||||
"outgoing_link_message": "You are now leaving %1.",
|
"outgoing_link_message": "You are now leaving %1.",
|
||||||
@@ -19,9 +20,9 @@
|
|||||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||||
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
||||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
"user_started_following_you": "<strong>%1</strong> started following you.",
|
||||||
|
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||||
"email-confirmed": "Email Confirmed",
|
"email-confirmed": "Email Confirmed",
|
||||||
"email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.",
|
"email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.",
|
||||||
"email-confirm-error": "An error occurred...",
|
|
||||||
"email-confirm-error-message": "There was a problem validating your email address. Perhaps the code was invalid or has expired.",
|
"email-confirm-error-message": "There was a problem validating your email address. Perhaps the code was invalid or has expired.",
|
||||||
"email-confirm-sent": "Confirmation email sent."
|
"email-confirm-sent": "Confirmation email sent."
|
||||||
}
|
}
|
||||||
@@ -5,14 +5,17 @@
|
|||||||
"recent": "Recent Topics",
|
"recent": "Recent Topics",
|
||||||
"users": "Registered Users",
|
"users": "Registered Users",
|
||||||
"notifications": "Notifications",
|
"notifications": "Notifications",
|
||||||
"tags": "Topics tagged under \"%1\"",
|
"tags": "Tags",
|
||||||
|
"tag": "Topics tagged under \"%1\"",
|
||||||
"user.edit": "Editing \"%1\"",
|
"user.edit": "Editing \"%1\"",
|
||||||
"user.following": "People %1 Follows",
|
"user.following": "People %1 Follows",
|
||||||
"user.followers": "People who Follow %1",
|
"user.followers": "People who Follow %1",
|
||||||
"user.posts": "Posts made by %1",
|
"user.posts": "Posts made by %1",
|
||||||
"user.topics": "Topics created by %1",
|
"user.topics": "Topics created by %1",
|
||||||
|
"user.groups": "%1's Groups",
|
||||||
"user.favourites": "%1's Favourite Posts",
|
"user.favourites": "%1's Favourite Posts",
|
||||||
"user.settings": "User Settings",
|
"user.settings": "User Settings",
|
||||||
|
"user.watched": "Topics watched by %1",
|
||||||
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
|
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
|
||||||
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
|
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,15 @@
|
|||||||
"month": "Měsíc",
|
"month": "Měsíc",
|
||||||
"year": "Year",
|
"year": "Year",
|
||||||
"alltime": "All Time",
|
"alltime": "All Time",
|
||||||
"no_recent_topics": "There are no recent topics."
|
"no_recent_topics": "There are no recent topics.",
|
||||||
|
"no_popular_topics": "There are no popular topics.",
|
||||||
|
"there-is-a-new-topic": "There is a new topic.",
|
||||||
|
"there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
|
||||||
|
"there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
|
||||||
|
"there-are-new-topics": "There are %1 new topics.",
|
||||||
|
"there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
|
||||||
|
"there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
|
||||||
|
"there-is-a-new-post": "There is a new post.",
|
||||||
|
"there-are-new-posts": "There are %1 new posts.",
|
||||||
|
"click-here-to-reload": "Click here to reload."
|
||||||
}
|
}
|
||||||
@@ -14,5 +14,6 @@
|
|||||||
"register_now_button": "Zaregistrovat se",
|
"register_now_button": "Zaregistrovat se",
|
||||||
"alternative_registration": "Jiný způsob registrace",
|
"alternative_registration": "Jiný způsob registrace",
|
||||||
"terms_of_use": "Podmínky",
|
"terms_of_use": "Podmínky",
|
||||||
"agree_to_terms_of_use": "Souhlasím s Podmínkami"
|
"agree_to_terms_of_use": "Souhlasím s Podmínkami",
|
||||||
|
"registration-added-to-queue": "Your registration has been added to the approval queue. You will receive an email when it is accepted by an administrator."
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,10 @@
|
|||||||
"new_password": "Nové heslo",
|
"new_password": "Nové heslo",
|
||||||
"repeat_password": "Potvrzení hesla",
|
"repeat_password": "Potvrzení hesla",
|
||||||
"enter_email": "Zadejte svou <strong>emailovou adresu</strong> a my Vám pošleme informace, jak můžete obnovit své heslo.",
|
"enter_email": "Zadejte svou <strong>emailovou adresu</strong> a my Vám pošleme informace, jak můžete obnovit své heslo.",
|
||||||
"enter_email_address": "Enter Email Address",
|
"enter_email_address": "Zadejte emailovou adresu",
|
||||||
"password_reset_sent": "Obnova hesla odeslána",
|
"password_reset_sent": "Obnova hesla odeslána",
|
||||||
"invalid_email": "Špatný email / Email neexistuje!"
|
"invalid_email": "Špatný email / Email neexistuje!",
|
||||||
|
"password_too_short": "The password entered is too short, please pick a different password.",
|
||||||
|
"passwords_do_not_match": "The two passwords you've entered do not match.",
|
||||||
|
"password_expired": "Your password has expired, please choose a new password"
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,40 @@
|
|||||||
{
|
{
|
||||||
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
|
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
|
||||||
"no-matches": "No posts found"
|
"no-matches": "No matches found",
|
||||||
|
"advanced-search": "Advanced Search",
|
||||||
|
"in": "In",
|
||||||
|
"titles": "Titles",
|
||||||
|
"titles-posts": "Titles and Posts",
|
||||||
|
"posted-by": "Posted by",
|
||||||
|
"in-categories": "In Categories",
|
||||||
|
"search-child-categories": "Search child categories",
|
||||||
|
"reply-count": "Reply Count",
|
||||||
|
"at-least": "At least",
|
||||||
|
"at-most": "At most",
|
||||||
|
"post-time": "Post time",
|
||||||
|
"newer-than": "Newer than",
|
||||||
|
"older-than": "Older than",
|
||||||
|
"any-date": "Any date",
|
||||||
|
"yesterday": "Yesterday",
|
||||||
|
"one-week": "One week",
|
||||||
|
"two-weeks": "Two weeks",
|
||||||
|
"one-month": "One month",
|
||||||
|
"three-months": "Three months",
|
||||||
|
"six-months": "Six months",
|
||||||
|
"one-year": "One year",
|
||||||
|
"sort-by": "Sort by",
|
||||||
|
"last-reply-time": "Last reply time",
|
||||||
|
"topic-title": "Topic title",
|
||||||
|
"number-of-replies": "Number of replies",
|
||||||
|
"number-of-views": "Number of views",
|
||||||
|
"topic-start-date": "Topic start date",
|
||||||
|
"username": "Username",
|
||||||
|
"category": "Category",
|
||||||
|
"descending": "In descending order",
|
||||||
|
"ascending": "In ascending order",
|
||||||
|
"save-preferences": "Save preferences",
|
||||||
|
"clear-preferences": "Clear preferences",
|
||||||
|
"search-preferences-saved": "Search preferences saved",
|
||||||
|
"search-preferences-cleared": "Search preferences cleared",
|
||||||
|
"show-results-as": "Show results as"
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"no_tag_topics": "There are no topics with this tag.",
|
"no_tag_topics": "Není zde žádné téma s tímto tagem.",
|
||||||
"tags": "Tags",
|
"tags": "Tagy",
|
||||||
"enter_tags_here": "Enter tags here. Press enter after each tag.",
|
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
|
||||||
"enter_tags_here_short": "Enter tags...",
|
"enter_tags_here_short": "Vložte tagy ...",
|
||||||
"no_tags": "There are no tags yet."
|
"no_tags": "Zatím tu není žádný tag."
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
{
|
{
|
||||||
"topic": "Téma",
|
"topic": "Téma",
|
||||||
"topic_id": "Topic ID",
|
"topic_id": "ID tématu",
|
||||||
"topic_id_placeholder": "Enter topic ID",
|
"topic_id_placeholder": "Vložte ID tématu",
|
||||||
"no_topics_found": "Nebyla nalezena žádná témata!",
|
"no_topics_found": "Nebyla nalezena žádná témata!",
|
||||||
"no_posts_found": "No posts found!",
|
"no_posts_found": "Nebyly nalezeny žádné příspěvky!",
|
||||||
"post_is_deleted": "This post is deleted!",
|
"post_is_deleted": "Tento příspěvek je vymazán!",
|
||||||
|
"topic_is_deleted": "This topic is deleted!",
|
||||||
"profile": "Profil",
|
"profile": "Profil",
|
||||||
"posted_by": "Posted by %1",
|
"posted_by": "Posted by %1",
|
||||||
"posted_by_guest": "Posted by Guest",
|
"posted_by_guest": "Posted by Guest",
|
||||||
@@ -12,6 +13,7 @@
|
|||||||
"notify_me": "Sledovat toto téma",
|
"notify_me": "Sledovat toto téma",
|
||||||
"quote": "Citovat",
|
"quote": "Citovat",
|
||||||
"reply": "Odpovědět",
|
"reply": "Odpovědět",
|
||||||
|
"guest-login-reply": "Log in to reply",
|
||||||
"edit": "Upravit",
|
"edit": "Upravit",
|
||||||
"delete": "Smazat",
|
"delete": "Smazat",
|
||||||
"purge": "Purge",
|
"purge": "Purge",
|
||||||
@@ -74,6 +76,7 @@
|
|||||||
"fork_no_pids": "Žádné příspěvky nebyly vybrány!",
|
"fork_no_pids": "Žádné příspěvky nebyly vybrány!",
|
||||||
"fork_success": "Successfully forked topic! Click here to go to the forked topic.",
|
"fork_success": "Successfully forked topic! Click here to go to the forked topic.",
|
||||||
"composer.title_placeholder": "Enter your topic title here...",
|
"composer.title_placeholder": "Enter your topic title here...",
|
||||||
|
"composer.handle_placeholder": "Name",
|
||||||
"composer.discard": "Discard",
|
"composer.discard": "Discard",
|
||||||
"composer.submit": "Submit",
|
"composer.submit": "Submit",
|
||||||
"composer.replying_to": "Replying to %1",
|
"composer.replying_to": "Replying to %1",
|
||||||
@@ -92,5 +95,6 @@
|
|||||||
"sort_by": "Sort by",
|
"sort_by": "Sort by",
|
||||||
"oldest_to_newest": "Oldest to Newest",
|
"oldest_to_newest": "Oldest to Newest",
|
||||||
"newest_to_oldest": "Newest to Oldest",
|
"newest_to_oldest": "Newest to Oldest",
|
||||||
"most_votes": "Most votes"
|
"most_votes": "Most votes",
|
||||||
|
"most_posts": "Most posts"
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
{
|
{
|
||||||
"title": "Unread",
|
"title": "Nepřečtené",
|
||||||
"no_unread_topics": "Nejsou zde žádné nepřečtené témata.",
|
"no_unread_topics": "Nejsou zde žádné nepřečtené témata.",
|
||||||
"load_more": "Načíst další",
|
"load_more": "Načíst další",
|
||||||
"mark_as_read": "Mark as Read",
|
"mark_as_read": "Označit jako přeštené",
|
||||||
"selected": "Selected",
|
"selected": "Vybrané",
|
||||||
"all": "All",
|
"all": "Vše",
|
||||||
"topics_marked_as_read.success": "Topics marked as read!"
|
"all_categories": "All categories",
|
||||||
|
"topics_marked_as_read.success": "Téma bylo označeno jako přečtené!"
|
||||||
}
|
}
|
||||||
@@ -2,37 +2,46 @@
|
|||||||
"banned": "Banned",
|
"banned": "Banned",
|
||||||
"offline": "Offline",
|
"offline": "Offline",
|
||||||
"username": "Uživatelské jméno",
|
"username": "Uživatelské jméno",
|
||||||
|
"joindate": "Join Date",
|
||||||
|
"postcount": "Post Count",
|
||||||
"email": "Email",
|
"email": "Email",
|
||||||
"confirm_email": "Confirm Email",
|
"confirm_email": "Potvrdit email",
|
||||||
"delete_account": "Delete Account",
|
"ban_account": "Ban Account",
|
||||||
|
"ban_account_confirm": "Do you really want to ban this user?",
|
||||||
|
"unban_account": "Unban Account",
|
||||||
|
"delete_account": "Vymazat účet",
|
||||||
"delete_account_confirm": "Are you sure you want to delete your account? <br /><strong>This action is irreversible and you will not be able to recover any of your data</strong><br /><br />Enter your username to confirm that you wish to destroy this account.",
|
"delete_account_confirm": "Are you sure you want to delete your account? <br /><strong>This action is irreversible and you will not be able to recover any of your data</strong><br /><br />Enter your username to confirm that you wish to destroy this account.",
|
||||||
|
"delete_this_account_confirm": "Are you sure you want to delete this account? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
|
||||||
"fullname": "Jméno a příjmení",
|
"fullname": "Jméno a příjmení",
|
||||||
"website": "Webové stránky",
|
"website": "Webové stránky",
|
||||||
"location": "Poloha",
|
"location": "Poloha",
|
||||||
"age": "Věk",
|
"age": "Věk",
|
||||||
"joined": "Registrován",
|
"joined": "Registrován",
|
||||||
"lastonline": "Naposledy online",
|
"lastonline": "Naposledy online",
|
||||||
"profile": "Profile",
|
"profile": "Profil",
|
||||||
"profile_views": "Zobrazení profilu",
|
"profile_views": "Zobrazení profilu",
|
||||||
"reputation": "Reputace",
|
"reputation": "Reputace",
|
||||||
"favourites": "Oblíbené",
|
"favourites": "Oblíbené",
|
||||||
|
"watched": "Watched",
|
||||||
"followers": "Sledují ho",
|
"followers": "Sledují ho",
|
||||||
"following": "Sleduje",
|
"following": "Sleduje",
|
||||||
|
"aboutme": "About me",
|
||||||
"signature": "Podpis",
|
"signature": "Podpis",
|
||||||
"gravatar": "Gravatar",
|
"gravatar": "Gravatar",
|
||||||
"birthday": "Datum narození",
|
"birthday": "Datum narození",
|
||||||
"chat": "Chat",
|
"chat": "Chat",
|
||||||
"follow": "Follow",
|
"follow": "Follow",
|
||||||
"unfollow": "Unfollow",
|
"unfollow": "Unfollow",
|
||||||
"profile_update_success": "Profile has been updated successfully!",
|
"more": "More",
|
||||||
|
"profile_update_success": "Profil byl úspěšně aktualizován!",
|
||||||
"change_picture": "Změnit obrázek",
|
"change_picture": "Změnit obrázek",
|
||||||
"edit": "Upravit",
|
"edit": "Upravit",
|
||||||
"uploaded_picture": "Nahraný obrázek",
|
"uploaded_picture": "Nahraný obrázek",
|
||||||
"upload_new_picture": "Nahrát nový obrázek",
|
"upload_new_picture": "Nahrát nový obrázek",
|
||||||
"upload_new_picture_from_url": "Upload New Picture From URL",
|
"upload_new_picture_from_url": "Upload New Picture From URL",
|
||||||
"current_password": "Current Password",
|
"current_password": "Současné heslo",
|
||||||
"change_password": "Změnit heslo",
|
"change_password": "Změnit heslo",
|
||||||
"change_password_error": "Invalid Password!",
|
"change_password_error": "Neplatné heslo",
|
||||||
"change_password_error_wrong_current": "Your current password is not correct!",
|
"change_password_error_wrong_current": "Your current password is not correct!",
|
||||||
"change_password_error_length": "Password too short!",
|
"change_password_error_length": "Password too short!",
|
||||||
"change_password_error_match": "Passwords must match!",
|
"change_password_error_match": "Passwords must match!",
|
||||||
@@ -44,10 +53,10 @@
|
|||||||
"upload_picture": "Nahrát obrázek",
|
"upload_picture": "Nahrát obrázek",
|
||||||
"upload_a_picture": "Nahrát obrázek",
|
"upload_a_picture": "Nahrát obrázek",
|
||||||
"image_spec": "You may only upload PNG, JPG, or GIF files",
|
"image_spec": "You may only upload PNG, JPG, or GIF files",
|
||||||
"max": "max.",
|
|
||||||
"settings": "Nastavení",
|
"settings": "Nastavení",
|
||||||
"show_email": "Zobrazovat můj email v profilu",
|
"show_email": "Zobrazovat můj email v profilu",
|
||||||
"show_fullname": "Show My Full Name",
|
"show_fullname": "Show My Full Name",
|
||||||
|
"restrict_chats": "Only allow chat messages from users I follow",
|
||||||
"digest_label": "Subscribe to Digest",
|
"digest_label": "Subscribe to Digest",
|
||||||
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
|
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
|
||||||
"digest_off": "Off",
|
"digest_off": "Off",
|
||||||
@@ -55,18 +64,25 @@
|
|||||||
"digest_weekly": "Weekly",
|
"digest_weekly": "Weekly",
|
||||||
"digest_monthly": "Monthly",
|
"digest_monthly": "Monthly",
|
||||||
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
|
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
|
||||||
|
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
|
||||||
|
"settings-require-reload": "Some setting changes require a reload. Click here to reload the page.",
|
||||||
"has_no_follower": "Tohoto uživatele nikdo nesleduje :(",
|
"has_no_follower": "Tohoto uživatele nikdo nesleduje :(",
|
||||||
"follows_no_one": "Tento uživatel nikoho nesleduje :(",
|
"follows_no_one": "Tento uživatel nikoho nesleduje :(",
|
||||||
"has_no_posts": "This user didn't post anything yet.",
|
"has_no_posts": "This user hasn't posted anything yet.",
|
||||||
"has_no_topics": "This user didn't post any topics yet.",
|
"has_no_topics": "This user hasn't posted any topics yet.",
|
||||||
|
"has_no_watched_topics": "This user hasn't watched any topics yet.",
|
||||||
"email_hidden": "Skrytý email",
|
"email_hidden": "Skrytý email",
|
||||||
"hidden": "skrytý",
|
"hidden": "skrytý",
|
||||||
"paginate_description": "Paginate topics and posts instead of using infinite scroll.",
|
"paginate_description": "Paginate topics and posts instead of using infinite scroll",
|
||||||
"topics_per_page": "Topics per Page",
|
"topics_per_page": "Topics per Page",
|
||||||
"posts_per_page": "Posts per Page",
|
"posts_per_page": "Posts per Page",
|
||||||
"notification_sounds": "Play a sound when you receive a notification.",
|
"notification_sounds": "Play a sound when you receive a notification",
|
||||||
"browsing": "Browsing Settings",
|
"browsing": "Browsing Settings",
|
||||||
"open_links_in_new_tab": "Open outgoing links in new tab?",
|
"open_links_in_new_tab": "Open outgoing links in new tab",
|
||||||
"follow_topics_you_reply_to": "Follow topics that you reply to.",
|
"enable_topic_searching": "Enable In-Topic Searching",
|
||||||
"follow_topics_you_create": "Follow topics you create."
|
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen",
|
||||||
|
"follow_topics_you_reply_to": "Follow topics that you reply to",
|
||||||
|
"follow_topics_you_create": "Follow topics you create",
|
||||||
|
"grouptitle": "Select the group title you would like to display",
|
||||||
|
"no-group-title": "No group title"
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user