mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-17 05:50:25 +01:00
Compare commits
1007 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cce076fc83 | ||
|
|
0a73fade08 | ||
|
|
3d5e72bbc8 | ||
|
|
9909f8ba79 | ||
|
|
18462c4190 | ||
|
|
698d113857 | ||
|
|
eaf89dc316 | ||
|
|
a4d671f8b8 | ||
|
|
238fb0bd4b | ||
|
|
c74370bfb1 | ||
|
|
c4a39c8163 | ||
|
|
782896997d | ||
|
|
56947b999e | ||
|
|
d2cc4b8516 | ||
|
|
35e2e1462b | ||
|
|
63cf8d674d | ||
|
|
dfae2ea0d7 | ||
|
|
699b74603b | ||
|
|
4c90c9a759 | ||
|
|
ca9cc6b32f | ||
|
|
081efd22e2 | ||
|
|
a7bb5893e8 | ||
|
|
0a81898810 | ||
|
|
a9c528eb23 | ||
|
|
9215930cfc | ||
|
|
6e62c48f41 | ||
|
|
89613d2346 | ||
|
|
a8760cd2bc | ||
|
|
c753edab1d | ||
|
|
ffdc4b5d24 | ||
|
|
8112ca73c8 | ||
|
|
f295083a08 | ||
|
|
802c8b15e2 | ||
|
|
9a21e9646f | ||
|
|
67770e568f | ||
|
|
b95710b2c9 | ||
|
|
a9a32bff50 | ||
|
|
c5224d099e | ||
|
|
fd00dddd62 | ||
|
|
aac923fb03 | ||
|
|
62d85b0e26 | ||
|
|
8468a84047 | ||
|
|
07a54b9510 | ||
|
|
afa86c03c4 | ||
|
|
ec9bf48477 | ||
|
|
a28b4bb8b9 | ||
|
|
1a90de7dd6 | ||
|
|
ebfb953069 | ||
|
|
dcf2691a12 | ||
|
|
591a8b6b12 | ||
|
|
1b80e6dbb2 | ||
|
|
55a5d56989 | ||
|
|
3e4b6c97a0 | ||
|
|
b5fe2c7b91 | ||
|
|
b23373c265 | ||
|
|
f15631c3e1 | ||
|
|
6dd035a5af | ||
|
|
7de9b998b5 | ||
|
|
3f28dbb1be | ||
|
|
224218f519 | ||
|
|
e9ec225d5b | ||
|
|
4db31be7e3 | ||
|
|
304f5b1c76 | ||
|
|
6802bf7ce9 | ||
|
|
2d238e61ac | ||
|
|
c2fb1eaabf | ||
|
|
b209fb563e | ||
|
|
794d6eb9ab | ||
|
|
94ffe5d170 | ||
|
|
02f74ca032 | ||
|
|
1eb1eb6844 | ||
|
|
ded8de905d | ||
|
|
d2334fbb4a | ||
|
|
93d4a7c1f1 | ||
|
|
6cb5f9c098 | ||
|
|
c5e1f8e0aa | ||
|
|
7bf655541c | ||
|
|
cfd7edbf34 | ||
|
|
24de757549 | ||
|
|
b5fb7691cd | ||
|
|
75aa3f1006 | ||
|
|
8ef4ad6f14 | ||
|
|
59b3e6f78f | ||
|
|
3ba4d2aa2b | ||
|
|
fec84821b7 | ||
|
|
762b2fff37 | ||
|
|
df590d01e6 | ||
|
|
9e8be432b3 | ||
|
|
d01497dde3 | ||
|
|
3ff7719cd4 | ||
|
|
eb546dfaab | ||
|
|
834c4f8ff0 | ||
|
|
80489c6564 | ||
|
|
90224d2de3 | ||
|
|
f2883c2c9f | ||
|
|
1be6a253bf | ||
|
|
72a919e416 | ||
|
|
f318f2f815 | ||
|
|
b3e83d2f9a | ||
|
|
8471fcbd79 | ||
|
|
4b1adba9ec | ||
|
|
ffbefda5f7 | ||
|
|
761f56aeb1 | ||
|
|
09bd42b9f6 | ||
|
|
b1d48df6d8 | ||
|
|
5de74914bd | ||
|
|
b65c17c5bc | ||
|
|
29fcb6c366 | ||
|
|
040d7b8424 | ||
|
|
0eae679bcd | ||
|
|
be287740f9 | ||
|
|
62503c16c6 | ||
|
|
b5481ceed2 | ||
|
|
08d4d6b5bf | ||
|
|
f463030e76 | ||
|
|
835c58d27d | ||
|
|
6ff00a935f | ||
|
|
2b0957b8c7 | ||
|
|
40fe40deac | ||
|
|
62d0e08d6a | ||
|
|
129a438ebe | ||
|
|
fced152e41 | ||
|
|
be0d043b2b | ||
|
|
27833a3e91 | ||
|
|
97dba9ae39 | ||
|
|
3c25204fdd | ||
|
|
e699c02b65 | ||
|
|
10ead05d4b | ||
|
|
8cc1cc0f1b | ||
|
|
1eb95a71ae | ||
|
|
2b15de63c0 | ||
|
|
35fc175ff6 | ||
|
|
2c95d8d82e | ||
|
|
91e11e304f | ||
|
|
feed33f6e2 | ||
|
|
035c32df66 | ||
|
|
b0ec0f52a4 | ||
|
|
e6b8c0b32f | ||
|
|
7ee6f1d01c | ||
|
|
1226a2462a | ||
|
|
a24dde863b | ||
|
|
4268d424a3 | ||
|
|
e052d8e5c1 | ||
|
|
ffcb324d91 | ||
|
|
cad3f3017c | ||
|
|
e95c68e7d6 | ||
|
|
29d90bc67d | ||
|
|
07a5aeaf15 | ||
|
|
e9c48f50f9 | ||
|
|
dcd47f7ec5 | ||
|
|
3819d11be2 | ||
|
|
4cbb7e9832 | ||
|
|
c787cd671b | ||
|
|
2f150649ae | ||
|
|
142ffc2920 | ||
|
|
b7bba928a4 | ||
|
|
0d95089bfe | ||
|
|
4190b3c41c | ||
|
|
97b9ba983c | ||
|
|
00ff032060 | ||
|
|
73220aaa3d | ||
|
|
2906ac9ecf | ||
|
|
ce30379c25 | ||
|
|
4126fcfce4 | ||
|
|
1a04d8f07d | ||
|
|
5dbd4bcda9 | ||
|
|
5d79d2a75a | ||
|
|
cb934acb5d | ||
|
|
206b54c35d | ||
|
|
424efbeb06 | ||
|
|
124576f843 | ||
|
|
5dcd610c1a | ||
|
|
3f876548ba | ||
|
|
7a53205c76 | ||
|
|
b17740f8d7 | ||
|
|
b42e57bfdd | ||
|
|
daf967399f | ||
|
|
d63f2ccd28 | ||
|
|
c4a5af3b1b | ||
|
|
e1c3bc9713 | ||
|
|
8abf2835a5 | ||
|
|
339d2b0143 | ||
|
|
ffc07ff6d2 | ||
|
|
d759a7d9dd | ||
|
|
a2377d4682 | ||
|
|
ed60deb3f5 | ||
|
|
0f759f9df4 | ||
|
|
b51c90dcb3 | ||
|
|
006322f386 | ||
|
|
e1f67052d0 | ||
|
|
0d741f0031 | ||
|
|
f35a51e48d | ||
|
|
6418948570 | ||
|
|
ae635a0083 | ||
|
|
2f53a3acc9 | ||
|
|
3a069e028b | ||
|
|
61c73b7761 | ||
|
|
4dcecbb310 | ||
|
|
1d1625f5c4 | ||
|
|
b1b25ada4d | ||
|
|
2b5c3275f3 | ||
|
|
396fecb94a | ||
|
|
f149fb0191 | ||
|
|
729ed6fbda | ||
|
|
f4b5090738 | ||
|
|
27496a08c4 | ||
|
|
94ec07eb73 | ||
|
|
fd95ac096d | ||
|
|
c2d21de9ac | ||
|
|
61b8c7f673 | ||
|
|
5376f07f6c | ||
|
|
85e0d1c03f | ||
|
|
01b8d1472e | ||
|
|
d632ba2242 | ||
|
|
4b295decf8 | ||
|
|
eb4baf62b5 | ||
|
|
298625225a | ||
|
|
7bd49a96b2 | ||
|
|
3b511b59cb | ||
|
|
1bdb80ce0a | ||
|
|
3c97829e85 | ||
|
|
712bd3938f | ||
|
|
e0fd24c087 | ||
|
|
ea2fbcfcfc | ||
|
|
cf22fad6fd | ||
|
|
8a978e46de | ||
|
|
7396c363d7 | ||
|
|
b2866abf5c | ||
|
|
f6f6ca7f76 | ||
|
|
c57dc25ea7 | ||
|
|
0912c7a2aa | ||
|
|
ad4fff649c | ||
|
|
26cfe4a3c3 | ||
|
|
0772e8c41f | ||
|
|
b481a28b6e | ||
|
|
394a01fdef | ||
|
|
c827485de5 | ||
|
|
d7c796fba5 | ||
|
|
53fdef1d17 | ||
|
|
345896e8eb | ||
|
|
85da5fb054 | ||
|
|
6ca06a8e54 | ||
|
|
348911fd2d | ||
|
|
bc1281a201 | ||
|
|
e35dd60f8f | ||
|
|
ccf58ed40e | ||
|
|
258e14e20c | ||
|
|
2a2490541f | ||
|
|
31b2faf2c5 | ||
|
|
84b9b86dd1 | ||
|
|
d70aab6a1e | ||
|
|
89e4a67e95 | ||
|
|
1b2ccda40b | ||
|
|
bf852d8329 | ||
|
|
c14b5e3d3a | ||
|
|
319defd1d2 | ||
|
|
fa8613d09d | ||
|
|
872e28099f | ||
|
|
edf37f3e0c | ||
|
|
27c214486b | ||
|
|
5681d51778 | ||
|
|
39de76fa5c | ||
|
|
901ef3d382 | ||
|
|
39e59ee918 | ||
|
|
ced0087347 | ||
|
|
307a04c162 | ||
|
|
ba4392cda0 | ||
|
|
cf5ac4fb74 | ||
|
|
31a1f85a7e | ||
|
|
3accfaebc9 | ||
|
|
03f926c560 | ||
|
|
bc016321ac | ||
|
|
ba9da2b256 | ||
|
|
a4f7ad3161 | ||
|
|
eb5630caa7 | ||
|
|
44b39bc69d | ||
|
|
04b7dfeb02 | ||
|
|
a6481aefe3 | ||
|
|
7a2ccf6031 | ||
|
|
a474f111a3 | ||
|
|
9c67d5742e | ||
|
|
cea23454c6 | ||
|
|
13c9da6bff | ||
|
|
a23b0baf25 | ||
|
|
bcdb87f488 | ||
|
|
06db3c1c3d | ||
|
|
16a4824017 | ||
|
|
e86697b36f | ||
|
|
4b9e4a0109 | ||
|
|
1644c1f9e9 | ||
|
|
e211628419 | ||
|
|
2db93c9219 | ||
|
|
2148e24969 | ||
|
|
60c45d8b9b | ||
|
|
5db24fbe68 | ||
|
|
c37cfe4b3f | ||
|
|
f5f84d9946 | ||
|
|
740c336480 | ||
|
|
dba20160ce | ||
|
|
1b3b13716a | ||
|
|
19c69980ef | ||
|
|
33780e6fdb | ||
|
|
73d358edc5 | ||
|
|
43806e5921 | ||
|
|
0e3c5195db | ||
|
|
b7ba6a0d8f | ||
|
|
ee289c3226 | ||
|
|
b4fb2d62a3 | ||
|
|
6a996bd718 | ||
|
|
8737c5a56d | ||
|
|
eab180f305 | ||
|
|
c72c876b04 | ||
|
|
4c70a0da4f | ||
|
|
c12b159bb5 | ||
|
|
806b115782 | ||
|
|
6a6f0a3b78 | ||
|
|
e20747c191 | ||
|
|
9c8395808c | ||
|
|
24ac7ba316 | ||
|
|
6f40a731f5 | ||
|
|
2af077544b | ||
|
|
32d0e0d7e5 | ||
|
|
974a091f1b | ||
|
|
7243aebee0 | ||
|
|
6aa53b8323 | ||
|
|
5ba88b7152 | ||
|
|
e5681097f4 | ||
|
|
bc4969be5b | ||
|
|
9d53de5f70 | ||
|
|
42d3656ecc | ||
|
|
85048a5f75 | ||
|
|
1eb9016a77 | ||
|
|
043a73b4ae | ||
|
|
de98df842d | ||
|
|
a67c501eb8 | ||
|
|
7b8656ef8b | ||
|
|
b8df95da98 | ||
|
|
6165db3e00 | ||
|
|
883422760d | ||
|
|
cf252a29a7 | ||
|
|
977cd98a79 | ||
|
|
e6824fd727 | ||
|
|
f082849126 | ||
|
|
43db2289c2 | ||
|
|
35ac6600ba | ||
|
|
f41b0fe3ce | ||
|
|
5ff293109d | ||
|
|
4f2603afd1 | ||
|
|
31db0d78b1 | ||
|
|
7cde61f4d6 | ||
|
|
b31feac253 | ||
|
|
ab915b6ed7 | ||
|
|
05ff80b2e0 | ||
|
|
52229113b6 | ||
|
|
3865fd3ab9 | ||
|
|
bfc9cae1b2 | ||
|
|
0aa08f8bd9 | ||
|
|
178aa473fc | ||
|
|
3e7f0531b4 | ||
|
|
199a13d730 | ||
|
|
c792fc68d3 | ||
|
|
6b786012d8 | ||
|
|
c9228f1483 | ||
|
|
343ff18014 | ||
|
|
2b115e75c6 | ||
|
|
62084a012e | ||
|
|
30b2f55ebc | ||
|
|
2b5d0e89a5 | ||
|
|
1e5c172f5e | ||
|
|
a505896185 | ||
|
|
18cfdd9dde | ||
|
|
653865a214 | ||
|
|
e79e370e59 | ||
|
|
d0452fb93f | ||
|
|
632fb3a618 | ||
|
|
b877a4e7b4 | ||
|
|
f86e4256a1 | ||
|
|
7b9815aa3b | ||
|
|
29d99a0ecf | ||
|
|
9c996e4b99 | ||
|
|
219cd9661f | ||
|
|
4b5112e60a | ||
|
|
95740ae8f9 | ||
|
|
6867c10058 | ||
|
|
b9ac2a3207 | ||
|
|
2a1f9600e6 | ||
|
|
8c9d362535 | ||
|
|
456f087dea | ||
|
|
6a8ccf1ad5 | ||
|
|
dedf7a6715 | ||
|
|
d303dea6c7 | ||
|
|
8b0685754e | ||
|
|
2388f8b815 | ||
|
|
625247611b | ||
|
|
318e4b5f6b | ||
|
|
2f9193c419 | ||
|
|
8d149cb2ee | ||
|
|
3b48668385 | ||
|
|
587f805763 | ||
|
|
186790f2ba | ||
|
|
cb84b79bbc | ||
|
|
3634cebff7 | ||
|
|
a46006ba64 | ||
|
|
6fb596c1c6 | ||
|
|
51c3f0d77a | ||
|
|
4fafc6804a | ||
|
|
c260d4e1c0 | ||
|
|
3104cfb26b | ||
|
|
c18f4998fd | ||
|
|
b34ec8d732 | ||
|
|
f549ef8e26 | ||
|
|
af0cdeef14 | ||
|
|
37c64e9a11 | ||
|
|
744c55e776 | ||
|
|
e012479ab5 | ||
|
|
a59934fd65 | ||
|
|
c2fd89e050 | ||
|
|
e8dc9fed3c | ||
|
|
81bc481efc | ||
|
|
ca4047dc4a | ||
|
|
ad47874bd3 | ||
|
|
ed35e4bcef | ||
|
|
341959be82 | ||
|
|
6a9b131223 | ||
|
|
2cebeeb1ca | ||
|
|
385632e173 | ||
|
|
0ebe4381b2 | ||
|
|
df2227259b | ||
|
|
d4b5ea4e1a | ||
|
|
668b17082d | ||
|
|
4af54d48f6 | ||
|
|
2ec93ba911 | ||
|
|
0d01b0a734 | ||
|
|
cd99654477 | ||
|
|
dfcb8b9427 | ||
|
|
348f1cdbc7 | ||
|
|
d5dbc367fb | ||
|
|
6f3fafba46 | ||
|
|
212e15b2c2 | ||
|
|
1d4710edce | ||
|
|
e2e71da4e1 | ||
|
|
2bc7007953 | ||
|
|
70831f5888 | ||
|
|
c2d97d8ea7 | ||
|
|
d79b6b3803 | ||
|
|
6535a730fd | ||
|
|
34106aa209 | ||
|
|
5fc760c6c4 | ||
|
|
2b329b8337 | ||
|
|
144992426d | ||
|
|
80ca6bb0a2 | ||
|
|
9d25772b53 | ||
|
|
0b99244dfc | ||
|
|
99d98a7016 | ||
|
|
077dcaf704 | ||
|
|
176023d712 | ||
|
|
1e016d1aff | ||
|
|
34a2444f07 | ||
|
|
0fa04cf9a0 | ||
|
|
9ae1675701 | ||
|
|
d6757c1085 | ||
|
|
4b1afa8a8c | ||
|
|
3a34f508f1 | ||
|
|
c5f9a8a111 | ||
|
|
c5c97c784a | ||
|
|
998ed24589 | ||
|
|
00269853f3 | ||
|
|
3635cd21aa | ||
|
|
2b90180e01 | ||
|
|
104b1daf2d | ||
|
|
10a683f369 | ||
|
|
59dae5eac0 | ||
|
|
070039f8b8 | ||
|
|
e4d51fbca0 | ||
|
|
c3336e4713 | ||
|
|
1952149b4c | ||
|
|
a348eded57 | ||
|
|
eecf7b9dd5 | ||
|
|
89592618e3 | ||
|
|
6a389e1d1c | ||
|
|
eb9b628a75 | ||
|
|
a258f2b20b | ||
|
|
362b57a88e | ||
|
|
d201f0fd23 | ||
|
|
f44213ea97 | ||
|
|
ab90d7b9d4 | ||
|
|
1616b8d3dd | ||
|
|
4880e2328d | ||
|
|
e13537facd | ||
|
|
e63a7c462c | ||
|
|
06b4e84fc1 | ||
|
|
bc574b0e2b | ||
|
|
3cf833acb9 | ||
|
|
e91b7a1677 | ||
|
|
a832af231a | ||
|
|
c60cbce14a | ||
|
|
2f6a123d32 | ||
|
|
660cd184f4 | ||
|
|
a621d4212e | ||
|
|
15b3437dba | ||
|
|
d902ac1efe | ||
|
|
3854c883a2 | ||
|
|
8b9d58a72f | ||
|
|
d5316dbe7a | ||
|
|
74c69842d1 | ||
|
|
958432ca4a | ||
|
|
6e8bd4d615 | ||
|
|
9240d38c4c | ||
|
|
3554887f10 | ||
|
|
ebfc6d9785 | ||
|
|
5f55cc947c | ||
|
|
b27af65f18 | ||
|
|
606263ace4 | ||
|
|
97e4f13a4d | ||
|
|
1202322700 | ||
|
|
f53d783d3d | ||
|
|
3be951367f | ||
|
|
06fd0fa34b | ||
|
|
c2c569695f | ||
|
|
a17cd6aacc | ||
|
|
0eb4b93882 | ||
|
|
d4f47f4157 | ||
|
|
62312638ed | ||
|
|
b468404506 | ||
|
|
f98e3aaf64 | ||
|
|
27bd23ca5c | ||
|
|
cf35423a20 | ||
|
|
6af1e4f6d0 | ||
|
|
0340f699a0 | ||
|
|
0a4deeabf8 | ||
|
|
4e7f22a674 | ||
|
|
282dc64fa5 | ||
|
|
27a2af89c8 | ||
|
|
5a36c33fac | ||
|
|
1a18bf22aa | ||
|
|
5d1906cd0c | ||
|
|
12af6a33b5 | ||
|
|
467d486e58 | ||
|
|
99a56acab8 | ||
|
|
b0323e4d3b | ||
|
|
dfccf6675a | ||
|
|
d081ecf368 | ||
|
|
da0eff6a4e | ||
|
|
c692f7e8fe | ||
|
|
05b8b4b43a | ||
|
|
fe444ccac7 | ||
|
|
366c7841fe | ||
|
|
9a1fe2e2cc | ||
|
|
6f937c59fb | ||
|
|
11fada047e | ||
|
|
1fe5a8788f | ||
|
|
412263f430 | ||
|
|
af2b66f438 | ||
|
|
e336188ccc | ||
|
|
81ce7f93ad | ||
|
|
28efeef844 | ||
|
|
bb9a0d8cab | ||
|
|
c000e852b5 | ||
|
|
016a98e7b1 | ||
|
|
7c896768ce | ||
|
|
13dd686521 | ||
|
|
027e8eb54c | ||
|
|
977bc014f9 | ||
|
|
73faa79a69 | ||
|
|
da64eb0873 | ||
|
|
5d344b3dac | ||
|
|
9f40cd03e8 | ||
|
|
117b8dece4 | ||
|
|
9b17ec9f26 | ||
|
|
bd4ab2a24c | ||
|
|
6abb0ff4c8 | ||
|
|
1a26cb0938 | ||
|
|
64b43d58ea | ||
|
|
4eabf41a21 | ||
|
|
bedadd8b5f | ||
|
|
23197af725 | ||
|
|
da2725ec8a | ||
|
|
bc116c16e9 | ||
|
|
ecea917d11 | ||
|
|
20819e3dfd | ||
|
|
8abb247870 | ||
|
|
f41be4ae8b | ||
|
|
b1f492dec3 | ||
|
|
e1211527b0 | ||
|
|
d7a69e51c1 | ||
|
|
528ee3ad05 | ||
|
|
64c51d5cba | ||
|
|
50a7c42f15 | ||
|
|
05e147b440 | ||
|
|
abdcb32ad2 | ||
|
|
a0da73dabd | ||
|
|
180625ece3 | ||
|
|
77dfc7378b | ||
|
|
0eb4fd89ef | ||
|
|
fb764472dd | ||
|
|
901470ce05 | ||
|
|
0767998022 | ||
|
|
99bacf910c | ||
|
|
7f2254c9da | ||
|
|
b6f7014a9d | ||
|
|
a6abde2a2b | ||
|
|
48c3619028 | ||
|
|
2d5dc44ce5 | ||
|
|
515e663f85 | ||
|
|
39392672a2 | ||
|
|
9b9e79ef27 | ||
|
|
bfdc32a9c3 | ||
|
|
0db93504ce | ||
|
|
2b90add560 | ||
|
|
8b64e65095 | ||
|
|
21f65cbb6a | ||
|
|
c640e01969 | ||
|
|
8c600ae15d | ||
|
|
ba90b5d113 | ||
|
|
7597c654a0 | ||
|
|
5f2a66295c | ||
|
|
0914004e12 | ||
|
|
d1273516b5 | ||
|
|
7d9054c2cf | ||
|
|
7d93926ef7 | ||
|
|
5323934cc2 | ||
|
|
b7fd4c22d4 | ||
|
|
a19c306f49 | ||
|
|
e2707353e9 | ||
|
|
a52c69d2a1 | ||
|
|
f891f49339 | ||
|
|
dab3667773 | ||
|
|
ac301eaabe | ||
|
|
4de658e096 | ||
|
|
3d4dad226e | ||
|
|
59120df71c | ||
|
|
630977fb99 | ||
|
|
89e56794e8 | ||
|
|
d13fcd3529 | ||
|
|
f3f4711a60 | ||
|
|
aee8b87385 | ||
|
|
327d1c1bec | ||
|
|
f0d3b5dd00 | ||
|
|
2bcd43531a | ||
|
|
4393907ff6 | ||
|
|
bae634e124 | ||
|
|
1bad2f79ee | ||
|
|
7652f2bf39 | ||
|
|
c32fdabc43 | ||
|
|
803a2436de | ||
|
|
1844250967 | ||
|
|
93b83060be | ||
|
|
251351e245 | ||
|
|
efe11a63a3 | ||
|
|
9e7f929029 | ||
|
|
55cbaf6a19 | ||
|
|
8f916ed066 | ||
|
|
6844c828ca | ||
|
|
926acd16b2 | ||
|
|
f377868764 | ||
|
|
63a7766ac1 | ||
|
|
0f258859a7 | ||
|
|
309ac6fec5 | ||
|
|
7a61e9d0f8 | ||
|
|
16accf6cd0 | ||
|
|
6f3cb55709 | ||
|
|
2c1bab2b9a | ||
|
|
45383ce21e | ||
|
|
c1f3b94d67 | ||
|
|
a0cc2ee6a9 | ||
|
|
3abbeb8795 | ||
|
|
2e16306dc2 | ||
|
|
4066607388 | ||
|
|
cd135dda13 | ||
|
|
0b7a21b8d1 | ||
|
|
8bac0bf361 | ||
|
|
a061079995 | ||
|
|
1caf4806e8 | ||
|
|
004758f5bd | ||
|
|
91293350b5 | ||
|
|
4f6b3055ff | ||
|
|
d6e0be52ce | ||
|
|
aa116e6b4d | ||
|
|
e9b373438d | ||
|
|
74c438dc71 | ||
|
|
a6089ba4aa | ||
|
|
ca7f35dd5e | ||
|
|
40fff367d1 | ||
|
|
4b80bbb9c4 | ||
|
|
6a64a3ab92 | ||
|
|
b48d81310c | ||
|
|
aae7f2434d | ||
|
|
b80b0e1e99 | ||
|
|
b85ff61de6 | ||
|
|
451c5b40fd | ||
|
|
97cb138cfc | ||
|
|
a224e531f8 | ||
|
|
ae88eee8e3 | ||
|
|
ca486a1b07 | ||
|
|
0a936e5dd1 | ||
|
|
48c123592e | ||
|
|
45a0d0196b | ||
|
|
101288c75c | ||
|
|
e60d88afa6 | ||
|
|
101ac701ef | ||
|
|
32a35164d4 | ||
|
|
51eac70f67 | ||
|
|
32257c9b2f | ||
|
|
22577917da | ||
|
|
ab1c231b84 | ||
|
|
ecd00bb679 | ||
|
|
0ecaa05c76 | ||
|
|
76fb2c3378 | ||
|
|
e5978e09f4 | ||
|
|
31631ca538 | ||
|
|
ce0fdc201a | ||
|
|
31eccb8e7f | ||
|
|
9a96458f79 | ||
|
|
da86c46b4c | ||
|
|
7c3dc4877a | ||
|
|
84d4035597 | ||
|
|
6e21b7a830 | ||
|
|
9cba8d7ecb | ||
|
|
d22fe4ad1e | ||
|
|
51cefb00d2 | ||
|
|
cca365432b | ||
|
|
82e721e854 | ||
|
|
655f5087d9 | ||
|
|
e10fbfa0d2 | ||
|
|
f1d5db6be0 | ||
|
|
ddb02978c8 | ||
|
|
e56b18822b | ||
|
|
b3d9db10f2 | ||
|
|
9466d7ced4 | ||
|
|
35a903f9c8 | ||
|
|
5204dc1e23 | ||
|
|
523f245cd8 | ||
|
|
7a61645256 | ||
|
|
dc441c2873 | ||
|
|
4e6719e0aa | ||
|
|
493d0dea1e | ||
|
|
f231b500d7 | ||
|
|
40e5ad075f | ||
|
|
e34ef71acd | ||
|
|
01f983e29c | ||
|
|
61871fae77 | ||
|
|
e738d592dc | ||
|
|
52b58b441e | ||
|
|
b7eddda8c8 | ||
|
|
20eb4def1d | ||
|
|
e79c980421 | ||
|
|
5222edb624 | ||
|
|
f16ced6bcc | ||
|
|
aed9a9f76f | ||
|
|
9b26b60082 | ||
|
|
61e1c51ef6 | ||
|
|
a56ab7f15a | ||
|
|
242721c73f | ||
|
|
6cd84ebe81 | ||
|
|
3c8ca63608 | ||
|
|
ec32a3d243 | ||
|
|
0727c2a0bf | ||
|
|
2252ab7479 | ||
|
|
273db693e7 | ||
|
|
cc3786e22d | ||
|
|
b7ee875b12 | ||
|
|
fe58ea55d4 | ||
|
|
57e204df8e | ||
|
|
0ad42873d5 | ||
|
|
4b20e78de2 | ||
|
|
3f4ede0778 | ||
|
|
518d731562 | ||
|
|
f9c9f58561 | ||
|
|
34a4a2103f | ||
|
|
edd73b5be2 | ||
|
|
5160a4f90f | ||
|
|
ef329c95df | ||
|
|
0b83657868 | ||
|
|
0d5605ab35 | ||
|
|
126b1c4f4c | ||
|
|
0cfa430444 | ||
|
|
017f6bde2c | ||
|
|
7405051924 | ||
|
|
5fd199ae8a | ||
|
|
51cafe075c | ||
|
|
099a04c1c8 | ||
|
|
07376c9a4c | ||
|
|
6aa47efc06 | ||
|
|
0de458141b | ||
|
|
61895633b3 | ||
|
|
056f89d6cf | ||
|
|
071be4ae7f | ||
|
|
15052143d3 | ||
|
|
6c7d7a45e8 | ||
|
|
4fd9b58a55 | ||
|
|
a4c625a4d6 | ||
|
|
bf67424fd6 | ||
|
|
e2697030ec | ||
|
|
3f96532c3f | ||
|
|
072db27a3c | ||
|
|
a48e95b910 | ||
|
|
779b2a8d73 | ||
|
|
421d091828 | ||
|
|
0dc780148a | ||
|
|
8e86f4b787 | ||
|
|
a6f8bcd7be | ||
|
|
9fac18c4b6 | ||
|
|
ff44819d6b | ||
|
|
9ee4c90548 | ||
|
|
bc00d7d159 | ||
|
|
ba32a4dc4f | ||
|
|
7255ce3dbe | ||
|
|
2efb816da3 | ||
|
|
1075305444 | ||
|
|
7361aec709 | ||
|
|
877cf1e15c | ||
|
|
95d1bd3058 | ||
|
|
769d6ed57c | ||
|
|
2008bf28ff | ||
|
|
190647a074 | ||
|
|
e28d778c0c | ||
|
|
31fb0efbd9 | ||
|
|
707a062661 | ||
|
|
fae169697e | ||
|
|
94a3ecdbd1 | ||
|
|
2d0877f80e | ||
|
|
9a908c1651 | ||
|
|
fd0622a1a3 | ||
|
|
fec3ae7e5e | ||
|
|
0b2df849bd | ||
|
|
98f338b41c | ||
|
|
e5a35ce378 | ||
|
|
08abbe19bc | ||
|
|
3918b29233 | ||
|
|
8a996c4524 | ||
|
|
c62f251afc | ||
|
|
e5795687bb | ||
|
|
0bc9437642 | ||
|
|
956a431950 | ||
|
|
45afe2e831 | ||
|
|
8baea1a251 | ||
|
|
c8692f0562 | ||
|
|
f81acd37db | ||
|
|
3360752c5c | ||
|
|
84d0e64361 | ||
|
|
10b30e303b | ||
|
|
dc9754d77a | ||
|
|
baaac66d77 | ||
|
|
705bdcdd69 | ||
|
|
f609b1e45d | ||
|
|
05a9e8b1d6 | ||
|
|
20b951b9d9 | ||
|
|
fdafb72c34 | ||
|
|
999da9183d | ||
|
|
de41896770 | ||
|
|
4736a68534 | ||
|
|
9f0fff4434 | ||
|
|
c40355b816 | ||
|
|
b5da0e515b | ||
|
|
a5423aff16 | ||
|
|
baf72249b6 | ||
|
|
063d270f1a | ||
|
|
298f14ad27 | ||
|
|
0f46051fcf | ||
|
|
5362863588 | ||
|
|
2073d994fc | ||
|
|
6926552e66 | ||
|
|
1b58fb3104 | ||
|
|
58a73b52b5 | ||
|
|
94d050fd4f | ||
|
|
e00124007f | ||
|
|
cbe3b5b6dc | ||
|
|
e6d0eede4f | ||
|
|
4f48f1865f | ||
|
|
6b39e328f5 | ||
|
|
e495db3065 | ||
|
|
c56a7bf475 | ||
|
|
77475bb7a3 | ||
|
|
625766ba85 | ||
|
|
440c78c949 | ||
|
|
fb45aa92fd | ||
|
|
26c0b097cf | ||
|
|
74282ffeea | ||
|
|
a7736d1926 | ||
|
|
171f02101d | ||
|
|
ff46d1211d | ||
|
|
6672f17fc2 | ||
|
|
761d59f5ec | ||
|
|
b8dfbdaff2 | ||
|
|
8b4c61241f | ||
|
|
0c8c6632d9 | ||
|
|
487793e692 | ||
|
|
13bdd939e3 | ||
|
|
619ca103c7 | ||
|
|
1ed4c984bb | ||
|
|
ae6d5e72f4 | ||
|
|
a252bf409c | ||
|
|
fa2bf7c908 | ||
|
|
ff24339b38 | ||
|
|
4edceb0f92 | ||
|
|
caa9c8c157 | ||
|
|
08c9cbdf70 | ||
|
|
7572c9a803 | ||
|
|
298d904d45 | ||
|
|
9ea081deb3 | ||
|
|
14fcd36134 | ||
|
|
603cddc687 | ||
|
|
4f5c78d675 | ||
|
|
e6b3da18f2 | ||
|
|
6b286a8f07 | ||
|
|
6ac8d9d349 | ||
|
|
576081e25f | ||
|
|
197226eea6 | ||
|
|
acef614147 | ||
|
|
14fb171072 | ||
|
|
1f06e4f5a2 | ||
|
|
063a4e5628 | ||
|
|
5d22806ded | ||
|
|
cc930e4042 | ||
|
|
fa6daa37eb | ||
|
|
43432e8bbb | ||
|
|
94c765fa25 | ||
|
|
ba4b98de0e | ||
|
|
ed294dd414 | ||
|
|
cd10248226 | ||
|
|
df5283cbae | ||
|
|
347fc05376 | ||
|
|
1d3aafc08f | ||
|
|
d67cd489cd | ||
|
|
347d7de25b | ||
|
|
5d32073f2c | ||
|
|
fdf19f9025 | ||
|
|
8eecf59c47 | ||
|
|
69ce425ae5 | ||
|
|
42f87a1db7 | ||
|
|
2d9ca83ae0 | ||
|
|
e497290dbc | ||
|
|
fcbdc5e271 | ||
|
|
eef200be10 | ||
|
|
124a4ce89c | ||
|
|
5f96823f66 | ||
|
|
dc0cec0352 | ||
|
|
c57b0a2199 | ||
|
|
2bfa7d5b97 | ||
|
|
ab77e6767e | ||
|
|
0c4a788698 | ||
|
|
3e033043f3 | ||
|
|
5886ccc419 | ||
|
|
ba91d7aba6 | ||
|
|
c9e80b6f64 | ||
|
|
4e55707652 | ||
|
|
013dfd0ceb | ||
|
|
841c755bb7 | ||
|
|
aca163d067 | ||
|
|
943874805d | ||
|
|
f11601d70f | ||
|
|
7019618863 | ||
|
|
62dd056faa | ||
|
|
ab0d31bef1 | ||
|
|
95c839579e | ||
|
|
5a42b6a7ea | ||
|
|
69b9e57daf | ||
|
|
b7c7dd98c3 | ||
|
|
83de5ba5a4 | ||
|
|
06119510b7 | ||
|
|
22fdf9f4ed | ||
|
|
b858b120da | ||
|
|
77a7c5caef | ||
|
|
24ea74dc41 | ||
|
|
d411ed5c28 | ||
|
|
179e1e6143 | ||
|
|
05fdc945f3 | ||
|
|
5ae7c92d55 | ||
|
|
dd9a383f46 | ||
|
|
ca90afd544 | ||
|
|
3011491863 | ||
|
|
b2f8a65bc8 | ||
|
|
522fda2e58 | ||
|
|
d852f284da | ||
|
|
cd096f8832 | ||
|
|
e10eaf0d50 | ||
|
|
931d46fe7e | ||
|
|
d91fa5747d | ||
|
|
60624eedec | ||
|
|
5c91bc4335 | ||
|
|
c58712e2a9 | ||
|
|
d0d1ebb28c | ||
|
|
c9c454825e | ||
|
|
d12a526e82 | ||
|
|
e909e46786 | ||
|
|
3ab2e70e07 | ||
|
|
299d7bfee3 | ||
|
|
5c84a3adb5 | ||
|
|
f562caaa61 | ||
|
|
37115ea3d6 | ||
|
|
464be4f7cc | ||
|
|
dae3ef49be | ||
|
|
005405b16c | ||
|
|
9511e4a633 | ||
|
|
5dd90880d4 | ||
|
|
b50a6d8f34 | ||
|
|
ac43ff3c3d | ||
|
|
ceaedf9e2f | ||
|
|
efe938b392 | ||
|
|
a2f8f54061 | ||
|
|
c456714440 | ||
|
|
6ed4e8ab48 | ||
|
|
4e4187417e | ||
|
|
945b5cd09c | ||
|
|
a49aee9d3d | ||
|
|
925cd99afb | ||
|
|
8296dc5630 |
10
.gitignore
vendored
10
.gitignore
vendored
@@ -3,7 +3,7 @@ node_modules/
|
|||||||
sftp-config.json
|
sftp-config.json
|
||||||
config.json
|
config.json
|
||||||
public/src/nodebb.min.js
|
public/src/nodebb.min.js
|
||||||
public/config.json
|
!src/views/config.json
|
||||||
public/css/*.css
|
public/css/*.css
|
||||||
*.sublime-project
|
*.sublime-project
|
||||||
*.sublime-workspace
|
*.sublime-workspace
|
||||||
@@ -26,3 +26,11 @@ pidfile
|
|||||||
# templates
|
# templates
|
||||||
/public/templates
|
/public/templates
|
||||||
/public/sounds
|
/public/sounds
|
||||||
|
|
||||||
|
/public/uploads
|
||||||
|
|
||||||
|
# compiled files
|
||||||
|
/public/stylesheet.css
|
||||||
|
/public/admin.css
|
||||||
|
/public/nodebb.min.js
|
||||||
|
/public/nodebb.min.js.map
|
||||||
41
CONTRIBUTING.md
Normal file
41
CONTRIBUTING.md
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
There is a chance that the issue you are experiencing may have already been fixed.
|
||||||
|
|
||||||
|
## Provide the NodeBB version number and git hash
|
||||||
|
|
||||||
|
You can find the NodeBB version number in the Admin Control Panel (ACP), as well as the first line output to the shell when running NodeBB
|
||||||
|
|
||||||
|
``` plaintext
|
||||||
|
info: NodeBB v0.5.2-dev Copyright (C) 2013-2014 NodeBB Inc.
|
||||||
|
info: This program comes with ABSOLUTELY NO WARRANTY.
|
||||||
|
info: This is free software, and you are welcome to redistribute it under certain conditions.
|
||||||
|
info:
|
||||||
|
info: Time: Tue Oct 07 2014 20:25:20 GMT-0400 (EDT)
|
||||||
|
```
|
||||||
|
|
||||||
|
If you are running NodeBB via git, it is also helpful to let the maintainers know what commit hash you are on. To find the commit hash, execute the following command:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
$ cd /path/to/my/nodebb
|
||||||
|
$ git rev-parse HEAD
|
||||||
|
```
|
||||||
|
|
||||||
|
If you have downloaded the `.zip` or `.tar.gz` packages from GitHub (or elsewhere), please let us know.
|
||||||
|
|
||||||
|
## 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`.
|
||||||
|
|
||||||
|
A full guide can be found here: [Debugging with Git/Binary Search](http://git-scm.com/book/en/Git-Tools-Debugging-with-Git#Binary-Search)
|
||||||
15
NOTES.md
15
NOTES.md
@@ -1,15 +0,0 @@
|
|||||||
## 0.4x Refactor Notes
|
|
||||||
|
|
||||||
Please remove this file after 0.4x (or perhaps organize it so that we can see the history of breaking changes)
|
|
||||||
|
|
||||||
### Immediate Deprecation Notices
|
|
||||||
|
|
||||||
* `action:ajaxifying` is no longer triggered on body but on window instead, in line with other similar hooks.
|
|
||||||
* `filter:server.create_routes` and `filter:admin.create_routes` will have limited support (ajaxify works, but first-load will not). Please have a look at [this plugin](https://github.com/psychobunny/nodebb-plugin-kitchen-sink/blob/master/library.js#L16-L22) for an example on how to create routes in plugins from now on.
|
|
||||||
|
|
||||||
### Upcoming Deprecation Warnings
|
|
||||||
|
|
||||||
* `filter:footer.build` will be deprecated for 0.4x in favour of the widget system (WIP)
|
|
||||||
* templates.setGlobal (server-side only) deprecated in favour of using res.locals
|
|
||||||
* `plugins/fireHook` route will be deprecated for 0.4x
|
|
||||||
* synchronous hooks will be deprecated for 0.4x - we're reducing complexity by removing the `callbacked: true` property in `plugin.json` - just use callbacks.
|
|
||||||
96
app.js
96
app.js
@@ -17,7 +17,6 @@
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
/*global require, global, process*/
|
/*global require, global, process*/
|
||||||
|
|
||||||
@@ -29,6 +28,7 @@ var fs = require('fs'),
|
|||||||
semver = require('semver'),
|
semver = require('semver'),
|
||||||
winston = require('winston'),
|
winston = require('winston'),
|
||||||
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');
|
||||||
|
|
||||||
@@ -37,7 +37,8 @@ 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
|
||||||
});
|
});
|
||||||
|
|
||||||
winston.add(winston.transports.File, {
|
winston.add(winston.transports.File, {
|
||||||
@@ -58,11 +59,13 @@ if(os.platform() === 'linux') {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log GNU copyright info along with server info
|
if (!cluster.isWorker) {
|
||||||
winston.info('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.');
|
// If run using `node app`, log GNU copyright info along with server info
|
||||||
winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
|
winston.info('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.');
|
||||||
winston.info('This is free software, and you are welcome to redistribute it under certain conditions.');
|
winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
|
||||||
winston.info('');
|
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'),
|
||||||
@@ -73,7 +76,7 @@ if (nconf.get('config')) {
|
|||||||
}
|
}
|
||||||
configExists = fs.existsSync(configFile);
|
configExists = fs.existsSync(configFile);
|
||||||
|
|
||||||
if (!nconf.get('help') && !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') || !configExists) {
|
||||||
setup();
|
setup();
|
||||||
@@ -81,8 +84,6 @@ if (!nconf.get('help') && !nconf.get('setup') && !nconf.get('install') && !nconf
|
|||||||
upgrade();
|
upgrade();
|
||||||
} else if (nconf.get('reset')) {
|
} else if (nconf.get('reset')) {
|
||||||
reset();
|
reset();
|
||||||
} else {
|
|
||||||
displayHelp();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadConfig() {
|
function loadConfig() {
|
||||||
@@ -99,23 +100,25 @@ function loadConfig() {
|
|||||||
|
|
||||||
// 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('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'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
loadConfig();
|
loadConfig();
|
||||||
|
|
||||||
winston.info('Time: ' + new Date());
|
if (!cluster.isWorker || process.env.cluster_setup === 'true') {
|
||||||
winston.info('Initializing NodeBB v' + pkg.version);
|
winston.info('Time: ' + new Date());
|
||||||
winston.info('* using configuration stored in: ' + configFile);
|
winston.info('Initializing NodeBB v' + pkg.version);
|
||||||
var host = nconf.get(nconf.get('database') + ':host'),
|
winston.info('* using configuration stored in: ' + configFile);
|
||||||
storeLocation = host ? 'at ' + host + (host.indexOf('/') === -1 ? ':' + nconf.get(nconf.get('database') + ':port') : '') : '';
|
}
|
||||||
|
|
||||||
winston.info('* using ' + nconf.get('database') +' store ' + storeLocation);
|
if (cluster.isWorker && process.env.cluster_setup === 'true') {
|
||||||
winston.info('* using themes stored in: ' + nconf.get('themes_path'));
|
var host = nconf.get(nconf.get('database') + ':host'),
|
||||||
|
storeLocation = host ? 'at ' + host + (host.indexOf('/') === -1 ? ':' + nconf.get(nconf.get('database') + ':port') : '') : '';
|
||||||
|
|
||||||
if (process.env.NODE_ENV === 'development') {
|
winston.info('* using ' + nconf.get('database') +' store ' + storeLocation);
|
||||||
winston.info('Base Configuration OK.');
|
winston.info('* using themes stored in: ' + nconf.get('themes_path'));
|
||||||
}
|
}
|
||||||
|
|
||||||
require('./src/database').init(function(err) {
|
require('./src/database').init(function(err) {
|
||||||
@@ -136,19 +139,42 @@ function start() {
|
|||||||
upgrade.check(function(schema_ok) {
|
upgrade.check(function(schema_ok) {
|
||||||
if (schema_ok || nconf.get('check-schema') === false) {
|
if (schema_ok || nconf.get('check-schema') === false) {
|
||||||
sockets.init(webserver.server);
|
sockets.init(webserver.server);
|
||||||
plugins.init();
|
|
||||||
|
|
||||||
nconf.set('url', nconf.get('base_url') + (nconf.get('use_port') ? ':' + nconf.get('port') : '') + nconf.get('relative_path'));
|
nconf.set('url', nconf.get('base_url') + (nconf.get('use_port') ? ':' + nconf.get('port') : '') + nconf.get('relative_path'));
|
||||||
|
|
||||||
plugins.ready(function() {
|
plugins.ready(function() {
|
||||||
webserver.init();
|
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) {
|
||||||
|
switch(message.action) {
|
||||||
|
case 'reload':
|
||||||
|
meta.reload();
|
||||||
|
break;
|
||||||
|
case 'js-propagate':
|
||||||
|
meta.js.cache = message.cache;
|
||||||
|
meta.js.map = message.map;
|
||||||
|
winston.info('[cluster] Client-side javascript and mapping propagated to worker ' + cluster.worker.id);
|
||||||
|
break;
|
||||||
|
case 'css-propagate':
|
||||||
|
meta.css.cache = message.cache;
|
||||||
|
meta.css.acpCache = message.acpCache;
|
||||||
|
winston.info('[cluster] Stylesheets propagated to worker ' + cluster.worker.id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
process.on('uncaughtException', function(err) {
|
process.on('uncaughtException', function(err) {
|
||||||
winston.error(err.message);
|
winston.error(err.stack);
|
||||||
console.log(err.stack);
|
console.log(err.stack);
|
||||||
|
|
||||||
meta.js.killMinifier();
|
meta.js.killMinifier();
|
||||||
@@ -156,10 +182,12 @@ function start() {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
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(' node app --upgrade');
|
winston.warn(' ./nodebb upgrade');
|
||||||
winston.warn('To ignore this error (not recommended):');
|
if (cluster.isWorker) {
|
||||||
winston.warn(' node app --no-check-schema');
|
cluster.worker.kill();
|
||||||
process.exit();
|
} else {
|
||||||
|
process.exit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -313,6 +341,8 @@ function shutdown(code) {
|
|||||||
winston.info('[app] Shutdown (SIGTERM/SIGINT) Initialised.');
|
winston.info('[app] Shutdown (SIGTERM/SIGINT) Initialised.');
|
||||||
require('./src/database').close();
|
require('./src/database').close();
|
||||||
winston.info('[app] Database connection closed.');
|
winston.info('[app] Database connection closed.');
|
||||||
|
require('./src/webserver').server.close();
|
||||||
|
winston.info('[app] Web server closed to connections.');
|
||||||
|
|
||||||
winston.info('[app] Shutdown complete.');
|
winston.info('[app] Shutdown complete.');
|
||||||
process.exit(code || 0);
|
process.exit(code || 0);
|
||||||
@@ -328,16 +358,4 @@ function restart() {
|
|||||||
winston.error('[app] Could not restart server. Shutting down.');
|
winston.error('[app] Could not restart server. Shutting down.');
|
||||||
shutdown(1);
|
shutdown(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayHelp() {
|
|
||||||
winston.info('Usage: node app [options] [arguments]');
|
|
||||||
winston.info(' [NODE_ENV=development | NODE_ENV=production] node app [--start] [arguments]');
|
|
||||||
winston.info('');
|
|
||||||
winston.info('Options:');
|
|
||||||
winston.info(' --help displays this usage information');
|
|
||||||
winston.info(' --setup configure your environment and setup NodeBB');
|
|
||||||
winston.info(' --upgrade upgrade NodeBB, first read: https://docs.nodebb.org/en/latest/upgrading/');
|
|
||||||
winston.info(' --reset soft resets NodeBB; disables all plugins and restores selected theme to Vanilla');
|
|
||||||
winston.info(' --start manually start NodeBB (default when no options are given)');
|
|
||||||
}
|
|
||||||
29
bcrypt.js
Normal file
29
bcrypt.js
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var bcrypt = require('bcryptjs'),
|
||||||
|
async = require('async'),
|
||||||
|
action = process.argv[2];
|
||||||
|
|
||||||
|
switch(action) {
|
||||||
|
case 'compare':
|
||||||
|
bcrypt.compare(process.argv[3], process.argv[4], function(err, res) {
|
||||||
|
process.stdout.write(res ? 'true' : 'false');
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'hash':
|
||||||
|
async.waterfall([
|
||||||
|
async.apply(bcrypt.genSalt, parseInt(process.argv[3], 10)),
|
||||||
|
function(salt, next) {
|
||||||
|
bcrypt.hash(process.argv[4], salt, next);
|
||||||
|
}
|
||||||
|
], function(err, hash) {
|
||||||
|
if (!err) {
|
||||||
|
process.stdout.write(hash);
|
||||||
|
} else {
|
||||||
|
process.stderr.write(err.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Announcements",
|
"name": "Announcements",
|
||||||
"description": "Announcements regarding our community",
|
"description": "Announcements regarding our community",
|
||||||
"bgColor": "#0059B2",
|
"bgColor": "#fda34b",
|
||||||
"color": "#fff",
|
"color": "#fff",
|
||||||
"icon" : "fa-bullhorn",
|
"icon" : "fa-bullhorn",
|
||||||
"order": 1
|
"order": 1
|
||||||
@@ -10,89 +10,25 @@
|
|||||||
{
|
{
|
||||||
"name": "General Discussion",
|
"name": "General Discussion",
|
||||||
"description": "A place to talk about whateeeever you want",
|
"description": "A place to talk about whateeeever you want",
|
||||||
"bgColor": "#0059B2",
|
"bgColor": "#59b3d0",
|
||||||
"color": "#fff",
|
"color": "#fff",
|
||||||
"icon" : "fa-comment",
|
"icon" : "fa-comments-o",
|
||||||
"order": 2
|
"order": 2
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "NodeBB Development",
|
|
||||||
"description": "NodeBB development news and announcements",
|
|
||||||
"bgColor": "#0059B2",
|
|
||||||
"color": "#fff",
|
|
||||||
"icon" : "fa-github",
|
|
||||||
"order": 3
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Blogs",
|
"name": "Blogs",
|
||||||
"description": "Blog posts from individual members",
|
"description": "Blog posts from individual members",
|
||||||
"bgColor": "#0059B2",
|
"bgColor": "#86ba4b",
|
||||||
"color": "#fff",
|
"color": "#fff",
|
||||||
"icon" : "fa-pencil",
|
"icon" : "fa-newspaper-o",
|
||||||
"order": 4
|
"order": 4
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Feature Requests",
|
"name": "Comments & Feedback",
|
||||||
"description": "Got a feature request you'd like to see? Give us a shout here.",
|
"description": "Got a question? Ask away!",
|
||||||
"bgColor": "#ab1290",
|
"bgColor": "#e95c5a",
|
||||||
"color": "#fff",
|
"color": "#fff",
|
||||||
"icon" : "fa-lightbulb-o",
|
"icon" : "fa-question",
|
||||||
"order": 5
|
"order": 3
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Bug Reports",
|
|
||||||
"description": "Having trouble with NodeBB? Let us know...",
|
|
||||||
"bgColor": "#ab1290",
|
|
||||||
"color": "#fff",
|
|
||||||
"icon" : "fa-cogs",
|
|
||||||
"order": 6
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "NodeBB Plugins",
|
|
||||||
"description": "Enhance your NodeBB with plugins!",
|
|
||||||
"bgColor": "#ab1290",
|
|
||||||
"color": "#fff",
|
|
||||||
"icon" : "fa-plus-square",
|
|
||||||
"order": 7
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "NodeBB Link Exchange",
|
|
||||||
"description": "Link exchange",
|
|
||||||
"bgColor": "#ab1290",
|
|
||||||
"color": "#fff",
|
|
||||||
"icon" : "fa-exchange",
|
|
||||||
"order": 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "News",
|
|
||||||
"description": "News from around the world",
|
|
||||||
"bgColor": "#004C66",
|
|
||||||
"color": "#fff",
|
|
||||||
"icon" : "fa-globe",
|
|
||||||
"order": 9
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Movies",
|
|
||||||
"description": "Discuss the latest movies here",
|
|
||||||
"bgColor": "#004C66",
|
|
||||||
"color": "#fff",
|
|
||||||
"icon" : "fa-film",
|
|
||||||
"order": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Games",
|
|
||||||
"description": "Discuss the latest games here",
|
|
||||||
"bgColor": "#004C66",
|
|
||||||
"color": "#fff",
|
|
||||||
"icon" : "fa-crosshairs",
|
|
||||||
"order": 11
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Random",
|
|
||||||
"description": "Anything and (almost) everything welcome!",
|
|
||||||
"bgColor": "#004C66",
|
|
||||||
"color": "#fff",
|
|
||||||
"icon" : "fa-beer",
|
|
||||||
"order": 12
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -11,6 +11,10 @@
|
|||||||
"field": "postDelay",
|
"field": "postDelay",
|
||||||
"value": 10
|
"value": 10
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"field": "initialPostDelay",
|
||||||
|
"value": 10
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"field": "minimumPostLength",
|
"field": "minimumPostLength",
|
||||||
"value": 8
|
"value": 8
|
||||||
@@ -31,6 +35,10 @@
|
|||||||
"field": "allowLocalLogin",
|
"field": "allowLocalLogin",
|
||||||
"value": 1
|
"value": 1
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"field": "allowAccountDelete",
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"field": "allowFileUploads",
|
"field": "allowFileUploads",
|
||||||
"value": 0
|
"value": 0
|
||||||
@@ -68,11 +76,11 @@
|
|||||||
"value": 256
|
"value": 256
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"field": "chatMessagesToDisplay",
|
"field": "profileImageDimension",
|
||||||
"value": 50
|
"value": 128
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"field": "requireEmailConfirmation",
|
"field": "requireEmailConfirmation",
|
||||||
"value": 0
|
"value": 0
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ function success(err, config, callback) {
|
|||||||
return callback(new Error('aborted'));
|
return callback(new Error('aborted'));
|
||||||
}
|
}
|
||||||
|
|
||||||
var database = (config.redis || config.mongo || config.level) ? config.secondary_database : config.database;
|
var database = (config.redis || config.mongo) ? config.secondary_database : config.database;
|
||||||
|
|
||||||
function dbQuestionsSuccess(err, databaseConfig) {
|
function dbQuestionsSuccess(err, databaseConfig) {
|
||||||
if (!databaseConfig) {
|
if (!databaseConfig) {
|
||||||
@@ -39,15 +39,11 @@ function success(err, config, callback) {
|
|||||||
password: databaseConfig['mongo:password'],
|
password: databaseConfig['mongo:password'],
|
||||||
database: databaseConfig['mongo:database']
|
database: databaseConfig['mongo:database']
|
||||||
};
|
};
|
||||||
} else if (database === 'level') {
|
|
||||||
config.level = {
|
|
||||||
database: databaseConfig['level:database']
|
|
||||||
};
|
|
||||||
} else {
|
} else {
|
||||||
return callback(new Error('unknown database : ' + database));
|
return callback(new Error('unknown database : ' + database));
|
||||||
}
|
}
|
||||||
|
|
||||||
var allQuestions = questions.redis.concat(questions.mongo.concat(questions.level));
|
var allQuestions = questions.redis.concat(questions.mongo);
|
||||||
for(var x=0;x<allQuestions.length;x++) {
|
for(var x=0;x<allQuestions.length;x++) {
|
||||||
delete config[allQuestions[x].name];
|
delete config[allQuestions[x].name];
|
||||||
}
|
}
|
||||||
@@ -67,12 +63,6 @@ function success(err, config, callback) {
|
|||||||
} else {
|
} else {
|
||||||
prompt.get(questions.mongo, dbQuestionsSuccess);
|
prompt.get(questions.mongo, dbQuestionsSuccess);
|
||||||
}
|
}
|
||||||
} else if(database === 'level') {
|
|
||||||
if (config['level:database']) {
|
|
||||||
dbQuestionsSuccess(null, config);
|
|
||||||
} else {
|
|
||||||
prompt.get(questions.level, dbQuestionsSuccess);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
return callback(new Error('unknown database : ' + database));
|
return callback(new Error('unknown database : ' + database));
|
||||||
}
|
}
|
||||||
|
|||||||
294
loader.js
294
loader.js
@@ -2,81 +2,234 @@
|
|||||||
|
|
||||||
var nconf = require('nconf'),
|
var nconf = require('nconf'),
|
||||||
fs = require('fs'),
|
fs = require('fs'),
|
||||||
|
path = require('path'),
|
||||||
|
cluster = require('cluster'),
|
||||||
|
async = require('async'),
|
||||||
|
logrotate = require('logrotate-stream'),
|
||||||
|
|
||||||
|
pkg = require('./package.json'),
|
||||||
|
|
||||||
pidFilePath = __dirname + '/pidfile',
|
pidFilePath = __dirname + '/pidfile',
|
||||||
output = fs.openSync(__dirname + '/logs/output.log', 'a'),
|
output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }),
|
||||||
start = function() {
|
silent = process.env.NODE_ENV !== 'development' ? true : false,
|
||||||
var fork = require('child_process').fork,
|
numProcs,
|
||||||
nbb_start = function() {
|
|
||||||
if (timesStarted > 3) {
|
|
||||||
console.log('\n[loader] Experienced three start attempts in 10 seconds, most likely an error on startup. Halting.');
|
|
||||||
return nbb_stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
timesStarted++;
|
Loader = {
|
||||||
if (startTimer) {
|
timesStarted: 0,
|
||||||
clearTimeout(startTimer);
|
shutdown_queue: [],
|
||||||
}
|
js: {
|
||||||
startTimer = setTimeout(resetTimer, 1000*10);
|
cache: undefined,
|
||||||
|
map: undefined
|
||||||
|
},
|
||||||
|
css: {
|
||||||
|
cache: undefined,
|
||||||
|
acpCache: undefined
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
nbb = fork('./app', process.argv.slice(2), {
|
Loader.init = function(callback) {
|
||||||
env: process.env
|
cluster.setupMaster({
|
||||||
});
|
exec: "app.js",
|
||||||
|
silent: silent
|
||||||
|
});
|
||||||
|
Loader.primaryWorker = 1;
|
||||||
|
|
||||||
nbb.on('message', function(message) {
|
if (silent) {
|
||||||
if (message && typeof message === 'object' && message.action) {
|
console.log = function(value) {
|
||||||
if (message.action === 'restart') {
|
output.write(value + '\n');
|
||||||
nbb_restart();
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
process.on('SIGHUP', Loader.restart);
|
||||||
|
callback();
|
||||||
|
};
|
||||||
|
|
||||||
|
Loader.displayStartupMessages = function(callback) {
|
||||||
|
console.log('');
|
||||||
|
console.log('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.');
|
||||||
|
console.log('This program comes with ABSOLUTELY NO WARRANTY.');
|
||||||
|
console.log('This is free software, and you are welcome to redistribute it under certain conditions.');
|
||||||
|
console.log('For the full license, please visit: http://www.gnu.org/copyleft/gpl.html');
|
||||||
|
console.log('');
|
||||||
|
callback();
|
||||||
|
};
|
||||||
|
|
||||||
|
Loader.addClusterEvents = function(callback) {
|
||||||
|
cluster.on('fork', function(worker) {
|
||||||
|
worker.on('message', function(message) {
|
||||||
|
if (message && typeof message === 'object' && message.action) {
|
||||||
|
var otherWorkers;
|
||||||
|
|
||||||
|
switch (message.action) {
|
||||||
|
case 'ready':
|
||||||
|
if (Loader.js.cache) {
|
||||||
|
worker.send({
|
||||||
|
action: 'js-propagate',
|
||||||
|
cache: Loader.js.cache,
|
||||||
|
map: Loader.js.map
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
nbb.on('exit', function(code, signal) {
|
if (Loader.css.cache) {
|
||||||
if (code) {
|
worker.send({
|
||||||
nbb_start();
|
action: 'css-propagate',
|
||||||
} else {
|
cache: Loader.css.cache,
|
||||||
nbb_stop();
|
acpCache: Loader.css.acpCache
|
||||||
}
|
});
|
||||||
});
|
}
|
||||||
},
|
|
||||||
nbb_stop = function() {
|
// Kill an instance in the shutdown queue
|
||||||
if (startTimer) {
|
var workerToKill = Loader.shutdown_queue.pop();
|
||||||
clearTimeout(startTimer);
|
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;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
nbb.kill();
|
cluster.on('listening', function(worker) {
|
||||||
if (fs.existsSync(pidFilePath)) {
|
console.log('[cluster] Child Process (' + worker.process.pid + ') listening for connections.');
|
||||||
var pid = parseInt(fs.readFileSync(pidFilePath, { encoding: 'utf-8' }), 10);
|
});
|
||||||
if (process.pid === pid) {
|
|
||||||
fs.unlinkSync(pidFilePath);
|
cluster.on('exit', function(worker, code, signal) {
|
||||||
}
|
if (code !== 0) {
|
||||||
|
if (Loader.timesStarted < numProcs*3) {
|
||||||
|
Loader.timesStarted++;
|
||||||
|
if (Loader.crashTimer) {
|
||||||
|
clearTimeout(Loader.crashTimer);
|
||||||
}
|
}
|
||||||
},
|
Loader.crashTimer = setTimeout(function() {
|
||||||
nbb_restart = function() {
|
Loader.timesStarted = 0;
|
||||||
nbb.removeAllListeners('exit').on('exit', function() {
|
|
||||||
nbb_start();
|
|
||||||
});
|
});
|
||||||
nbb.kill();
|
} else {
|
||||||
},
|
console.log(numProcs*3 + ' restarts in 10 seconds, most likely an error on startup. Halting.');
|
||||||
resetTimer = function() {
|
process.exit();
|
||||||
clearTimeout(startTimer);
|
}
|
||||||
timesStarted = 0;
|
}
|
||||||
},
|
|
||||||
timesStarted = 0,
|
|
||||||
startTimer;
|
|
||||||
|
|
||||||
process.on('SIGINT', nbb_stop);
|
console.log('[cluster] Child Process (' + worker.process.pid + ') has exited (code: ' + code + ')');
|
||||||
process.on('SIGTERM', nbb_stop);
|
if (!worker.suicide) {
|
||||||
process.on('SIGHUP', nbb_restart);
|
console.log('[cluster] Spinning up another process...');
|
||||||
|
|
||||||
nbb_start();
|
var wasPrimary = parseInt(worker.id, 10) === Loader.primaryWorker;
|
||||||
},
|
cluster.fork({
|
||||||
nbb;
|
handle_jobs: wasPrimary
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
nconf.argv();
|
cluster.on('disconnect', function(worker) {
|
||||||
|
console.log('[cluster] Child Process (' + worker.process.pid + ') has disconnected');
|
||||||
|
});
|
||||||
|
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
|
||||||
|
Loader.start = function(callback) {
|
||||||
|
var output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }),
|
||||||
|
worker;
|
||||||
|
|
||||||
|
console.log('Clustering enabled: Spinning up ' + numProcs + ' process(es).\n');
|
||||||
|
|
||||||
|
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();
|
||||||
|
};
|
||||||
|
|
||||||
|
Loader.restart = function(callback) {
|
||||||
|
// Slate existing workers for termination -- welcome to death row.
|
||||||
|
Loader.shutdown_queue = Loader.shutdown_queue.concat(Object.keys(cluster.workers));
|
||||||
|
Loader.start();
|
||||||
|
};
|
||||||
|
|
||||||
|
Loader.reload = function() {
|
||||||
|
Object.keys(cluster.workers).forEach(function(worker_id) {
|
||||||
|
cluster.workers[worker_id].send({
|
||||||
|
action: 'reload'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
Loader.notifyWorkers = function (msg) {
|
||||||
|
Object.keys(cluster.workers).forEach(function(id) {
|
||||||
|
cluster.workers[id].send(msg);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
nconf.argv().file({
|
||||||
|
file: path.join(__dirname, '/config.json')
|
||||||
|
});
|
||||||
|
|
||||||
|
numProcs = nconf.get('cluster') || 1;
|
||||||
|
numProcs = (numProcs === true) ? require('os').cpus().length : numProcs;
|
||||||
|
|
||||||
// Start the daemon!
|
|
||||||
if (nconf.get('daemon') !== false) {
|
if (nconf.get('daemon') !== false) {
|
||||||
// Check for a still-active NodeBB process
|
|
||||||
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' });
|
||||||
@@ -87,13 +240,18 @@ if (nconf.get('daemon') !== false) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Daemonize and record new pid
|
require('daemon')();
|
||||||
require('daemon')({
|
|
||||||
stdout: output
|
|
||||||
});
|
|
||||||
fs.writeFile(__dirname + '/pidfile', process.pid);
|
|
||||||
|
|
||||||
start();
|
fs.writeFile(__dirname + '/pidfile', process.pid);
|
||||||
} else {
|
|
||||||
start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async.series([
|
||||||
|
Loader.init,
|
||||||
|
Loader.displayStartupMessages,
|
||||||
|
Loader.addClusterEvents,
|
||||||
|
Loader.start
|
||||||
|
], function(err) {
|
||||||
|
if (err) {
|
||||||
|
console.log('[loader] Error during startup: ' + err.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
26
minifier.js
26
minifier.js
@@ -8,23 +8,24 @@ var uglifyjs = require('uglify-js'),
|
|||||||
crypto = require('crypto'),
|
crypto = require('crypto'),
|
||||||
|
|
||||||
Minifier = {
|
Minifier = {
|
||||||
js: {},
|
js: {}
|
||||||
css: {}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Javascript */
|
/* Javascript */
|
||||||
Minifier.js.minify = function (scripts, minify, callback) {
|
Minifier.js.minify = function (scripts, relativePath, minify, callback) {
|
||||||
var options = {};
|
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);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!minify) {
|
if (!minify) {
|
||||||
options.sourceMapURL = '/nodebb.min.js.map';
|
|
||||||
options.outSourceMap = 'nodebb.min.js.map';
|
|
||||||
options.mangle = false;
|
options.mangle = false;
|
||||||
options.compress = false;
|
|
||||||
options.prefix = 1;
|
options.prefix = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,17 +57,10 @@ Minifier.js.minify = function (scripts, minify, callback) {
|
|||||||
process.on('message', function(payload) {
|
process.on('message', function(payload) {
|
||||||
switch(payload.action) {
|
switch(payload.action) {
|
||||||
case 'js':
|
case 'js':
|
||||||
Minifier.js.minify(payload.scripts, payload.minify, function(data) {
|
Minifier.js.minify(payload.scripts, payload.relativePath, payload.minify, function(data) {
|
||||||
process.stdout.write(data.js);
|
|
||||||
process.send({
|
process.send({
|
||||||
type: 'end',
|
type: 'end',
|
||||||
payload: 'script'
|
data: data
|
||||||
});
|
|
||||||
|
|
||||||
process.stderr.write(data.map);
|
|
||||||
process.send({
|
|
||||||
type: 'end',
|
|
||||||
payload: 'mapping'
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|||||||
7
nodebb
7
nodebb
@@ -28,11 +28,6 @@ case "$1" in
|
|||||||
echo " \"./nodebb stop\" to stop the NodeBB server";
|
echo " \"./nodebb stop\" to stop the NodeBB server";
|
||||||
echo " \"./nodebb log\" to view server output";
|
echo " \"./nodebb log\" to view server output";
|
||||||
|
|
||||||
if [ -f "./logs/output.log" ]; # Preserve the last output log
|
|
||||||
then
|
|
||||||
mv ./logs/output.log ./logs/output.1.log;
|
|
||||||
fi;
|
|
||||||
|
|
||||||
# Start the loader daemon
|
# Start the loader daemon
|
||||||
"$node" loader -d "$@"
|
"$node" loader -d "$@"
|
||||||
;;
|
;;
|
||||||
@@ -107,7 +102,7 @@ case "$1" in
|
|||||||
echo "Launching NodeBB in \"development\" mode."
|
echo "Launching NodeBB in \"development\" mode."
|
||||||
echo "To run the production build of NodeBB, please use \"forever\"."
|
echo "To run the production build of NodeBB, please use \"forever\"."
|
||||||
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
|
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
|
||||||
NODE_ENV=development supervisor -q --ignore public/templates --extensions 'node|js|tpl|less' -- app "$@"
|
NODE_ENV=development supervisor -q --ignore public/templates,public/nodebb.min.js,public/nodebb.min.js.map --extensions 'node|js|tpl|less' -- app "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
|
|||||||
69
package.json
69
package.json
@@ -2,7 +2,7 @@
|
|||||||
"name": "nodebb",
|
"name": "nodebb",
|
||||||
"license": "GPLv3 or later",
|
"license": "GPLv3 or later",
|
||||||
"description": "NodeBB Forum",
|
"description": "NodeBB Forum",
|
||||||
"version": "0.5.0",
|
"version": "0.5.3",
|
||||||
"homepage": "http://www.nodebb.org",
|
"homepage": "http://www.nodebb.org",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@@ -17,48 +17,51 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"async": "~0.9.0",
|
"async": "~0.9.0",
|
||||||
"bcryptjs": "~2.0.1",
|
"bcryptjs": "~2.0.1",
|
||||||
|
"body-parser": "^1.9.0",
|
||||||
|
"compression": "^1.1.0",
|
||||||
|
"connect-ensure-login": "^0.1.1",
|
||||||
"connect-flash": "^0.1.1",
|
"connect-flash": "^0.1.1",
|
||||||
"cron": "~1.0.4",
|
"connect-multiparty": "^1.2.4",
|
||||||
|
"cookie-parser": "^1.3.3",
|
||||||
|
"cron": "^1.0.5",
|
||||||
|
"csurf": "^1.6.1",
|
||||||
"daemon": "~1.1.0",
|
"daemon": "~1.1.0",
|
||||||
"express": "4.6.1",
|
"express": "^4.9.5",
|
||||||
"cookie-parser": "^1.0.1",
|
"express-session": "^1.8.2",
|
||||||
"body-parser": "^1.0.1",
|
|
||||||
"serve-favicon": "^2.0.1",
|
|
||||||
"express-session": "^1.0.2",
|
|
||||||
"csurf": "^1.1.0",
|
|
||||||
"compression": "^1.0.1",
|
|
||||||
"connect-multiparty": "^1.0.1",
|
|
||||||
"morgan": "^1.0.0",
|
|
||||||
"gm": "1.16.0",
|
"gm": "1.16.0",
|
||||||
"gravatar": "1.0.6",
|
"gravatar": "^1.1.0",
|
||||||
"less": "~1.7.3",
|
"less": "^1.7.5",
|
||||||
|
"logrotate-stream": "^0.2.3",
|
||||||
"mkdirp": "~0.5.0",
|
"mkdirp": "~0.5.0",
|
||||||
|
"morgan": "^1.3.2",
|
||||||
"nconf": "~0.6.7",
|
"nconf": "~0.6.7",
|
||||||
"nodebb-plugin-dbsearch": "0.0.13",
|
"nodebb-plugin-dbsearch": "0.0.15",
|
||||||
"nodebb-plugin-markdown": "~0.5.0",
|
"nodebb-plugin-markdown": "^0.7.0",
|
||||||
"nodebb-plugin-mentions": "~0.5.0",
|
"nodebb-plugin-mentions": "~0.6.0",
|
||||||
"nodebb-plugin-soundpack-default": "~0.1.1",
|
"nodebb-plugin-soundpack-default": "~0.1.1",
|
||||||
"nodebb-theme-lavender": "~0.0.74",
|
"nodebb-theme-lavender": "~0.1.0",
|
||||||
"nodebb-theme-vanilla": "~0.0.111",
|
"nodebb-theme-vanilla": "~0.1.0",
|
||||||
"nodebb-widget-essentials": "~0.1.0",
|
"nodebb-widget-essentials": "~0.1.1",
|
||||||
"npm": "^1.4.6",
|
"npm": "^2.1.4",
|
||||||
"passport": "~0.2.0",
|
"passport": "^0.2.1",
|
||||||
"passport-local": "1.0.0",
|
"passport-local": "1.0.0",
|
||||||
"prompt": "~0.2.11",
|
"prompt": "^0.2.14",
|
||||||
"request": "~2.38.0",
|
"request": "^2.44.0",
|
||||||
"rimraf": "~2.2.6",
|
"rimraf": "~2.2.6",
|
||||||
"rss": "~0.3.2",
|
"rss": "^1.0.0",
|
||||||
"semver": "~2.3.1",
|
"semver": "^4.0.3",
|
||||||
"sitemap": "~0.7.3",
|
"serve-favicon": "^2.1.5",
|
||||||
"socket.io": "~0.9.16",
|
"sitemap": "^0.7.4",
|
||||||
|
"socket.io": "^0.9.17",
|
||||||
|
"socket.io-client": "^0.9.17",
|
||||||
"socket.io-wildcard": "~0.1.1",
|
"socket.io-wildcard": "~0.1.1",
|
||||||
"string": "~1.9.0",
|
"string": "^2.1.0",
|
||||||
|
"templates.js": "0.1.2",
|
||||||
"uglify-js": "git+https://github.com/julianlam/UglifyJS2.git",
|
"uglify-js": "git+https://github.com/julianlam/UglifyJS2.git",
|
||||||
"underscore": "~1.6.0",
|
"underscore": "~1.7.0",
|
||||||
"validator": "~3.16.1",
|
"validator": "~3.21.0",
|
||||||
"winston": "~0.7.2",
|
"winston": "^0.8.0",
|
||||||
"xregexp": "~2.0.0",
|
"xregexp": "~2.0.0"
|
||||||
"templates.js": "0.0.13"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"mocha": "~1.13.0"
|
"mocha": "~1.13.0"
|
||||||
|
|||||||
BIN
public/images/admin/connect-tile.png
Normal file
BIN
public/images/admin/connect-tile.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 521 B |
BIN
public/images/logo.png
Normal file
BIN
public/images/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.9 KiB |
@@ -3,5 +3,6 @@
|
|||||||
"no_topics": "<strong>لا توجد مواضيع في هذه الفئة</strong>لماذا لا تحاول نشر موضوع؟<br />",
|
"no_topics": "<strong>لا توجد مواضيع في هذه الفئة</strong>لماذا لا تحاول نشر موضوع؟<br />",
|
||||||
"browsing": "تصفح",
|
"browsing": "تصفح",
|
||||||
"no_replies": "لم يرد أحد",
|
"no_replies": "لم يرد أحد",
|
||||||
"share_this_category": "انشر هذه الفئة"
|
"share_this_category": "انشر هذه الفئة",
|
||||||
|
"ignore": "Ignore"
|
||||||
}
|
}
|
||||||
@@ -9,12 +9,15 @@
|
|||||||
"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.",
|
"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.",
|
||||||
"reset.text2": "To continue with the password reset, please click on the following link:",
|
"reset.text2": "To continue with the password reset, please click on the following link:",
|
||||||
"reset.cta": "Click here to reset your password",
|
"reset.cta": "Click here to reset your password",
|
||||||
"digest.notifications": "You have some unread notifications from %1:",
|
"digest.notifications": "You have unread notifications from %1:",
|
||||||
"digest.latest_topics": "Latest topics from %1",
|
"digest.latest_topics": "Latest topics from %1",
|
||||||
"digest.cta": "Click here to visit %1",
|
"digest.cta": "Click here to visit %1",
|
||||||
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
||||||
"digest.unsub.cta": "Click here to alter those settings",
|
|
||||||
"digest.daily.no_topics": "There have been no active topics in the past day",
|
"digest.daily.no_topics": "There have been no active topics in the past day",
|
||||||
|
"notif.chat.subject": "New chat message received from %1",
|
||||||
|
"notif.chat.cta": "Click here to continue the conversation",
|
||||||
|
"notif.chat.unsub.info": "This chat notification was sent to you due to your subscription settings.",
|
||||||
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
||||||
|
"unsub.cta": "Click here to alter those settings",
|
||||||
"closing": "Thanks!"
|
"closing": "Thanks!"
|
||||||
}
|
}
|
||||||
@@ -12,45 +12,53 @@
|
|||||||
"invalid-title": "Invalid title!",
|
"invalid-title": "Invalid title!",
|
||||||
"invalid-user-data": "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-search-term": "Invalid search term",
|
||||||
"invalid-pagination-value": "Invalid pagination value",
|
"invalid-pagination-value": "Invalid pagination value",
|
||||||
"username-taken": "اسم المستخدم ماخوذ",
|
"username-taken": "اسم المستخدم ماخوذ",
|
||||||
"email-taken": "البريد الالكتروني ماخوذ",
|
"email-taken": "البريد الالكتروني ماخوذ",
|
||||||
"email-not-confirmed": "Your email is not confirmed, please click here to confirm your email.",
|
"email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
|
||||||
"username-too-short": "Username too short",
|
"username-too-short": "Username too short",
|
||||||
|
"username-too-long": "Username too long",
|
||||||
"user-banned": "المستخدم محظور",
|
"user-banned": "المستخدم محظور",
|
||||||
"no-category": "Category doesn't exist",
|
"user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
|
||||||
"no-topic": "Topic doesn't exist",
|
"no-category": "Category does not exist",
|
||||||
"no-post": "Post doesn't exist",
|
"no-topic": "Topic does not exist",
|
||||||
"no-group": "Group doesn't exist",
|
"no-post": "Post does not exist",
|
||||||
"no-user": "المستخدم لا يوجد",
|
"no-group": "Group does not exist",
|
||||||
"no-teaser": "Teaser doesn't exist",
|
"no-user": "User does not exist",
|
||||||
"no-privileges": "You don't have enough privileges for this action.",
|
"no-teaser": "Teaser does not exist",
|
||||||
|
"no-privileges": "You do not have enough privileges for this action.",
|
||||||
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
|
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
|
||||||
"category-disabled": "Category disabled",
|
"category-disabled": "Category disabled",
|
||||||
"topic-locked": "الموضوع مقفول",
|
"topic-locked": "الموضوع مقفول",
|
||||||
"still-uploading": "الرجاء انتظار الرفع",
|
"still-uploading": "الرجاء انتظار الرفع",
|
||||||
"content-too-short": "Please enter a longer post. At least %1 characters.",
|
"content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
|
||||||
"title-too-short": "Please enter a longer title. At least %1 characters.",
|
"title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
|
||||||
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
|
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
|
||||||
"too-many-posts": "You can only post every %1 seconds.",
|
"too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
|
||||||
"file-too-big": "Maximum allowed file size is %1 kbs",
|
"file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
|
||||||
"cant-vote-self-post": "You cannot vote for your own post",
|
"cant-vote-self-post": "You cannot vote for your own post",
|
||||||
"already-favourited": "You already favourited this post",
|
"already-favourited": "You have already favourited this post",
|
||||||
"already-unfavourited": "You 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": "You can't ban other admins!",
|
||||||
"invalid-image-type": "نوع الصورة ممنوع",
|
"invalid-image-type": "نوع الصورة ممنوع",
|
||||||
"group-name-too-short": "Group name too short",
|
"group-name-too-short": "Group name too short",
|
||||||
"group-already-exists": "Group already exists",
|
"group-already-exists": "Group already exists",
|
||||||
"group-name-change-not-allowed": "Group name change not allowed",
|
"group-name-change-not-allowed": "Group name change not allowed",
|
||||||
"post-already-deleted": "Post already deleted",
|
"post-already-deleted": "This post has already been deleted",
|
||||||
"post-already-restored": "Post already restored",
|
"post-already-restored": "This post has already been restored",
|
||||||
"topic-already-deleted": "Topic already deleted",
|
"topic-already-deleted": "This topic has already been deleted",
|
||||||
"topic-already-restored": "Topic already restored",
|
"topic-already-restored": "This topic has already been restored",
|
||||||
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
||||||
"invalid-file": "Invalid File",
|
"invalid-file": "Invalid File",
|
||||||
"uploads-are-disabled": "Uploads are disabled",
|
"uploads-are-disabled": "Uploads are disabled",
|
||||||
"upload-error": "مشكلة في الرفع: 1%",
|
"upload-error": "مشكلة في الرفع: 1%",
|
||||||
"signature-too-long": "Signature can't be longer than %1 characters!",
|
"signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
|
||||||
"cant-chat-with-yourself": "You can't chat with yourself!",
|
"cant-chat-with-yourself": "You can't chat with yourself!",
|
||||||
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post"
|
"reputation-system-disabled": "Reputation system 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-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."
|
||||||
}
|
}
|
||||||
@@ -71,5 +71,6 @@
|
|||||||
"guest": "Guest",
|
"guest": "Guest",
|
||||||
"guests": "Guests",
|
"guests": "Guests",
|
||||||
"updated.title": "Forum Updated",
|
"updated.title": "Forum Updated",
|
||||||
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page."
|
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
|
||||||
|
"privacy": "Privacy"
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"groups": "Groups",
|
||||||
"view_group": "View Group",
|
"view_group": "View Group",
|
||||||
"details.title": "Group Details",
|
"details.title": "Group Details",
|
||||||
"details.members": "Member List",
|
"details.members": "Member List",
|
||||||
|
|||||||
@@ -12,6 +12,10 @@
|
|||||||
"chat.message-history": "Message History",
|
"chat.message-history": "Message History",
|
||||||
"chat.pop-out": "Pop out chat",
|
"chat.pop-out": "Pop out chat",
|
||||||
"chat.maximize": "Maximize",
|
"chat.maximize": "Maximize",
|
||||||
|
"chat.yesterday": "Yesterday",
|
||||||
|
"chat.seven_days": "7 Days",
|
||||||
|
"chat.thirty_days": "30 Days",
|
||||||
|
"chat.three_months": "3 Months",
|
||||||
"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?"
|
||||||
|
|||||||
@@ -10,11 +10,15 @@
|
|||||||
"new_notification": "New Notification",
|
"new_notification": "New Notification",
|
||||||
"you_have_unread_notifications": "You have unread notifications.",
|
"you_have_unread_notifications": "You have unread notifications.",
|
||||||
"new_message_from": "New message from <strong>%1</strong>",
|
"new_message_from": "New message from <strong>%1</strong>",
|
||||||
"upvoted_your_post": "<strong>%1</strong> has upvoted your post.",
|
"upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
|
||||||
"favourited_your_post": "<strong>%1</strong> has favourited your post.",
|
"moved_your_post": "<strong>%1</strong> has moved your post.",
|
||||||
"user_flagged_post": "<strong>%1</strong> flagged a post.",
|
"moved_your_topic": "<strong>%1</strong> has moved your topic.",
|
||||||
|
"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> has posted a reply to: <strong>%2</strong>",
|
"user_posted_to": "<strong>%1</strong> has posted a reply to: <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.",
|
||||||
"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": "An error occurred...",
|
||||||
|
|||||||
@@ -12,5 +12,7 @@
|
|||||||
"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.favourites": "%1's Favourite Posts",
|
"user.favourites": "%1's Favourite Posts",
|
||||||
"user.settings": "User Settings"
|
"user.settings": "User Settings",
|
||||||
|
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
|
||||||
|
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
|
||||||
}
|
}
|
||||||
@@ -4,5 +4,6 @@
|
|||||||
"week": "أسبوع",
|
"week": "أسبوع",
|
||||||
"month": "شهر",
|
"month": "شهر",
|
||||||
"year": "Year",
|
"year": "Year",
|
||||||
|
"alltime": "All Time",
|
||||||
"no_recent_topics": "There are no recent topics."
|
"no_recent_topics": "There are no recent topics."
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
{
|
{
|
||||||
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)"
|
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
|
||||||
|
"no-matches": "No posts found"
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,6 @@
|
|||||||
"no_tag_topics": "There are no topics with this tag.",
|
"no_tag_topics": "There are no topics with this tag.",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"enter_tags_here": "Enter tags here. Press enter after each tag.",
|
"enter_tags_here": "Enter tags here. Press enter after each tag.",
|
||||||
|
"enter_tags_here_short": "Enter tags...",
|
||||||
"no_tags": "There are no tags yet."
|
"no_tags": "There are no tags yet."
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,6 @@
|
|||||||
"restore": "Restore",
|
"restore": "Restore",
|
||||||
"move": "انقل",
|
"move": "انقل",
|
||||||
"fork": "فرع",
|
"fork": "فرع",
|
||||||
"banned": "محظور",
|
|
||||||
"link": "رابط",
|
"link": "رابط",
|
||||||
"share": "شارك",
|
"share": "شارك",
|
||||||
"tools": "أدوات",
|
"tools": "أدوات",
|
||||||
@@ -28,15 +27,17 @@
|
|||||||
"flag_title": "Flag this post for moderation",
|
"flag_title": "Flag this post for moderation",
|
||||||
"flag_confirm": "Are you sure you want to flag this post?",
|
"flag_confirm": "Are you sure you want to flag this post?",
|
||||||
"flag_success": "This post has been flagged for moderation.",
|
"flag_success": "This post has been flagged for moderation.",
|
||||||
"deleted_message": "This thread has been deleted. Only users with thread management privileges can see it.",
|
"deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
|
||||||
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
||||||
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
||||||
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
||||||
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
||||||
"watch": "Watch",
|
"watch": "Watch",
|
||||||
|
"unwatch": "Unwatch",
|
||||||
"watch.title": "Be notified of new replies in this topic",
|
"watch.title": "Be notified of new replies in this topic",
|
||||||
|
"unwatch.title": "Stop watching this topic",
|
||||||
"share_this_post": "Share this Post",
|
"share_this_post": "Share this Post",
|
||||||
"thread_tools.title": "أدوات الموضوع",
|
"thread_tools.title": "Topic Tools",
|
||||||
"thread_tools.markAsUnreadForAll": "علم غير مقروء",
|
"thread_tools.markAsUnreadForAll": "علم غير مقروء",
|
||||||
"thread_tools.pin": "علق الموضوع",
|
"thread_tools.pin": "علق الموضوع",
|
||||||
"thread_tools.unpin": "Unpin Topic",
|
"thread_tools.unpin": "Unpin Topic",
|
||||||
@@ -46,11 +47,11 @@
|
|||||||
"thread_tools.move_all": "Move All",
|
"thread_tools.move_all": "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 thread?",
|
"thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
|
||||||
"thread_tools.restore": "Restore Topic",
|
"thread_tools.restore": "Restore Topic",
|
||||||
"thread_tools.restore_confirm": "Are you sure you want to restore this thread?",
|
"thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
|
||||||
"thread_tools.purge": "Purge Topic",
|
"thread_tools.purge": "Purge Topic",
|
||||||
"thread_tools.purge_confirm": "Are you sure you want to purge this thread?",
|
"thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
|
||||||
"topic_move_success": "This topic has been successfully moved to %1",
|
"topic_move_success": "This topic has been successfully moved to %1",
|
||||||
"post_delete_confirm": "Are you sure you want to delete this post?",
|
"post_delete_confirm": "Are you sure you want to delete this post?",
|
||||||
"post_restore_confirm": "Are you sure you want to restore this post?",
|
"post_restore_confirm": "Are you sure you want to restore this post?",
|
||||||
@@ -71,7 +72,7 @@
|
|||||||
"topic_will_be_moved_to": "هذا الموضوع سوف ينقل إلى فئة",
|
"topic_will_be_moved_to": "هذا الموضوع سوف ينقل إلى فئة",
|
||||||
"fork_topic_instruction": "إضغط على الردود لتفريعهم",
|
"fork_topic_instruction": "إضغط على الردود لتفريعهم",
|
||||||
"fork_no_pids": "لم تختار أي رد",
|
"fork_no_pids": "لم تختار أي رد",
|
||||||
"fork_success": "تفريع الموضوع بنجاح!",
|
"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.discard": "Discard",
|
"composer.discard": "Discard",
|
||||||
"composer.submit": "Submit",
|
"composer.submit": "Submit",
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
"username": "إسم المستخدم",
|
"username": "إسم المستخدم",
|
||||||
"email": "البريد الإلكتروني",
|
"email": "البريد الإلكتروني",
|
||||||
"confirm_email": "Confirm Email",
|
"confirm_email": "Confirm Email",
|
||||||
|
"delete_account": "Delete 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.",
|
||||||
"fullname": "الاسم الكامل",
|
"fullname": "الاسم الكامل",
|
||||||
"website": "الموقع الإلكتروني",
|
"website": "الموقع الإلكتروني",
|
||||||
"location": "موقع",
|
"location": "موقع",
|
||||||
@@ -27,6 +29,7 @@
|
|||||||
"edit": "صحح",
|
"edit": "صحح",
|
||||||
"uploaded_picture": "صورة تم تحميلها",
|
"uploaded_picture": "صورة تم تحميلها",
|
||||||
"upload_new_picture": "تحميل صورة جديدة",
|
"upload_new_picture": "تحميل صورة جديدة",
|
||||||
|
"upload_new_picture_from_url": "Upload New Picture From URL",
|
||||||
"current_password": "Current Password",
|
"current_password": "Current Password",
|
||||||
"change_password": "تغيير كلمة السر",
|
"change_password": "تغيير كلمة السر",
|
||||||
"change_password_error": "Invalid Password!",
|
"change_password_error": "Invalid Password!",
|
||||||
@@ -44,12 +47,14 @@
|
|||||||
"max": "max.",
|
"max": "max.",
|
||||||
"settings": "Settings",
|
"settings": "Settings",
|
||||||
"show_email": "أظهر بريدي الإلكتروني",
|
"show_email": "أظهر بريدي الإلكتروني",
|
||||||
|
"show_fullname": "Show My Full Name",
|
||||||
"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",
|
||||||
"digest_daily": "Daily",
|
"digest_daily": "Daily",
|
||||||
"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",
|
||||||
"has_no_follower": "هذا المستخدم ليس لديه أي أتباع :(",
|
"has_no_follower": "هذا المستخدم ليس لديه أي أتباع :(",
|
||||||
"follows_no_one": "هذا المستخدم لا يتبع أحد :(",
|
"follows_no_one": "هذا المستخدم لا يتبع أحد :(",
|
||||||
"has_no_posts": "This user didn't post anything yet.",
|
"has_no_posts": "This user didn't post anything yet.",
|
||||||
@@ -61,5 +66,7 @@
|
|||||||
"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.",
|
||||||
|
"follow_topics_you_create": "Follow topics you create."
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,5 @@
|
|||||||
"search": "بحث",
|
"search": "بحث",
|
||||||
"enter_username": "أدخل اسم مستخدم للبحث",
|
"enter_username": "أدخل اسم مستخدم للبحث",
|
||||||
"load_more": "حمل المزيد",
|
"load_more": "حمل المزيد",
|
||||||
"user-not-found": "User not found!",
|
|
||||||
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
|
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
|
||||||
}
|
}
|
||||||
@@ -3,5 +3,6 @@
|
|||||||
"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"
|
||||||
}
|
}
|
||||||
@@ -9,12 +9,15 @@
|
|||||||
"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.",
|
"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.",
|
||||||
"reset.text2": "To continue with the password reset, please click on the following link:",
|
"reset.text2": "To continue with the password reset, please click on the following link:",
|
||||||
"reset.cta": "Click here to reset your password",
|
"reset.cta": "Click here to reset your password",
|
||||||
"digest.notifications": "You have some unread notifications from %1:",
|
"digest.notifications": "You have unread notifications from %1:",
|
||||||
"digest.latest_topics": "Latest topics from %1",
|
"digest.latest_topics": "Latest topics from %1",
|
||||||
"digest.cta": "Click here to visit %1",
|
"digest.cta": "Click here to visit %1",
|
||||||
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
||||||
"digest.unsub.cta": "Click here to alter those settings",
|
|
||||||
"digest.daily.no_topics": "There have been no active topics in the past day",
|
"digest.daily.no_topics": "There have been no active topics in the past day",
|
||||||
|
"notif.chat.subject": "New chat message received from %1",
|
||||||
|
"notif.chat.cta": "Click here to continue the conversation",
|
||||||
|
"notif.chat.unsub.info": "This chat notification was sent to you due to your subscription settings.",
|
||||||
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
||||||
|
"unsub.cta": "Click here to alter those settings",
|
||||||
"closing": "Thanks!"
|
"closing": "Thanks!"
|
||||||
}
|
}
|
||||||
@@ -12,45 +12,53 @@
|
|||||||
"invalid-title": "Invalid title!",
|
"invalid-title": "Invalid title!",
|
||||||
"invalid-user-data": "Invalid User Data",
|
"invalid-user-data": "Invalid User Data",
|
||||||
"invalid-password": "Invalid Password",
|
"invalid-password": "Invalid Password",
|
||||||
|
"invalid-username-or-password": "Please specify both a username and password",
|
||||||
|
"invalid-search-term": "Invalid search term",
|
||||||
"invalid-pagination-value": "Invalid pagination value",
|
"invalid-pagination-value": "Invalid pagination value",
|
||||||
"username-taken": "Username taken",
|
"username-taken": "Username taken",
|
||||||
"email-taken": "Email taken",
|
"email-taken": "Email taken",
|
||||||
"email-not-confirmed": "Your email is not confirmed, please click here to confirm your email.",
|
"email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
|
||||||
"username-too-short": "Username too short",
|
"username-too-short": "Username too short",
|
||||||
|
"username-too-long": "Username too long",
|
||||||
"user-banned": "User banned",
|
"user-banned": "User banned",
|
||||||
"no-category": "Category doesn't exist",
|
"user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
|
||||||
"no-topic": "Topic doesn't exist",
|
"no-category": "Category does not exist",
|
||||||
"no-post": "Post doesn't exist",
|
"no-topic": "Topic does not exist",
|
||||||
"no-group": "Group doesn't exist",
|
"no-post": "Post does not exist",
|
||||||
"no-user": "User doesn't exist",
|
"no-group": "Group does not exist",
|
||||||
"no-teaser": "Teaser doesn't exist",
|
"no-user": "User does not exist",
|
||||||
"no-privileges": "You don't have enough privileges for this action.",
|
"no-teaser": "Teaser does not exist",
|
||||||
|
"no-privileges": "You do not have enough privileges for this action.",
|
||||||
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
|
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
|
||||||
"category-disabled": "Category disabled",
|
"category-disabled": "Category disabled",
|
||||||
"topic-locked": "Topic Locked",
|
"topic-locked": "Topic Locked",
|
||||||
"still-uploading": "Please wait for uploads to complete.",
|
"still-uploading": "Please wait for uploads to complete.",
|
||||||
"content-too-short": "Please enter a longer post. At least %1 characters.",
|
"content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
|
||||||
"title-too-short": "Please enter a longer title. At least %1 characters.",
|
"title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
|
||||||
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
|
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
|
||||||
"too-many-posts": "You can only post every %1 seconds.",
|
"too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
|
||||||
"file-too-big": "Maximum allowed file size is %1 kbs",
|
"file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
|
||||||
"cant-vote-self-post": "You cannot vote for your own post",
|
"cant-vote-self-post": "You cannot vote for your own post",
|
||||||
"already-favourited": "You already favourited this post",
|
"already-favourited": "You have already favourited this post",
|
||||||
"already-unfavourited": "You 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": "You can't ban other admins!",
|
||||||
"invalid-image-type": "Invalid image type",
|
"invalid-image-type": "Invalid image type",
|
||||||
"group-name-too-short": "Group name too short",
|
"group-name-too-short": "Group name too short",
|
||||||
"group-already-exists": "Group already exists",
|
"group-already-exists": "Group already exists",
|
||||||
"group-name-change-not-allowed": "Group name change not allowed",
|
"group-name-change-not-allowed": "Group name change not allowed",
|
||||||
"post-already-deleted": "Post already deleted",
|
"post-already-deleted": "This post has already been deleted",
|
||||||
"post-already-restored": "Post already restored",
|
"post-already-restored": "This post has already been restored",
|
||||||
"topic-already-deleted": "Topic already deleted",
|
"topic-already-deleted": "This topic has already been deleted",
|
||||||
"topic-already-restored": "Topic already restored",
|
"topic-already-restored": "This topic has already been restored",
|
||||||
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
||||||
"invalid-file": "Invalid File",
|
"invalid-file": "Invalid File",
|
||||||
"uploads-are-disabled": "Uploads are disabled",
|
"uploads-are-disabled": "Uploads are disabled",
|
||||||
"upload-error": "Upload Error : %1",
|
"upload-error": "Upload Error : %1",
|
||||||
"signature-too-long": "Signature can't be longer than %1 characters!",
|
"signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
|
||||||
"cant-chat-with-yourself": "You can't chat with yourself!",
|
"cant-chat-with-yourself": "You can't chat with yourself!",
|
||||||
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post"
|
"reputation-system-disabled": "Reputation system 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-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."
|
||||||
}
|
}
|
||||||
@@ -71,5 +71,6 @@
|
|||||||
"guest": "Guest",
|
"guest": "Guest",
|
||||||
"guests": "Guests",
|
"guests": "Guests",
|
||||||
"updated.title": "Forum Updated",
|
"updated.title": "Forum Updated",
|
||||||
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page."
|
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
|
||||||
|
"privacy": "Privacy"
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"groups": "Groups",
|
||||||
"view_group": "View Group",
|
"view_group": "View Group",
|
||||||
"details.title": "Group Details",
|
"details.title": "Group Details",
|
||||||
"details.members": "Member List",
|
"details.members": "Member List",
|
||||||
|
|||||||
@@ -12,6 +12,10 @@
|
|||||||
"chat.message-history": "Message History",
|
"chat.message-history": "Message History",
|
||||||
"chat.pop-out": "Pop out chat",
|
"chat.pop-out": "Pop out chat",
|
||||||
"chat.maximize": "Maximize",
|
"chat.maximize": "Maximize",
|
||||||
|
"chat.yesterday": "Yesterday",
|
||||||
|
"chat.seven_days": "7 Days",
|
||||||
|
"chat.thirty_days": "30 Days",
|
||||||
|
"chat.three_months": "3 Months",
|
||||||
"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?"
|
||||||
|
|||||||
@@ -10,11 +10,15 @@
|
|||||||
"new_notification": "New Notification",
|
"new_notification": "New Notification",
|
||||||
"you_have_unread_notifications": "You have unread notifications.",
|
"you_have_unread_notifications": "You have unread notifications.",
|
||||||
"new_message_from": "New message from <strong>%1</strong>",
|
"new_message_from": "New message from <strong>%1</strong>",
|
||||||
"upvoted_your_post": "<strong>%1</strong> has upvoted your post.",
|
"upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
|
||||||
"favourited_your_post": "<strong>%1</strong> has favourited your post.",
|
"moved_your_post": "<strong>%1</strong> has moved your post.",
|
||||||
"user_flagged_post": "<strong>%1</strong> flagged a post.",
|
"moved_your_topic": "<strong>%1</strong> has moved your topic.",
|
||||||
|
"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> has posted a reply to: <strong>%2</strong>",
|
"user_posted_to": "<strong>%1</strong> has posted a reply to: <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.",
|
||||||
"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": "An error occurred...",
|
||||||
|
|||||||
@@ -12,5 +12,7 @@
|
|||||||
"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.favourites": "%1's Favourite Posts",
|
"user.favourites": "%1's Favourite Posts",
|
||||||
"user.settings": "User Settings"
|
"user.settings": "User Settings",
|
||||||
|
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
|
||||||
|
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
|
||||||
}
|
}
|
||||||
@@ -4,5 +4,6 @@
|
|||||||
"week": "Týden",
|
"week": "Týden",
|
||||||
"month": "Měsíc",
|
"month": "Měsíc",
|
||||||
"year": "Year",
|
"year": "Year",
|
||||||
|
"alltime": "All Time",
|
||||||
"no_recent_topics": "There are no recent topics."
|
"no_recent_topics": "There are no recent topics."
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
{
|
{
|
||||||
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)"
|
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
|
||||||
|
"no-matches": "No posts found"
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,6 @@
|
|||||||
"no_tag_topics": "There are no topics with this tag.",
|
"no_tag_topics": "There are no topics with this tag.",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"enter_tags_here": "Enter tags here. Press enter after each tag.",
|
"enter_tags_here": "Enter tags here. Press enter after each tag.",
|
||||||
|
"enter_tags_here_short": "Enter tags...",
|
||||||
"no_tags": "There are no tags yet."
|
"no_tags": "There are no tags yet."
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,6 @@
|
|||||||
"restore": "Restore",
|
"restore": "Restore",
|
||||||
"move": "Přesunout",
|
"move": "Přesunout",
|
||||||
"fork": "Rozdělit",
|
"fork": "Rozdělit",
|
||||||
"banned": "banned",
|
|
||||||
"link": "Odkaz",
|
"link": "Odkaz",
|
||||||
"share": "Sdílet",
|
"share": "Sdílet",
|
||||||
"tools": "Nástroje",
|
"tools": "Nástroje",
|
||||||
@@ -28,15 +27,17 @@
|
|||||||
"flag_title": "Flag this post for moderation",
|
"flag_title": "Flag this post for moderation",
|
||||||
"flag_confirm": "Are you sure you want to flag this post?",
|
"flag_confirm": "Are you sure you want to flag this post?",
|
||||||
"flag_success": "This post has been flagged for moderation.",
|
"flag_success": "This post has been flagged for moderation.",
|
||||||
"deleted_message": "This thread has been deleted. Only users with thread management privileges can see it.",
|
"deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
|
||||||
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
||||||
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
||||||
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
||||||
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
||||||
"watch": "Watch",
|
"watch": "Watch",
|
||||||
|
"unwatch": "Unwatch",
|
||||||
"watch.title": "Be notified of new replies in this topic",
|
"watch.title": "Be notified of new replies in this topic",
|
||||||
|
"unwatch.title": "Stop watching this topic",
|
||||||
"share_this_post": "Share this Post",
|
"share_this_post": "Share this Post",
|
||||||
"thread_tools.title": "Nástroje",
|
"thread_tools.title": "Topic Tools",
|
||||||
"thread_tools.markAsUnreadForAll": "Označit jako nepřečtené",
|
"thread_tools.markAsUnreadForAll": "Označit jako nepřečtené",
|
||||||
"thread_tools.pin": "Pin Topic",
|
"thread_tools.pin": "Pin Topic",
|
||||||
"thread_tools.unpin": "Unpin Topic",
|
"thread_tools.unpin": "Unpin Topic",
|
||||||
@@ -46,11 +47,11 @@
|
|||||||
"thread_tools.move_all": "Move All",
|
"thread_tools.move_all": "Move All",
|
||||||
"thread_tools.fork": "Fork Topic",
|
"thread_tools.fork": "Fork Topic",
|
||||||
"thread_tools.delete": "Delete Topic",
|
"thread_tools.delete": "Delete Topic",
|
||||||
"thread_tools.delete_confirm": "Are you sure you want to delete this thread?",
|
"thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
|
||||||
"thread_tools.restore": "Restore Topic",
|
"thread_tools.restore": "Restore Topic",
|
||||||
"thread_tools.restore_confirm": "Are you sure you want to restore this thread?",
|
"thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
|
||||||
"thread_tools.purge": "Purge Topic",
|
"thread_tools.purge": "Purge Topic",
|
||||||
"thread_tools.purge_confirm": "Are you sure you want to purge this thread?",
|
"thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
|
||||||
"topic_move_success": "This topic has been successfully moved to %1",
|
"topic_move_success": "This topic has been successfully moved to %1",
|
||||||
"post_delete_confirm": "Are you sure you want to delete this post?",
|
"post_delete_confirm": "Are you sure you want to delete this post?",
|
||||||
"post_restore_confirm": "Are you sure you want to restore this post?",
|
"post_restore_confirm": "Are you sure you want to restore this post?",
|
||||||
@@ -71,7 +72,7 @@
|
|||||||
"topic_will_be_moved_to": "Toto téma bude přesunuto do kategorie",
|
"topic_will_be_moved_to": "Toto téma bude přesunuto do kategorie",
|
||||||
"fork_topic_instruction": "Vyber příspěvky, které chceš oddělit",
|
"fork_topic_instruction": "Vyber příspěvky, které chceš oddělit",
|
||||||
"fork_no_pids": "Žádné příspěvky nebyly vybrány!",
|
"fork_no_pids": "Žádné příspěvky nebyly vybrány!",
|
||||||
"fork_success": "Téma bylo úspěšně rozděleno!",
|
"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.discard": "Discard",
|
"composer.discard": "Discard",
|
||||||
"composer.submit": "Submit",
|
"composer.submit": "Submit",
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
"username": "Uživatelské jméno",
|
"username": "Uživatelské jméno",
|
||||||
"email": "Email",
|
"email": "Email",
|
||||||
"confirm_email": "Confirm Email",
|
"confirm_email": "Confirm Email",
|
||||||
|
"delete_account": "Delete 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.",
|
||||||
"fullname": "Jméno a příjmení",
|
"fullname": "Jméno a příjmení",
|
||||||
"website": "Webové stránky",
|
"website": "Webové stránky",
|
||||||
"location": "Poloha",
|
"location": "Poloha",
|
||||||
@@ -27,6 +29,7 @@
|
|||||||
"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",
|
||||||
"current_password": "Current Password",
|
"current_password": "Current Password",
|
||||||
"change_password": "Změnit heslo",
|
"change_password": "Změnit heslo",
|
||||||
"change_password_error": "Invalid Password!",
|
"change_password_error": "Invalid Password!",
|
||||||
@@ -44,12 +47,14 @@
|
|||||||
"max": "max.",
|
"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",
|
||||||
"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",
|
||||||
"digest_daily": "Daily",
|
"digest_daily": "Daily",
|
||||||
"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",
|
||||||
"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 didn't post anything yet.",
|
||||||
@@ -61,5 +66,7 @@
|
|||||||
"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.",
|
||||||
|
"follow_topics_you_create": "Follow topics you create."
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,5 @@
|
|||||||
"search": "Vyhledávat",
|
"search": "Vyhledávat",
|
||||||
"enter_username": "Zadej uživatelské jméno k hledání",
|
"enter_username": "Zadej uživatelské jméno k hledání",
|
||||||
"load_more": "Načíst další",
|
"load_more": "Načíst další",
|
||||||
"user-not-found": "User not found!",
|
|
||||||
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
|
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
|
||||||
}
|
}
|
||||||
@@ -3,5 +3,6 @@
|
|||||||
"no_topics": "<strong>Es gibt noch keine Themen in dieser Kategorie.</strong><br />Warum beginnst du nicht das erste?",
|
"no_topics": "<strong>Es gibt noch keine Themen in dieser Kategorie.</strong><br />Warum beginnst du nicht das erste?",
|
||||||
"browsing": "Aktiv",
|
"browsing": "Aktiv",
|
||||||
"no_replies": "Niemand hat geantwortet",
|
"no_replies": "Niemand hat geantwortet",
|
||||||
"share_this_category": "Teile diese Kategorie"
|
"share_this_category": "Teile diese Kategorie",
|
||||||
|
"ignore": "Ignorieren"
|
||||||
}
|
}
|
||||||
@@ -9,12 +9,15 @@
|
|||||||
"reset.text1": "Wir haben eine Anfrage auf Zurücksetzung deines Passworts erhalten, wahrscheinlich, weil du es vergessen hast. Falls dies nicht der Fall ist, ignoriere bitte diese E-Mail.",
|
"reset.text1": "Wir haben eine Anfrage auf Zurücksetzung deines Passworts erhalten, wahrscheinlich, weil du es vergessen hast. Falls dies nicht der Fall ist, ignoriere bitte diese E-Mail.",
|
||||||
"reset.text2": "Klicke bitte auf den folgenden Link, um mit der Zurücksetzung deines Passworts fortzufahren:",
|
"reset.text2": "Klicke bitte auf den folgenden Link, um mit der Zurücksetzung deines Passworts fortzufahren:",
|
||||||
"reset.cta": "Klicke hier, um dein Passwort zurückzusetzen",
|
"reset.cta": "Klicke hier, um dein Passwort zurückzusetzen",
|
||||||
"digest.notifications": "Du hast einige ungelesene Benachrichtigungen vom %1:",
|
"digest.notifications": "You have unread notifications from %1:",
|
||||||
"digest.latest_topics": "Aktuellste Themen vom %1",
|
"digest.latest_topics": "Aktuellste Themen vom %1",
|
||||||
"digest.cta": "Klicke hier, um %1 zu besuchen",
|
"digest.cta": "Klicke hier, um %1 zu besuchen",
|
||||||
"digest.unsub.info": "Diese Zusammenfassung wurde dir aufgrund deiner Abonnement-Einstellungen gesendet.",
|
"digest.unsub.info": "Diese Zusammenfassung wurde dir aufgrund deiner Abonnement-Einstellungen gesendet.",
|
||||||
"digest.unsub.cta": "Klicke hier, um diese Einstellungen zu ändern",
|
|
||||||
"digest.daily.no_topics": "Es gab heute keine aktiven Themen",
|
"digest.daily.no_topics": "Es gab heute keine aktiven Themen",
|
||||||
|
"notif.chat.subject": "Neue Chatnachricht von %1 erhalten",
|
||||||
|
"notif.chat.cta": "Klicke hier, um die Unterhaltung fortzusetzen",
|
||||||
|
"notif.chat.unsub.info": "Diese Chat-Benachrichtigung wurde dir aufgrund deiner Abonnement-Einstellungen gesendet.",
|
||||||
"test.text1": "Dies ist eine Test-E-Mail, um zu überprüfen, ob der E-Mailer deines NodeBB korrekt eingestellt wurde.",
|
"test.text1": "Dies ist eine Test-E-Mail, um zu überprüfen, ob der E-Mailer deines NodeBB korrekt eingestellt wurde.",
|
||||||
|
"unsub.cta": "Klicke hier, um diese Einstellungen zu ändern.",
|
||||||
"closing": "Danke!"
|
"closing": "Danke!"
|
||||||
}
|
}
|
||||||
@@ -12,45 +12,53 @@
|
|||||||
"invalid-title": "Ungültiger Titel",
|
"invalid-title": "Ungültiger Titel",
|
||||||
"invalid-user-data": "Ungültige Benutzerdaten",
|
"invalid-user-data": "Ungültige Benutzerdaten",
|
||||||
"invalid-password": "Ungültiges Passwort",
|
"invalid-password": "Ungültiges Passwort",
|
||||||
|
"invalid-username-or-password": "Bitte gebe einen Benutzernamen und ein Passwort an",
|
||||||
|
"invalid-search-term": "Ungültige Suchanfrage",
|
||||||
"invalid-pagination-value": "Die Nummerierung ist ungültig",
|
"invalid-pagination-value": "Die Nummerierung ist ungültig",
|
||||||
"username-taken": "Der Benutzername ist bereits vergeben",
|
"username-taken": "Der Benutzername ist bereits vergeben",
|
||||||
"email-taken": "Die E-Mail-Adresse ist bereits vergeben",
|
"email-taken": "Die E-Mail-Adresse ist bereits vergeben",
|
||||||
"email-not-confirmed": "Deine E-Mail wurde noch nicht bestätigt. Bitte klicke hier, um deine E-Mail zu bestätigen.",
|
"email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
|
||||||
"username-too-short": "Benutzername ist zu kurz",
|
"username-too-short": "Benutzername ist zu kurz",
|
||||||
|
"username-too-long": "Der Benutzername ist zu lang",
|
||||||
"user-banned": "Der Benutzer ist gesperrt",
|
"user-banned": "Der Benutzer ist gesperrt",
|
||||||
"no-category": "Die Kategorie existiert nicht",
|
"user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
|
||||||
"no-topic": "Das Thema existiert nicht",
|
"no-category": "Category does not exist",
|
||||||
"no-post": "Der Beitrag existiert nicht",
|
"no-topic": "Topic does not exist",
|
||||||
"no-group": "Die Gruppe existiert nicht",
|
"no-post": "Post does not exist",
|
||||||
"no-user": "Der Benutzer existiert nicht",
|
"no-group": "Group does not exist",
|
||||||
"no-teaser": "Kurztext existiert nicht",
|
"no-user": "User does not exist",
|
||||||
"no-privileges": "Du verfügst nicht über ausreichende Berechtigungen, um die Aktion durchzuführen.",
|
"no-teaser": "Teaser does not exist",
|
||||||
|
"no-privileges": "You do not have enough privileges for this action.",
|
||||||
"no-emailers-configured": "Es wurde keine E-Mail-Plugins geladen, weshalb eine Test-E-Mail nicht gesendet werden konnte.",
|
"no-emailers-configured": "Es wurde keine E-Mail-Plugins geladen, weshalb eine Test-E-Mail nicht gesendet werden konnte.",
|
||||||
"category-disabled": "Kategorie ist deaktiviert",
|
"category-disabled": "Kategorie ist deaktiviert",
|
||||||
"topic-locked": "Thema ist gesperrt",
|
"topic-locked": "Thema ist gesperrt",
|
||||||
"still-uploading": "Bitte warte bis der Vorgang abgeschlossen ist.",
|
"still-uploading": "Bitte warte bis der Vorgang abgeschlossen ist.",
|
||||||
"content-too-short": "Der Beitrag muss mindestens %1 Zeichen enthalten.",
|
"content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
|
||||||
"title-too-short": "Der Titel muss mindestens %1 Zeichen enthalten.",
|
"title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
|
||||||
"title-too-long": "Der Titel darf maximal %1 Zeichen enthalten.",
|
"title-too-long": "Der Titel darf maximal %1 Zeichen enthalten.",
|
||||||
"too-many-posts": "Du kannst maximal alle %1 Sekunden einen Beitrag erstellen.",
|
"too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
|
||||||
"file-too-big": "Die maximale Dateigröße beträgt %1 kbs",
|
"file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
|
||||||
"cant-vote-self-post": "Du kannst deinen eigenen Beitrag nicht bewerten.",
|
"cant-vote-self-post": "Du kannst deinen eigenen Beitrag nicht bewerten.",
|
||||||
"already-favourited": "Dieser Beitrag ist bereits in deinen Favoriten enthalten",
|
"already-favourited": "You have already favourited this post",
|
||||||
"already-unfavourited": "Du hast diesen Beitrag bereits aus deinen Favoriten entfernt",
|
"already-unfavourited": "You have already unfavourited this post",
|
||||||
"cant-ban-other-admins": "Du kannst andere Administratoren nicht sperren!",
|
"cant-ban-other-admins": "Du kannst andere Administratoren nicht sperren!",
|
||||||
"invalid-image-type": "Ungültiger Bildtyp",
|
"invalid-image-type": "Ungültiger Bildtyp",
|
||||||
"group-name-too-short": "Gruppenname zu kurz",
|
"group-name-too-short": "Gruppenname zu kurz",
|
||||||
"group-already-exists": "Gruppe existiert bereits",
|
"group-already-exists": "Gruppe existiert bereits",
|
||||||
"group-name-change-not-allowed": "Du kannst den Namen der Gruppe nicht ändern",
|
"group-name-change-not-allowed": "Du kannst den Namen der Gruppe nicht ändern",
|
||||||
"post-already-deleted": "Beitrag wurde bereits gelöscht",
|
"post-already-deleted": "This post has already been deleted",
|
||||||
"post-already-restored": "Der Beitrag wurde bereits wiederhergestellt",
|
"post-already-restored": "This post has already been restored",
|
||||||
"topic-already-deleted": "Das Thema wurde bereits gelöscht",
|
"topic-already-deleted": "This topic has already been deleted",
|
||||||
"topic-already-restored": "Das Thema wurde bereits wiederhergestellt",
|
"topic-already-restored": "This topic has already been restored",
|
||||||
"topic-thumbnails-are-disabled": "Vorschaubilder für Themen sind deaktiviert",
|
"topic-thumbnails-are-disabled": "Vorschaubilder für Themen sind deaktiviert",
|
||||||
"invalid-file": "Datei ungültig",
|
"invalid-file": "Datei ungültig",
|
||||||
"uploads-are-disabled": "Uploads sind deaktiviert",
|
"uploads-are-disabled": "Uploads sind deaktiviert",
|
||||||
"upload-error": "Upload-Fehler: %1",
|
"upload-error": "Upload-Fehler: %1",
|
||||||
"signature-too-long": "Die Signatur darf maximal %1 Zeichen enthalten!",
|
"signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
|
||||||
"cant-chat-with-yourself": "Du kannst nicht mit dir selber chatten!",
|
"cant-chat-with-yourself": "Du kannst nicht mit dir selber chatten!",
|
||||||
"not-enough-reputation-to-downvote": "Deine Reputation ist zu niedrig, um diesen Beitrag negativ zu bewerten."
|
"reputation-system-disabled": "Das Reputationssystem ist deaktiviert.",
|
||||||
|
"downvoting-disabled": "Downvotes sind deaktiviert.",
|
||||||
|
"not-enough-reputation-to-downvote": "Deine Reputation ist zu niedrig, um diesen Beitrag negativ zu bewerten.",
|
||||||
|
"not-enough-reputation-to-flag": "You do not have enough reputation to flag this post",
|
||||||
|
"reload-failed": "Es ist ein Problem während des Reloads von NodeBB aufgetreten: \"%1\". NodeBB wird weiterhin clientseitige Assets bereitstellen, allerdings solltest du das, was du vor dem Reload gemacht hast, rückgängig machen."
|
||||||
}
|
}
|
||||||
@@ -71,5 +71,6 @@
|
|||||||
"guest": "Gast",
|
"guest": "Gast",
|
||||||
"guests": "Gäste",
|
"guests": "Gäste",
|
||||||
"updated.title": "Forum aktualisiert",
|
"updated.title": "Forum aktualisiert",
|
||||||
"updated.message": "Dieses Forum wurde gerade auf die neueste Version aktualisiert. Klicke hier, um die Seite neuzuladen."
|
"updated.message": "Dieses Forum wurde gerade auf die neueste Version aktualisiert. Klicke hier, um die Seite neuzuladen.",
|
||||||
|
"privacy": "Privacy"
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"groups": "Groups",
|
||||||
"view_group": "Gruppe betrachten",
|
"view_group": "Gruppe betrachten",
|
||||||
"details.title": "Gruppendetails",
|
"details.title": "Gruppendetails",
|
||||||
"details.members": "Mitgliederliste",
|
"details.members": "Mitgliederliste",
|
||||||
|
|||||||
@@ -12,6 +12,10 @@
|
|||||||
"chat.message-history": "Nachrichtenverlauf",
|
"chat.message-history": "Nachrichtenverlauf",
|
||||||
"chat.pop-out": "Chat als Pop-out anzeigen",
|
"chat.pop-out": "Chat als Pop-out anzeigen",
|
||||||
"chat.maximize": "Maximieren",
|
"chat.maximize": "Maximieren",
|
||||||
|
"chat.yesterday": "Gestern",
|
||||||
|
"chat.seven_days": "7 Tage",
|
||||||
|
"chat.thirty_days": "30 Tage",
|
||||||
|
"chat.three_months": "3 Monate",
|
||||||
"composer.user_said_in": "%1 sagte in %2:",
|
"composer.user_said_in": "%1 sagte in %2:",
|
||||||
"composer.user_said": "%1 sagte:",
|
"composer.user_said": "%1 sagte:",
|
||||||
"composer.discard": "Bist du sicher, dass du diesen Post verwerfen möchtest?"
|
"composer.discard": "Bist du sicher, dass du diesen Post verwerfen möchtest?"
|
||||||
|
|||||||
@@ -10,11 +10,15 @@
|
|||||||
"new_notification": "Neue Benachrichtigung",
|
"new_notification": "Neue Benachrichtigung",
|
||||||
"you_have_unread_notifications": "Du hast ungelesene Benachrichtigungen.",
|
"you_have_unread_notifications": "Du hast ungelesene Benachrichtigungen.",
|
||||||
"new_message_from": "Neue Nachricht von <strong>%1</strong>",
|
"new_message_from": "Neue Nachricht von <strong>%1</strong>",
|
||||||
"upvoted_your_post": "<strong>%1</strong> hat deinen Beitrag positiv bewertet.",
|
"upvoted_your_post_in": "<strong>%1</strong> hat deinen Beitrag in <strong>%2</strong> positiv bewertet.",
|
||||||
"favourited_your_post": "<strong>%1</strong> favorisiert deinen Beitrag.",
|
"moved_your_post": "<strong>%1</strong> hat deinen Beitrag verschoben.",
|
||||||
"user_flagged_post": "<strong>%1</strong> hat einen Beitrag markiert.",
|
"moved_your_topic": "<strong>%1</strong> hat dein Thema verschoben.",
|
||||||
|
"favourited_your_post_in": "<strong>%1</strong> hat deinen Beitrag in <strong>%2</strong> favorisiert.",
|
||||||
|
"user_flagged_post_in": "<strong>%1</strong> hat einen Beitrag in </strong>%2</strong> gemeldet",
|
||||||
"user_posted_to": "<strong>%1</strong> hat auf <strong>%2</strong> geantwortet.",
|
"user_posted_to": "<strong>%1</strong> hat auf <strong>%2</strong> geantwortet.",
|
||||||
|
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
||||||
"user_mentioned_you_in": "<strong>%1</strong> erwähnte dich in <strong>%2</strong>",
|
"user_mentioned_you_in": "<strong>%1</strong> erwähnte dich in <strong>%2</strong>",
|
||||||
|
"user_started_following_you": "<strong>%1</strong> folgt dir jetzt.",
|
||||||
"email-confirmed": "E-Mail bestätigt",
|
"email-confirmed": "E-Mail bestätigt",
|
||||||
"email-confirmed-message": "Vielen Dank für Ihre E-Mail-Validierung. Ihr Konto ist nun vollständig aktiviert.",
|
"email-confirmed-message": "Vielen Dank für Ihre E-Mail-Validierung. Ihr Konto ist nun vollständig aktiviert.",
|
||||||
"email-confirm-error": "Es ist ein Fehler aufgetreten ...",
|
"email-confirm-error": "Es ist ein Fehler aufgetreten ...",
|
||||||
|
|||||||
@@ -5,12 +5,14 @@
|
|||||||
"recent": "Neueste Themen",
|
"recent": "Neueste Themen",
|
||||||
"users": "Registrierte User",
|
"users": "Registrierte User",
|
||||||
"notifications": "Benachrichtigungen",
|
"notifications": "Benachrichtigungen",
|
||||||
"tags": "Topics tagged under \"%1\"",
|
"tags": "Themen markiert unter \"%1\"",
|
||||||
"user.edit": "Bearbeite \"%1\"",
|
"user.edit": "Bearbeite \"%1\"",
|
||||||
"user.following": "Nutzer, die %1 folgt",
|
"user.following": "Nutzer, die %1 folgt",
|
||||||
"user.followers": "Nutzer, die %1 folgen",
|
"user.followers": "Nutzer, die %1 folgen",
|
||||||
"user.posts": "Beiträge von %1",
|
"user.posts": "Beiträge von %1",
|
||||||
"user.topics": "Themen von %1",
|
"user.topics": "Themen von %1",
|
||||||
"user.favourites": "Von %1 favorisierte Beiträge",
|
"user.favourites": "Von %1 favorisierte Beiträge",
|
||||||
"user.settings": "Benutzer-Einstellungen"
|
"user.settings": "Benutzer-Einstellungen",
|
||||||
|
"maintenance.text": "%1 befindet sich derzeit in der Wartung. Bitte komm später wieder.",
|
||||||
|
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
|
||||||
}
|
}
|
||||||
@@ -4,5 +4,6 @@
|
|||||||
"week": "Woche",
|
"week": "Woche",
|
||||||
"month": "Monat",
|
"month": "Monat",
|
||||||
"year": "Jahr",
|
"year": "Jahr",
|
||||||
|
"alltime": "Gesamter Zeitraum",
|
||||||
"no_recent_topics": "Es gibt keine aktuellen Themen."
|
"no_recent_topics": "Es gibt keine aktuellen Themen."
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
{
|
{
|
||||||
"results_matching": "%1 Ergebniss(e) stimmen mit \"%2\" überein, (%3 Sekunden)"
|
"results_matching": "%1 Ergebniss(e) stimmen mit \"%2\" überein, (%3 Sekunden)",
|
||||||
|
"no-matches": "Keine Beiträge gefunden"
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,6 @@
|
|||||||
"no_tag_topics": "Es gibt keine Themen mit diesem Tag.",
|
"no_tag_topics": "Es gibt keine Themen mit diesem Tag.",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"enter_tags_here": "Gib hier Tags ein und drück die Eingabetaste nach jedem Tag.",
|
"enter_tags_here": "Gib hier Tags ein und drück die Eingabetaste nach jedem Tag.",
|
||||||
|
"enter_tags_here_short": "Gib Tags ein...",
|
||||||
"no_tags": "Es gibt bisher keine Tags."
|
"no_tags": "Es gibt bisher keine Tags."
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,6 @@
|
|||||||
"restore": "Wiederherstellen",
|
"restore": "Wiederherstellen",
|
||||||
"move": "verschieben",
|
"move": "verschieben",
|
||||||
"fork": "Aufspalten",
|
"fork": "Aufspalten",
|
||||||
"banned": "gesperrt",
|
|
||||||
"link": "Link",
|
"link": "Link",
|
||||||
"share": "Teilen",
|
"share": "Teilen",
|
||||||
"tools": "Tools",
|
"tools": "Tools",
|
||||||
@@ -34,9 +33,11 @@
|
|||||||
"login_to_subscribe": "Bitte registrieren oder einloggen um dieses Thema zu abonnieren",
|
"login_to_subscribe": "Bitte registrieren oder einloggen um dieses Thema zu abonnieren",
|
||||||
"markAsUnreadForAll.success": "Thema für Alle als ungelesen markiert.",
|
"markAsUnreadForAll.success": "Thema für Alle als ungelesen markiert.",
|
||||||
"watch": "Beobachten",
|
"watch": "Beobachten",
|
||||||
|
"unwatch": "Nicht mehr beobachten",
|
||||||
"watch.title": "Bei neuen Antworten benachrichtigen",
|
"watch.title": "Bei neuen Antworten benachrichtigen",
|
||||||
|
"unwatch.title": "Dieses Thema nicht mehr beobachten",
|
||||||
"share_this_post": "Diesen Beitrag teilen",
|
"share_this_post": "Diesen Beitrag teilen",
|
||||||
"thread_tools.title": "Tools",
|
"thread_tools.title": "Themen-Tools",
|
||||||
"thread_tools.markAsUnreadForAll": "Als ungelesen markieren",
|
"thread_tools.markAsUnreadForAll": "Als ungelesen markieren",
|
||||||
"thread_tools.pin": "Thema anpinnen",
|
"thread_tools.pin": "Thema anpinnen",
|
||||||
"thread_tools.unpin": "Thema nicht mehr anpinnen",
|
"thread_tools.unpin": "Thema nicht mehr anpinnen",
|
||||||
@@ -46,11 +47,11 @@
|
|||||||
"thread_tools.move_all": "Alle verschieben",
|
"thread_tools.move_all": "Alle verschieben",
|
||||||
"thread_tools.fork": "Thema aufspalten",
|
"thread_tools.fork": "Thema aufspalten",
|
||||||
"thread_tools.delete": "Thema löschen",
|
"thread_tools.delete": "Thema löschen",
|
||||||
"thread_tools.delete_confirm": "Sind Sie sicher, dass Sie dieses Thema löschen möchten?",
|
"thread_tools.delete_confirm": "Bist du sicher, dass du dieses Thema löschen möchtest?",
|
||||||
"thread_tools.restore": "Thema wiederherstellen",
|
"thread_tools.restore": "Thema wiederherstellen",
|
||||||
"thread_tools.restore_confirm": "Sind Sie sicher, dass Sie dieses Thema wiederherstellen möchten?",
|
"thread_tools.restore_confirm": "Bist du sicher, dass du dieses Thema wiederherstellen möchtest?",
|
||||||
"thread_tools.purge": "Thema bereinigen",
|
"thread_tools.purge": "Thema bereinigen",
|
||||||
"thread_tools.purge_confirm": "Sind Sie sicher, dass Sie dieses Thema bereinigen möchten?",
|
"thread_tools.purge_confirm": "Bist du sicher, dass du dieses Thema bereinigen möchtest?",
|
||||||
"topic_move_success": "Thema wurde erfolgreich zu %1 verschoben.",
|
"topic_move_success": "Thema wurde erfolgreich zu %1 verschoben.",
|
||||||
"post_delete_confirm": "Sind Sie sicher, dass Sie diesen Beitrag löschen möchten?",
|
"post_delete_confirm": "Sind Sie sicher, dass Sie diesen Beitrag löschen möchten?",
|
||||||
"post_restore_confirm": "Sind Sie sicher, dass Sie diesen Beitrag wiederherstellen möchten?",
|
"post_restore_confirm": "Sind Sie sicher, dass Sie diesen Beitrag wiederherstellen möchten?",
|
||||||
@@ -71,7 +72,7 @@
|
|||||||
"topic_will_be_moved_to": "Dieses Thema wird verschoben nach",
|
"topic_will_be_moved_to": "Dieses Thema wird verschoben nach",
|
||||||
"fork_topic_instruction": "Klicke auf die Beiträge, die du aufspalten willst",
|
"fork_topic_instruction": "Klicke auf die Beiträge, die du aufspalten willst",
|
||||||
"fork_no_pids": "Keine Beiträge ausgewählt!",
|
"fork_no_pids": "Keine Beiträge ausgewählt!",
|
||||||
"fork_success": "Thema erfolgreich aufgespalten!",
|
"fork_success": "Successfully forked topic! Click here to go to the forked topic.",
|
||||||
"composer.title_placeholder": "Hier den Titel des Themas eingeben...",
|
"composer.title_placeholder": "Hier den Titel des Themas eingeben...",
|
||||||
"composer.discard": "Verwerfen",
|
"composer.discard": "Verwerfen",
|
||||||
"composer.submit": "Absenden",
|
"composer.submit": "Absenden",
|
||||||
@@ -87,7 +88,7 @@
|
|||||||
"more_users_and_guests": "%1 weitere(r) Nutzer und %2 Gäste",
|
"more_users_and_guests": "%1 weitere(r) Nutzer und %2 Gäste",
|
||||||
"more_users": "%1 weitere(r) Nutzer",
|
"more_users": "%1 weitere(r) Nutzer",
|
||||||
"more_guests": "%1 weitere Gäste",
|
"more_guests": "%1 weitere Gäste",
|
||||||
"users_and_others": "%1 and %2 others",
|
"users_and_others": "%1 und %2 andere",
|
||||||
"sort_by": "Sortieren nach",
|
"sort_by": "Sortieren nach",
|
||||||
"oldest_to_newest": "Älteste zuerst",
|
"oldest_to_newest": "Älteste zuerst",
|
||||||
"newest_to_oldest": "Neuster zuerst",
|
"newest_to_oldest": "Neuster zuerst",
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
"username": "Nutzername",
|
"username": "Nutzername",
|
||||||
"email": "E-Mail",
|
"email": "E-Mail",
|
||||||
"confirm_email": "E-Mail bestätigen",
|
"confirm_email": "E-Mail bestätigen",
|
||||||
|
"delete_account": "Konto löschen",
|
||||||
|
"delete_account_confirm": "Bist du sicher, dass du dein Konto löschen möchtest? <br /><strong>Diese Aktion kann nicht rückgängig gemacht werden und du kannst deine Daten nicht wiederherstellen</strong><br /><br />Gebe deinen Benutzernamen ein, um zu bestätigen, dass du dieses Konto löschen möchtest.",
|
||||||
"fullname": "Kompletter Name",
|
"fullname": "Kompletter Name",
|
||||||
"website": "Homepage",
|
"website": "Homepage",
|
||||||
"location": "Wohnort",
|
"location": "Wohnort",
|
||||||
@@ -27,6 +29,7 @@
|
|||||||
"edit": "Ändern",
|
"edit": "Ändern",
|
||||||
"uploaded_picture": "Hochgeladene Bilder",
|
"uploaded_picture": "Hochgeladene Bilder",
|
||||||
"upload_new_picture": "Neues Bild hochladen",
|
"upload_new_picture": "Neues Bild hochladen",
|
||||||
|
"upload_new_picture_from_url": "Neues Bild von URL hochladen",
|
||||||
"current_password": "Aktuelles Passwort",
|
"current_password": "Aktuelles Passwort",
|
||||||
"change_password": "Passwort ändern",
|
"change_password": "Passwort ändern",
|
||||||
"change_password_error": "Ungültiges Passwort!",
|
"change_password_error": "Ungültiges Passwort!",
|
||||||
@@ -44,12 +47,14 @@
|
|||||||
"max": "max.",
|
"max": "max.",
|
||||||
"settings": "Einstellungen",
|
"settings": "Einstellungen",
|
||||||
"show_email": "Zeige meine E-Mail Adresse an.",
|
"show_email": "Zeige meine E-Mail Adresse an.",
|
||||||
|
"show_fullname": "Show My Full Name",
|
||||||
"digest_label": "Auszug abonnieren",
|
"digest_label": "Auszug abonnieren",
|
||||||
"digest_description": "Abonniere E-Mail-Benachrichtigungen für dieses Forum (neue Benachrichtigungen und Themen) nach einem festen Zeitplan.",
|
"digest_description": "Abonniere E-Mail-Benachrichtigungen für dieses Forum (neue Benachrichtigungen und Themen) nach einem festen Zeitplan.",
|
||||||
"digest_off": "Aus",
|
"digest_off": "Aus",
|
||||||
"digest_daily": "Täglich",
|
"digest_daily": "Täglich",
|
||||||
"digest_weekly": "Wöchentlich",
|
"digest_weekly": "Wöchentlich",
|
||||||
"digest_monthly": "Monatlich",
|
"digest_monthly": "Monatlich",
|
||||||
|
"send_chat_notifications": "Sende eine E-Mail, wenn eine neue Chat-Nachricht eingeht und ich nicht online bin",
|
||||||
"has_no_follower": "Dieser User hat noch keine Follower.",
|
"has_no_follower": "Dieser User hat noch keine Follower.",
|
||||||
"follows_no_one": "Dieser User folgt noch niemandem :(",
|
"follows_no_one": "Dieser User folgt noch niemandem :(",
|
||||||
"has_no_posts": "Dieser Nutzer hat noch nichts gepostet.",
|
"has_no_posts": "Dieser Nutzer hat noch nichts gepostet.",
|
||||||
@@ -61,5 +66,7 @@
|
|||||||
"posts_per_page": "Beiträge pro Seite",
|
"posts_per_page": "Beiträge pro Seite",
|
||||||
"notification_sounds": "Ton abspielen, wenn ich eine Benachrichtigung erhalte.",
|
"notification_sounds": "Ton abspielen, wenn ich eine Benachrichtigung erhalte.",
|
||||||
"browsing": "Browser Einstellungen",
|
"browsing": "Browser Einstellungen",
|
||||||
"open_links_in_new_tab": "Externe Links in neuem Tab öffnen?"
|
"open_links_in_new_tab": "Externe Links in neuem Tab öffnen?",
|
||||||
|
"follow_topics_you_reply_to": "Folge Themen, auf die du antwortest.",
|
||||||
|
"follow_topics_you_create": "Folge Themen, die du erstellst."
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,5 @@
|
|||||||
"search": "Suchen",
|
"search": "Suchen",
|
||||||
"enter_username": "Benutzer durchsuchen",
|
"enter_username": "Benutzer durchsuchen",
|
||||||
"load_more": "mehr laden",
|
"load_more": "mehr laden",
|
||||||
"user-not-found": "Benutzer nicht gefunden!",
|
|
||||||
"users-found-search-took": "%1 Benutzer gefunden! Die Suche dauerte %2 ms."
|
"users-found-search-took": "%1 Benutzer gefunden! Die Suche dauerte %2 ms."
|
||||||
}
|
}
|
||||||
@@ -3,5 +3,6 @@
|
|||||||
"no_topics": "<strong>Thar be no topics in 'tis category.</strong><br />Why don't ye give a go' postin' one?",
|
"no_topics": "<strong>Thar be no topics in 'tis category.</strong><br />Why don't ye give a go' postin' one?",
|
||||||
"browsing": "browsin'",
|
"browsing": "browsin'",
|
||||||
"no_replies": "No one has replied to ye message",
|
"no_replies": "No one has replied to ye message",
|
||||||
"share_this_category": "Share this category"
|
"share_this_category": "Share this category",
|
||||||
|
"ignore": "Ignore"
|
||||||
}
|
}
|
||||||
@@ -9,12 +9,15 @@
|
|||||||
"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.",
|
"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.",
|
||||||
"reset.text2": "To continue with the password reset, please click on the following link:",
|
"reset.text2": "To continue with the password reset, please click on the following link:",
|
||||||
"reset.cta": "Click here to reset your password",
|
"reset.cta": "Click here to reset your password",
|
||||||
"digest.notifications": "You have some unread notifications from %1:",
|
"digest.notifications": "You have unread notifications from %1:",
|
||||||
"digest.latest_topics": "Latest topics from %1",
|
"digest.latest_topics": "Latest topics from %1",
|
||||||
"digest.cta": "Click here to visit %1",
|
"digest.cta": "Click here to visit %1",
|
||||||
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
||||||
"digest.unsub.cta": "Click here to alter those settings",
|
|
||||||
"digest.daily.no_topics": "There have been no active topics in the past day",
|
"digest.daily.no_topics": "There have been no active topics in the past day",
|
||||||
|
"notif.chat.subject": "New chat message received from %1",
|
||||||
|
"notif.chat.cta": "Click here to continue the conversation",
|
||||||
|
"notif.chat.unsub.info": "This chat notification was sent to you due to your subscription settings.",
|
||||||
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
||||||
|
"unsub.cta": "Click here to alter those settings",
|
||||||
"closing": "Thanks!"
|
"closing": "Thanks!"
|
||||||
}
|
}
|
||||||
@@ -12,45 +12,53 @@
|
|||||||
"invalid-title": "Invalid title!",
|
"invalid-title": "Invalid title!",
|
||||||
"invalid-user-data": "Invalid User Data",
|
"invalid-user-data": "Invalid User Data",
|
||||||
"invalid-password": "Invalid Password",
|
"invalid-password": "Invalid Password",
|
||||||
|
"invalid-username-or-password": "Please specify both a username and password",
|
||||||
|
"invalid-search-term": "Invalid search term",
|
||||||
"invalid-pagination-value": "Invalid pagination value",
|
"invalid-pagination-value": "Invalid pagination value",
|
||||||
"username-taken": "Username taken",
|
"username-taken": "Username taken",
|
||||||
"email-taken": "Email taken",
|
"email-taken": "Email taken",
|
||||||
"email-not-confirmed": "Your email is not confirmed, please click here to confirm your email.",
|
"email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
|
||||||
"username-too-short": "Username too short",
|
"username-too-short": "Username too short",
|
||||||
|
"username-too-long": "Username too long",
|
||||||
"user-banned": "User banned",
|
"user-banned": "User banned",
|
||||||
"no-category": "Category doesn't exist",
|
"user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
|
||||||
"no-topic": "Topic doesn't exist",
|
"no-category": "Category does not exist",
|
||||||
"no-post": "Post doesn't exist",
|
"no-topic": "Topic does not exist",
|
||||||
"no-group": "Group doesn't exist",
|
"no-post": "Post does not exist",
|
||||||
"no-user": "User doesn't exist",
|
"no-group": "Group does not exist",
|
||||||
"no-teaser": "Teaser doesn't exist",
|
"no-user": "User does not exist",
|
||||||
"no-privileges": "You don't have enough privileges for this action.",
|
"no-teaser": "Teaser does not exist",
|
||||||
|
"no-privileges": "You do not have enough privileges for this action.",
|
||||||
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
|
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
|
||||||
"category-disabled": "Category disabled",
|
"category-disabled": "Category disabled",
|
||||||
"topic-locked": "Topic Locked",
|
"topic-locked": "Topic Locked",
|
||||||
"still-uploading": "Please wait for uploads to complete.",
|
"still-uploading": "Please wait for uploads to complete.",
|
||||||
"content-too-short": "Please enter a longer post. At least %1 characters.",
|
"content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
|
||||||
"title-too-short": "Please enter a longer title. At least %1 characters.",
|
"title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
|
||||||
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
|
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
|
||||||
"too-many-posts": "You can only post every %1 seconds.",
|
"too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
|
||||||
"file-too-big": "Maximum allowed file size is %1 kbs",
|
"file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
|
||||||
"cant-vote-self-post": "You cannot vote for your own post",
|
"cant-vote-self-post": "You cannot vote for your own post",
|
||||||
"already-favourited": "You already favourited this post",
|
"already-favourited": "You have already favourited this post",
|
||||||
"already-unfavourited": "You 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": "You can't ban other admins!",
|
||||||
"invalid-image-type": "Invalid image type",
|
"invalid-image-type": "Invalid image type",
|
||||||
"group-name-too-short": "Group name too short",
|
"group-name-too-short": "Group name too short",
|
||||||
"group-already-exists": "Group already exists",
|
"group-already-exists": "Group already exists",
|
||||||
"group-name-change-not-allowed": "Group name change not allowed",
|
"group-name-change-not-allowed": "Group name change not allowed",
|
||||||
"post-already-deleted": "Post already deleted",
|
"post-already-deleted": "This post has already been deleted",
|
||||||
"post-already-restored": "Post already restored",
|
"post-already-restored": "This post has already been restored",
|
||||||
"topic-already-deleted": "Topic already deleted",
|
"topic-already-deleted": "This topic has already been deleted",
|
||||||
"topic-already-restored": "Topic already restored",
|
"topic-already-restored": "This topic has already been restored",
|
||||||
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
||||||
"invalid-file": "Invalid File",
|
"invalid-file": "Invalid File",
|
||||||
"uploads-are-disabled": "Uploads are disabled",
|
"uploads-are-disabled": "Uploads are disabled",
|
||||||
"upload-error": "Upload Error : %1",
|
"upload-error": "Upload Error : %1",
|
||||||
"signature-too-long": "Signature can't be longer than %1 characters!",
|
"signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
|
||||||
"cant-chat-with-yourself": "You can't chat with yourself!",
|
"cant-chat-with-yourself": "You can't chat with yourself!",
|
||||||
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post"
|
"reputation-system-disabled": "Reputation system 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-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."
|
||||||
}
|
}
|
||||||
@@ -71,5 +71,6 @@
|
|||||||
"guest": "Guest",
|
"guest": "Guest",
|
||||||
"guests": "Guests",
|
"guests": "Guests",
|
||||||
"updated.title": "Forum Updated",
|
"updated.title": "Forum Updated",
|
||||||
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page."
|
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
|
||||||
|
"privacy": "Privacy"
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"groups": "Groups",
|
||||||
"view_group": "View Group",
|
"view_group": "View Group",
|
||||||
"details.title": "Group Details",
|
"details.title": "Group Details",
|
||||||
"details.members": "Member List",
|
"details.members": "Member List",
|
||||||
|
|||||||
@@ -12,6 +12,10 @@
|
|||||||
"chat.message-history": "Message History",
|
"chat.message-history": "Message History",
|
||||||
"chat.pop-out": "Pop out chat",
|
"chat.pop-out": "Pop out chat",
|
||||||
"chat.maximize": "Maximize",
|
"chat.maximize": "Maximize",
|
||||||
|
"chat.yesterday": "Yesterday",
|
||||||
|
"chat.seven_days": "7 Days",
|
||||||
|
"chat.thirty_days": "30 Days",
|
||||||
|
"chat.three_months": "3 Months",
|
||||||
"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?"
|
||||||
|
|||||||
@@ -10,11 +10,15 @@
|
|||||||
"new_notification": "New Notification",
|
"new_notification": "New Notification",
|
||||||
"you_have_unread_notifications": "You have unread notifications.",
|
"you_have_unread_notifications": "You have unread notifications.",
|
||||||
"new_message_from": "New message from <strong>%1</strong>",
|
"new_message_from": "New message from <strong>%1</strong>",
|
||||||
"upvoted_your_post": "<strong>%1</strong> has upvoted your post.",
|
"upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
|
||||||
"favourited_your_post": "<strong>%1</strong> has favourited your post.",
|
"moved_your_post": "<strong>%1</strong> has moved your post.",
|
||||||
"user_flagged_post": "<strong>%1</strong> flagged a post.",
|
"moved_your_topic": "<strong>%1</strong> has moved your topic.",
|
||||||
|
"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> has posted a reply to: <strong>%2</strong>",
|
"user_posted_to": "<strong>%1</strong> has posted a reply to: <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.",
|
||||||
"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": "An error occurred...",
|
||||||
|
|||||||
@@ -12,5 +12,7 @@
|
|||||||
"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.favourites": "%1's Favourite Posts",
|
"user.favourites": "%1's Favourite Posts",
|
||||||
"user.settings": "User Settings"
|
"user.settings": "User Settings",
|
||||||
|
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
|
||||||
|
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
|
||||||
}
|
}
|
||||||
@@ -4,5 +4,6 @@
|
|||||||
"week": "Week",
|
"week": "Week",
|
||||||
"month": "Month",
|
"month": "Month",
|
||||||
"year": "Year",
|
"year": "Year",
|
||||||
|
"alltime": "All Time",
|
||||||
"no_recent_topics": "There be no recent topics."
|
"no_recent_topics": "There be no recent topics."
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
{
|
{
|
||||||
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)"
|
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
|
||||||
|
"no-matches": "No posts found"
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,6 @@
|
|||||||
"no_tag_topics": "There are no topics with this tag.",
|
"no_tag_topics": "There are no topics with this tag.",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"enter_tags_here": "Enter tags here. Press enter after each tag.",
|
"enter_tags_here": "Enter tags here. Press enter after each tag.",
|
||||||
|
"enter_tags_here_short": "Enter tags...",
|
||||||
"no_tags": "There are no tags yet."
|
"no_tags": "There are no tags yet."
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,6 @@
|
|||||||
"restore": "Restore",
|
"restore": "Restore",
|
||||||
"move": "Move",
|
"move": "Move",
|
||||||
"fork": "Fork",
|
"fork": "Fork",
|
||||||
"banned": "banned",
|
|
||||||
"link": "Link",
|
"link": "Link",
|
||||||
"share": "Share",
|
"share": "Share",
|
||||||
"tools": "Tools",
|
"tools": "Tools",
|
||||||
@@ -28,15 +27,17 @@
|
|||||||
"flag_title": "Flag this post for moderation",
|
"flag_title": "Flag this post for moderation",
|
||||||
"flag_confirm": "Are you sure you want to flag this post?",
|
"flag_confirm": "Are you sure you want to flag this post?",
|
||||||
"flag_success": "This post has been flagged for moderation.",
|
"flag_success": "This post has been flagged for moderation.",
|
||||||
"deleted_message": "This thread has been deleted. Only users with thread management privileges can see it.",
|
"deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
|
||||||
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
||||||
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
||||||
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
||||||
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
||||||
"watch": "Watch",
|
"watch": "Watch",
|
||||||
|
"unwatch": "Unwatch",
|
||||||
"watch.title": "Be notified of new replies in this topic",
|
"watch.title": "Be notified of new replies in this topic",
|
||||||
|
"unwatch.title": "Stop watching this topic",
|
||||||
"share_this_post": "Share this Post",
|
"share_this_post": "Share this Post",
|
||||||
"thread_tools.title": "Thread Tools",
|
"thread_tools.title": "Topic Tools",
|
||||||
"thread_tools.markAsUnreadForAll": "Mark Unread",
|
"thread_tools.markAsUnreadForAll": "Mark Unread",
|
||||||
"thread_tools.pin": "Pin Topic",
|
"thread_tools.pin": "Pin Topic",
|
||||||
"thread_tools.unpin": "Unpin Topic",
|
"thread_tools.unpin": "Unpin Topic",
|
||||||
@@ -46,11 +47,11 @@
|
|||||||
"thread_tools.move_all": "Move All",
|
"thread_tools.move_all": "Move All",
|
||||||
"thread_tools.fork": "Fork Topic",
|
"thread_tools.fork": "Fork Topic",
|
||||||
"thread_tools.delete": "Delete Topic",
|
"thread_tools.delete": "Delete Topic",
|
||||||
"thread_tools.delete_confirm": "Are you sure you want to delete this thread?",
|
"thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
|
||||||
"thread_tools.restore": "Restore Topic",
|
"thread_tools.restore": "Restore Topic",
|
||||||
"thread_tools.restore_confirm": "Are you sure you want to restore this thread?",
|
"thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
|
||||||
"thread_tools.purge": "Purge Topic",
|
"thread_tools.purge": "Purge Topic",
|
||||||
"thread_tools.purge_confirm": "Are you sure you want to purge this thread?",
|
"thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
|
||||||
"topic_move_success": "This topic has been successfully moved to %1",
|
"topic_move_success": "This topic has been successfully moved to %1",
|
||||||
"post_delete_confirm": "Are you sure you want to delete this post?",
|
"post_delete_confirm": "Are you sure you want to delete this post?",
|
||||||
"post_restore_confirm": "Are you sure you want to restore this post?",
|
"post_restore_confirm": "Are you sure you want to restore this post?",
|
||||||
@@ -71,7 +72,7 @@
|
|||||||
"topic_will_be_moved_to": "This topic will be moved to the category",
|
"topic_will_be_moved_to": "This topic will be moved to the category",
|
||||||
"fork_topic_instruction": "Click the posts you want to fork",
|
"fork_topic_instruction": "Click the posts you want to fork",
|
||||||
"fork_no_pids": "No posts selected!",
|
"fork_no_pids": "No posts selected!",
|
||||||
"fork_success": "Succesfully 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.discard": "Discard",
|
"composer.discard": "Discard",
|
||||||
"composer.submit": "Submit",
|
"composer.submit": "Submit",
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
"username": "User Name",
|
"username": "User Name",
|
||||||
"email": "Email",
|
"email": "Email",
|
||||||
"confirm_email": "Confirm Email",
|
"confirm_email": "Confirm Email",
|
||||||
|
"delete_account": "Delete 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.",
|
||||||
"fullname": "Full Name",
|
"fullname": "Full Name",
|
||||||
"website": "Website",
|
"website": "Website",
|
||||||
"location": "Location",
|
"location": "Location",
|
||||||
@@ -27,6 +29,7 @@
|
|||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"uploaded_picture": "Uploaded Picture",
|
"uploaded_picture": "Uploaded Picture",
|
||||||
"upload_new_picture": "Upload New Picture",
|
"upload_new_picture": "Upload New Picture",
|
||||||
|
"upload_new_picture_from_url": "Upload New Picture From URL",
|
||||||
"current_password": "Current Password",
|
"current_password": "Current Password",
|
||||||
"change_password": "Change Password",
|
"change_password": "Change Password",
|
||||||
"change_password_error": "Invalid Password!",
|
"change_password_error": "Invalid Password!",
|
||||||
@@ -44,12 +47,14 @@
|
|||||||
"max": "max.",
|
"max": "max.",
|
||||||
"settings": "Settings",
|
"settings": "Settings",
|
||||||
"show_email": "Show My Email",
|
"show_email": "Show My Email",
|
||||||
|
"show_fullname": "Show My Full Name",
|
||||||
"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",
|
||||||
"digest_daily": "Daily",
|
"digest_daily": "Daily",
|
||||||
"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",
|
||||||
"has_no_follower": "This user doesn't have any followers :(",
|
"has_no_follower": "This user doesn't have any followers :(",
|
||||||
"follows_no_one": "This user isn't following anyone :(",
|
"follows_no_one": "This user isn't following anyone :(",
|
||||||
"has_no_posts": "This user didn't post anything yet.",
|
"has_no_posts": "This user didn't post anything yet.",
|
||||||
@@ -61,5 +66,7 @@
|
|||||||
"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.",
|
||||||
|
"follow_topics_you_create": "Follow topics you create."
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,5 @@
|
|||||||
"search": "Search",
|
"search": "Search",
|
||||||
"enter_username": "Gimme y'er handle",
|
"enter_username": "Gimme y'er handle",
|
||||||
"load_more": "Load More",
|
"load_more": "Load More",
|
||||||
"user-not-found": "User not found!",
|
|
||||||
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
|
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
|
||||||
}
|
}
|
||||||
@@ -5,5 +5,6 @@
|
|||||||
"browsing": "browsing",
|
"browsing": "browsing",
|
||||||
"no_replies": "No one has replied",
|
"no_replies": "No one has replied",
|
||||||
|
|
||||||
"share_this_category": "Share this category"
|
"share_this_category": "Share this category",
|
||||||
|
"ignore": "Ignore"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,14 +13,19 @@
|
|||||||
"reset.text2": "To continue with the password reset, please click on the following link:",
|
"reset.text2": "To continue with the password reset, please click on the following link:",
|
||||||
"reset.cta": "Click here to reset your password",
|
"reset.cta": "Click here to reset your password",
|
||||||
|
|
||||||
"digest.notifications": "You have some unread notifications from %1:",
|
"digest.notifications": "You have unread notifications from %1:",
|
||||||
"digest.latest_topics": "Latest topics from %1",
|
"digest.latest_topics": "Latest topics from %1",
|
||||||
"digest.cta": "Click here to visit %1",
|
"digest.cta": "Click here to visit %1",
|
||||||
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
||||||
"digest.unsub.cta": "Click here to alter those settings",
|
|
||||||
"digest.daily.no_topics": "There have been no active topics in the past day",
|
"digest.daily.no_topics": "There have been no active topics in the past day",
|
||||||
|
|
||||||
|
"notif.chat.subject": "New chat message received from %1",
|
||||||
|
"notif.chat.cta": "Click here to continue the conversation",
|
||||||
|
"notif.chat.unsub.info": "This chat notification was sent to you due to your subscription settings.",
|
||||||
|
|
||||||
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
||||||
|
|
||||||
|
"unsub.cta": "Click here to alter those settings",
|
||||||
|
|
||||||
"closing": "Thanks!"
|
"closing": "Thanks!"
|
||||||
}
|
}
|
||||||
@@ -15,24 +15,28 @@
|
|||||||
"invalid-title": "Invalid title",
|
"invalid-title": "Invalid title",
|
||||||
"invalid-user-data": "Invalid User Data",
|
"invalid-user-data": "Invalid User Data",
|
||||||
"invalid-password": "Invalid Password",
|
"invalid-password": "Invalid Password",
|
||||||
|
"invalid-username-or-password": "Please specify both a username and password",
|
||||||
|
"invalid-search-term": "Invalid search term",
|
||||||
|
|
||||||
"invalid-pagination-value": "Invalid pagination value",
|
"invalid-pagination-value": "Invalid pagination value",
|
||||||
|
|
||||||
"username-taken": "Username taken",
|
"username-taken": "Username taken",
|
||||||
"email-taken": "Email taken",
|
"email-taken": "Email taken",
|
||||||
"email-not-confirmed": "Your email is not confirmed, please click here to confirm your email.",
|
"email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
|
||||||
|
|
||||||
"username-too-short": "Username too short",
|
"username-too-short": "Username too short",
|
||||||
|
"username-too-long": "Username too long",
|
||||||
|
|
||||||
"user-banned": "User banned",
|
"user-banned": "User banned",
|
||||||
|
"user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
|
||||||
|
|
||||||
"no-category": "Category doesn't exist",
|
"no-category": "Category does not exist",
|
||||||
"no-topic": "Topic doesn't exist",
|
"no-topic": "Topic does not exist",
|
||||||
"no-post": "Post doesn't exist",
|
"no-post": "Post does not exist",
|
||||||
"no-group": "Group doesn't exist",
|
"no-group": "Group does not exist",
|
||||||
"no-user": "User doesn't exist",
|
"no-user": "User does not exist",
|
||||||
"no-teaser": "Teaser doesn't exist",
|
"no-teaser": "Teaser does not exist",
|
||||||
"no-privileges": "You don't have enough privileges for this action.",
|
"no-privileges": "You do not have enough privileges for this action.",
|
||||||
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
|
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
|
||||||
|
|
||||||
"category-disabled": "Category disabled",
|
"category-disabled": "Category disabled",
|
||||||
@@ -40,16 +44,16 @@
|
|||||||
"topic-locked": "Topic Locked",
|
"topic-locked": "Topic Locked",
|
||||||
|
|
||||||
"still-uploading": "Please wait for uploads to complete.",
|
"still-uploading": "Please wait for uploads to complete.",
|
||||||
"content-too-short": "Please enter a longer post. At least %1 characters.",
|
"content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
|
||||||
"title-too-short": "Please enter a longer title. At least %1 characters.",
|
"title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
|
||||||
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
|
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
|
||||||
"invalid-title": "Invalid title!",
|
"invalid-title": "Invalid title!",
|
||||||
"too-many-posts": "You can only post every %1 seconds.",
|
"too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
|
||||||
"file-too-big": "Maximum allowed file size is %1 kbs",
|
"file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
|
||||||
|
|
||||||
"cant-vote-self-post": "You cannot vote for your own post",
|
"cant-vote-self-post": "You cannot vote for your own post",
|
||||||
"already-favourited": "You already favourited this post",
|
"already-favourited": "You have already favourited this post",
|
||||||
"already-unfavourited": "You 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": "You can't ban other admins!",
|
||||||
|
|
||||||
@@ -59,21 +63,25 @@
|
|||||||
"group-already-exists": "Group already exists",
|
"group-already-exists": "Group already exists",
|
||||||
"group-name-change-not-allowed": "Group name change not allowed",
|
"group-name-change-not-allowed": "Group name change not allowed",
|
||||||
|
|
||||||
"post-already-deleted": "Post already deleted",
|
"post-already-deleted": "This post has already been deleted",
|
||||||
"post-already-restored": "Post already restored",
|
"post-already-restored": "This post has already been restored",
|
||||||
|
|
||||||
"topic-already-deleted": "Topic already deleted",
|
|
||||||
"topic-already-restored": "Topic already restored",
|
|
||||||
|
|
||||||
|
"topic-already-deleted": "This topic has already been deleted",
|
||||||
|
"topic-already-restored": "This topic has already been restored",
|
||||||
|
|
||||||
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
||||||
"invalid-file": "Invalid File",
|
"invalid-file": "Invalid File",
|
||||||
"uploads-are-disabled": "Uploads are disabled",
|
"uploads-are-disabled": "Uploads are disabled",
|
||||||
"upload-error": "Upload Error : %1",
|
"upload-error": "Upload Error : %1",
|
||||||
|
|
||||||
"signature-too-long" : "Signature can't be longer than %1 characters!",
|
"signature-too-long" : "Sorry, your signature cannot be longer than %1 characters.",
|
||||||
|
|
||||||
"cant-chat-with-yourself": "You can't chat with yourself!",
|
"cant-chat-with-yourself": "You can't chat with yourself!",
|
||||||
|
|
||||||
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post"
|
"reputation-system-disabled": "Reputation system 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-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."
|
||||||
}
|
}
|
||||||
@@ -94,5 +94,7 @@
|
|||||||
"guests": "Guests",
|
"guests": "Guests",
|
||||||
|
|
||||||
"updated.title": "Forum Updated",
|
"updated.title": "Forum Updated",
|
||||||
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page."
|
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
|
||||||
|
|
||||||
|
"privacy": "Privacy"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"groups": "Groups",
|
||||||
"view_group": "View Group",
|
"view_group": "View Group",
|
||||||
|
|
||||||
"details.title": "Group Details",
|
"details.title": "Group Details",
|
||||||
|
|||||||
@@ -12,6 +12,10 @@
|
|||||||
"chat.message-history": "Message History",
|
"chat.message-history": "Message History",
|
||||||
"chat.pop-out": "Pop out chat",
|
"chat.pop-out": "Pop out chat",
|
||||||
"chat.maximize": "Maximize",
|
"chat.maximize": "Maximize",
|
||||||
|
"chat.yesterday": "Yesterday",
|
||||||
|
"chat.seven_days": "7 Days",
|
||||||
|
"chat.thirty_days": "30 Days",
|
||||||
|
"chat.three_months": "3 Months",
|
||||||
|
|
||||||
"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:",
|
||||||
|
|||||||
@@ -12,11 +12,15 @@
|
|||||||
"you_have_unread_notifications": "You have unread notifications.",
|
"you_have_unread_notifications": "You have unread notifications.",
|
||||||
|
|
||||||
"new_message_from": "New message from <strong>%1</strong>",
|
"new_message_from": "New message from <strong>%1</strong>",
|
||||||
"upvoted_your_post": "<strong>%1</strong> has upvoted your post.",
|
"upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
|
||||||
"favourited_your_post": "<strong>%1</strong> has favourited your post.",
|
"moved_your_post": "<strong>%1</strong> has moved your post.",
|
||||||
"user_flagged_post": "<strong>%1</strong> flagged a post.",
|
"moved_your_topic": "<strong>%1</strong> has moved your topic.",
|
||||||
|
"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> has posted a reply to: <strong>%2</strong>",
|
"user_posted_to" : "<strong>%1</strong> has posted a reply to: <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.",
|
||||||
|
|
||||||
"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.",
|
||||||
|
|||||||
@@ -12,5 +12,8 @@
|
|||||||
"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.favourites": "%1's Favourite Posts",
|
"user.favourites": "%1's Favourite Posts",
|
||||||
"user.settings": "User Settings"
|
"user.settings": "User Settings",
|
||||||
|
|
||||||
|
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
|
||||||
|
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
|
||||||
}
|
}
|
||||||
@@ -4,5 +4,6 @@
|
|||||||
"week": "Week",
|
"week": "Week",
|
||||||
"month": "Month",
|
"month": "Month",
|
||||||
"year": "Year",
|
"year": "Year",
|
||||||
|
"alltime": "All Time",
|
||||||
"no_recent_topics": "There are no recent topics."
|
"no_recent_topics": "There are no recent topics."
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
{
|
{
|
||||||
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)"
|
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
|
||||||
|
"no-matches": "No posts found"
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,6 @@
|
|||||||
"no_tag_topics": "There are no topics with this tag.",
|
"no_tag_topics": "There are no topics with this tag.",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"enter_tags_here": "Enter tags here. Press enter after each tag.",
|
"enter_tags_here": "Enter tags here. Press enter after each tag.",
|
||||||
|
"enter_tags_here_short": "Enter tags...",
|
||||||
"no_tags": "There are no tags yet."
|
"no_tags": "There are no tags yet."
|
||||||
}
|
}
|
||||||
@@ -21,7 +21,6 @@
|
|||||||
"restore": "Restore",
|
"restore": "Restore",
|
||||||
"move": "Move",
|
"move": "Move",
|
||||||
"fork": "Fork",
|
"fork": "Fork",
|
||||||
"banned": "banned",
|
|
||||||
"link": "Link",
|
"link": "Link",
|
||||||
"share": "Share",
|
"share": "Share",
|
||||||
"tools": "Tools",
|
"tools": "Tools",
|
||||||
@@ -33,7 +32,7 @@
|
|||||||
"flag_title": "Flag this post for moderation",
|
"flag_title": "Flag this post for moderation",
|
||||||
"flag_confirm": "Are you sure you want to flag this post?",
|
"flag_confirm": "Are you sure you want to flag this post?",
|
||||||
"flag_success": "This post has been flagged for moderation.",
|
"flag_success": "This post has been flagged for moderation.",
|
||||||
"deleted_message": "This thread has been deleted. Only users with thread management privileges can see it.",
|
"deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
|
||||||
|
|
||||||
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
||||||
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
||||||
@@ -43,10 +42,12 @@
|
|||||||
"markAsUnreadForAll.success" : "Topic marked as unread for all.",
|
"markAsUnreadForAll.success" : "Topic marked as unread for all.",
|
||||||
|
|
||||||
"watch": "Watch",
|
"watch": "Watch",
|
||||||
|
"unwatch": "Unwatch",
|
||||||
"watch.title": "Be notified of new replies in this topic",
|
"watch.title": "Be notified of new replies in this topic",
|
||||||
|
"unwatch.title": "Stop watching this topic",
|
||||||
"share_this_post": "Share this Post",
|
"share_this_post": "Share this Post",
|
||||||
|
|
||||||
"thread_tools.title": "Thread Tools",
|
"thread_tools.title": "Topic Tools",
|
||||||
"thread_tools.markAsUnreadForAll": "Mark Unread",
|
"thread_tools.markAsUnreadForAll": "Mark Unread",
|
||||||
"thread_tools.pin": "Pin Topic",
|
"thread_tools.pin": "Pin Topic",
|
||||||
"thread_tools.unpin": "Unpin Topic",
|
"thread_tools.unpin": "Unpin Topic",
|
||||||
@@ -56,11 +57,11 @@
|
|||||||
"thread_tools.move_all": "Move All",
|
"thread_tools.move_all": "Move All",
|
||||||
"thread_tools.fork": "Fork Topic",
|
"thread_tools.fork": "Fork Topic",
|
||||||
"thread_tools.delete": "Delete Topic",
|
"thread_tools.delete": "Delete Topic",
|
||||||
"thread_tools.delete_confirm": "Are you sure you want to delete this thread?",
|
"thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
|
||||||
"thread_tools.restore": "Restore Topic",
|
"thread_tools.restore": "Restore Topic",
|
||||||
"thread_tools.restore_confirm": "Are you sure you want to restore this thread?",
|
"thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
|
||||||
"thread_tools.purge": "Purge Topic",
|
"thread_tools.purge": "Purge Topic",
|
||||||
"thread_tools.purge_confirm" : "Are you sure you want to purge this thread?",
|
"thread_tools.purge_confirm" : "Are you sure you want to purge this topic?",
|
||||||
|
|
||||||
"topic_move_success": "This topic has been successfully moved to %1",
|
"topic_move_success": "This topic has been successfully moved to %1",
|
||||||
|
|
||||||
@@ -86,7 +87,7 @@
|
|||||||
"topic_will_be_moved_to": "This topic will be moved to the category",
|
"topic_will_be_moved_to": "This topic will be moved to the category",
|
||||||
"fork_topic_instruction": "Click the posts you want to fork",
|
"fork_topic_instruction": "Click the posts you want to fork",
|
||||||
"fork_no_pids": "No posts selected!",
|
"fork_no_pids": "No posts selected!",
|
||||||
"fork_success": "Succesfully 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.discard": "Discard",
|
"composer.discard": "Discard",
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
"email": "Email",
|
"email": "Email",
|
||||||
"confirm_email": "Confirm Email",
|
"confirm_email": "Confirm Email",
|
||||||
|
"delete_account": "Delete 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.",
|
||||||
|
|
||||||
"fullname": "Full Name",
|
"fullname": "Full Name",
|
||||||
"website": "Website",
|
"website": "Website",
|
||||||
@@ -30,6 +32,7 @@
|
|||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"uploaded_picture": "Uploaded Picture",
|
"uploaded_picture": "Uploaded Picture",
|
||||||
"upload_new_picture": "Upload New Picture",
|
"upload_new_picture": "Upload New Picture",
|
||||||
|
"upload_new_picture_from_url": "Upload New Picture From URL",
|
||||||
"current_password": "Current Password",
|
"current_password": "Current Password",
|
||||||
"change_password": "Change Password",
|
"change_password": "Change Password",
|
||||||
"change_password_error": "Invalid Password!",
|
"change_password_error": "Invalid Password!",
|
||||||
@@ -49,12 +52,14 @@
|
|||||||
|
|
||||||
"settings": "Settings",
|
"settings": "Settings",
|
||||||
"show_email": "Show My Email",
|
"show_email": "Show My Email",
|
||||||
|
"show_fullname": "Show My Full Name",
|
||||||
"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",
|
||||||
"digest_daily": "Daily",
|
"digest_daily": "Daily",
|
||||||
"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",
|
||||||
|
|
||||||
"has_no_follower": "This user doesn't have any followers :(",
|
"has_no_follower": "This user doesn't have any followers :(",
|
||||||
"follows_no_one": "This user isn't following anyone :(",
|
"follows_no_one": "This user isn't following anyone :(",
|
||||||
@@ -71,5 +76,8 @@
|
|||||||
"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.",
|
||||||
|
"follow_topics_you_create": "Follow topics you create."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,5 @@
|
|||||||
"search": "Search",
|
"search": "Search",
|
||||||
"enter_username": "Enter a username to search",
|
"enter_username": "Enter a username to search",
|
||||||
"load_more": "Load More",
|
"load_more": "Load More",
|
||||||
"user-not-found": "User not found!",
|
|
||||||
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
|
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
|
||||||
}
|
}
|
||||||
@@ -3,5 +3,6 @@
|
|||||||
"no_topics": "<strong>There are no topics in this category.</strong><br />Why don't you try posting one?",
|
"no_topics": "<strong>There are no topics in this category.</strong><br />Why don't you try posting one?",
|
||||||
"browsing": "browsing",
|
"browsing": "browsing",
|
||||||
"no_replies": "No one has replied",
|
"no_replies": "No one has replied",
|
||||||
"share_this_category": "Share this category"
|
"share_this_category": "Share this category",
|
||||||
|
"ignore": "Ignore"
|
||||||
}
|
}
|
||||||
@@ -9,12 +9,15 @@
|
|||||||
"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.",
|
"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.",
|
||||||
"reset.text2": "To continue with the password reset, please click on the following link:",
|
"reset.text2": "To continue with the password reset, please click on the following link:",
|
||||||
"reset.cta": "Click here to reset your password",
|
"reset.cta": "Click here to reset your password",
|
||||||
"digest.notifications": "You have some unread notifications from %1:",
|
"digest.notifications": "You have unread notifications from %1:",
|
||||||
"digest.latest_topics": "Latest topics from %1",
|
"digest.latest_topics": "Latest topics from %1",
|
||||||
"digest.cta": "Click here to visit %1",
|
"digest.cta": "Click here to visit %1",
|
||||||
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
||||||
"digest.unsub.cta": "Click here to alter those settings",
|
|
||||||
"digest.daily.no_topics": "There have been no active topics in the past day",
|
"digest.daily.no_topics": "There have been no active topics in the past day",
|
||||||
|
"notif.chat.subject": "New chat message received from %1",
|
||||||
|
"notif.chat.cta": "Click here to continue the conversation",
|
||||||
|
"notif.chat.unsub.info": "This chat notification was sent to you due to your subscription settings.",
|
||||||
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
||||||
|
"unsub.cta": "Click here to alter those settings",
|
||||||
"closing": "Thanks!"
|
"closing": "Thanks!"
|
||||||
}
|
}
|
||||||
@@ -12,45 +12,53 @@
|
|||||||
"invalid-title": "Invalid title!",
|
"invalid-title": "Invalid title!",
|
||||||
"invalid-user-data": "Invalid User Data",
|
"invalid-user-data": "Invalid User Data",
|
||||||
"invalid-password": "Invalid Password",
|
"invalid-password": "Invalid Password",
|
||||||
|
"invalid-username-or-password": "Please specify both a username and password",
|
||||||
|
"invalid-search-term": "Invalid search term",
|
||||||
"invalid-pagination-value": "Invalid pagination value",
|
"invalid-pagination-value": "Invalid pagination value",
|
||||||
"username-taken": "Username taken",
|
"username-taken": "Username taken",
|
||||||
"email-taken": "Email taken",
|
"email-taken": "Email taken",
|
||||||
"email-not-confirmed": "Your email is not confirmed, please click here to confirm your email.",
|
"email-not-confirmed": "Your email has not been confirmed yet, please click here to confirm your email.",
|
||||||
"username-too-short": "Username too short",
|
"username-too-short": "Username too short",
|
||||||
|
"username-too-long": "Username too long",
|
||||||
"user-banned": "User banned",
|
"user-banned": "User banned",
|
||||||
"no-category": "Category doesn't exist",
|
"user-too-new": "Sorry, you are required to wait %1 seconds before making your first post",
|
||||||
"no-topic": "Topic doesn't exist",
|
"no-category": "Category does not exist",
|
||||||
"no-post": "Post doesn't exist",
|
"no-topic": "Topic does not exist",
|
||||||
"no-group": "Group doesn't exist",
|
"no-post": "Post does not exist",
|
||||||
"no-user": "User doesn't exist",
|
"no-group": "Group does not exist",
|
||||||
"no-teaser": "Teaser doesn't exist",
|
"no-user": "User does not exist",
|
||||||
"no-privileges": "You don't have enough privileges for this action.",
|
"no-teaser": "Teaser does not exist",
|
||||||
|
"no-privileges": "You do not have enough privileges for this action.",
|
||||||
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
|
"no-emailers-configured": "No email plugins were loaded, so a test email could not be sent",
|
||||||
"category-disabled": "Category disabled",
|
"category-disabled": "Category disabled",
|
||||||
"topic-locked": "Topic Locked",
|
"topic-locked": "Topic Locked",
|
||||||
"still-uploading": "Please wait for uploads to complete.",
|
"still-uploading": "Please wait for uploads to complete.",
|
||||||
"content-too-short": "Please enter a longer post. At least %1 characters.",
|
"content-too-short": "Please enter a longer post. Posts should contain at least %1 characters.",
|
||||||
"title-too-short": "Please enter a longer title. At least %1 characters.",
|
"title-too-short": "Please enter a longer title. Titles should contain at least %1 characters.",
|
||||||
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
|
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 characters.",
|
||||||
"too-many-posts": "You can only post every %1 seconds.",
|
"too-many-posts": "You can only post once every %1 seconds - please wait before posting again",
|
||||||
"file-too-big": "Maximum allowed file size is %1 kbs",
|
"file-too-big": "Maximum allowed file size is %1 kbs - please upload a smaller file",
|
||||||
"cant-vote-self-post": "You cannot vote for your own post",
|
"cant-vote-self-post": "You cannot vote for your own post",
|
||||||
"already-favourited": "You already favorited this post",
|
"already-favourited": "You have already favourited this post",
|
||||||
"already-unfavourited": "You already unfavorited this post",
|
"already-unfavourited": "You have already unfavourited this post",
|
||||||
"cant-ban-other-admins": "You can't ban other admins!",
|
"cant-ban-other-admins": "You can't ban other admins!",
|
||||||
"invalid-image-type": "Invalid image type",
|
"invalid-image-type": "Invalid image type",
|
||||||
"group-name-too-short": "Group name too short",
|
"group-name-too-short": "Group name too short",
|
||||||
"group-already-exists": "Group already exists",
|
"group-already-exists": "Group already exists",
|
||||||
"group-name-change-not-allowed": "Group name change not allowed",
|
"group-name-change-not-allowed": "Group name change not allowed",
|
||||||
"post-already-deleted": "Post already deleted",
|
"post-already-deleted": "This post has already been deleted",
|
||||||
"post-already-restored": "Post already restored",
|
"post-already-restored": "This post has already been restored",
|
||||||
"topic-already-deleted": "Topic already deleted",
|
"topic-already-deleted": "This topic has already been deleted",
|
||||||
"topic-already-restored": "Topic already restored",
|
"topic-already-restored": "This topic has already been restored",
|
||||||
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
||||||
"invalid-file": "Invalid File",
|
"invalid-file": "Invalid File",
|
||||||
"uploads-are-disabled": "Uploads are disabled",
|
"uploads-are-disabled": "Uploads are disabled",
|
||||||
"upload-error": "Upload Error : %1",
|
"upload-error": "Upload Error : %1",
|
||||||
"signature-too-long": "Signature can't be longer than %1 characters!",
|
"signature-too-long": "Sorry, your signature cannot be longer than %1 characters.",
|
||||||
"cant-chat-with-yourself": "You can't chat with yourself!",
|
"cant-chat-with-yourself": "You can't chat with yourself!",
|
||||||
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post"
|
"reputation-system-disabled": "Reputation system 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-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."
|
||||||
}
|
}
|
||||||
@@ -71,5 +71,6 @@
|
|||||||
"guest": "Guest",
|
"guest": "Guest",
|
||||||
"guests": "Guests",
|
"guests": "Guests",
|
||||||
"updated.title": "Forum Updated",
|
"updated.title": "Forum Updated",
|
||||||
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page."
|
"updated.message": "This forum has just been updated to the latest version. Click here to refresh the page.",
|
||||||
|
"privacy": "Privacy"
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"groups": "Groups",
|
||||||
"view_group": "View Group",
|
"view_group": "View Group",
|
||||||
"details.title": "Group Details",
|
"details.title": "Group Details",
|
||||||
"details.members": "Member List",
|
"details.members": "Member List",
|
||||||
|
|||||||
@@ -12,6 +12,10 @@
|
|||||||
"chat.message-history": "Message History",
|
"chat.message-history": "Message History",
|
||||||
"chat.pop-out": "Pop out chat",
|
"chat.pop-out": "Pop out chat",
|
||||||
"chat.maximize": "Maximize",
|
"chat.maximize": "Maximize",
|
||||||
|
"chat.yesterday": "Yesterday",
|
||||||
|
"chat.seven_days": "7 Days",
|
||||||
|
"chat.thirty_days": "30 Days",
|
||||||
|
"chat.three_months": "3 Months",
|
||||||
"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?"
|
||||||
|
|||||||
@@ -10,11 +10,15 @@
|
|||||||
"new_notification": "New Notification",
|
"new_notification": "New Notification",
|
||||||
"you_have_unread_notifications": "You have unread notifications.",
|
"you_have_unread_notifications": "You have unread notifications.",
|
||||||
"new_message_from": "New message from <strong>%1</strong>",
|
"new_message_from": "New message from <strong>%1</strong>",
|
||||||
"upvoted_your_post": "<strong>%1</strong> has upvoted your post.",
|
"upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
|
||||||
"favourited_your_post": "<strong>%1</strong> has favorited your post.",
|
"moved_your_post": "<strong>%1</strong> has moved your post.",
|
||||||
"user_flagged_post": "<strong>%1</strong> flagged a post.",
|
"moved_your_topic": "<strong>%1</strong> has moved your topic.",
|
||||||
|
"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> has posted a reply to: <strong>%2</strong>",
|
"user_posted_to": "<strong>%1</strong> has posted a reply to: <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.",
|
||||||
"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": "An error occurred...",
|
||||||
|
|||||||
@@ -12,5 +12,7 @@
|
|||||||
"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.favourites": "%1's Favorite Posts",
|
"user.favourites": "%1's Favorite Posts",
|
||||||
"user.settings": "User Settings"
|
"user.settings": "User Settings",
|
||||||
|
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
|
||||||
|
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
|
||||||
}
|
}
|
||||||
@@ -4,5 +4,6 @@
|
|||||||
"week": "Week",
|
"week": "Week",
|
||||||
"month": "Month",
|
"month": "Month",
|
||||||
"year": "Year",
|
"year": "Year",
|
||||||
|
"alltime": "All Time",
|
||||||
"no_recent_topics": "There are no recent topics."
|
"no_recent_topics": "There are no recent topics."
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
{
|
{
|
||||||
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)"
|
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
|
||||||
|
"no-matches": "No posts found"
|
||||||
}
|
}
|
||||||
@@ -2,5 +2,6 @@
|
|||||||
"no_tag_topics": "There are no topics with this tag.",
|
"no_tag_topics": "There are no topics with this tag.",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"enter_tags_here": "Enter tags here. Press enter after each tag.",
|
"enter_tags_here": "Enter tags here. Press enter after each tag.",
|
||||||
|
"enter_tags_here_short": "Enter tags...",
|
||||||
"no_tags": "There are no tags yet."
|
"no_tags": "There are no tags yet."
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,6 @@
|
|||||||
"restore": "Restore",
|
"restore": "Restore",
|
||||||
"move": "Move",
|
"move": "Move",
|
||||||
"fork": "Fork",
|
"fork": "Fork",
|
||||||
"banned": "banned",
|
|
||||||
"link": "Link",
|
"link": "Link",
|
||||||
"share": "Share",
|
"share": "Share",
|
||||||
"tools": "Tools",
|
"tools": "Tools",
|
||||||
@@ -28,15 +27,17 @@
|
|||||||
"flag_title": "Flag this post for moderation",
|
"flag_title": "Flag this post for moderation",
|
||||||
"flag_confirm": "Are you sure you want to flag this post?",
|
"flag_confirm": "Are you sure you want to flag this post?",
|
||||||
"flag_success": "This post has been flagged for moderation.",
|
"flag_success": "This post has been flagged for moderation.",
|
||||||
"deleted_message": "This thread has been deleted. Only users with thread management privileges can see it.",
|
"deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
|
||||||
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
||||||
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
||||||
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
||||||
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
||||||
"watch": "Watch",
|
"watch": "Watch",
|
||||||
|
"unwatch": "Unwatch",
|
||||||
"watch.title": "Be notified of new replies in this topic",
|
"watch.title": "Be notified of new replies in this topic",
|
||||||
|
"unwatch.title": "Stop watching this topic",
|
||||||
"share_this_post": "Share this Post",
|
"share_this_post": "Share this Post",
|
||||||
"thread_tools.title": "Thread Tools",
|
"thread_tools.title": "Topic Tools",
|
||||||
"thread_tools.markAsUnreadForAll": "Mark Unread",
|
"thread_tools.markAsUnreadForAll": "Mark Unread",
|
||||||
"thread_tools.pin": "Pin Topic",
|
"thread_tools.pin": "Pin Topic",
|
||||||
"thread_tools.unpin": "Unpin Topic",
|
"thread_tools.unpin": "Unpin Topic",
|
||||||
@@ -46,11 +47,11 @@
|
|||||||
"thread_tools.move_all": "Move All",
|
"thread_tools.move_all": "Move All",
|
||||||
"thread_tools.fork": "Fork Topic",
|
"thread_tools.fork": "Fork Topic",
|
||||||
"thread_tools.delete": "Delete Topic",
|
"thread_tools.delete": "Delete Topic",
|
||||||
"thread_tools.delete_confirm": "Are you sure you want to delete this thread?",
|
"thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
|
||||||
"thread_tools.restore": "Restore Topic",
|
"thread_tools.restore": "Restore Topic",
|
||||||
"thread_tools.restore_confirm": "Are you sure you want to restore this thread?",
|
"thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
|
||||||
"thread_tools.purge": "Purge Topic",
|
"thread_tools.purge": "Purge Topic",
|
||||||
"thread_tools.purge_confirm": "Are you sure you want to purge this thread?",
|
"thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
|
||||||
"topic_move_success": "This topic has been successfully moved to %1",
|
"topic_move_success": "This topic has been successfully moved to %1",
|
||||||
"post_delete_confirm": "Are you sure you want to delete this post?",
|
"post_delete_confirm": "Are you sure you want to delete this post?",
|
||||||
"post_restore_confirm": "Are you sure you want to restore this post?",
|
"post_restore_confirm": "Are you sure you want to restore this post?",
|
||||||
@@ -71,7 +72,7 @@
|
|||||||
"topic_will_be_moved_to": "This topic will be moved to the category",
|
"topic_will_be_moved_to": "This topic will be moved to the category",
|
||||||
"fork_topic_instruction": "Click the posts you want to fork",
|
"fork_topic_instruction": "Click the posts you want to fork",
|
||||||
"fork_no_pids": "No posts selected!",
|
"fork_no_pids": "No posts selected!",
|
||||||
"fork_success": "Succesfully 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.discard": "Discard",
|
"composer.discard": "Discard",
|
||||||
"composer.submit": "Submit",
|
"composer.submit": "Submit",
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
"username": "User Name",
|
"username": "User Name",
|
||||||
"email": "Email",
|
"email": "Email",
|
||||||
"confirm_email": "Confirm Email",
|
"confirm_email": "Confirm Email",
|
||||||
|
"delete_account": "Delete 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.",
|
||||||
"fullname": "Full Name",
|
"fullname": "Full Name",
|
||||||
"website": "Website",
|
"website": "Website",
|
||||||
"location": "Location",
|
"location": "Location",
|
||||||
@@ -27,6 +29,7 @@
|
|||||||
"edit": "Edit",
|
"edit": "Edit",
|
||||||
"uploaded_picture": "Uploaded Picture",
|
"uploaded_picture": "Uploaded Picture",
|
||||||
"upload_new_picture": "Upload New Picture",
|
"upload_new_picture": "Upload New Picture",
|
||||||
|
"upload_new_picture_from_url": "Upload New Picture From URL",
|
||||||
"current_password": "Current Password",
|
"current_password": "Current Password",
|
||||||
"change_password": "Change Password",
|
"change_password": "Change Password",
|
||||||
"change_password_error": "Invalid Password!",
|
"change_password_error": "Invalid Password!",
|
||||||
@@ -44,12 +47,14 @@
|
|||||||
"max": "max.",
|
"max": "max.",
|
||||||
"settings": "Settings",
|
"settings": "Settings",
|
||||||
"show_email": "Show My Email",
|
"show_email": "Show My Email",
|
||||||
|
"show_fullname": "Show My Full Name",
|
||||||
"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",
|
||||||
"digest_daily": "Daily",
|
"digest_daily": "Daily",
|
||||||
"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",
|
||||||
"has_no_follower": "This user doesn't have any followers :(",
|
"has_no_follower": "This user doesn't have any followers :(",
|
||||||
"follows_no_one": "This user isn't following anyone :(",
|
"follows_no_one": "This user isn't following anyone :(",
|
||||||
"has_no_posts": "This user didn't post anything yet.",
|
"has_no_posts": "This user didn't post anything yet.",
|
||||||
@@ -61,5 +66,7 @@
|
|||||||
"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.",
|
||||||
|
"follow_topics_you_create": "Follow topics you create."
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,5 @@
|
|||||||
"search": "Search",
|
"search": "Search",
|
||||||
"enter_username": "Enter a username to search",
|
"enter_username": "Enter a username to search",
|
||||||
"load_more": "Load More",
|
"load_more": "Load More",
|
||||||
"user-not-found": "User not found!",
|
|
||||||
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
|
"users-found-search-took": "%1 user(s) found! Search took %2 ms."
|
||||||
}
|
}
|
||||||
@@ -3,5 +3,6 @@
|
|||||||
"no_topics": "<strong>No hay temas en esta categoría.</strong><br />¿Por que no te animas y publicas uno?",
|
"no_topics": "<strong>No hay temas en esta categoría.</strong><br />¿Por que no te animas y publicas uno?",
|
||||||
"browsing": "viendo ahora",
|
"browsing": "viendo ahora",
|
||||||
"no_replies": "Nadie ha respondido aún",
|
"no_replies": "Nadie ha respondido aún",
|
||||||
"share_this_category": "Compartir esta categoría"
|
"share_this_category": "Compartir esta categoría",
|
||||||
|
"ignore": "Ignorar"
|
||||||
}
|
}
|
||||||
@@ -1,20 +1,23 @@
|
|||||||
{
|
{
|
||||||
"password-reset-requested": "Password Reset Requested - %1!",
|
"password-reset-requested": "Reinicio de contraseña solicitado - %1!",
|
||||||
"welcome-to": "Welcome to %1",
|
"welcome-to": "Bienvenido a %1",
|
||||||
"greeting_no_name": "Hello",
|
"greeting_no_name": "Hola",
|
||||||
"greeting_with_name": "Hello %1",
|
"greeting_with_name": "Hola %1",
|
||||||
"welcome.text1": "Thank you for registering with %1!",
|
"welcome.text1": "Gracias por registrarte con %1!",
|
||||||
"welcome.text2": "To fully activate your account, we need to verify that you own the email address you registered with.",
|
"welcome.text2": "Para activar completamente tu cuenta, necesitamos verificar que la dirección email con la que te registraste te pertenece.",
|
||||||
"welcome.cta": "Click here to confirm your email address",
|
"welcome.cta": "Cliquea aquí para confirmar tu dirección email.",
|
||||||
"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.",
|
"reset.text1": "Recibimos una solicitud para reiniciar tu contraseña, posiblemente porque la olvidaste. Si no es así, por favor ignora este email.",
|
||||||
"reset.text2": "To continue with the password reset, please click on the following link:",
|
"reset.text2": "Para continuar con el reinicio de contraseña, por favor cliquea en el siguiente vínculo:",
|
||||||
"reset.cta": "Click here to reset your password",
|
"reset.cta": "Cliquea aquí para reiniciar tu contraseña",
|
||||||
"digest.notifications": "You have some unread notifications from %1:",
|
"digest.notifications": "You have unread notifications from %1:",
|
||||||
"digest.latest_topics": "Latest topics from %1",
|
"digest.latest_topics": "Últimos temas de %1",
|
||||||
"digest.cta": "Click here to visit %1",
|
"digest.cta": "Cliquea aquí para visitar %1",
|
||||||
"digest.unsub.info": "This digest was sent to you due to your subscription settings.",
|
"digest.unsub.info": "Este compendio te fue enviado debido a tus ajustes de subscripción.",
|
||||||
"digest.unsub.cta": "Click here to alter those settings",
|
"digest.daily.no_topics": "No han habido temas activos en el día pasado",
|
||||||
"digest.daily.no_topics": "There have been no active topics in the past day",
|
"notif.chat.subject": "Nuevo mensaje de chat recibido de %1",
|
||||||
"test.text1": "This is a test email to verify that the emailer is set up correctly for your NodeBB.",
|
"notif.chat.cta": "Haz click aquí para continuar la conversación",
|
||||||
"closing": "Thanks!"
|
"notif.chat.unsub.info": "Esta notificación de chat se te envió debido a tus ajustes de suscripción.",
|
||||||
|
"test.text1": "Este es un email de prueba para verificar que el envío de email está ajustado correctamente para tu NodeBB",
|
||||||
|
"unsub.cta": "Haz click aquí para modificar los ajustes.",
|
||||||
|
"closing": "¡Gracias!"
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user