mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-17 14:00:29 +01:00
Compare commits
4 Commits
v1.14.3-be
...
protocol-v
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
494447741a | ||
|
|
7b174d25cb | ||
|
|
bbb03a08e9 | ||
|
|
b884b0be01 |
@@ -24,7 +24,7 @@
|
||||
"consistent-return": "off",
|
||||
"func-names": "off",
|
||||
"no-tabs": "off",
|
||||
"indent": ["error", "tab", { "SwitchCase": 1 }],
|
||||
"indent": ["error", "tab"],
|
||||
"no-eq-null": "off",
|
||||
"camelcase": "off",
|
||||
"no-new": "off",
|
||||
@@ -121,7 +121,7 @@
|
||||
// "comma-spacing": "off",
|
||||
// "no-trailing-spaces": "off",
|
||||
// "key-spacing": "off",
|
||||
"no-multiple-empty-lines": "off"
|
||||
// "no-multiple-empty-lines": "off",
|
||||
// "spaced-comment": "off",
|
||||
// "space-in-parens": "off",
|
||||
// "block-spacing": "off",
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,4 +1,3 @@
|
||||
dist/
|
||||
yarn.lock
|
||||
npm-debug.log
|
||||
node_modules/
|
||||
@@ -67,5 +66,3 @@ test/files/normalise.jpg.png
|
||||
test/files/normalise-resized.jpg
|
||||
package-lock.json
|
||||
/package.json
|
||||
*.mongodb
|
||||
link-plugins.sh
|
||||
@@ -1,4 +0,0 @@
|
||||
reporter: dot
|
||||
timeout: 25000
|
||||
exit: true
|
||||
bail: true
|
||||
@@ -14,7 +14,7 @@ before_script:
|
||||
- "mongo mydb_test --eval 'db.createUser({user:\"travis\", pwd: \"test\", roles: []});'"
|
||||
- sh -c "if [ '$DB' = 'mongodb' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"mongo\\\",\\\"mongo:host\\\":\\\"127.0.0.1\\\",\\\"mongo:port\\\":27017,\\\"mongo:username\\\":\\\"\\\",\\\"mongo:password\\\":\\\"\\\",\\\"mongo:database\\\":0,\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":27017,\\\"database\\\":\\\"travis_ci_test\\\"}\"; fi"
|
||||
- sh -c "if [ '$DB' = 'redis' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567/forum\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"redis\\\",\\\"redis:host\\\":\\\"127.0.0.1\\\",\\\"redis:port\\\":6379,\\\"redis:password\\\":\\\"\\\",\\\"redis:database\\\":0,\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":6379,\\\"database\\\":1}\"; fi"
|
||||
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database nodebb;' -U postgres; psql -c 'create database travis_ci_test;' -U postgres; node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"postgres\\\",\\\"postgres:host\\\":\\\"127.0.0.1\\\",\\\"postgres:port\\\":5433,\\\"postgres:password\\\":\\\"\\\",\\\"postgres:database\\\":\\\"nodebb\\\",\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":5433,\\\"username\\\":\\\"postgres\\\",\\\"database\\\":\\\"travis_ci_test\\\"}\"; fi"
|
||||
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database nodebb;' -U postgres; psql -c 'create database travis_ci_test;' -U postgres; node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"postgres\\\",\\\"postgres:host\\\":\\\"127.0.0.1\\\",\\\"postgres:port\\\":5432,\\\"postgres:password\\\":\\\"\\\",\\\"postgres:database\\\":\\\"nodebb\\\",\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":5432,\\\"username\\\":\\\"postgres\\\",\\\"database\\\":\\\"travis_ci_test\\\"}\"; fi"
|
||||
after_success:
|
||||
- "npm run coveralls"
|
||||
language: node_js
|
||||
@@ -23,7 +23,7 @@ dist: xenial
|
||||
env:
|
||||
global:
|
||||
- PGUSER=postgres
|
||||
- PGPORT=5433
|
||||
- PGPORT=5432
|
||||
- CXX=g++-4.8
|
||||
jobs:
|
||||
- "DB=mongodb TEST_ENV=production"
|
||||
@@ -39,7 +39,6 @@ addons:
|
||||
- g++-4.8
|
||||
- mongodb-org-server
|
||||
node_js:
|
||||
- "14"
|
||||
- "12"
|
||||
- "10"
|
||||
branches:
|
||||
|
||||
564
.tx/config
564
.tx/config
@@ -1850,304 +1850,304 @@ trans.zh_CN = public/language/zh-CN/admin/extend/widgets.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/extend/widgets.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-dashboard]
|
||||
file_filter = public/language/<lang>/admin/dashboard.json
|
||||
source_file = public/language/en-GB/admin/dashboard.json
|
||||
[nodebb.admin-general-dashboard]
|
||||
file_filter = public/language/<lang>/admin/general/dashboard.json
|
||||
source_file = public/language/en-GB/admin/general/dashboard.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/admin/dashboard.json
|
||||
trans.bg = public/language/bg/admin/dashboard.json
|
||||
trans.bn = public/language/bn/admin/dashboard.json
|
||||
trans.cs = public/language/cs/admin/dashboard.json
|
||||
trans.da = public/language/da/admin/dashboard.json
|
||||
trans.de = public/language/de/admin/dashboard.json
|
||||
trans.el = public/language/el/admin/dashboard.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/dashboard.json
|
||||
trans.en_US = public/language/en-US/admin/dashboard.json
|
||||
trans.es = public/language/es/admin/dashboard.json
|
||||
trans.et = public/language/et/admin/dashboard.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/dashboard.json
|
||||
trans.fi = public/language/fi/admin/dashboard.json
|
||||
trans.fr = public/language/fr/admin/dashboard.json
|
||||
trans.gl = public/language/gl/admin/dashboard.json
|
||||
trans.he = public/language/he/admin/dashboard.json
|
||||
trans.hr = public/language/hr/admin/dashboard.json
|
||||
trans.hu = public/language/hu/admin/dashboard.json
|
||||
trans.id = public/language/id/admin/dashboard.json
|
||||
trans.it = public/language/it/admin/dashboard.json
|
||||
trans.ja = public/language/ja/admin/dashboard.json
|
||||
trans.ko = public/language/ko/admin/dashboard.json
|
||||
trans.lt = public/language/lt/admin/dashboard.json
|
||||
trans.lv = public/language/lv/admin/dashboard.json
|
||||
trans.ms = public/language/ms/admin/dashboard.json
|
||||
trans.nb = public/language/nb/admin/dashboard.json
|
||||
trans.nl = public/language/nl/admin/dashboard.json
|
||||
trans.pl = public/language/pl/admin/dashboard.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/dashboard.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/dashboard.json
|
||||
trans.ro = public/language/ro/admin/dashboard.json
|
||||
trans.ru = public/language/ru/admin/dashboard.json
|
||||
trans.rw = public/language/rw/admin/dashboard.json
|
||||
trans.sc = public/language/sc/admin/dashboard.json
|
||||
trans.sk = public/language/sk/admin/dashboard.json
|
||||
trans.sl = public/language/sl/admin/dashboard.json
|
||||
trans.sr = public/language/sr/admin/dashboard.json
|
||||
trans.sv = public/language/sv/admin/dashboard.json
|
||||
trans.th = public/language/th/admin/dashboard.json
|
||||
trans.tr = public/language/tr/admin/dashboard.json
|
||||
trans.uk = public/language/uk/admin/dashboard.json
|
||||
trans.vi = public/language/vi/admin/dashboard.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/dashboard.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/dashboard.json
|
||||
trans.ar = public/language/ar/admin/general/dashboard.json
|
||||
trans.bg = public/language/bg/admin/general/dashboard.json
|
||||
trans.bn = public/language/bn/admin/general/dashboard.json
|
||||
trans.cs = public/language/cs/admin/general/dashboard.json
|
||||
trans.da = public/language/da/admin/general/dashboard.json
|
||||
trans.de = public/language/de/admin/general/dashboard.json
|
||||
trans.el = public/language/el/admin/general/dashboard.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/general/dashboard.json
|
||||
trans.en_US = public/language/en-US/admin/general/dashboard.json
|
||||
trans.es = public/language/es/admin/general/dashboard.json
|
||||
trans.et = public/language/et/admin/general/dashboard.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/general/dashboard.json
|
||||
trans.fi = public/language/fi/admin/general/dashboard.json
|
||||
trans.fr = public/language/fr/admin/general/dashboard.json
|
||||
trans.gl = public/language/gl/admin/general/dashboard.json
|
||||
trans.he = public/language/he/admin/general/dashboard.json
|
||||
trans.hr = public/language/hr/admin/general/dashboard.json
|
||||
trans.hu = public/language/hu/admin/general/dashboard.json
|
||||
trans.id = public/language/id/admin/general/dashboard.json
|
||||
trans.it = public/language/it/admin/general/dashboard.json
|
||||
trans.ja = public/language/ja/admin/general/dashboard.json
|
||||
trans.ko = public/language/ko/admin/general/dashboard.json
|
||||
trans.lt = public/language/lt/admin/general/dashboard.json
|
||||
trans.lv = public/language/lv/admin/general/dashboard.json
|
||||
trans.ms = public/language/ms/admin/general/dashboard.json
|
||||
trans.nb = public/language/nb/admin/general/dashboard.json
|
||||
trans.nl = public/language/nl/admin/general/dashboard.json
|
||||
trans.pl = public/language/pl/admin/general/dashboard.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/general/dashboard.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/general/dashboard.json
|
||||
trans.ro = public/language/ro/admin/general/dashboard.json
|
||||
trans.ru = public/language/ru/admin/general/dashboard.json
|
||||
trans.rw = public/language/rw/admin/general/dashboard.json
|
||||
trans.sc = public/language/sc/admin/general/dashboard.json
|
||||
trans.sk = public/language/sk/admin/general/dashboard.json
|
||||
trans.sl = public/language/sl/admin/general/dashboard.json
|
||||
trans.sr = public/language/sr/admin/general/dashboard.json
|
||||
trans.sv = public/language/sv/admin/general/dashboard.json
|
||||
trans.th = public/language/th/admin/general/dashboard.json
|
||||
trans.tr = public/language/tr/admin/general/dashboard.json
|
||||
trans.uk = public/language/uk/admin/general/dashboard.json
|
||||
trans.vi = public/language/vi/admin/general/dashboard.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/general/dashboard.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/general/dashboard.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-settings-homepage]
|
||||
file_filter = public/language/<lang>/admin/settings/homepage.json
|
||||
source_file = public/language/en-GB/admin/settings/homepage.json
|
||||
[nodebb.admin-general-homepage]
|
||||
file_filter = public/language/<lang>/admin/general/homepage.json
|
||||
source_file = public/language/en-GB/admin/general/homepage.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/admin/settings/homepage.json
|
||||
trans.bg = public/language/bg/admin/settings/homepage.json
|
||||
trans.bn = public/language/bn/admin/settings/homepage.json
|
||||
trans.cs = public/language/cs/admin/settings/homepage.json
|
||||
trans.da = public/language/da/admin/settings/homepage.json
|
||||
trans.de = public/language/de/admin/settings/homepage.json
|
||||
trans.el = public/language/el/admin/settings/homepage.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/settings/homepage.json
|
||||
trans.en_US = public/language/en-US/admin/settings/homepage.json
|
||||
trans.es = public/language/es/admin/settings/homepage.json
|
||||
trans.et = public/language/et/admin/settings/homepage.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/homepage.json
|
||||
trans.fi = public/language/fi/admin/settings/homepage.json
|
||||
trans.fr = public/language/fr/admin/settings/homepage.json
|
||||
trans.gl = public/language/gl/admin/settings/homepage.json
|
||||
trans.he = public/language/he/admin/settings/homepage.json
|
||||
trans.hr = public/language/hr/admin/settings/homepage.json
|
||||
trans.hu = public/language/hu/admin/settings/homepage.json
|
||||
trans.id = public/language/id/admin/settings/homepage.json
|
||||
trans.it = public/language/it/admin/settings/homepage.json
|
||||
trans.ja = public/language/ja/admin/settings/homepage.json
|
||||
trans.ko = public/language/ko/admin/settings/homepage.json
|
||||
trans.lt = public/language/lt/admin/settings/homepage.json
|
||||
trans.lv = public/language/lv/admin/settings/homepage.json
|
||||
trans.ms = public/language/ms/admin/settings/homepage.json
|
||||
trans.nb = public/language/nb/admin/settings/homepage.json
|
||||
trans.nl = public/language/nl/admin/settings/homepage.json
|
||||
trans.pl = public/language/pl/admin/settings/homepage.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/settings/homepage.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/homepage.json
|
||||
trans.ro = public/language/ro/admin/settings/homepage.json
|
||||
trans.ru = public/language/ru/admin/settings/homepage.json
|
||||
trans.rw = public/language/rw/admin/settings/homepage.json
|
||||
trans.sc = public/language/sc/admin/settings/homepage.json
|
||||
trans.sk = public/language/sk/admin/settings/homepage.json
|
||||
trans.sl = public/language/sl/admin/settings/homepage.json
|
||||
trans.sr = public/language/sr/admin/settings/homepage.json
|
||||
trans.sv = public/language/sv/admin/settings/homepage.json
|
||||
trans.th = public/language/th/admin/settings/homepage.json
|
||||
trans.tr = public/language/tr/admin/settings/homepage.json
|
||||
trans.uk = public/language/uk/admin/settings/homepage.json
|
||||
trans.vi = public/language/vi/admin/settings/homepage.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/homepage.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/homepage.json
|
||||
trans.ar = public/language/ar/admin/general/homepage.json
|
||||
trans.bg = public/language/bg/admin/general/homepage.json
|
||||
trans.bn = public/language/bn/admin/general/homepage.json
|
||||
trans.cs = public/language/cs/admin/general/homepage.json
|
||||
trans.da = public/language/da/admin/general/homepage.json
|
||||
trans.de = public/language/de/admin/general/homepage.json
|
||||
trans.el = public/language/el/admin/general/homepage.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/general/homepage.json
|
||||
trans.en_US = public/language/en-US/admin/general/homepage.json
|
||||
trans.es = public/language/es/admin/general/homepage.json
|
||||
trans.et = public/language/et/admin/general/homepage.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/general/homepage.json
|
||||
trans.fi = public/language/fi/admin/general/homepage.json
|
||||
trans.fr = public/language/fr/admin/general/homepage.json
|
||||
trans.gl = public/language/gl/admin/general/homepage.json
|
||||
trans.he = public/language/he/admin/general/homepage.json
|
||||
trans.hr = public/language/hr/admin/general/homepage.json
|
||||
trans.hu = public/language/hu/admin/general/homepage.json
|
||||
trans.id = public/language/id/admin/general/homepage.json
|
||||
trans.it = public/language/it/admin/general/homepage.json
|
||||
trans.ja = public/language/ja/admin/general/homepage.json
|
||||
trans.ko = public/language/ko/admin/general/homepage.json
|
||||
trans.lt = public/language/lt/admin/general/homepage.json
|
||||
trans.lv = public/language/lv/admin/general/homepage.json
|
||||
trans.ms = public/language/ms/admin/general/homepage.json
|
||||
trans.nb = public/language/nb/admin/general/homepage.json
|
||||
trans.nl = public/language/nl/admin/general/homepage.json
|
||||
trans.pl = public/language/pl/admin/general/homepage.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/general/homepage.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/general/homepage.json
|
||||
trans.ro = public/language/ro/admin/general/homepage.json
|
||||
trans.ru = public/language/ru/admin/general/homepage.json
|
||||
trans.rw = public/language/rw/admin/general/homepage.json
|
||||
trans.sc = public/language/sc/admin/general/homepage.json
|
||||
trans.sk = public/language/sk/admin/general/homepage.json
|
||||
trans.sl = public/language/sl/admin/general/homepage.json
|
||||
trans.sr = public/language/sr/admin/general/homepage.json
|
||||
trans.sv = public/language/sv/admin/general/homepage.json
|
||||
trans.th = public/language/th/admin/general/homepage.json
|
||||
trans.tr = public/language/tr/admin/general/homepage.json
|
||||
trans.uk = public/language/uk/admin/general/homepage.json
|
||||
trans.vi = public/language/vi/admin/general/homepage.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/general/homepage.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/general/homepage.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-settings-languages]
|
||||
file_filter = public/language/<lang>/admin/settings/languages.json
|
||||
source_file = public/language/en-GB/admin/settings/languages.json
|
||||
[nodebb.admin-general-languages]
|
||||
file_filter = public/language/<lang>/admin/general/languages.json
|
||||
source_file = public/language/en-GB/admin/general/languages.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/admin/settings/languages.json
|
||||
trans.bg = public/language/bg/admin/settings/languages.json
|
||||
trans.bn = public/language/bn/admin/settings/languages.json
|
||||
trans.cs = public/language/cs/admin/settings/languages.json
|
||||
trans.da = public/language/da/admin/settings/languages.json
|
||||
trans.de = public/language/de/admin/settings/languages.json
|
||||
trans.el = public/language/el/admin/settings/languages.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/settings/languages.json
|
||||
trans.en_US = public/language/en-US/admin/settings/languages.json
|
||||
trans.es = public/language/es/admin/settings/languages.json
|
||||
trans.et = public/language/et/admin/settings/languages.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/languages.json
|
||||
trans.fi = public/language/fi/admin/settings/languages.json
|
||||
trans.fr = public/language/fr/admin/settings/languages.json
|
||||
trans.gl = public/language/gl/admin/settings/languages.json
|
||||
trans.he = public/language/he/admin/settings/languages.json
|
||||
trans.hr = public/language/hr/admin/settings/languages.json
|
||||
trans.hu = public/language/hu/admin/settings/languages.json
|
||||
trans.id = public/language/id/admin/settings/languages.json
|
||||
trans.it = public/language/it/admin/settings/languages.json
|
||||
trans.ja = public/language/ja/admin/settings/languages.json
|
||||
trans.ko = public/language/ko/admin/settings/languages.json
|
||||
trans.lt = public/language/lt/admin/settings/languages.json
|
||||
trans.lv = public/language/lv/admin/settings/languages.json
|
||||
trans.ms = public/language/ms/admin/settings/languages.json
|
||||
trans.nb = public/language/nb/admin/settings/languages.json
|
||||
trans.nl = public/language/nl/admin/settings/languages.json
|
||||
trans.pl = public/language/pl/admin/settings/languages.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/settings/languages.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/languages.json
|
||||
trans.ro = public/language/ro/admin/settings/languages.json
|
||||
trans.ru = public/language/ru/admin/settings/languages.json
|
||||
trans.rw = public/language/rw/admin/settings/languages.json
|
||||
trans.sc = public/language/sc/admin/settings/languages.json
|
||||
trans.sk = public/language/sk/admin/settings/languages.json
|
||||
trans.sl = public/language/sl/admin/settings/languages.json
|
||||
trans.sr = public/language/sr/admin/settings/languages.json
|
||||
trans.sv = public/language/sv/admin/settings/languages.json
|
||||
trans.th = public/language/th/admin/settings/languages.json
|
||||
trans.tr = public/language/tr/admin/settings/languages.json
|
||||
trans.uk = public/language/uk/admin/settings/languages.json
|
||||
trans.vi = public/language/vi/admin/settings/languages.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/languages.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/languages.json
|
||||
trans.ar = public/language/ar/admin/general/languages.json
|
||||
trans.bg = public/language/bg/admin/general/languages.json
|
||||
trans.bn = public/language/bn/admin/general/languages.json
|
||||
trans.cs = public/language/cs/admin/general/languages.json
|
||||
trans.da = public/language/da/admin/general/languages.json
|
||||
trans.de = public/language/de/admin/general/languages.json
|
||||
trans.el = public/language/el/admin/general/languages.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/general/languages.json
|
||||
trans.en_US = public/language/en-US/admin/general/languages.json
|
||||
trans.es = public/language/es/admin/general/languages.json
|
||||
trans.et = public/language/et/admin/general/languages.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/general/languages.json
|
||||
trans.fi = public/language/fi/admin/general/languages.json
|
||||
trans.fr = public/language/fr/admin/general/languages.json
|
||||
trans.gl = public/language/gl/admin/general/languages.json
|
||||
trans.he = public/language/he/admin/general/languages.json
|
||||
trans.hr = public/language/hr/admin/general/languages.json
|
||||
trans.hu = public/language/hu/admin/general/languages.json
|
||||
trans.id = public/language/id/admin/general/languages.json
|
||||
trans.it = public/language/it/admin/general/languages.json
|
||||
trans.ja = public/language/ja/admin/general/languages.json
|
||||
trans.ko = public/language/ko/admin/general/languages.json
|
||||
trans.lt = public/language/lt/admin/general/languages.json
|
||||
trans.lv = public/language/lv/admin/general/languages.json
|
||||
trans.ms = public/language/ms/admin/general/languages.json
|
||||
trans.nb = public/language/nb/admin/general/languages.json
|
||||
trans.nl = public/language/nl/admin/general/languages.json
|
||||
trans.pl = public/language/pl/admin/general/languages.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/general/languages.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/general/languages.json
|
||||
trans.ro = public/language/ro/admin/general/languages.json
|
||||
trans.ru = public/language/ru/admin/general/languages.json
|
||||
trans.rw = public/language/rw/admin/general/languages.json
|
||||
trans.sc = public/language/sc/admin/general/languages.json
|
||||
trans.sk = public/language/sk/admin/general/languages.json
|
||||
trans.sl = public/language/sl/admin/general/languages.json
|
||||
trans.sr = public/language/sr/admin/general/languages.json
|
||||
trans.sv = public/language/sv/admin/general/languages.json
|
||||
trans.th = public/language/th/admin/general/languages.json
|
||||
trans.tr = public/language/tr/admin/general/languages.json
|
||||
trans.uk = public/language/uk/admin/general/languages.json
|
||||
trans.vi = public/language/vi/admin/general/languages.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/general/languages.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/general/languages.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-settings-navigation]
|
||||
file_filter = public/language/<lang>/admin/settings/navigation.json
|
||||
source_file = public/language/en-GB/admin/settings/navigation.json
|
||||
[nodebb.admin-general-navigation]
|
||||
file_filter = public/language/<lang>/admin/general/navigation.json
|
||||
source_file = public/language/en-GB/admin/general/navigation.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/admin/settings/navigation.json
|
||||
trans.bg = public/language/bg/admin/settings/navigation.json
|
||||
trans.bn = public/language/bn/admin/settings/navigation.json
|
||||
trans.cs = public/language/cs/admin/settings/navigation.json
|
||||
trans.da = public/language/da/admin/settings/navigation.json
|
||||
trans.de = public/language/de/admin/settings/navigation.json
|
||||
trans.el = public/language/el/admin/settings/navigation.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/settings/navigation.json
|
||||
trans.en_US = public/language/en-US/admin/settings/navigation.json
|
||||
trans.es = public/language/es/admin/settings/navigation.json
|
||||
trans.et = public/language/et/admin/settings/navigation.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/navigation.json
|
||||
trans.fi = public/language/fi/admin/settings/navigation.json
|
||||
trans.fr = public/language/fr/admin/settings/navigation.json
|
||||
trans.gl = public/language/gl/admin/settings/navigation.json
|
||||
trans.he = public/language/he/admin/settings/navigation.json
|
||||
trans.hr = public/language/hr/admin/settings/navigation.json
|
||||
trans.hu = public/language/hu/admin/settings/navigation.json
|
||||
trans.id = public/language/id/admin/settings/navigation.json
|
||||
trans.it = public/language/it/admin/settings/navigation.json
|
||||
trans.ja = public/language/ja/admin/settings/navigation.json
|
||||
trans.ko = public/language/ko/admin/settings/navigation.json
|
||||
trans.lt = public/language/lt/admin/settings/navigation.json
|
||||
trans.lv = public/language/lv/admin/settings/navigation.json
|
||||
trans.ms = public/language/ms/admin/settings/navigation.json
|
||||
trans.nb = public/language/nb/admin/settings/navigation.json
|
||||
trans.nl = public/language/nl/admin/settings/navigation.json
|
||||
trans.pl = public/language/pl/admin/settings/navigation.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/settings/navigation.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/navigation.json
|
||||
trans.ro = public/language/ro/admin/settings/navigation.json
|
||||
trans.ru = public/language/ru/admin/settings/navigation.json
|
||||
trans.rw = public/language/rw/admin/settings/navigation.json
|
||||
trans.sc = public/language/sc/admin/settings/navigation.json
|
||||
trans.sk = public/language/sk/admin/settings/navigation.json
|
||||
trans.sl = public/language/sl/admin/settings/navigation.json
|
||||
trans.sr = public/language/sr/admin/settings/navigation.json
|
||||
trans.sv = public/language/sv/admin/settings/navigation.json
|
||||
trans.th = public/language/th/admin/settings/navigation.json
|
||||
trans.tr = public/language/tr/admin/settings/navigation.json
|
||||
trans.uk = public/language/uk/admin/settings/navigation.json
|
||||
trans.vi = public/language/vi/admin/settings/navigation.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/navigation.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/navigation.json
|
||||
trans.ar = public/language/ar/admin/general/navigation.json
|
||||
trans.bg = public/language/bg/admin/general/navigation.json
|
||||
trans.bn = public/language/bn/admin/general/navigation.json
|
||||
trans.cs = public/language/cs/admin/general/navigation.json
|
||||
trans.da = public/language/da/admin/general/navigation.json
|
||||
trans.de = public/language/de/admin/general/navigation.json
|
||||
trans.el = public/language/el/admin/general/navigation.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/general/navigation.json
|
||||
trans.en_US = public/language/en-US/admin/general/navigation.json
|
||||
trans.es = public/language/es/admin/general/navigation.json
|
||||
trans.et = public/language/et/admin/general/navigation.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/general/navigation.json
|
||||
trans.fi = public/language/fi/admin/general/navigation.json
|
||||
trans.fr = public/language/fr/admin/general/navigation.json
|
||||
trans.gl = public/language/gl/admin/general/navigation.json
|
||||
trans.he = public/language/he/admin/general/navigation.json
|
||||
trans.hr = public/language/hr/admin/general/navigation.json
|
||||
trans.hu = public/language/hu/admin/general/navigation.json
|
||||
trans.id = public/language/id/admin/general/navigation.json
|
||||
trans.it = public/language/it/admin/general/navigation.json
|
||||
trans.ja = public/language/ja/admin/general/navigation.json
|
||||
trans.ko = public/language/ko/admin/general/navigation.json
|
||||
trans.lt = public/language/lt/admin/general/navigation.json
|
||||
trans.lv = public/language/lv/admin/general/navigation.json
|
||||
trans.ms = public/language/ms/admin/general/navigation.json
|
||||
trans.nb = public/language/nb/admin/general/navigation.json
|
||||
trans.nl = public/language/nl/admin/general/navigation.json
|
||||
trans.pl = public/language/pl/admin/general/navigation.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/general/navigation.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/general/navigation.json
|
||||
trans.ro = public/language/ro/admin/general/navigation.json
|
||||
trans.ru = public/language/ru/admin/general/navigation.json
|
||||
trans.rw = public/language/rw/admin/general/navigation.json
|
||||
trans.sc = public/language/sc/admin/general/navigation.json
|
||||
trans.sk = public/language/sk/admin/general/navigation.json
|
||||
trans.sl = public/language/sl/admin/general/navigation.json
|
||||
trans.sr = public/language/sr/admin/general/navigation.json
|
||||
trans.sv = public/language/sv/admin/general/navigation.json
|
||||
trans.th = public/language/th/admin/general/navigation.json
|
||||
trans.tr = public/language/tr/admin/general/navigation.json
|
||||
trans.uk = public/language/uk/admin/general/navigation.json
|
||||
trans.vi = public/language/vi/admin/general/navigation.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/general/navigation.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/general/navigation.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-settings-social]
|
||||
file_filter = public/language/<lang>/admin/settings/social.json
|
||||
source_file = public/language/en-GB/admin/settings/social.json
|
||||
[nodebb.admin-general-social]
|
||||
file_filter = public/language/<lang>/admin/general/social.json
|
||||
source_file = public/language/en-GB/admin/general/social.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/admin/settings/social.json
|
||||
trans.bg = public/language/bg/admin/settings/social.json
|
||||
trans.bn = public/language/bn/admin/settings/social.json
|
||||
trans.cs = public/language/cs/admin/settings/social.json
|
||||
trans.da = public/language/da/admin/settings/social.json
|
||||
trans.de = public/language/de/admin/settings/social.json
|
||||
trans.el = public/language/el/admin/settings/social.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/settings/social.json
|
||||
trans.en_US = public/language/en-US/admin/settings/social.json
|
||||
trans.es = public/language/es/admin/settings/social.json
|
||||
trans.et = public/language/et/admin/settings/social.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/social.json
|
||||
trans.fi = public/language/fi/admin/settings/social.json
|
||||
trans.fr = public/language/fr/admin/settings/social.json
|
||||
trans.gl = public/language/gl/admin/settings/social.json
|
||||
trans.he = public/language/he/admin/settings/social.json
|
||||
trans.hr = public/language/hr/admin/settings/social.json
|
||||
trans.hu = public/language/hu/admin/settings/social.json
|
||||
trans.id = public/language/id/admin/settings/social.json
|
||||
trans.it = public/language/it/admin/settings/social.json
|
||||
trans.ja = public/language/ja/admin/settings/social.json
|
||||
trans.ko = public/language/ko/admin/settings/social.json
|
||||
trans.lt = public/language/lt/admin/settings/social.json
|
||||
trans.lv = public/language/lv/admin/settings/social.json
|
||||
trans.ms = public/language/ms/admin/settings/social.json
|
||||
trans.nb = public/language/nb/admin/settings/social.json
|
||||
trans.nl = public/language/nl/admin/settings/social.json
|
||||
trans.pl = public/language/pl/admin/settings/social.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/settings/social.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/social.json
|
||||
trans.ro = public/language/ro/admin/settings/social.json
|
||||
trans.ru = public/language/ru/admin/settings/social.json
|
||||
trans.rw = public/language/rw/admin/settings/social.json
|
||||
trans.sc = public/language/sc/admin/settings/social.json
|
||||
trans.sk = public/language/sk/admin/settings/social.json
|
||||
trans.sl = public/language/sl/admin/settings/social.json
|
||||
trans.sr = public/language/sr/admin/settings/social.json
|
||||
trans.sv = public/language/sv/admin/settings/social.json
|
||||
trans.th = public/language/th/admin/settings/social.json
|
||||
trans.tr = public/language/tr/admin/settings/social.json
|
||||
trans.uk = public/language/uk/admin/settings/social.json
|
||||
trans.vi = public/language/vi/admin/settings/social.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/social.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/social.json
|
||||
trans.ar = public/language/ar/admin/general/social.json
|
||||
trans.bg = public/language/bg/admin/general/social.json
|
||||
trans.bn = public/language/bn/admin/general/social.json
|
||||
trans.cs = public/language/cs/admin/general/social.json
|
||||
trans.da = public/language/da/admin/general/social.json
|
||||
trans.de = public/language/de/admin/general/social.json
|
||||
trans.el = public/language/el/admin/general/social.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/general/social.json
|
||||
trans.en_US = public/language/en-US/admin/general/social.json
|
||||
trans.es = public/language/es/admin/general/social.json
|
||||
trans.et = public/language/et/admin/general/social.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/general/social.json
|
||||
trans.fi = public/language/fi/admin/general/social.json
|
||||
trans.fr = public/language/fr/admin/general/social.json
|
||||
trans.gl = public/language/gl/admin/general/social.json
|
||||
trans.he = public/language/he/admin/general/social.json
|
||||
trans.hr = public/language/hr/admin/general/social.json
|
||||
trans.hu = public/language/hu/admin/general/social.json
|
||||
trans.id = public/language/id/admin/general/social.json
|
||||
trans.it = public/language/it/admin/general/social.json
|
||||
trans.ja = public/language/ja/admin/general/social.json
|
||||
trans.ko = public/language/ko/admin/general/social.json
|
||||
trans.lt = public/language/lt/admin/general/social.json
|
||||
trans.lv = public/language/lv/admin/general/social.json
|
||||
trans.ms = public/language/ms/admin/general/social.json
|
||||
trans.nb = public/language/nb/admin/general/social.json
|
||||
trans.nl = public/language/nl/admin/general/social.json
|
||||
trans.pl = public/language/pl/admin/general/social.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/general/social.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/general/social.json
|
||||
trans.ro = public/language/ro/admin/general/social.json
|
||||
trans.ru = public/language/ru/admin/general/social.json
|
||||
trans.rw = public/language/rw/admin/general/social.json
|
||||
trans.sc = public/language/sc/admin/general/social.json
|
||||
trans.sk = public/language/sk/admin/general/social.json
|
||||
trans.sl = public/language/sl/admin/general/social.json
|
||||
trans.sr = public/language/sr/admin/general/social.json
|
||||
trans.sv = public/language/sv/admin/general/social.json
|
||||
trans.th = public/language/th/admin/general/social.json
|
||||
trans.tr = public/language/tr/admin/general/social.json
|
||||
trans.uk = public/language/uk/admin/general/social.json
|
||||
trans.vi = public/language/vi/admin/general/social.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/general/social.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/general/social.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-settings-sounds]
|
||||
file_filter = public/language/<lang>/admin/settings/sounds.json
|
||||
source_file = public/language/en-GB/admin/settings/sounds.json
|
||||
[nodebb.admin-general-sounds]
|
||||
file_filter = public/language/<lang>/admin/general/sounds.json
|
||||
source_file = public/language/en-GB/admin/general/sounds.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/admin/settings/sounds.json
|
||||
trans.bg = public/language/bg/admin/settings/sounds.json
|
||||
trans.bn = public/language/bn/admin/settings/sounds.json
|
||||
trans.cs = public/language/cs/admin/settings/sounds.json
|
||||
trans.da = public/language/da/admin/settings/sounds.json
|
||||
trans.de = public/language/de/admin/settings/sounds.json
|
||||
trans.el = public/language/el/admin/settings/sounds.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/settings/sounds.json
|
||||
trans.en_US = public/language/en-US/admin/settings/sounds.json
|
||||
trans.es = public/language/es/admin/settings/sounds.json
|
||||
trans.et = public/language/et/admin/settings/sounds.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/sounds.json
|
||||
trans.fi = public/language/fi/admin/settings/sounds.json
|
||||
trans.fr = public/language/fr/admin/settings/sounds.json
|
||||
trans.gl = public/language/gl/admin/settings/sounds.json
|
||||
trans.he = public/language/he/admin/settings/sounds.json
|
||||
trans.hr = public/language/hr/admin/settings/sounds.json
|
||||
trans.hu = public/language/hu/admin/settings/sounds.json
|
||||
trans.id = public/language/id/admin/settings/sounds.json
|
||||
trans.it = public/language/it/admin/settings/sounds.json
|
||||
trans.ja = public/language/ja/admin/settings/sounds.json
|
||||
trans.ko = public/language/ko/admin/settings/sounds.json
|
||||
trans.lt = public/language/lt/admin/settings/sounds.json
|
||||
trans.lv = public/language/lv/admin/settings/sounds.json
|
||||
trans.ms = public/language/ms/admin/settings/sounds.json
|
||||
trans.nb = public/language/nb/admin/settings/sounds.json
|
||||
trans.nl = public/language/nl/admin/settings/sounds.json
|
||||
trans.pl = public/language/pl/admin/settings/sounds.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/settings/sounds.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/sounds.json
|
||||
trans.ro = public/language/ro/admin/settings/sounds.json
|
||||
trans.ru = public/language/ru/admin/settings/sounds.json
|
||||
trans.rw = public/language/rw/admin/settings/sounds.json
|
||||
trans.sc = public/language/sc/admin/settings/sounds.json
|
||||
trans.sk = public/language/sk/admin/settings/sounds.json
|
||||
trans.sl = public/language/sl/admin/settings/sounds.json
|
||||
trans.sr = public/language/sr/admin/settings/sounds.json
|
||||
trans.sv = public/language/sv/admin/settings/sounds.json
|
||||
trans.th = public/language/th/admin/settings/sounds.json
|
||||
trans.tr = public/language/tr/admin/settings/sounds.json
|
||||
trans.uk = public/language/uk/admin/settings/sounds.json
|
||||
trans.vi = public/language/vi/admin/settings/sounds.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/sounds.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/sounds.json
|
||||
trans.ar = public/language/ar/admin/general/sounds.json
|
||||
trans.bg = public/language/bg/admin/general/sounds.json
|
||||
trans.bn = public/language/bn/admin/general/sounds.json
|
||||
trans.cs = public/language/cs/admin/general/sounds.json
|
||||
trans.da = public/language/da/admin/general/sounds.json
|
||||
trans.de = public/language/de/admin/general/sounds.json
|
||||
trans.el = public/language/el/admin/general/sounds.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/general/sounds.json
|
||||
trans.en_US = public/language/en-US/admin/general/sounds.json
|
||||
trans.es = public/language/es/admin/general/sounds.json
|
||||
trans.et = public/language/et/admin/general/sounds.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/general/sounds.json
|
||||
trans.fi = public/language/fi/admin/general/sounds.json
|
||||
trans.fr = public/language/fr/admin/general/sounds.json
|
||||
trans.gl = public/language/gl/admin/general/sounds.json
|
||||
trans.he = public/language/he/admin/general/sounds.json
|
||||
trans.hr = public/language/hr/admin/general/sounds.json
|
||||
trans.hu = public/language/hu/admin/general/sounds.json
|
||||
trans.id = public/language/id/admin/general/sounds.json
|
||||
trans.it = public/language/it/admin/general/sounds.json
|
||||
trans.ja = public/language/ja/admin/general/sounds.json
|
||||
trans.ko = public/language/ko/admin/general/sounds.json
|
||||
trans.lt = public/language/lt/admin/general/sounds.json
|
||||
trans.lv = public/language/lv/admin/general/sounds.json
|
||||
trans.ms = public/language/ms/admin/general/sounds.json
|
||||
trans.nb = public/language/nb/admin/general/sounds.json
|
||||
trans.nl = public/language/nl/admin/general/sounds.json
|
||||
trans.pl = public/language/pl/admin/general/sounds.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/general/sounds.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/general/sounds.json
|
||||
trans.ro = public/language/ro/admin/general/sounds.json
|
||||
trans.ru = public/language/ru/admin/general/sounds.json
|
||||
trans.rw = public/language/rw/admin/general/sounds.json
|
||||
trans.sc = public/language/sc/admin/general/sounds.json
|
||||
trans.sk = public/language/sk/admin/general/sounds.json
|
||||
trans.sl = public/language/sl/admin/general/sounds.json
|
||||
trans.sr = public/language/sr/admin/general/sounds.json
|
||||
trans.sv = public/language/sv/admin/general/sounds.json
|
||||
trans.th = public/language/th/admin/general/sounds.json
|
||||
trans.tr = public/language/tr/admin/general/sounds.json
|
||||
trans.uk = public/language/uk/admin/general/sounds.json
|
||||
trans.vi = public/language/vi/admin/general/sounds.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/general/sounds.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/general/sounds.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-manage-admins-mods]
|
||||
|
||||
1010
CHANGELOG.md
1010
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
@@ -19,4 +19,5 @@ ENV NODE_ENV=production \
|
||||
|
||||
EXPOSE 4567
|
||||
|
||||
CMD node ./nodebb build ; node ./nodebb start
|
||||
CMD ./nodebb start
|
||||
|
||||
|
||||
261
Gruntfile.js
261
Gruntfile.js
@@ -1,31 +1,95 @@
|
||||
'use strict';
|
||||
|
||||
const path = require('path');
|
||||
const nconf = require('nconf');
|
||||
nconf.argv().env({
|
||||
separator: '__',
|
||||
});
|
||||
const winston = require('winston');
|
||||
const fork = require('child_process').fork;
|
||||
const env = process.env;
|
||||
|
||||
var async = require('async');
|
||||
var fork = require('child_process').fork;
|
||||
var env = process.env;
|
||||
var worker;
|
||||
var updateWorker;
|
||||
var initWorker;
|
||||
var incomplete = [];
|
||||
var running = 0;
|
||||
|
||||
env.NODE_ENV = env.NODE_ENV || 'development';
|
||||
|
||||
const configFile = path.resolve(__dirname, nconf.any(['config', 'CONFIG']) || 'config.json');
|
||||
const prestart = require('./src/prestart');
|
||||
prestart.loadConfig(configFile);
|
||||
|
||||
var nconf = require('nconf');
|
||||
nconf.file({
|
||||
file: 'config.json',
|
||||
});
|
||||
|
||||
nconf.defaults({
|
||||
base_dir: __dirname,
|
||||
views_dir: './build/public/templates',
|
||||
});
|
||||
var winston = require('winston');
|
||||
winston.configure({
|
||||
transports: [
|
||||
new winston.transports.Console({
|
||||
handleExceptions: true,
|
||||
}),
|
||||
],
|
||||
});
|
||||
var db = require('./src/database');
|
||||
|
||||
module.exports = function (grunt) {
|
||||
var args = [];
|
||||
|
||||
var initArgs = ['--build'];
|
||||
if (!grunt.option('verbose')) {
|
||||
args.push('--log-level=info');
|
||||
nconf.set('log-level', 'info');
|
||||
initArgs.push('--log-level=info');
|
||||
}
|
||||
|
||||
function update(action, filepath, target) {
|
||||
var updateArgs = args.slice();
|
||||
var compiling;
|
||||
var time = Date.now();
|
||||
|
||||
if (target === 'lessUpdated_Client') {
|
||||
compiling = 'clientCSS';
|
||||
} else if (target === 'lessUpdated_Admin') {
|
||||
compiling = 'acpCSS';
|
||||
} else if (target === 'clientUpdated') {
|
||||
compiling = 'js';
|
||||
} else if (target === 'templatesUpdated') {
|
||||
compiling = 'tpl';
|
||||
} else if (target === 'langUpdated') {
|
||||
compiling = 'lang';
|
||||
} else if (target === 'serverUpdated') {
|
||||
// Do nothing, just restart
|
||||
}
|
||||
|
||||
if (compiling && !incomplete.includes(compiling)) {
|
||||
incomplete.push(compiling);
|
||||
}
|
||||
|
||||
updateArgs.push('--build');
|
||||
updateArgs.push(incomplete.join(','));
|
||||
|
||||
worker.kill();
|
||||
if (updateWorker) {
|
||||
updateWorker.kill('SIGKILL');
|
||||
}
|
||||
updateWorker = fork('app.js', updateArgs, { env: env });
|
||||
running += 1;
|
||||
updateWorker.on('exit', function () {
|
||||
running -= 1;
|
||||
if (running === 0) {
|
||||
worker = fork('app.js', args, {
|
||||
env: env,
|
||||
});
|
||||
worker.on('message', function () {
|
||||
if (incomplete.length) {
|
||||
incomplete = [];
|
||||
|
||||
if (grunt.option('verbose')) {
|
||||
grunt.log.writeln('NodeBB restarted in ' + (Date.now() - time) + ' ms');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
prestart.setupWinston();
|
||||
|
||||
grunt.initConfig({
|
||||
watch: {},
|
||||
@@ -35,52 +99,52 @@ module.exports = function (grunt) {
|
||||
|
||||
grunt.registerTask('default', ['watch']);
|
||||
|
||||
grunt.registerTask('init', async function () {
|
||||
grunt.registerTask('init', function () {
|
||||
var done = this.async();
|
||||
let plugins = [];
|
||||
if (!process.argv.includes('--core')) {
|
||||
await db.init();
|
||||
plugins = await db.getSortedSetRange('plugins:active', 0, -1);
|
||||
addBaseThemes(plugins);
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
db.init(next);
|
||||
},
|
||||
function (next) {
|
||||
db.getSortedSetRange('plugins:active', 0, -1, next);
|
||||
},
|
||||
function (plugins, next) {
|
||||
addBaseThemes(plugins, next);
|
||||
},
|
||||
function (plugins, next) {
|
||||
if (!plugins.includes('nodebb-plugin-composer-default')) {
|
||||
plugins.push('nodebb-plugin-composer-default');
|
||||
}
|
||||
if (!plugins.includes('nodebb-theme-persona')) {
|
||||
plugins.push('nodebb-theme-persona');
|
||||
}
|
||||
|
||||
if (process.argv.includes('--core')) {
|
||||
plugins = [];
|
||||
}
|
||||
|
||||
const styleUpdated_Client = plugins.map(p => 'node_modules/' + p + '/*.less')
|
||||
.concat(plugins.map(p => 'node_modules/' + p + '/*.css'))
|
||||
.concat(plugins.map(p => 'node_modules/' + p + '/+(public|static|less)/**/*.less'))
|
||||
.concat(plugins.map(p => 'node_modules/' + p + '/+(public|static)/**/*.css'));
|
||||
|
||||
const styleUpdated_Admin = plugins.map(p => 'node_modules/' + p + '/*.less')
|
||||
.concat(plugins.map(p => 'node_modules/' + p + '/*.css'))
|
||||
.concat(plugins.map(p => 'node_modules/' + p + '/+(public|static|less)/**/*.less'))
|
||||
.concat(plugins.map(p => 'node_modules/' + p + '/+(public|static)/**/*.css'));
|
||||
|
||||
const clientUpdated = plugins.map(p => 'node_modules/' + p + '/+(public|static)/**/*.js');
|
||||
const serverUpdated = plugins.map(p => 'node_modules/' + p + '/*.js')
|
||||
.concat(plugins.map(p => 'node_modules/' + p + '/+(lib|src)/**/*.js'));
|
||||
|
||||
const templatesUpdated = plugins.map(p => 'node_modules/' + p + '/+(public|static|templates)/**/*.tpl');
|
||||
const langUpdated = plugins.map(p => 'node_modules/' + p + '/+(public|static|languages)/**/*.json');
|
||||
const lessUpdated_Client = plugins.map(p => 'node_modules/' + p + '/**/*.less');
|
||||
const lessUpdated_Admin = plugins.map(p => 'node_modules/' + p + '/**/*.less');
|
||||
const clientUpdated = plugins.map(p => 'node_modules/' + p + '/**/*.js');
|
||||
const templatesUpdated = plugins.map(p => 'node_modules/' + p + '/**/*.tpl');
|
||||
const langUpdated = plugins.map(p => 'node_modules/' + p + '/**/*.json');
|
||||
|
||||
grunt.config(['watch'], {
|
||||
styleUpdated_Client: {
|
||||
lessUpdated_Client: {
|
||||
files: [
|
||||
'public/less/**/*.less',
|
||||
...styleUpdated_Client,
|
||||
'public/less/*.less',
|
||||
'!public/less/admin/**/*.less',
|
||||
...lessUpdated_Client,
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
styleUpdated_Admin: {
|
||||
lessUpdated_Admin: {
|
||||
files: [
|
||||
'public/less/**/*.less',
|
||||
...styleUpdated_Admin,
|
||||
'public/less/admin/**/*.less',
|
||||
...lessUpdated_Admin,
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
@@ -90,23 +154,16 @@ module.exports = function (grunt) {
|
||||
files: [
|
||||
'public/src/**/*.js',
|
||||
...clientUpdated,
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'node_modules/benchpressjs/build/benchpress.js',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
serverUpdated: {
|
||||
files: [
|
||||
'app.js',
|
||||
'install/*.js',
|
||||
'src/**/*.js',
|
||||
'public/src/modules/translator.js',
|
||||
'public/src/modules/helpers.js',
|
||||
'public/src/utils.js',
|
||||
serverUpdated,
|
||||
'!src/upgrades/**',
|
||||
],
|
||||
files: ['*.js', 'install/*.js', 'src/**/*.js', '!src/upgrades/**'],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
@@ -115,6 +172,8 @@ module.exports = function (grunt) {
|
||||
files: [
|
||||
'src/views/**/*.tpl',
|
||||
...templatesUpdated,
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
@@ -125,79 +184,63 @@ module.exports = function (grunt) {
|
||||
'public/language/en-GB/*.json',
|
||||
'public/language/en-GB/**/*.json',
|
||||
...langUpdated,
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
'!node_modules/nodebb-*/plugin.json',
|
||||
'!node_modules/nodebb-*/package.json',
|
||||
'!node_modules/nodebb-*/theme.json',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
});
|
||||
const build = require('./src/meta/build');
|
||||
if (!grunt.option('skip')) {
|
||||
await build.build(true);
|
||||
}
|
||||
run();
|
||||
done();
|
||||
next();
|
||||
},
|
||||
], done);
|
||||
});
|
||||
|
||||
function run() {
|
||||
if (worker) {
|
||||
worker.kill();
|
||||
}
|
||||
worker = fork('app.js', args, {
|
||||
env: env,
|
||||
});
|
||||
}
|
||||
|
||||
grunt.task.run('init');
|
||||
|
||||
grunt.event.removeAllListeners('watch');
|
||||
grunt.event.on('watch', function update(action, filepath, target) {
|
||||
var compiling;
|
||||
if (target === 'styleUpdated_Client') {
|
||||
compiling = 'clientCSS';
|
||||
} else if (target === 'styleUpdated_Admin') {
|
||||
compiling = 'acpCSS';
|
||||
} else if (target === 'clientUpdated') {
|
||||
compiling = 'js';
|
||||
} else if (target === 'templatesUpdated') {
|
||||
compiling = 'tpl';
|
||||
} else if (target === 'langUpdated') {
|
||||
compiling = 'lang';
|
||||
} else if (target === 'serverUpdated') {
|
||||
// empty require cache
|
||||
const paths = ['./src/meta/build.js', './src/meta/index.js'];
|
||||
paths.forEach(p => delete require.cache[require.resolve(p)]);
|
||||
return run();
|
||||
env.NODE_ENV = 'development';
|
||||
|
||||
if (grunt.option('skip')) {
|
||||
worker = fork('app.js', args, {
|
||||
env: env,
|
||||
});
|
||||
} else {
|
||||
initWorker = fork('app.js', initArgs, {
|
||||
env: env,
|
||||
});
|
||||
|
||||
initWorker.on('exit', function () {
|
||||
worker = fork('app.js', args, {
|
||||
env: env,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
require('./src/meta/build').build([compiling], function (err) {
|
||||
if (err) {
|
||||
winston.error(err.stack);
|
||||
}
|
||||
if (worker) {
|
||||
worker.send({ compiling: compiling });
|
||||
}
|
||||
});
|
||||
});
|
||||
grunt.event.on('watch', update);
|
||||
};
|
||||
|
||||
function addBaseThemes(plugins) {
|
||||
let themeId = plugins.find(p => p.includes('nodebb-theme-'));
|
||||
function addBaseThemes(plugins, callback) {
|
||||
const themeId = plugins.find(p => p.startsWith('nodebb-theme-'));
|
||||
if (!themeId) {
|
||||
return plugins;
|
||||
return setImmediate(callback, null, plugins);
|
||||
}
|
||||
let baseTheme;
|
||||
do {
|
||||
function getBaseRecursive(themeId) {
|
||||
try {
|
||||
baseTheme = require(themeId + '/theme').baseTheme;
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
const baseTheme = require(themeId + '/theme').baseTheme;
|
||||
|
||||
if (baseTheme) {
|
||||
plugins.push(baseTheme);
|
||||
themeId = baseTheme;
|
||||
getBaseRecursive(baseTheme);
|
||||
}
|
||||
} while (baseTheme);
|
||||
return plugins;
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
|
||||
getBaseRecursive(themeId);
|
||||
callback(null, plugins);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
|
||||
|
||||
NodeBB requires the following software to be installed:
|
||||
|
||||
* A version of Node.js at least 10 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
|
||||
* A version of Node.js at least 8 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
|
||||
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
|
||||
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
|
||||
|
||||
|
||||
1
app.js
1
app.js
@@ -31,7 +31,6 @@ const path = require('path');
|
||||
|
||||
const file = require('./src/file');
|
||||
|
||||
process.env.NODE_ENV = process.env.NODE_ENV || 'production';
|
||||
global.env = process.env.NODE_ENV || 'production';
|
||||
|
||||
// Alternate configuration file support
|
||||
|
||||
@@ -32,8 +32,9 @@
|
||||
"registrationType": "normal",
|
||||
"registrationApprovalType": "normal",
|
||||
"allowAccountDelete": 1,
|
||||
"allowFileUploads": 0,
|
||||
"privateUploads": 0,
|
||||
"allowedFileExtensions": "png,jpg,bmp,txt",
|
||||
"allowedFileExtensions": "png,jpg,bmp",
|
||||
"allowUserHomePage": 1,
|
||||
"allowMultipleBadges": 0,
|
||||
"maximumFileSize": 2048,
|
||||
@@ -70,8 +71,6 @@
|
||||
"reputation:disabled": 0,
|
||||
"downvote:disabled": 0,
|
||||
"disableSignatures": 0,
|
||||
"downvotesPerDay": 10,
|
||||
"downvotesPerUserPerDay": 3,
|
||||
"min:rep:downvote": 0,
|
||||
"min:rep:flag": 0,
|
||||
"min:rep:profile-picture": 0,
|
||||
@@ -79,15 +78,12 @@
|
||||
"min:rep:website": 0,
|
||||
"min:rep:aboutme": 0,
|
||||
"min:rep:signature": 0,
|
||||
"flags:limitPerTarget": 0,
|
||||
"notificationType_upvote": "notification",
|
||||
"notificationType_new-topic": "notification",
|
||||
"notificationType_new-reply": "notification",
|
||||
"notificationType_post-edit": "notification",
|
||||
"notificationType_follow": "notification",
|
||||
"notificationType_new-chat": "notification",
|
||||
"notificationType_group-invite": "notification",
|
||||
"notificationType_group-request-membership": "notification",
|
||||
"notificationType_mention": "notification",
|
||||
"notificationType_new-register": "notification",
|
||||
"notificationType_post-queue": "notification",
|
||||
@@ -113,9 +109,7 @@
|
||||
"email:sendmail:rateLimit": 2,
|
||||
"email:sendmail:rateDelta": 1000,
|
||||
"hideFullname": 0,
|
||||
"hideEmail": 0,
|
||||
"allowGuestHandles": 0,
|
||||
"recentMaxTopics": 200,
|
||||
"disableRecentCategoryFilter": 0,
|
||||
"maximumRelatedTopics": 0,
|
||||
"disableEmailSubscriptions": 0,
|
||||
|
||||
@@ -1,51 +1,58 @@
|
||||
'use strict';
|
||||
|
||||
const prompt = require('prompt');
|
||||
const winston = require('winston');
|
||||
var async = require('async');
|
||||
var prompt = require('prompt');
|
||||
var winston = require('winston');
|
||||
|
||||
const util = require('util');
|
||||
|
||||
const promptGet = util.promisify((schema, callback) => prompt.get(schema, callback));
|
||||
|
||||
const questions = {
|
||||
var questions = {
|
||||
redis: require('../src/database/redis').questions,
|
||||
mongo: require('../src/database/mongo').questions,
|
||||
postgres: require('../src/database/postgres').questions,
|
||||
};
|
||||
|
||||
module.exports = async function (config) {
|
||||
module.exports = function (config, callback) {
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
winston.info('\nNow configuring ' + config.database + ' database:');
|
||||
const databaseConfig = await getDatabaseConfig(config);
|
||||
return saveDatabaseConfig(config, databaseConfig);
|
||||
getDatabaseConfig(config, next);
|
||||
},
|
||||
function (databaseConfig, next) {
|
||||
saveDatabaseConfig(config, databaseConfig, next);
|
||||
},
|
||||
], callback);
|
||||
};
|
||||
|
||||
async function getDatabaseConfig(config) {
|
||||
function getDatabaseConfig(config, callback) {
|
||||
if (!config) {
|
||||
throw new Error('invalid config, aborted');
|
||||
return callback(new Error('aborted'));
|
||||
}
|
||||
|
||||
if (config.database === 'redis') {
|
||||
if (config['redis:host'] && config['redis:port']) {
|
||||
return config;
|
||||
callback(null, config);
|
||||
} else {
|
||||
prompt.get(questions.redis, callback);
|
||||
}
|
||||
return await promptGet(questions.redis);
|
||||
} else if (config.database === 'mongo') {
|
||||
if ((config['mongo:host'] && config['mongo:port']) || config['mongo:uri']) {
|
||||
return config;
|
||||
callback(null, config);
|
||||
} else {
|
||||
prompt.get(questions.mongo, callback);
|
||||
}
|
||||
return await promptGet(questions.mongo);
|
||||
} else if (config.database === 'postgres') {
|
||||
if (config['postgres:host'] && config['postgres:port']) {
|
||||
return config;
|
||||
callback(null, config);
|
||||
} else {
|
||||
prompt.get(questions.postgres, callback);
|
||||
}
|
||||
return await promptGet(questions.postgres);
|
||||
} else {
|
||||
return callback(new Error('unknown database : ' + config.database));
|
||||
}
|
||||
throw new Error('unknown database : ' + config.database);
|
||||
}
|
||||
|
||||
function saveDatabaseConfig(config, databaseConfig) {
|
||||
function saveDatabaseConfig(config, databaseConfig, callback) {
|
||||
if (!databaseConfig) {
|
||||
throw new Error('invalid config, aborted');
|
||||
return callback(new Error('aborted'));
|
||||
}
|
||||
|
||||
// Translate redis properties into redis object
|
||||
@@ -79,13 +86,13 @@ function saveDatabaseConfig(config, databaseConfig) {
|
||||
ssl: databaseConfig['postgres:ssl'],
|
||||
};
|
||||
} else {
|
||||
throw new Error('unknown database : ' + config.database);
|
||||
return callback(new Error('unknown database : ' + config.database));
|
||||
}
|
||||
|
||||
const allQuestions = questions.redis.concat(questions.mongo).concat(questions.postgres);
|
||||
var allQuestions = questions.redis.concat(questions.mongo).concat(questions.postgres);
|
||||
for (var x = 0; x < allQuestions.length; x += 1) {
|
||||
delete config[allQuestions[x].name];
|
||||
}
|
||||
|
||||
return config;
|
||||
callback(null, config);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "nodebb",
|
||||
"license": "GPL-3.0",
|
||||
"description": "NodeBB Forum",
|
||||
"version": "1.14.3-beta.12",
|
||||
"version": "1.13.0",
|
||||
"homepage": "http://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -11,15 +11,15 @@
|
||||
"main": "app.js",
|
||||
"scripts": {
|
||||
"start": "node loader.js",
|
||||
"lint": "npx eslint --cache ./nodebb .",
|
||||
"lint": "eslint --cache ./nodebb .",
|
||||
"pretest": "npm run lint",
|
||||
"test": "npx nyc --reporter=html --reporter=text-summary npx mocha",
|
||||
"test": "nyc --reporter=html --reporter=text-summary mocha",
|
||||
"coveralls": "nyc report --reporter=text-lcov | coveralls && rm -r coverage"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "npx lint-staged",
|
||||
"commit-msg": "npx commitlint -E HUSKY_GIT_PARAMS"
|
||||
"pre-commit": "lint-staged",
|
||||
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
||||
}
|
||||
},
|
||||
"lint-staged": {
|
||||
@@ -29,131 +29,129 @@
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"ace-builds": "^1.4.9",
|
||||
"archiver": "^5.0.0",
|
||||
"async": "^3.2.0",
|
||||
"autoprefixer": "^9.7.6",
|
||||
"ace-builds": "^1.2.9",
|
||||
"archiver": "^3.0.0",
|
||||
"async": "^3.0.1",
|
||||
"autoprefixer": "^9.4.6",
|
||||
"bcryptjs": "2.4.3",
|
||||
"benchpressjs": "^2.0.2",
|
||||
"body-parser": "^1.19.0",
|
||||
"bootstrap": "^3.4.1",
|
||||
"bootswatch": "thomaspark/bootswatch#v3.4.1+1",
|
||||
"chart.js": "^2.9.3",
|
||||
"benchpressjs": "^2.0.0",
|
||||
"body-parser": "^1.18.2",
|
||||
"bootstrap": "^3.4.0",
|
||||
"bootswatch": "git://github.com/thomaspark/bootswatch.git#c41a8f066feb8950c6f9c6bcf5a3c37d1085404e",
|
||||
"chart.js": "^2.7.1",
|
||||
"cli-graph": "^3.2.2",
|
||||
"clipboard": "^2.0.6",
|
||||
"colors": "^1.4.0",
|
||||
"commander": "^6.0.0",
|
||||
"compression": "^1.7.4",
|
||||
"clipboard": "^2.0.1",
|
||||
"colors": "^1.1.2",
|
||||
"commander": "^3.0.0",
|
||||
"compression": "^1.7.1",
|
||||
"connect-ensure-login": "^0.1.1",
|
||||
"connect-flash": "^0.1.1",
|
||||
"connect-mongo": "3.2.0",
|
||||
"connect-multiparty": "^2.2.0",
|
||||
"connect-pg-simple": "^6.1.0",
|
||||
"connect-redis": "5.0.0",
|
||||
"cookie-parser": "^1.4.5",
|
||||
"cron": "^1.8.2",
|
||||
"cropperjs": "^1.5.6",
|
||||
"csurf": "^1.11.0",
|
||||
"connect-multiparty": "^2.1.0",
|
||||
"connect-pg-simple": "^6.0.0",
|
||||
"connect-redis": "4.0.3",
|
||||
"cookie-parser": "^1.4.3",
|
||||
"cron": "^1.3.0",
|
||||
"cropperjs": "^1.2.2",
|
||||
"csurf": "^1.9.0",
|
||||
"daemon": "^1.1.0",
|
||||
"diff": "^4.0.2",
|
||||
"express": "^4.17.1",
|
||||
"express-session": "^1.17.0",
|
||||
"express-useragent": "^1.0.13",
|
||||
"graceful-fs": "^4.2.3",
|
||||
"helmet": "^4.0.0",
|
||||
"html-to-text": "^5.1.1",
|
||||
"ipaddr.js": "^1.9.1",
|
||||
"jquery": "3.5.1",
|
||||
"jsesc": "3.0.1",
|
||||
"json2csv": "5.0.1",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"less": "^3.11.1",
|
||||
"diff": "^4.0.1",
|
||||
"express": "^4.16.2",
|
||||
"express-session": "^1.15.6",
|
||||
"express-useragent": "^1.0.12",
|
||||
"graceful-fs": "^4.1.11",
|
||||
"helmet": "^3.11.0",
|
||||
"html-to-text": "^5.0.0",
|
||||
"ipaddr.js": "^1.5.4",
|
||||
"jquery": "^3.2.1",
|
||||
"jsesc": "2.5.2",
|
||||
"json-2-csv": "^3.0.0",
|
||||
"jsonwebtoken": "^8.4.0",
|
||||
"less": "^3.10.3",
|
||||
"lodash": "^4.17.15",
|
||||
"logrotate-stream": "^0.2.6",
|
||||
"lru-cache": "6.0.0",
|
||||
"logrotate-stream": "^0.2.5",
|
||||
"lru-cache": "5.1.1",
|
||||
"material-design-lite": "^1.3.0",
|
||||
"mime": "^2.4.4",
|
||||
"mkdirp": "^1.0.4",
|
||||
"mongodb": "3.6.0",
|
||||
"morgan": "^1.10.0",
|
||||
"mousetrap": "^1.6.5",
|
||||
"@nodebb/mubsub": "^1.6.0",
|
||||
"@nodebb/socket.io-adapter-mongo": "3.0.1",
|
||||
"mime": "^2.2.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mongodb": "3.4.0",
|
||||
"morgan": "^1.9.1",
|
||||
"mousetrap": "^1.6.1",
|
||||
"mubsub-nbb": "^1.5.1",
|
||||
"nconf": "^0.10.0",
|
||||
"nodebb-plugin-composer-default": "6.3.53",
|
||||
"nodebb-plugin-dbsearch": "4.1.2",
|
||||
"nodebb-plugin-emoji": "^3.3.0",
|
||||
"nodebb-plugin-composer-default": "6.3.20",
|
||||
"nodebb-plugin-dbsearch": "4.0.7",
|
||||
"nodebb-plugin-emoji": "^3.0.0",
|
||||
"nodebb-plugin-emoji-android": "2.0.0",
|
||||
"nodebb-plugin-markdown": "8.11.2",
|
||||
"nodebb-plugin-mentions": "2.9.3",
|
||||
"nodebb-plugin-markdown": "8.11.0",
|
||||
"nodebb-plugin-mentions": "2.7.3",
|
||||
"nodebb-plugin-soundpack-default": "1.0.0",
|
||||
"nodebb-plugin-spam-be-gone": "0.7.2",
|
||||
"nodebb-rewards-essentials": "0.1.3",
|
||||
"nodebb-plugin-spam-be-gone": "0.6.7",
|
||||
"nodebb-rewards-essentials": "0.1.2",
|
||||
"nodebb-theme-lavender": "5.0.11",
|
||||
"nodebb-theme-persona": "10.2.5",
|
||||
"nodebb-theme-slick": "1.2.29",
|
||||
"nodebb-theme-vanilla": "11.2.2",
|
||||
"nodebb-widget-essentials": "4.1.1",
|
||||
"nodemailer": "^6.4.6",
|
||||
"passport": "^0.4.1",
|
||||
"nodebb-theme-persona": "10.1.30",
|
||||
"nodebb-theme-slick": "1.2.28",
|
||||
"nodebb-theme-vanilla": "11.1.12",
|
||||
"nodebb-widget-essentials": "4.0.17",
|
||||
"nodemailer": "^6.0.0",
|
||||
"passport": "^0.4.0",
|
||||
"passport-local": "1.0.0",
|
||||
"pg": "^8.0.2",
|
||||
"pg-cursor": "^2.1.9",
|
||||
"postcss": "7.0.32",
|
||||
"pg": "^7.4.0",
|
||||
"pg-cursor": "^2.0.0",
|
||||
"postcss": "7.0.21",
|
||||
"postcss-clean": "1.1.0",
|
||||
"promise-polyfill": "^8.1.3",
|
||||
"promise-polyfill": "^8.0.0",
|
||||
"prompt": "^1.0.0",
|
||||
"redis": "3.0.2",
|
||||
"request": "2.88.2",
|
||||
"request-promise-native": "^1.0.8",
|
||||
"rimraf": "3.0.2",
|
||||
"redis": "2.8.0",
|
||||
"request": "2.88.0",
|
||||
"rimraf": "3.0.0",
|
||||
"rss": "^1.2.2",
|
||||
"sanitize-html": "^1.23.0",
|
||||
"semver": "^7.2.1",
|
||||
"serve-favicon": "^2.5.0",
|
||||
"sharp": "0.25.4",
|
||||
"sitemap": "^6.1.0",
|
||||
"sanitize-html": "^1.16.3",
|
||||
"semver": "^7.0.0",
|
||||
"serve-favicon": "^2.4.5",
|
||||
"sharp": "0.23.4",
|
||||
"sitemap": "^5.0.0",
|
||||
"socket.io": "2.3.0",
|
||||
"socket.io-adapter-cluster": "^1.0.1",
|
||||
"socket.io-adapter-mongo": "^2.0.4",
|
||||
"socket.io-adapter-postgres": "^1.2.1",
|
||||
"socket.io-client": "2.3.0",
|
||||
"socket.io-redis": "5.3.0",
|
||||
"socket.io-redis": "5.2.0",
|
||||
"socketio-wildcard": "2.0.0",
|
||||
"spdx-license-list": "^6.1.0",
|
||||
"spdx-license-list": "^6.0.0",
|
||||
"spider-detector": "2.0.0",
|
||||
"textcomplete": "^0.17.1",
|
||||
"textcomplete.contenteditable": "^0.1.1",
|
||||
"toobusy-js": "^0.5.1",
|
||||
"uglify-es": "^3.3.9",
|
||||
"validator": "13.1.1",
|
||||
"winston": "3.3.3",
|
||||
"validator": "12.1.0",
|
||||
"winston": "3.2.1",
|
||||
"xml": "^1.0.1",
|
||||
"xregexp": "^4.3.0",
|
||||
"xregexp": "^4.1.1",
|
||||
"zxcvbn": "^4.4.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@apidevtools/swagger-parser": "10.0.1",
|
||||
"@commitlint/cli": "9.1.1",
|
||||
"@commitlint/config-angular": "9.1.1",
|
||||
"coveralls": "3.1.0",
|
||||
"eslint": "7.6.0",
|
||||
"eslint-config-airbnb-base": "14.1.0",
|
||||
"eslint-plugin-import": "2.22.0",
|
||||
"grunt": "1.2.1",
|
||||
"@commitlint/cli": "8.2.0",
|
||||
"@commitlint/config-angular": "8.2.0",
|
||||
"coveralls": "3.0.9",
|
||||
"eslint": "6.7.0",
|
||||
"eslint-config-airbnb-base": "14.0.0",
|
||||
"eslint-plugin-import": "2.18.2",
|
||||
"grunt": "1.0.4",
|
||||
"grunt-contrib-watch": "1.1.0",
|
||||
"husky": "4.2.5",
|
||||
"jsdom": "16.3.0",
|
||||
"lint-staged": "10.2.11",
|
||||
"mocha": "8.1.1",
|
||||
"husky": "3.1.0",
|
||||
"jsdom": "15.2.1",
|
||||
"lint-staged": "9.4.2",
|
||||
"mocha": "6.2.2",
|
||||
"mocha-lcov-reporter": "1.3.0",
|
||||
"nyc": "15.1.0",
|
||||
"smtp-server": "3.7.0"
|
||||
"nyc": "14.1.1",
|
||||
"smtp-server": "3.5.0"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/NodeBB/NodeBB/issues"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
"node": ">=8"
|
||||
},
|
||||
"maintainers": [
|
||||
{
|
||||
|
||||
@@ -81,7 +81,7 @@ web.install = function (port) {
|
||||
|
||||
async.parallel([compileLess, compileJS, copyCSS, loadDefaults], function (err) {
|
||||
if (err) {
|
||||
winston.error(err.stack);
|
||||
winston.error(err);
|
||||
}
|
||||
setupRoutes();
|
||||
launchExpress(port);
|
||||
@@ -223,17 +223,14 @@ function launch(req, res) {
|
||||
}
|
||||
|
||||
function compileLess(callback) {
|
||||
var installSrc = path.join(__dirname, '../public/less/install.less');
|
||||
fs.readFile(installSrc, function (err, style) {
|
||||
fs.readFile(path.join(__dirname, '../public/less/install.less'), function (err, style) {
|
||||
if (err) {
|
||||
return winston.error('Unable to read LESS install file: ', err.stack);
|
||||
return winston.error('Unable to read LESS install file: ', err);
|
||||
}
|
||||
|
||||
less.render(style.toString(), {
|
||||
filename: path.resolve(installSrc),
|
||||
}, function (err, css) {
|
||||
less.render(style.toString(), function (err, css) {
|
||||
if (err) {
|
||||
return winston.error('Unable to compile LESS: ', err.stack);
|
||||
return winston.error('Unable to compile LESS: ', err);
|
||||
}
|
||||
|
||||
fs.writeFile(path.join(__dirname, '../public/installer.css'), css.css, callback);
|
||||
|
||||
@@ -231,7 +231,7 @@ fs.open(pathToConfig, 'r', function (err) {
|
||||
cwd: process.cwd(),
|
||||
});
|
||||
|
||||
fs.writeFileSync(pidFilePath, String(process.pid));
|
||||
fs.writeFileSync(pidFilePath, process.pid);
|
||||
}
|
||||
|
||||
async.series([
|
||||
|
||||
@@ -21,13 +21,11 @@
|
||||
"es6": false
|
||||
},
|
||||
"rules": {
|
||||
"block-scoped-var": "off",
|
||||
"no-dupe-class-members": "off",
|
||||
"no-var": "off",
|
||||
"object-shorthand": "off",
|
||||
"prefer-arrow-callback": "off",
|
||||
"prefer-spread": "off",
|
||||
"prefer-object-spread": "off",
|
||||
"prefer-reflect": "off",
|
||||
"prefer-template": "off"
|
||||
},
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Excessive Load Warning</title>
|
||||
<link href='https://fonts.googleapis.com/css?family=Ubuntu:400,500,700' rel='stylesheet' type='text/css'>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<style type="text/css">
|
||||
body {
|
||||
background: #00A9EA;
|
||||
color: white;
|
||||
/* see public/less/admin/vars.less for documentation on system font family */
|
||||
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-family: 'Ubuntu', sans-serif;
|
||||
text-align: center;
|
||||
-webkit-transform-style: preserve-3d;
|
||||
-moz-transform-style: preserve-3d;
|
||||
|
||||
3
public/js-enabled.css
Normal file
3
public/js-enabled.css
Normal file
@@ -0,0 +1,3 @@
|
||||
/*
|
||||
The following stylesheet is only included on pages that can execute javascript
|
||||
*/
|
||||
@@ -2,7 +2,6 @@
|
||||
"events": "أحداث",
|
||||
"no-events": "لا توجد أحداث",
|
||||
"control-panel": "لوحة تحكم الأحداث",
|
||||
"delete-events": "Delete Events",
|
||||
"filters": "Filters",
|
||||
"filters-apply": "Apply Filters",
|
||||
"filter-type": "Event Type",
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
{
|
||||
"forum-traffic": "Forum Traffic",
|
||||
"page-views": "مشاهدات الصفحات",
|
||||
"unique-visitors": "زائرين فريدين",
|
||||
"new-users": "New Users",
|
||||
"posts": "مشاركات",
|
||||
"topics": "مواضيع",
|
||||
"page-views-seven": "آخر 7 ايام",
|
||||
"page-views-thirty": "آخر 30 يوماً",
|
||||
"page-views-last-day": "آخر 24 ساعة",
|
||||
"page-views-custom": "مدة زمنية مخصصة",
|
||||
"page-views-custom-start": "بداية المدة",
|
||||
"page-views-custom-end": "نهاية المده",
|
||||
"page-views-custom-help": "أدخل نطاقا زمنيا لمرات مشاهدة الصفحات التي ترغب في عرضها. إذا لم يظهر منتقي التاريخ، فإن التنسيق المقبول هو <code>YYYY-MM-DD</code>",
|
||||
"page-views-custom-error": "الرجاء إدخال نطاق تاريخ صالح بالتنسيق <code>YYYY-MM-DD</code>",
|
||||
|
||||
"stats.yesterday": "Yesterday",
|
||||
"stats.today": "Today",
|
||||
"stats.last-week": "Last Week",
|
||||
"stats.this-week": "This Week",
|
||||
"stats.last-month": "Last Month",
|
||||
"stats.this-month": "This Month",
|
||||
"stats.all": "كل الوقت",
|
||||
|
||||
"updates": "تحديثات",
|
||||
"running-version": "المنتدى يعمل حاليا على <strong>NodeBB الإصدار<span id=\"version\">%1</span></strong>.",
|
||||
"keep-updated": "تأكد دائما من أن NodeBB يعمل على احدث إصدار للحصول على أحدث التصحيحات الأمنية وإصلاحات الأخطاء.",
|
||||
"up-to-date": "<p>المنتدى <strong>يعمل على أحدث إصدار</strong> <i class=\"fa fa-check\"></i></p>",
|
||||
"upgrade-available": "<p>A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
|
||||
"prerelease-upgrade-available": "<p>This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
|
||||
"prerelease-warning": "<p>هذه نسخة <strong>ماقبل الإصدار</strong> من NodeBB. قد تحدث أخطاء غير مقصودة. <i class=\"fa fa-exclamation-triangle\"></i></p>",
|
||||
"running-in-development": "المنتدى قيد التشغيل في وضع \"المطورين\". وقد تكون هناك ثغرات أمنية مفتوحة؛ من فضلك تواصل مع مسؤول نظامك.",
|
||||
"latest-lookup-failed": "<p>Failed to look up latest available version of NodeBB</p>",
|
||||
|
||||
"notices": "إشعارات",
|
||||
"restart-not-required": "إعادة التشغيل غير مطلوب",
|
||||
"restart-required": "إعادة التشغيل مطلوبة",
|
||||
"search-plugin-installed": "إضافة البحث منصبة",
|
||||
"search-plugin-not-installed": "إضافة البحث غير منصبة",
|
||||
"search-plugin-tooltip": "نصب إضافة البحث من صفحة الإضافات البرمجية لتنشيط وظيفة البحث",
|
||||
|
||||
"control-panel": "التحكم بالنظام",
|
||||
"rebuild-and-restart": "Rebuild & Restart",
|
||||
"restart": "Restart",
|
||||
"restart-warning": "Rebuilding or Restarting your NodeBB will drop all existing connections for a few seconds.",
|
||||
"restart-disabled": "Rebuilding and Restarting your NodeBB has been disabled as you do not seem to be running it via the appropriate daemon.",
|
||||
"maintenance-mode": "وضع الصيانة",
|
||||
"maintenance-mode-title": "انقر هنا لإعداد وضع الصيانة لـNodeBB",
|
||||
"realtime-chart-updates": "التحديث الفوري للرسم البياني",
|
||||
|
||||
"active-users": "المستخدمين النشطين",
|
||||
"active-users.users": "الأعضاء",
|
||||
"active-users.guests": "الزوار",
|
||||
"active-users.total": "المجموع",
|
||||
"active-users.connections": "Connections",
|
||||
|
||||
"anonymous-registered-users": "المجهولين مقابل المستخدمين المسجلين",
|
||||
"anonymous": "مجهول",
|
||||
"registered": "مسجل",
|
||||
|
||||
"user-presence": "تواجد المستخدمين",
|
||||
"on-categories": "في قائمة الأقسام",
|
||||
"reading-posts": "قراءة المشاركات",
|
||||
"browsing-topics": "تصفح المواضيع",
|
||||
"recent": "الأخيرة",
|
||||
"unread": "غير مقروء",
|
||||
|
||||
"high-presence-topics": "مواضيع ذات حضور قوي",
|
||||
|
||||
"graphs.page-views": "مشاهدات الصفحة",
|
||||
"graphs.page-views-registered": "Page Views Registered",
|
||||
"graphs.page-views-guest": "Page Views Guest",
|
||||
"graphs.page-views-bot": "Page Views Bot",
|
||||
"graphs.unique-visitors": "زوار فريدين",
|
||||
"graphs.registered-users": "مستخدمين مسجلين",
|
||||
"graphs.anonymous-users": "مستخدمين مجهولين",
|
||||
"last-restarted-by": "Last restarted by",
|
||||
"no-users-browsing": "No users browsing"
|
||||
}
|
||||
@@ -1,9 +1,7 @@
|
||||
{
|
||||
"you-are-on": "You are on <strong>%1:%2</strong>",
|
||||
"ip": "IP <strong>%1</strong>",
|
||||
"you-are-on": "Info - You are on <strong>%1:%2</strong>",
|
||||
"nodes-responded": "%1 nodes responded within %2ms!",
|
||||
"host": "host",
|
||||
"primary": "primary / run jobs",
|
||||
"pid": "pid",
|
||||
"nodejs": "nodejs",
|
||||
"online": "online",
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
"num-recent-replies": "# of Recent Replies",
|
||||
"ext-link": "External Link",
|
||||
"is-section": "Treat this category as a section",
|
||||
"tag-whitelist": "Tag Whitelist",
|
||||
"upload-image": "Upload Image",
|
||||
"delete-image": "Remove",
|
||||
"category-image": "Category Image",
|
||||
@@ -27,8 +26,6 @@
|
||||
"enable": "Enable",
|
||||
"disable": "Disable",
|
||||
"edit": "Edit",
|
||||
"analytics": "Analytics",
|
||||
"view-category": "View category",
|
||||
|
||||
"select-category": "Select Category",
|
||||
"set-parent-category": "Set Parent Category",
|
||||
@@ -66,6 +63,7 @@
|
||||
"alert.create-success": "Category successfully created!",
|
||||
"alert.none-active": "You have no active categories.",
|
||||
"alert.create": "Create a Category",
|
||||
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
|
||||
"alert.confirm-purge": "<p class=\"lead\">Do you really want to purge this category \"%1\"?</p><h5><strong class=\"text-danger\">Warning!</strong> All topics and posts in this category will be purged!</h5> <p class=\"help-block\">Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category <em>temporarily</em>, you'll want to \"disable\" the category instead.</p>",
|
||||
"alert.purge-success": "Category purged!",
|
||||
"alert.copy-success": "Settings Copied!",
|
||||
@@ -77,9 +75,7 @@
|
||||
"alert.user-search": "Search for a user here...",
|
||||
"alert.find-group": "Find a Group",
|
||||
"alert.group-search": "Search for a group here...",
|
||||
"alert.not-enough-whitelisted-tags": "Whitelisted tags are less than minimum tags, you need to create more whitelisted tags!",
|
||||
"collapse-all": "Collapse All",
|
||||
"expand-all": "Expand All",
|
||||
"disable-on-create": "Disable on create",
|
||||
"no-matches": "No matches"
|
||||
"disable-on-create": "Disable on create"
|
||||
}
|
||||
@@ -9,7 +9,7 @@
|
||||
"default": "System default",
|
||||
"default-help": "<em>System default</em> means the user has not explicitly overridden the global forum setting for digests, which is currently: "<strong>%1</strong>"",
|
||||
"resend": "Resend Digest",
|
||||
"resend-all-confirm": "Are you sure you wish to manually execute this digest run?",
|
||||
"resend-all-confirm": "Are you sure you wish to mnually execute this digest run?",
|
||||
"resent-single": "Manual digest resend completed",
|
||||
"resent-day": "Daily digest resent",
|
||||
"resent-week": "Weekly digest resent",
|
||||
|
||||
@@ -8,9 +8,6 @@
|
||||
"hidden": "Hidden",
|
||||
"private": "Private",
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
"privileges": "Privileges",
|
||||
"download-csv": "CSV",
|
||||
"search-placeholder": "Search",
|
||||
"create": "Create Group",
|
||||
"description-placeholder": "A short description about your group",
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
{
|
||||
"global": "Global",
|
||||
"admin": "Admin",
|
||||
"global.no-users": "No user-specific global privileges.",
|
||||
"group-privileges": "Group Privileges",
|
||||
"user-privileges": "User Privileges",
|
||||
"edit-privileges": "Edit Privileges",
|
||||
"chat": "Chat",
|
||||
"upload-images": "Upload Images",
|
||||
"upload-files": "Upload Files",
|
||||
@@ -32,21 +31,5 @@
|
||||
"downvote-posts": "Downvote Posts",
|
||||
"delete-topics": "Delete Topics",
|
||||
"purge": "Purge",
|
||||
"moderate": "Moderate",
|
||||
"admin-dashboard": "Dashboard",
|
||||
"admin-categories": "Categories",
|
||||
"admin-privileges": "Privileges",
|
||||
"admin-users": "Users",
|
||||
"admin-settings": "Settings",
|
||||
|
||||
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
|
||||
"alert.confirm-save": "Please confirm your intention to save these privileges",
|
||||
"alert.saved": "Privilege changes saved and applied",
|
||||
"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
|
||||
"alert.discarded": "Privilege changes discarded",
|
||||
"alert.confirm-copyToAll": "Are you sure you wish to apply this privilege set to <strong>all categories</strong>?",
|
||||
"alert.confirm-copyToAllGroup": "Are you sure you wish to apply this group's privilege set to <strong>all categories</strong>?",
|
||||
"alert.confirm-copyToChildren": "Are you sure you wish to apply this privilege set to <strong>all descendant (child) categories</strong>?",
|
||||
"alert.confirm-copyToChildrenGroup": "Are you sure you wish to apply this group's privilege set to <strong>all descendant (child) categories</strong>?",
|
||||
"alert.no-undo": "<em>This action cannot be undone.</em>"
|
||||
"moderate": "Moderate"
|
||||
}
|
||||
@@ -3,16 +3,17 @@
|
||||
"bg-color": "Background Colour",
|
||||
"text-color": "Text Colour",
|
||||
"create-modify": "Create & Modify Tags",
|
||||
"description": "Select tags by clicking or dragging, use <code>CTRL</code> to select multiple tags.",
|
||||
"description": "Select tags via clicking and/or dragging, use shift to select multiple.",
|
||||
"create": "Create Tag",
|
||||
"modify": "Modify Tags",
|
||||
"rename": "Rename Tags",
|
||||
"delete": "Delete Selected Tags",
|
||||
"search": "Search for tags...",
|
||||
"settings": "Tags Settings",
|
||||
"settings": "Click <a href=\"%1\">here</a> to visit the tag settings page.",
|
||||
"name": "Tag Name",
|
||||
|
||||
"alerts.editing": "Editing tag(s)",
|
||||
"alerts.editing-multiple": "Editing multiple tags",
|
||||
"alerts.editing-x": "Editing \"%1\" tag",
|
||||
"alerts.confirm-delete": "Do you want to delete the selected tags?",
|
||||
"alerts.update-success": "Tag Updated!"
|
||||
}
|
||||
@@ -12,9 +12,8 @@
|
||||
"unban": "Unban User(s)",
|
||||
"reset-lockout": "Reset Lockout",
|
||||
"reset-flags": "Reset Flags",
|
||||
"delete": "Delete <strong>User(s)</strong>",
|
||||
"delete-content": "Delete User(s) <strong>Content</strong>",
|
||||
"purge": "Delete <strong>User(s)</strong> and <strong>Content</strong>",
|
||||
"delete": "Delete User(s)",
|
||||
"purge": "Delete User(s) and Content",
|
||||
"download-csv": "Download CSV",
|
||||
"manage-groups": "Manage Groups",
|
||||
"add-group": "Add Group",
|
||||
@@ -94,11 +93,9 @@
|
||||
"alerts.validate-email-success": "Emails validated",
|
||||
"alerts.validate-force-password-reset-success": "User(s) passwords have been reset and their existing sessions have been revoked.",
|
||||
"alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?",
|
||||
"alerts.confirm-delete": "<strong>Warning!</strong><p>Do you really want to delete <strong>user(s)</strong>?</p><p>This action is not reversible! Only the user account will be deleted, their posts and topics will remain.</p>",
|
||||
"alerts.confirm-delete": "<b>Warning!</b><br/>Do you really want to delete user(s)?<br/> This action is not reversable! Only the user account will be deleted, their posts and topics will remain.",
|
||||
"alerts.delete-success": "User(s) Deleted!",
|
||||
"alerts.confirm-delete-content": "<strong>Warning!</strong><p>Do you really want to delete these user(s) <strong>content</strong>?</p><p>This action is not reversible! The users' accounts will remain, but their posts and topics will be deleted.</p>",
|
||||
"alerts.delete-content-success": "User(s) Content Deleted!",
|
||||
"alerts.confirm-purge": "<strong>Warning!</strong><p>Do you really want to delete <strong>user(s) and their content</strong>?</p><p>This action is not reversible! All user data and content will be erased!</p>",
|
||||
"alerts.confirm-purge": "<b>Warning!</b><br/>Do you really want to delete user(s) and their content?<br/> This action is not reversable! All user data and content will be erased!",
|
||||
"alerts.create": "Create User",
|
||||
"alerts.button-create": "Create",
|
||||
"alerts.button-cancel": "Cancel",
|
||||
@@ -108,5 +105,5 @@
|
||||
|
||||
"alerts.prompt-email": "Emails: ",
|
||||
"alerts.email-sent-to": "An invitation email has been sent to %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)"
|
||||
"alerts.x-users-found": "%1 user(s) found! Search took %2 ms."
|
||||
}
|
||||
@@ -1,6 +1,11 @@
|
||||
{
|
||||
"dashboard": "Dashboard",
|
||||
"section-general": "عام",
|
||||
"general/dashboard": "اللوحة الرئيسية",
|
||||
"general/homepage": "الصفحة الرئيسية",
|
||||
"general/navigation": "التصفح",
|
||||
"general/languages": "اللغات",
|
||||
"general/sounds": "الأصوات",
|
||||
"general/social": "شبكات التواصل",
|
||||
|
||||
"section-manage": "إدارة",
|
||||
"manage/categories": "الأقسام",
|
||||
@@ -17,22 +22,17 @@
|
||||
|
||||
"section-settings": "إعدادات",
|
||||
"settings/general": "عامة",
|
||||
"settings/homepage": "Home Page",
|
||||
"settings/navigation": "Navigation",
|
||||
"settings/reputation": "Reputation & Flags",
|
||||
"settings/reputation": "السمعة",
|
||||
"settings/email": "البريد الإلكتروني",
|
||||
"settings/user": "Users",
|
||||
"settings/group": "Groups",
|
||||
"settings/user": "الأعضاء",
|
||||
"settings/group": "المجموعات",
|
||||
"settings/guest": "الزوار",
|
||||
"settings/uploads": "الرفع",
|
||||
"settings/languages": "Languages",
|
||||
"settings/post": "Posts",
|
||||
"settings/chat": "Chats",
|
||||
"settings/post": "المشاركة",
|
||||
"settings/chat": "الدردشة",
|
||||
"settings/pagination": "ترقيم الصفحات",
|
||||
"settings/tags": "الكلمات المفتاحية",
|
||||
"settings/notifications": "التنبيهات",
|
||||
"settings/sounds": "Sounds",
|
||||
"settings/social": "Social",
|
||||
"settings/cookies": "Cookies",
|
||||
"settings/web-crawler": "Web Crawler",
|
||||
"settings/sockets": "Sockets",
|
||||
|
||||
@@ -15,20 +15,14 @@
|
||||
"headers.acah": "Access-Control-Allow-Headers",
|
||||
"hsts": "Strict Transport Security",
|
||||
"hsts.enabled": "Enabled HSTS (recommended)",
|
||||
"hsts.maxAge": "HSTS Max Age",
|
||||
"hsts.subdomains": "Include subdomains in HSTS header",
|
||||
"hsts.preload": "Allow preloading of HSTS header",
|
||||
"hsts.help": "If enabled, an HSTS header will be set for this site. You can elect to include subdomains and preloading flags in your header. If in doubt, you can leave these unchecked. <a href=\"%1\">More information <i class=\"fa fa-external-link\"></i></a>",
|
||||
"traffic-management": "Traffic Management",
|
||||
"traffic.help": "NodeBB uses a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.",
|
||||
"traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.",
|
||||
"traffic.enable": "Enable Traffic Management",
|
||||
"traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)",
|
||||
"traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)",
|
||||
"traffic.lag-check-interval": "Check Interval (in milliseconds)",
|
||||
"traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)",
|
||||
|
||||
"sockets.settings": "WebSocket Settings",
|
||||
"sockets.max-attempts": "Max Reconnection Attempts",
|
||||
"sockets.default-placeholder": "Default: %1",
|
||||
"sockets.delay": "Reconnection Delay"
|
||||
"traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)"
|
||||
}
|
||||
@@ -1,41 +1,35 @@
|
||||
{
|
||||
"site-settings": "اعدادات الموقع",
|
||||
"title": "عنوان الموقع",
|
||||
"title.short": "عنوان قصير",
|
||||
"title.short-placeholder": "ان لم تقم بكتابة عنوان مختصر, سيتم استخدام عنوان الموقع الكلي",
|
||||
"title.url": "الرابط",
|
||||
"site-settings": "Site Settings",
|
||||
"title": "Site Title",
|
||||
"title.url": "URL",
|
||||
"title.url-placeholder": "The URL of the site title",
|
||||
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index.",
|
||||
"title.name": "اسم المنتدي",
|
||||
"title.name": "Your Community Name",
|
||||
"title.show-in-header": "Show Site Title in Header",
|
||||
"browser-title": "عنوان المتصفح",
|
||||
"browser-title": "Browser Title",
|
||||
"browser-title-help": "If no browser title is specified, the site title will be used",
|
||||
"title-layout": "Title Layout",
|
||||
"title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}",
|
||||
"description.placeholder": "A short description about your community",
|
||||
"description": "وصف الموقع",
|
||||
"keywords": "الكلمات الدليله للموقع",
|
||||
"description": "Site Description",
|
||||
"keywords": "Site Keywords",
|
||||
"keywords-placeholder": "Keywords describing your community, comma-separated",
|
||||
"logo": "شعار الموقع",
|
||||
"logo.image": "صورة",
|
||||
"logo": "Site Logo",
|
||||
"logo.image": "Image",
|
||||
"logo.image-placeholder": "Path to a logo to display on forum header",
|
||||
"logo.upload": "رفع",
|
||||
"logo.url": "الرابط",
|
||||
"logo.upload": "Upload",
|
||||
"logo.url": "URL",
|
||||
"logo.url-placeholder": "The URL of the site logo",
|
||||
"logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.",
|
||||
"logo.alt-text": "نص بديل",
|
||||
"logo.alt-text": "Alt Text",
|
||||
"log.alt-text-placeholder": "Alternative text for accessibility",
|
||||
"favicon": "صورة المفضله",
|
||||
"favicon.upload": "رفع",
|
||||
"favicon": "Favicon",
|
||||
"favicon.upload": "Upload",
|
||||
"touch-icon": "Homescreen/Touch Icon",
|
||||
"touch-icon.upload": "رفع",
|
||||
"touch-icon.upload": "Upload",
|
||||
"touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.",
|
||||
"outgoing-links": "Outgoing Links",
|
||||
"outgoing-links.warning-page": "Use Outgoing Links Warning Page",
|
||||
"search-default-sort-by": "الترتيب الافتراضي للبحث",
|
||||
"outgoing-links.whitelist": "Domains to whitelist for bypassing the warning page",
|
||||
"site-colors": "Site Color Metadata",
|
||||
"theme-color": "لون الثيم",
|
||||
"background-color": "لون الخلفية",
|
||||
"background-color-help": "Color used for splash screen background when website is installed as a PWA"
|
||||
"search-default-sort-by": "Search default sort by",
|
||||
"outgoing-links.whitelist": "Domains to whitelist for bypassing the warning page"
|
||||
}
|
||||
@@ -3,7 +3,6 @@
|
||||
"private-groups": "Private Groups",
|
||||
"private-groups.help": "If enabled, joining of groups requires the approval of the group owner <em>(Default: enabled)</em>",
|
||||
"private-groups.warning": "<strong>Beware!</strong> If this option is disabled and you have private groups, they automatically become public.",
|
||||
"allow-multiple-badges": "Allow Multiple Badges",
|
||||
"allow-multiple-badges-help": "This flag can be used to allow users to select multiple group badges, requires theme support.",
|
||||
"max-name-length": "Maximum Group Name Length",
|
||||
"max-title-length": "Maximum Group Title Length",
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"language-settings": "اعدادات اللغة",
|
||||
"description": "تُحدد اللغة الافتراضية إعدادات اللغة لجميع المستخدمين الذين يزورون المنتدى. <br />يمكن للأعضاء تجاوز اللغة الافتراضية من خلال صفحة إعدادات الحساب الخاصة بهم.",
|
||||
"default-language": "اللغة الافتراضية",
|
||||
"auto-detect": "الكشف عن إعدادات اللغة للزوار بشكل آلي"
|
||||
}
|
||||
@@ -2,5 +2,6 @@
|
||||
"notifications": "Notifications",
|
||||
"welcome-notification": "Welcome Notification",
|
||||
"welcome-notification-link": "Welcome Notification Link",
|
||||
"welcome-notification-uid": "Welcome Notification User (UID)"
|
||||
"welcome-notification-uid": "Welcome Notification User (UID)",
|
||||
"notification-alert-timeout": "Notification Alert Timeout"
|
||||
}
|
||||
@@ -42,7 +42,6 @@
|
||||
"unread.cutoff": "Unread cutoff days",
|
||||
"unread.min-track-last": "Minimum posts in topic before tracking last read",
|
||||
"recent": "Recent Settings",
|
||||
"recent.max-topics": "Maximum topics on /recent",
|
||||
"recent.categoryFilter.disable": "Disable filtering of topics in ignored categories on the /recent page",
|
||||
"signature": "Signature Settings",
|
||||
"signature.disable": "Disable signatures",
|
||||
|
||||
@@ -5,16 +5,10 @@
|
||||
"votes-are-public": "All Votes Are Public",
|
||||
"thresholds": "Activity Thresholds",
|
||||
"min-rep-downvote": "Minimum reputation to downvote posts",
|
||||
"downvotes-per-day": "Downvotes per day (set to 0 for unlimited downvotes)",
|
||||
"downvotes-per-user-per-day": "Downvotes per user per day (set to 0 for unlimited downvotes)",
|
||||
"min-rep-flag": "Minimum reputation to flag posts",
|
||||
"min-rep-website": "Minimum reputation to add \"Website\" to user profile",
|
||||
"min-rep-aboutme": "Minimum reputation to add \"About me\" to user profile",
|
||||
"min-rep-signature": "Minimum reputation to add \"Signature\" to user profile",
|
||||
"min-rep-profile-picture": "Minimum reputation to add \"Profile Picture\" to user profile",
|
||||
"min-rep-cover-picture": "Minimum reputation to add \"Cover Picture\" to user profile",
|
||||
|
||||
"flags": "Flag Settings",
|
||||
"flags.limit-per-target": "Maximum number of times something can be flagged",
|
||||
"flags.limit-per-target-placeholder": "Default: 0"
|
||||
"min-rep-cover-picture": "Minimum reputation to add \"Cover Picture\" to user profile"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"notifications": "التنبيهات",
|
||||
"chat-messages": "Chat Messages",
|
||||
"play-sound": "Play",
|
||||
"incoming-message": "Incoming Message",
|
||||
"outgoing-message": "Outgoing Message",
|
||||
"upload-new-sound": "Upload New Sound",
|
||||
"saved": "Settings Saved"
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"tag": "Tag Settings",
|
||||
"link-to-manage": "Manage Tags",
|
||||
"min-per-topic": "Minimum Tags per Topic",
|
||||
"max-per-topic": "Maximum Tags per Topic",
|
||||
"min-length": "Minimum Tag Length",
|
||||
"max-length": "Maximum Tag Length",
|
||||
"goto-manage": "Click here to visit the tag management page.",
|
||||
"related-topics": "Related Topics",
|
||||
"max-related-topics": "Maximum related topics to display (if supported by theme)"
|
||||
}
|
||||
@@ -9,7 +9,7 @@
|
||||
"allow-login-with.email": "البريد الالكتروني فقط",
|
||||
"account-settings": "إعدادت الحساب",
|
||||
"gdpr_enabled": "Enable GDPR consent collection",
|
||||
"gdpr_enabled_help": "When enabled, all new registrants will be required to explicitly give consent for data collection and usage under the <a href=\"https://ec.europa.eu/info/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules/eu-data-protection-rules_en\">General Data Protection Regulation (GDPR)</a>. <strong>Note</strong>: Enabling GDPR does not force pre-existing users to provide consent. To do so, you will need to install the GDPR plugin.",
|
||||
"gdpr_enabled_help": "When enabled, all new registrants will be required to explicitly give consent for data collection and usage under the <a href=\"https://eugdpr.org/the-regulation/gdpr-faqs/\">General Data Protection Regulation (GDPR)</a>. <strong>Note</strong>: Enabling GDPR does not force pre-existing users to provide consent. To do so, you will need to install the GDPR plugin.",
|
||||
"disable-username-changes": "عدم السماح بتغيير اسم المستخدم",
|
||||
"disable-email-changes": "عدم السماح بتغيير البريد الالكتروني",
|
||||
"disable-password-changes": "عدم السماح بتغيير كلمة المرور",
|
||||
|
||||
@@ -138,13 +138,8 @@
|
||||
"not-enough-reputation-min-rep-signature": "You do not have enough reputation to add a signature",
|
||||
"not-enough-reputation-min-rep-profile-picture": "You do not have enough reputation to add a profile picture",
|
||||
"not-enough-reputation-min-rep-cover-picture": "You do not have enough reputation to add a cover picture",
|
||||
"post-already-flagged": "You have already flagged this post",
|
||||
"user-already-flagged": "You have already flagged this user",
|
||||
"post-flagged-too-many-times": "This post has been flagged by others already",
|
||||
"user-flagged-too-many-times": "This user has been flagged by others already",
|
||||
"already-flagged": "لقد بلغت عن هذه المشاركة من قبل.",
|
||||
"self-vote": "You cannot vote on your own post",
|
||||
"too-many-downvotes-today": "You can only downvote %1 times a day",
|
||||
"too-many-downvotes-today-user": "You can only downvote a user %1 times a day",
|
||||
"reload-failed": "المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
|
||||
"registration-error": "حدث خطأ أثناء التسجيل",
|
||||
"parse-error": "حدث خطأ ما أثناء تحليل استجابة الخادم",
|
||||
|
||||
@@ -1,61 +1,56 @@
|
||||
{
|
||||
"state": "الحالة",
|
||||
"reports": "Reports",
|
||||
"first-reported": "First Reported",
|
||||
"state": "State",
|
||||
"reporter": "Reporter",
|
||||
"reported-at": "Reported At",
|
||||
"description": "Description",
|
||||
"no-flags": "Hooray! No flags found.",
|
||||
"assignee": "المحال إليه",
|
||||
"update": "تحديث",
|
||||
"updated": "تم التحديث",
|
||||
"assignee": "Assignee",
|
||||
"update": "Update",
|
||||
"updated": "Updated",
|
||||
"target-purged": "The content this flag referred to has been purged and is no longer available.",
|
||||
|
||||
"graph-label": "Daily Flags",
|
||||
"quick-filters": "Quick Filters",
|
||||
"filter-active": "There are one or more filters active in this list of flags",
|
||||
"filter-reset": "ازالة الفلاتر",
|
||||
"filters": "خيارات الفلتر",
|
||||
"filter-reset": "Remove Filters",
|
||||
"filters": "Filter Options",
|
||||
"filter-reporterId": "Reporter UID",
|
||||
"filter-targetUid": "Flagged UID",
|
||||
"filter-type": "عنوان العلامة",
|
||||
"filter-type-all": "كل المحتوي",
|
||||
"filter-type-post": "مشاركة",
|
||||
"filter-type-user": "مستخدم",
|
||||
"filter-state": "الحالة",
|
||||
"filter-type": "Flag Type",
|
||||
"filter-type-all": "All Content",
|
||||
"filter-type-post": "Post",
|
||||
"filter-type-user": "User",
|
||||
"filter-state": "State",
|
||||
"filter-assignee": "Assignee UID",
|
||||
"filter-cid": "Category",
|
||||
"filter-quick-mine": "Assigned to me",
|
||||
"filter-cid-all": "All categories",
|
||||
"apply-filters": "Apply Filters",
|
||||
"more-filters": "More Filters",
|
||||
|
||||
"quick-actions": "اجراءات سريعه",
|
||||
"quick-links": "Quick Links",
|
||||
"flagged-user": "Flagged User",
|
||||
"view-profile": "مشاهدة الملف الشخصي",
|
||||
"start-new-chat": "بدء محادثه جديده",
|
||||
"view-profile": "View Profile",
|
||||
"start-new-chat": "Start New Chat",
|
||||
"go-to-target": "View Flag Target",
|
||||
"assign-to-me": "Assign To Me",
|
||||
"delete-post": "حذف المشاركة",
|
||||
"purge-post": "Purge Post",
|
||||
"restore-post": "استرجاع المشاركة",
|
||||
|
||||
"user-view": "مشاهدة الملف الشخصي",
|
||||
"user-edit": "تعديل الملف الشخصي",
|
||||
"user-view": "View Profile",
|
||||
"user-edit": "Edit Profile",
|
||||
|
||||
"notes": "Flag Notes",
|
||||
"add-note": "اضافة ملاحظة",
|
||||
"add-note": "Add Note",
|
||||
"no-notes": "No shared notes.",
|
||||
"delete-note-confirm": "Are you sure you want to delete this flag note?",
|
||||
"note-added": "Note Added",
|
||||
"note-deleted": "Note Deleted",
|
||||
|
||||
"history": "Account & Flag History",
|
||||
"history": "Flag History",
|
||||
"back": "Back to Flags List",
|
||||
"no-history": "No flag history.",
|
||||
|
||||
"state-all": "All states",
|
||||
"state-open": "New/Open",
|
||||
"state-wip": "Work in Progress",
|
||||
"state-resolved": "تم حلها",
|
||||
"state-rejected": "تم رفضها",
|
||||
"state-resolved": "Resolved",
|
||||
"state-rejected": "Rejected",
|
||||
"no-assignee": "Not Assigned",
|
||||
"note-added": "Note Added",
|
||||
|
||||
"modal-title": "Report Inappropriate Content",
|
||||
"modal-body": "Please specify your reason for flagging %1 %2 for review. Alternatively, use one of the quick report buttons if applicable.",
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
"header.unread": "غير مقروء",
|
||||
"header.tags": "وسم",
|
||||
"header.popular": "الأكثر شهرة",
|
||||
"header.top": "Top",
|
||||
"header.users": "المستخدمين",
|
||||
"header.groups": "المجموعات",
|
||||
"header.chats": "المحادثات",
|
||||
@@ -54,7 +53,6 @@
|
||||
"posts": "المشاركات",
|
||||
"best": "الأفضل",
|
||||
"votes": "Votes",
|
||||
"voters": "Voters",
|
||||
"upvoters": "الموافقين",
|
||||
"upvoted": "مصوت بالموجب",
|
||||
"downvoters": "مصوتين بالسالب",
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"chat.chatting_with": "Chat with",
|
||||
"chat.placeholder": "أكتب رسالة دردشة هنا، اضغط ENTER للإرسال",
|
||||
"chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
|
||||
"chat.send": "أرسل",
|
||||
"chat.no_active": "لا يوجد لديك دردشات نشطة.",
|
||||
"chat.user_typing": "%1 يكتب رسالة...",
|
||||
@@ -13,7 +12,6 @@
|
||||
"chat.recent-chats": "آخر الدردشات",
|
||||
"chat.contacts": "الأصدقاء",
|
||||
"chat.message-history": "تاريخ الرسائل",
|
||||
"chat.message-deleted": "Message Deleted",
|
||||
"chat.options": "Chat options",
|
||||
"chat.pop-out": "افتح الدردشة في نافذة خاصة",
|
||||
"chat.minimize": "Minimize",
|
||||
@@ -59,7 +57,6 @@
|
||||
"composer.upload-file": "Upload File",
|
||||
"composer.zen_mode": "Zen Mode",
|
||||
"composer.select_category": "Select a category",
|
||||
"composer.textarea.placeholder": "Enter your post content here, drag and drop images",
|
||||
"bootbox.ok": "OK",
|
||||
"bootbox.cancel": "إلغاء",
|
||||
"bootbox.confirm": "تأكيد",
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> أنشأ موضوعًا جديدًا: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> صار يتابعك.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
@@ -43,9 +42,6 @@
|
||||
"new_register_multiple": "There are <strong>%1</strong> registration requests awaiting review.",
|
||||
"flag_assigned_to_you": "تم تخصيص العلامة 1% لك",
|
||||
"post_awaiting_review": "Post awaiting review",
|
||||
"profile-exported": "<strong>%1</strong> profile exported, click to download",
|
||||
"posts-exported": "<strong>%1</strong> posts exported, click to download",
|
||||
"uploads-exported": "<strong>%1</strong> uploads exported, click to download",
|
||||
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
|
||||
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
|
||||
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
|
||||
@@ -57,7 +53,6 @@
|
||||
"notificationType_upvote": "عندما يوافقك احدهم على منشورك",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_post-edit": "When a post is edited in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
|
||||
@@ -3,6 +3,5 @@
|
||||
"tags": "الكلمات الدلالية",
|
||||
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
|
||||
"enter_tags_here_short": "أدخل الكلمات الدلالية...",
|
||||
"no_tags": "لا يوجد كلمات دلالية بعد.",
|
||||
"select_tags": "Select Tags"
|
||||
"no_tags": "لا يوجد كلمات دلالية بعد."
|
||||
}
|
||||
@@ -36,11 +36,8 @@
|
||||
"ban-ip": "Ban IP",
|
||||
"view-history": "Edit History",
|
||||
"bookmark_instructions": "اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
|
||||
"flag-post": "Flag this post",
|
||||
"flag-user": "Flag this user",
|
||||
"already-flagged": "Already Flagged",
|
||||
"view-flag-report": "View Flag Report",
|
||||
"merged_message": "This topic has been merged into <a href=\"%1\">%2</a>",
|
||||
"flag_title": "إشعار بمشاركة مخلة.",
|
||||
"merged_message": "This topic has been merged into <a href=\"/topic/%1\">%2</a>",
|
||||
"deleted_message": "هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
|
||||
"following_topic.message": "ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
|
||||
"not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.",
|
||||
@@ -102,15 +99,11 @@
|
||||
"fork_pid_count": "1% مشاركة محددة",
|
||||
"fork_success": "تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
|
||||
"delete_posts_instruction": "Click the posts you want to delete/purge",
|
||||
"merge_topics_instruction": "Click the topics you want to merge or search for them",
|
||||
"merge-topic-list-title": "List of topics to be merged",
|
||||
"merge-options": "Merge options",
|
||||
"merge-select-main-topic": "Select the main topic",
|
||||
"merge-new-title-for-topic": "New title for topic",
|
||||
"merge_topics_instruction": "Click the topics you want to merge",
|
||||
"move_posts_instruction": "Click the posts you want to move",
|
||||
"change_owner_instruction": "Click the posts you want to assign to another user",
|
||||
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
|
||||
"composer.handle_placeholder": "Enter your name/handle here",
|
||||
"composer.handle_placeholder": "اﻹسم",
|
||||
"composer.discard": "نبذ التغييرات",
|
||||
"composer.submit": "حفظ",
|
||||
"composer.replying_to": "الرد على %1",
|
||||
@@ -141,9 +134,6 @@
|
||||
"diffs.no-revisions-description": "This post has <strong>%1</strong> revisions.",
|
||||
"diffs.current-revision": "current revision",
|
||||
"diffs.original-revision": "original revision",
|
||||
"diffs.restore": "Restore this revision",
|
||||
"diffs.restore-description": "A new revision will be appended to this post's edit history.",
|
||||
"diffs.post-restored": "Post successfully restored to earlier revision",
|
||||
"timeago_later": "%1 later",
|
||||
"timeago_earlier": "%1 earlier"
|
||||
}
|
||||
@@ -8,20 +8,13 @@
|
||||
"email": "البريد الإلكتروني",
|
||||
"confirm_email": "تأكيد عنوان البريد الإلكتروني",
|
||||
"account_info": "معلومات الحساب",
|
||||
"admin_actions_label": "Administrative Actions",
|
||||
"ban_account": "حظر الحساب",
|
||||
"ban_account_confirm": "هل تريد حقاً حظر هاذا العضو؟",
|
||||
"unban_account": "إزالة حظر الحساب",
|
||||
"delete_account": "حذف الحساب",
|
||||
"delete_account_as_admin": "Delete <strong>Account</strong>",
|
||||
"delete_content": "Delete Account <strong>Content</strong>",
|
||||
"delete_all": "Delete <strong>Account</strong> and <strong>Content</strong>",
|
||||
"delete_account_confirm": "Are you sure you want to anonymize your posts and 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 password to confirm that you wish to destroy this account.",
|
||||
"delete_this_account_confirm": "Are you sure you want to delete this account while leaving its contents behind?<br /><strong>This action is irreversible, posts will be anonymized, and you will not be able to restore post associations with the deleted account</strong><br /><br />",
|
||||
"delete_account_content_confirm": "Are you sure you want to delete this account's content (posts/topics/uploads)? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
|
||||
"delete_all_confirm": "Are you sure you want to delete this account and all of its content (posts/topics/uploads)? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
|
||||
"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 password to confirm that you wish to destroy this account.",
|
||||
"delete_this_account_confirm": "هل انت متأكد من رغبتك بحذف هذا الحساب؟ <br /> <strong>هذا الإجراء لا رجعة فيه ولن تتمكن من استرداد أي بيانات</strong><br /><br />",
|
||||
"account-deleted": "تم حذف الحساب",
|
||||
"account-content-deleted": "Account content deleted",
|
||||
"fullname": "الاسم الكامل",
|
||||
"website": "الموقع الإلكتروني",
|
||||
"location": "الموقع",
|
||||
@@ -151,7 +144,6 @@
|
||||
"info.ban-history": "سجل الحظر الأحدث",
|
||||
"info.no-ban-history": "هذا المستخدم لم يتم حظره مطلقا",
|
||||
"info.banned-until": "محظور حتى %1",
|
||||
"info.banned-expiry": "Expiry",
|
||||
"info.banned-permanently": "محظور بشكل دائم",
|
||||
"info.banned-reason-label": "سبب",
|
||||
"info.banned-no-reason": "لم يتم إعطاء سبب.",
|
||||
@@ -178,10 +170,7 @@
|
||||
"consent.right_to_erasure_description": "At any time, you are able to revoke your consent to data collection and/or processing by deleting your account. Your individual profile can be deleted, although your posted content will remain. If you wish to delete both your account <strong>and</strong> your content, please contact the administrative team for this website.",
|
||||
"consent.right_to_data_portability": "You have the Right to Data Portability",
|
||||
"consent.right_to_data_portability_description": "You may request from us a machine-readable export of any collected data about you and your account. You can do so by clicking the appropriate button below.",
|
||||
"consent.export_profile": "Export Profile (.json)",
|
||||
"consent.export-profile-success": "Exporting profile, you will get a notification when it is complete.",
|
||||
"consent.export_profile": "Export Profile (.csv)",
|
||||
"consent.export_uploads": "Export Uploaded Content (.zip)",
|
||||
"consent.export-uploads-success": "Exporting uploads, you will get a notification when it is complete.",
|
||||
"consent.export_posts": "Export Posts (.csv)",
|
||||
"consent.export-posts-success": "Exporting posts, you will get a notification when it is complete."
|
||||
"consent.export_posts": "Export Posts (.csv)"
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
"events": "Събития",
|
||||
"no-events": "Няма събития",
|
||||
"control-panel": "Контролен панел за събитията",
|
||||
"delete-events": "Изтриване на събитията",
|
||||
"filters": "Филтри",
|
||||
"filters-apply": "Прилагане на филтрите",
|
||||
"filter-type": "Вид събитие",
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
{
|
||||
"forum-traffic": "Трафик на форума",
|
||||
"page-views": "Преглеждания на страниците",
|
||||
"unique-visitors": "Уникални посетители",
|
||||
"new-users": "Нови потребители",
|
||||
"posts": "Публикации",
|
||||
"topics": "Теми",
|
||||
"page-views-seven": "Последните 7 дни",
|
||||
"page-views-thirty": "Последните 30 дни",
|
||||
"page-views-last-day": "Последните 24 часа",
|
||||
"page-views-custom": "Интервал по избор",
|
||||
"page-views-custom-start": "Начална дата",
|
||||
"page-views-custom-end": "Крайна дата",
|
||||
"page-views-custom-help": "Въведете интервал от дати, за които искате да видите преглежданията на страниците. Ако не се появи календар за избор, можете да въведете датите във формат: <code>ГГГГ-ММ-ДД</code>",
|
||||
"page-views-custom-error": "Моля, въведете правилен интервал от дати във формата: <code>ГГГГ-ММ-ДД</code>",
|
||||
|
||||
"stats.yesterday": "Вчера",
|
||||
"stats.today": "Днес",
|
||||
"stats.last-week": "Миналата седмица",
|
||||
"stats.this-week": "Тази седмица",
|
||||
"stats.last-month": "Миналия месец",
|
||||
"stats.this-month": "Този месец",
|
||||
"stats.all": "От началото",
|
||||
|
||||
"updates": "Обновления",
|
||||
"running-version": "Вие използвате <strong>NodeBB версия <span id=\"version\">%1</span></strong>.",
|
||||
"keep-updated": "Стремете се винаги да използвате най-новата версия на NodeBB, за да се възползвате от последните подобрения на сигурността и поправки на проблеми.",
|
||||
"up-to-date": "<p>Вие използвате <strong>най-новата версия</strong> <i class=\"fa fa-check\"></i></p>",
|
||||
"upgrade-available": "<p>Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>",
|
||||
"prerelease-upgrade-available": "<p>Това е остаряла предварителна версия на NodeBB. Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>",
|
||||
"prerelease-warning": "<p>Това е версия за <strong>предварителен преглед</strong> на NodeBB. Възможно е да има неочаквани неизправности. <i class=\"fa fa-exclamation-triangle\"></i></p>",
|
||||
"running-in-development": "<span>Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.</span>",
|
||||
"latest-lookup-failed": "<p>Не може да бъде извършена проверка за последната налична версия на NodeBB</p>",
|
||||
|
||||
"notices": "Забележки",
|
||||
"restart-not-required": "Не се изисква рестартиране",
|
||||
"restart-required": "Изисква се рестартиране",
|
||||
"search-plugin-installed": "Добавката за търсене е инсталирана",
|
||||
"search-plugin-not-installed": "Добавката за търсене не е инсталирана",
|
||||
"search-plugin-tooltip": "Инсталирайте добавка за търсене от страницата с добавките, за да включите функционалността за търсене",
|
||||
|
||||
"control-panel": "Системен контрол",
|
||||
"rebuild-and-restart": "Повторно изграждане и рестартиране",
|
||||
"restart": "Рестартиране",
|
||||
"restart-warning": "Повторното изграждане и рестартирането на NodeBB ще прекъснат всички връзки за няколко секунди.",
|
||||
"restart-disabled": "Възможностите за повторно изграждане и рестартиране на NodeBB са изключени, тъй като изглежда, че NodeBB не се изпълнява чрез подходящия демон.",
|
||||
"maintenance-mode": "Режим на профилактика",
|
||||
"maintenance-mode-title": "Щракнете тук, за да зададете режим на профилактика на NodeBB",
|
||||
"realtime-chart-updates": "Актуализации на таблиците в реално време",
|
||||
|
||||
"active-users": "Дейни потребители",
|
||||
"active-users.users": "Потребители",
|
||||
"active-users.guests": "Гости",
|
||||
"active-users.total": "Общо",
|
||||
"active-users.connections": "Връзки",
|
||||
|
||||
"anonymous-registered-users": "Анонимни към регистрирани потребители",
|
||||
"anonymous": "Анонимни",
|
||||
"registered": "Регистрирани",
|
||||
|
||||
"user-presence": "Присъствие на потребителите ",
|
||||
"on-categories": "В списъка с категории",
|
||||
"reading-posts": "Четящи публикации",
|
||||
"browsing-topics": "Разглеждащи теми",
|
||||
"recent": "Скорошни",
|
||||
"unread": "Непрочетени",
|
||||
|
||||
"high-presence-topics": "Теми с най-голяма присъственост",
|
||||
|
||||
"graphs.page-views": "Преглеждания на страниците",
|
||||
"graphs.page-views-registered": "Преглеждания на страниците от регистрирани потребители",
|
||||
"graphs.page-views-guest": "Преглеждания на страниците от гости",
|
||||
"graphs.page-views-bot": "Преглеждания на страниците от ботове",
|
||||
"graphs.unique-visitors": "Уникални посетители",
|
||||
"graphs.registered-users": "Регистрирани потребители",
|
||||
"graphs.anonymous-users": "Анонимни потребители",
|
||||
"last-restarted-by": "Последно рестартиране от",
|
||||
"no-users-browsing": "Няма разглеждащи потребители"
|
||||
}
|
||||
@@ -1,9 +1,7 @@
|
||||
{
|
||||
"you-are-on": "Вие сте на <strong>%1:%2</strong>",
|
||||
"ip": "IP <strong>%1</strong>",
|
||||
"you-are-on": "Информация — Вие сте на <strong>%1:%2</strong>",
|
||||
"nodes-responded": "%1 възела отговориха в рамките на %2мсек!",
|
||||
"host": "сървър",
|
||||
"primary": "основен / изпълнение на задачите",
|
||||
"pid": "ид. на процеса",
|
||||
"nodejs": "nodejs",
|
||||
"online": "на линия",
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
"num-recent-replies": "Брой на скорошните отговори",
|
||||
"ext-link": "Външна връзка",
|
||||
"is-section": "Използване на тази категория като раздел",
|
||||
"tag-whitelist": "Списък от разрешени етикети",
|
||||
"upload-image": "Качване на изображение",
|
||||
"delete-image": "Премахване",
|
||||
"category-image": "Изображение на категорията",
|
||||
@@ -27,8 +26,6 @@
|
||||
"enable": "Включване",
|
||||
"disable": "Изключване",
|
||||
"edit": "Редактиране",
|
||||
"analytics": "Анализи",
|
||||
"view-category": "Преглед на категорията",
|
||||
|
||||
"select-category": "Изберете категория",
|
||||
"set-parent-category": "Задайте базова категория",
|
||||
@@ -66,6 +63,7 @@
|
||||
"alert.create-success": "Категорията е създадена успешно!",
|
||||
"alert.none-active": "Нямате активни категории.",
|
||||
"alert.create": "Създаване на категория",
|
||||
"alert.confirm-moderate": "<strong>Наистина ли искате да дадете правомощието за модериране на тази потребителска група?</strong> Тази група е публична и всеки може свободно да се присъедини към нея.",
|
||||
"alert.confirm-purge": "<p class=\"lead\">Наистина ли искате да изтриете категорията „%1“?</p><h5><strong class=\"text-danger\">Внимание!</strong> Всички теми и публикации в тази категория ще бъдат изтрити!</h5> <p class=\"help-block\">Изтриването на категорията ще премахне всички теми и публикации, и ще изтрие категорията от базата данни. Ако искате да премахнете категорията <em>временно</em>, можете просто да я „изключите“.</p>",
|
||||
"alert.purge-success": "Категорията е изтрита!",
|
||||
"alert.copy-success": "Настройките са копирани!",
|
||||
@@ -77,9 +75,7 @@
|
||||
"alert.user-search": "Потърсете потребител тук…",
|
||||
"alert.find-group": "Търсене на група",
|
||||
"alert.group-search": "Потърсете група тук…",
|
||||
"alert.not-enough-whitelisted-tags": "Разрешените етикети са по-малко от минимума. Трябва да създадете още разрешени етикети!",
|
||||
"collapse-all": "Свиване на всички",
|
||||
"expand-all": "Разгъване на всички",
|
||||
"disable-on-create": "Изключване при създаване",
|
||||
"no-matches": "Няма съвпадения"
|
||||
"disable-on-create": "Изключване при създаване"
|
||||
}
|
||||
@@ -8,9 +8,6 @@
|
||||
"hidden": "Скрита",
|
||||
"private": "Частна",
|
||||
"edit": "Редактиране",
|
||||
"delete": "Изтриване",
|
||||
"privileges": "Правомощия",
|
||||
"download-csv": "CSV",
|
||||
"search-placeholder": "Търсене",
|
||||
"create": "Създаване на група",
|
||||
"description-placeholder": "Кратко описание на групата",
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
{
|
||||
"global": "Глобални",
|
||||
"admin": "Администратор",
|
||||
"global.no-users": "Няма глобални правомощия за отделни потребители.",
|
||||
"group-privileges": "Правомощия за групите",
|
||||
"user-privileges": "Правомощия за потребителите",
|
||||
"edit-privileges": "Редактиране на правомощията",
|
||||
"chat": "Разговор",
|
||||
"upload-images": "Качване на изображения",
|
||||
"upload-files": "Качване на файлове",
|
||||
@@ -32,21 +31,5 @@
|
||||
"downvote-posts": "Отрицателно гласуване за публикации",
|
||||
"delete-topics": "Изтриване на теми",
|
||||
"purge": "Изчистване",
|
||||
"moderate": "Модериране",
|
||||
"admin-dashboard": "Табло",
|
||||
"admin-categories": "Категории",
|
||||
"admin-privileges": "Правомощия",
|
||||
"admin-users": "Потребители",
|
||||
"admin-settings": "Настройки",
|
||||
|
||||
"alert.confirm-moderate": "<strong>Наистина ли искате да дадете правомощието за модериране на тази потребителска група?</strong> Тази група е публична и всеки може свободно да се присъедини към нея.",
|
||||
"alert.confirm-save": "Моля, потвърдете желанието си да запазите тези правомощия",
|
||||
"alert.saved": "Промените по правомощията са запазени и приложени",
|
||||
"alert.confirm-discard": "Наистина ли искате да отхвърлите промените по правомощията?",
|
||||
"alert.discarded": "Промените по правомощията са отхвърлени",
|
||||
"alert.confirm-copyToAll": "Наистина ли искате да приложите този набор от правомощия към <strong>всички категории</strong>?",
|
||||
"alert.confirm-copyToAllGroup": "Наистина ли искате да приложите набора от правомощия на таи група към <strong>всички категории</strong>?",
|
||||
"alert.confirm-copyToChildren": "Наистина ли искате да приложите този набор от правомощия към <strong>всички по-долни (дъщерни) категории</strong>?",
|
||||
"alert.confirm-copyToChildrenGroup": "Наистина ли искате да приложите набора от правомощия на таи група към <strong>всички по-долни (дъщерни) категории</strong>?",
|
||||
"alert.no-undo": "<em>Това действие е необратимо.</em>"
|
||||
"moderate": "Модериране"
|
||||
}
|
||||
@@ -3,16 +3,17 @@
|
||||
"bg-color": "Цвят на фона",
|
||||
"text-color": "Цвят на текста",
|
||||
"create-modify": "Създаване и редактиране на етикети",
|
||||
"description": "Изберете етикетите чрез щракване или влачене. Използвайте <code>CTRL</code>, за да изберете няколко етикета.",
|
||||
"description": "Изберете етикетите чрез щракване и/или влачене. Използвайте „Shift“, за да изберете няколко етикета.",
|
||||
"create": "Създаване на етикет",
|
||||
"modify": "Редактиране на етикети",
|
||||
"rename": "Преименуване на етикети",
|
||||
"delete": "Изтриване на избраните етикети",
|
||||
"search": "Търсене на етикети…",
|
||||
"settings": "Настройки за етикетите",
|
||||
"settings": "Натиснете <a href=\"%1\">тук</a>, за да отворите страницата с настройки на етикета.",
|
||||
"name": "Име на етикета",
|
||||
|
||||
"alerts.editing": "Редактиране на етикет(и)",
|
||||
"alerts.editing-multiple": "Редактиране на множество етикети",
|
||||
"alerts.editing-x": "Редактиране на етикета „%1“",
|
||||
"alerts.confirm-delete": "Наистина ли искате да изтриете избраните етикети?",
|
||||
"alerts.update-success": "Етикетът е променен!"
|
||||
}
|
||||
@@ -12,9 +12,8 @@
|
||||
"unban": "Деблокиране на потребителя/ите",
|
||||
"reset-lockout": "Нулиране на заключването",
|
||||
"reset-flags": "Анулиране на докладите",
|
||||
"delete": "Изтриване на <strong>потребителя/ите</strong>",
|
||||
"delete-content": "Изтриване на <strong>съдържанието</strong> на потребителя/ите",
|
||||
"purge": "Изтриване на <strong>потребителя/ите</strong> и <strong>съдържанието</strong>",
|
||||
"delete": "Изтриване на потребителя/ите",
|
||||
"purge": "Изтриване на потребителя/ите и съдържанието",
|
||||
"download-csv": "Сваляне във формат „CSV“",
|
||||
"manage-groups": "Управление на групите",
|
||||
"add-group": "Добавяне на група",
|
||||
@@ -94,11 +93,9 @@
|
||||
"alerts.validate-email-success": "Е-пощите са проверени",
|
||||
"alerts.validate-force-password-reset-success": "Паролата на потребителя (или паролите на потребителите) беше подновена и сесията му беше прекратена.",
|
||||
"alerts.password-reset-confirm": "Искате ли да изпратите е-писмо/а за възстановяване на паролата на този/тези потребител(и)?",
|
||||
"alerts.confirm-delete": "<strong>ВНИМАНИЕ!</strong><p>Наистина ли искате да изтриете <strong>потребителя/ите</strong>?</p> <p>Това действие е необратимо! Ще бъде изтрит само профилът на потребителя/ите, неговите/техните публикациите и теми ще останат.</p>",
|
||||
"alerts.confirm-delete": "<b>ВНИМАНИЕ!</b><br/>Наистина ли искате да изтриете потребителя/ите?<br/> Това действие е необратимо! Ще бъде изтрит само профилът на потребителя/ите, неговите/техните публикациите и теми ще останат.",
|
||||
"alerts.delete-success": "Потребителят/ите е/са изтрит(и)!",
|
||||
"alerts.confirm-delete-content": "<strong>ВНИМАНИЕ!</strong><p>Наистина ли искате да изтриете <strong>съдържанието</strong> на този потребител или тези потребители?</p> <p>Това действие е необратимо! Профилите на потребителите ще останат, но всички техни публикации и теми ще бъдат изтрити.</p>",
|
||||
"alerts.delete-content-success": "Съдържанието на потребителя/ите е изтрито!",
|
||||
"alerts.confirm-purge": "<strong>ВНИМАНИЕ!</strong><p>Наистина ли искате да изтриете <strong>потребителя/ите и неговото/тяхното съдържание</strong>?</p> <p>Това действие е необратимо! Всички потребителски данни и съдържание ще бъдат заличени!</p>",
|
||||
"alerts.confirm-purge": "<b>ВНИМАНИЕ!</b><br/>Наистина ли искате да изтриете потребителя/ите?<br/> Това действие е необратимо! Всички потребителски данни и съдържание ще бъдат заличени!",
|
||||
"alerts.create": "Създаване на потребител",
|
||||
"alerts.button-create": "Създаване",
|
||||
"alerts.button-cancel": "Отказ",
|
||||
@@ -108,5 +105,5 @@
|
||||
|
||||
"alerts.prompt-email": "Е-пощи: ",
|
||||
"alerts.email-sent-to": "Беше изпратено е-писмо за потвърждение до %1",
|
||||
"alerts.x-users-found": "Намерени потребители: %1 (%2 секунди)"
|
||||
"alerts.x-users-found": "Намерени потребители: %1! Търсенето отне %2 милисекунди."
|
||||
}
|
||||
@@ -1,6 +1,11 @@
|
||||
{
|
||||
"dashboard": "Табло",
|
||||
"section-general": "Общи",
|
||||
"general/dashboard": "Табло",
|
||||
"general/homepage": "Начало",
|
||||
"general/navigation": "Навигация",
|
||||
"general/languages": "Езици",
|
||||
"general/sounds": "Звуци",
|
||||
"general/social": "Обществени",
|
||||
|
||||
"section-manage": "Управление",
|
||||
"manage/categories": "Категории",
|
||||
@@ -17,22 +22,17 @@
|
||||
|
||||
"section-settings": "Настройки",
|
||||
"settings/general": "Общи",
|
||||
"settings/homepage": "Начална страница",
|
||||
"settings/navigation": "Навигация",
|
||||
"settings/reputation": "Репутация и доклади",
|
||||
"settings/reputation": "Репутация",
|
||||
"settings/email": "Е-поща",
|
||||
"settings/user": "Потребители",
|
||||
"settings/group": "Групи",
|
||||
"settings/user": "Потребител",
|
||||
"settings/group": "Група",
|
||||
"settings/guest": "Гости",
|
||||
"settings/uploads": "Качвания",
|
||||
"settings/languages": "Езици",
|
||||
"settings/post": "Публикации",
|
||||
"settings/chat": "Разговори",
|
||||
"settings/post": "Публикация",
|
||||
"settings/chat": "Разговор",
|
||||
"settings/pagination": "Странициране",
|
||||
"settings/tags": "Етикети",
|
||||
"settings/notifications": "Известия",
|
||||
"settings/sounds": "Звуци",
|
||||
"settings/social": "Обществени",
|
||||
"settings/cookies": "Бисквитки",
|
||||
"settings/web-crawler": "Обхождач на уеб страници",
|
||||
"settings/sockets": "Сокети",
|
||||
|
||||
@@ -15,20 +15,14 @@
|
||||
"headers.acah": "Заглавки за разрешаване на управлението на достъпа",
|
||||
"hsts": "Стриктна транспортна сигурност",
|
||||
"hsts.enabled": "Включване на HSTS (препоръчително)",
|
||||
"hsts.maxAge": "Максимална възраст на HSTS",
|
||||
"hsts.subdomains": "Включване на поддомейните в заглавката на HSTS",
|
||||
"hsts.preload": "Позволяване на предварителното зареждане на заглавката на HSTS",
|
||||
"hsts.help": "Ако това е включено, за този уеб ще бъде настроена заглавка за HSTS. Можете да изберете дали да включите поддомейните и дали за заредите предварително флаговете в заглавката си. Ако не знаете какво да направите, най-добре не избирайте нищо. <a href=\"%1\">Още информация<i class=\"fa fa-external-link\"></i></a>",
|
||||
"traffic-management": "Управление на трафика",
|
||||
"traffic.help": "NodeBB използва модул, който автоматично отказва заявките в натоварените моменти. Можете да настроите поведението тук, въпреки че стойностите по подразбиране са добра отправна точка.",
|
||||
"traffic.help": "NodeBB има вграден модул, който автоматично отказва заявките в натоварените моменти. Можете да настроите поведението тук, въпреки че стойностите по подразбиране са добра отправна точка.",
|
||||
"traffic.enable": "Включване на управлението на трафика",
|
||||
"traffic.event-lag": "Граница на забавяне в цикъла на събитията (в милисекунди)",
|
||||
"traffic.event-lag-help": "Намаляването на тази стойност ще намали времето за изчакване при зареждане на страници, но също така ще предизвика по-често показване на съобщението „прекомерно натоварване“ на повече потребители. (Нужно е рестартиране.)",
|
||||
"traffic.lag-check-interval": "Интервал на проверка (в милисекунди)",
|
||||
"traffic.lag-check-interval-help": "Намаляването на тази стойност ще направи NodeBB по-чувствителен към скоковете в натовареността, но може и да направи проверката твърде чувствителна. (Нужно е рестартиране.)",
|
||||
|
||||
"sockets.settings": "Настройки за WebSocket",
|
||||
"sockets.max-attempts": "Максимален брой опити за повторно свързване",
|
||||
"sockets.default-placeholder": "По подразбиране: %1",
|
||||
"sockets.delay": "Забавяне при повторно свързване"
|
||||
"traffic.lag-check-interval-help": "Намаляването на тази стойност ще направи NodeBB по-чувствителен към скоковете в натовареността, но може и да направи проверката твърде чувствителна. (Нужно е рестартиране.)"
|
||||
}
|
||||
@@ -1,8 +1,6 @@
|
||||
{
|
||||
"site-settings": "Настройки на уеб сайта",
|
||||
"title": "Заглавие на уеб сайта",
|
||||
"title.short": "Кратко заглавие",
|
||||
"title.short-placeholder": "Ако не е посочено кратко заглавие, ще бъде използвано заглавието на уеб сайта",
|
||||
"title.url": "Адрес",
|
||||
"title.url-placeholder": "Адресът на заглавието на уеб сайта",
|
||||
"title.url-help": "При щракване върху заглавието, потребителите ще бъдат изпратени на този адрес. Ако бъде оставено празно, потребителите ще бъдат изпращани на началната страница на форума.",
|
||||
@@ -33,9 +31,5 @@
|
||||
"outgoing-links": "Изходящи връзки",
|
||||
"outgoing-links.warning-page": "Показване на предупредителна страница при щракване върху външни връзки",
|
||||
"search-default-sort-by": "Подредба по подразбиране при търсене",
|
||||
"outgoing-links.whitelist": "Домейни, за които да не се показва предупредителната страница",
|
||||
"site-colors": "Мета-данни за цвета на уеб сайта",
|
||||
"theme-color": "Цвят на темата",
|
||||
"background-color": "Фонов цвят",
|
||||
"background-color-help": "Цвят, който да се използва като фон за началния екран, когато уеб сайтът е инсталиран като приложение"
|
||||
"outgoing-links.whitelist": "Домейни, за които да не се показва предупредителната страница"
|
||||
}
|
||||
@@ -3,7 +3,6 @@
|
||||
"private-groups": "Частни групи",
|
||||
"private-groups.help": "Ако е включено, присъединяването към групи ще изисква одобрение от собственик на групата. <em>(По подразбиране: включено)</em>",
|
||||
"private-groups.warning": "<strong>Внимание!</strong> Ако това е изключено и имате частни групи, те автоматично ще станат публични.",
|
||||
"allow-multiple-badges": "Позволяване на множество значки",
|
||||
"allow-multiple-badges-help": "Това може да се използва, за да позволи на потребителите да избират множество значки за групите. Изисква поддържа на теми.",
|
||||
"max-name-length": "Минимална дължина на името на група",
|
||||
"max-title-length": "Максимална дължина на заглавието на група",
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"home-page": "Начална страница",
|
||||
"description": "Изберете коя страница да бъде показана, когато потребителите отидат на главния адрес на форума.",
|
||||
"home-page-route": "Път на началната страница",
|
||||
"custom-route": "Персонализиран път",
|
||||
"allow-user-home-pages": "Разрешаване на потребителските начални страници",
|
||||
"home-page-title": "Заглавие на началната страница (по подразбиране: „Начало“)"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"language-settings": "Езикови настройки",
|
||||
"description": "Езикът по подразбиране определя езиковите настройки за всички потребители, които посещават Вашия форум. <br />Отделните потребители могат да сменят езика си от страницата с настройки на профила си.",
|
||||
"default-language": "Език по подразбиране",
|
||||
"auto-detect": "Автоматично разпознаване на езика за гостите"
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"icon": "Иконка:",
|
||||
"change-icon": "промяна",
|
||||
"route": "Маршрут:",
|
||||
"tooltip": "Подсказка:",
|
||||
"text": "Текст:",
|
||||
"text-class": "Текстов клас: <small>незадължително</small>",
|
||||
"class": "Клас: <small>незадължително</small>",
|
||||
"id": "Идентификатор: <small>незадължително</small>",
|
||||
|
||||
"properties": "Свойства:",
|
||||
"groups": "Групи:",
|
||||
"open-new-window": "Отваряне в нов прозорец",
|
||||
|
||||
"btn.delete": "Изтриване",
|
||||
"btn.disable": "Изключване",
|
||||
"btn.enable": "Включване",
|
||||
|
||||
"available-menu-items": "Налични елементи за менюто",
|
||||
"custom-route": "Персонализиран маршрут",
|
||||
"core": "ядро",
|
||||
"plugin": "добавка"
|
||||
}
|
||||
@@ -2,5 +2,6 @@
|
||||
"notifications": "Известия",
|
||||
"welcome-notification": "Приветствено известие",
|
||||
"welcome-notification-link": "Връзка за приветственото известие",
|
||||
"welcome-notification-uid": "Потр. ид. за приветственото известие"
|
||||
"welcome-notification-uid": "Потр. ид. за приветственото известие",
|
||||
"notification-alert-timeout": "Време за изчакване преди премахване на уведомяването за известие"
|
||||
}
|
||||
@@ -42,7 +42,6 @@
|
||||
"unread.cutoff": "Възраст на публикациите, след която те не се показват в непрочетените (в брой дни)",
|
||||
"unread.min-track-last": "Минимален брой публикации в темата, след което да започва следене на последно прочетената",
|
||||
"recent": "Настройки за скорошните",
|
||||
"recent.max-topics": "Максимален брой теми в скорошните",
|
||||
"recent.categoryFilter.disable": "Изключване на филтрирането на темите в пренебрегваните категории на страницата /recent",
|
||||
"signature": "Настройки за подписите",
|
||||
"signature.disable": "Забраняване на подписите",
|
||||
|
||||
@@ -5,16 +5,10 @@
|
||||
"votes-are-public": "Всички гласувания са публични",
|
||||
"thresholds": "Ограничения на дейността",
|
||||
"min-rep-downvote": "Минимална репутация, необходима за отрицателно гласуване за публикации",
|
||||
"downvotes-per-day": "Отрицателни гласувания за ден (задайте 0 за неограничен брой)",
|
||||
"downvotes-per-user-per-day": "Отрицателни гласувания за потребител за ден (задайте 0 за неограничен брой)",
|
||||
"min-rep-flag": "Минимална репутация, необходима за докладване на публикации",
|
||||
"min-rep-website": "Минимална репутация, необходима за добавяне на полето „Уебсайт“ към профила на потребителя",
|
||||
"min-rep-aboutme": "Минимална репутация, необходима за добавяне на полето „За мен“ към профила на потребителя",
|
||||
"min-rep-signature": "Минимална репутация, необходима за добавяне на полето „Подпис“ към профила на потребителя",
|
||||
"min-rep-profile-picture": "Минимална репутация, необходима за добавяне на профилна снимка към профила на потребителя",
|
||||
"min-rep-cover-picture": "Минимална репутация, необходима за добавяне на снимка на корицата към профила на потребителя",
|
||||
|
||||
"flags": "Настройки за докладите",
|
||||
"flags.limit-per-target": "Максимален брой докладвания на едно и също нещо",
|
||||
"flags.limit-per-target-placeholder": "По подразбиране: 0"
|
||||
"min-rep-cover-picture": "Минимална репутация, необходима за добавяне на снимка на корицата към профила на потребителя"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"post-sharing": "Споделяне на публикации",
|
||||
"info-plugins-additional": "Добавките могат да добавят допълнителни мрежи за споделяне на публикации.",
|
||||
"save-success": "Мрежите за споделяне на публикации са запазени успешно!"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"notifications": "Известия",
|
||||
"chat-messages": "Съобщения в разговори",
|
||||
"play-sound": "Пускане",
|
||||
"incoming-message": "Входящо съобщение",
|
||||
"outgoing-message": "Изходящо съобщение",
|
||||
"upload-new-sound": "Качване на нов звук",
|
||||
"saved": "Настройките са запазени"
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"tag": "Настройки за етикетите",
|
||||
"link-to-manage": "Управление на етикетите",
|
||||
"min-per-topic": "Минимален брой етикети за тема",
|
||||
"max-per-topic": "Максимален брой етикети за тема",
|
||||
"min-length": "Минимална дължина на етикетите",
|
||||
"max-length": "Максимална дължина на етикетите",
|
||||
"goto-manage": "Щракнете тук, за да отворите страницата за управление на етикетите.",
|
||||
"related-topics": "Свързани теми",
|
||||
"max-related-topics": "Максимален брой свързани теми, които да бъдат показвани (ако това се поддържа от темата)"
|
||||
}
|
||||
@@ -9,7 +9,7 @@
|
||||
"allow-login-with.email": "Само е-поща",
|
||||
"account-settings": "Настройки на акаунта",
|
||||
"gdpr_enabled": "Включване на искането за съгласие с ОРЗД",
|
||||
"gdpr_enabled_help": "Ако това е включено, всички новорегистрирани потребители ще бъдат задължени изрично да дадат съгласието си за събирането на данни и статистики за потреблението според <a href=\"https://ec.europa.eu/info/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules/eu-data-protection-rules_en\">Общия регламент относно защитата на данните (ОРЗД)</a>. <strong>Забележка</strong>: Включването на ОРЗД не задължава съществуващите потребители да дадат съгласието си. Ако искате това, ще трябва да инсталирате добавката за ОРЗД (GDPR).",
|
||||
"gdpr_enabled_help": "Ако това е включено, всички новорегистрирани потребители ще бъдат задължени изрично да дадат съгласието си за събирането на данни и статистики за потреблението според <a href=\"https://eugdpr.org/the-regulation/gdpr-faqs/\">Общия регламент относно защитата на данните (ОРЗД)</a>. <strong>Забележка</strong>: Включването на ОРЗД не задължава съществуващите потребители да дадат съгласието си. Ако искате това, ще трябва да инсталирате добавката за ОРЗД (GDPR).",
|
||||
"disable-username-changes": "Забраняване на промяната на потребителското име",
|
||||
"disable-email-changes": "Забраняване на промяната на е-пощата",
|
||||
"disable-password-changes": "Забраняване на промяната на паролата",
|
||||
|
||||
@@ -138,13 +138,8 @@
|
||||
"not-enough-reputation-min-rep-signature": "Нямате достатъчно репутация, за да добавите подпис",
|
||||
"not-enough-reputation-min-rep-profile-picture": "Нямате достатъчно репутация, за да добавите снимка на профила си",
|
||||
"not-enough-reputation-min-rep-cover-picture": "Нямате достатъчно репутация, за да добавите снимка на корицата",
|
||||
"post-already-flagged": "Вече сте докладвали тази публикация",
|
||||
"user-already-flagged": "Вече сте докладвали този потребител",
|
||||
"post-flagged-too-many-times": "Тази публикация вече е докладвана от други хора",
|
||||
"user-flagged-too-many-times": "Този потребител вече е докладван от други хора",
|
||||
"already-flagged": "Вече сте докладвали тази публикация",
|
||||
"self-vote": "Не можете да гласувате за собствената си публикация",
|
||||
"too-many-downvotes-today": "Можете да гласувате отрицателно не повече от %1 пъти на ден",
|
||||
"too-many-downvotes-today-user": "Можете да гласувате отрицателно за потребител не повече от %1 пъти на ден",
|
||||
"reload-failed": "NodeBB срещна проблем при презареждането: „%1“. NodeBB ще продължи да поддържа съществуващите клиентски ресурси, но Вие трябва да отмените последните си действия преди презареждането.",
|
||||
"registration-error": "Грешка при регистрацията",
|
||||
"parse-error": "Нещо се обърка при прочитането на отговора на сървъра",
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"state": "Състояние",
|
||||
"reports": "Доклади",
|
||||
"first-reported": "Първо докладване",
|
||||
"reporter": "Докладвал",
|
||||
"reported-at": "Докладвано на",
|
||||
"description": "Описание",
|
||||
"no-flags": "Ура! Няма намерени доклади.",
|
||||
"assignee": "Назначен",
|
||||
"update": "Обновяване",
|
||||
@@ -25,17 +26,12 @@
|
||||
"filter-quick-mine": "Назначени на мен",
|
||||
"filter-cid-all": "Всички категории",
|
||||
"apply-filters": "Прилагане на филтрите",
|
||||
"more-filters": "Още филтри",
|
||||
|
||||
"quick-actions": "Бързи действия",
|
||||
"quick-links": "Бързи връзки",
|
||||
"flagged-user": "Докладван потребител",
|
||||
"view-profile": "Преглед на профила",
|
||||
"start-new-chat": "Започване на нов разговор",
|
||||
"go-to-target": "Преглед на целта на доклада",
|
||||
"assign-to-me": "Назначаване на мен",
|
||||
"delete-post": "Изтриване на публикацията",
|
||||
"purge-post": "Изчистване на публикацията",
|
||||
"restore-post": "Възстановяване на публикацията",
|
||||
|
||||
"user-view": "Преглед на профила",
|
||||
"user-edit": "Редактиране на профила",
|
||||
@@ -43,11 +39,9 @@
|
||||
"notes": "Бележки към доклада",
|
||||
"add-note": "Добавяне на бележка",
|
||||
"no-notes": "Няма споделени бележки.",
|
||||
"delete-note-confirm": "Наистина ли искате да изтриете тази бележка към доклада?",
|
||||
"note-added": "Бележката е добавена",
|
||||
"note-deleted": "Бележката е изтрита",
|
||||
|
||||
"history": "Акаунт и история на докладванията",
|
||||
"history": "История на доклада",
|
||||
"back": "Обратно към списъка с доклади",
|
||||
"no-history": "Няма история на доклада.",
|
||||
|
||||
"state-all": "Всички състояния",
|
||||
@@ -56,6 +50,7 @@
|
||||
"state-resolved": "Разрешен",
|
||||
"state-rejected": "Отхвърлен",
|
||||
"no-assignee": "Без назначение",
|
||||
"note-added": "Бележката е добавена",
|
||||
|
||||
"modal-title": "Докладване на неуместно съдържание",
|
||||
"modal-body": "Моля, посочете причината за докладването на %1 %2 за преглед. Или използвайте някой от бутоните за бързо докладване, ако са приложими.",
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
"header.unread": "Непрочетени",
|
||||
"header.tags": "Етикети",
|
||||
"header.popular": "Популярни",
|
||||
"header.top": "Най-харесвани",
|
||||
"header.users": "Потребители",
|
||||
"header.groups": "Групи",
|
||||
"header.chats": "Разговори",
|
||||
@@ -54,7 +53,6 @@
|
||||
"posts": "Публ.",
|
||||
"best": "Най-добри",
|
||||
"votes": "Гласове",
|
||||
"voters": "Гласували",
|
||||
"upvoters": "Гласували положително",
|
||||
"upvoted": "С положителни гласове",
|
||||
"downvoters": "Гласували отрицателно",
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"chat.chatting_with": "Разговор с",
|
||||
"chat.placeholder": "Въведете съобщението тук и натиснете Ентер за изпращане",
|
||||
"chat.scroll-up-alert": "В момента разглеждате по-стари съобщения. Щракнете тук, за да се прехвърлите към най-новото съобщение.",
|
||||
"chat.send": "Изпращане",
|
||||
"chat.no_active": "Нямате текущи разговори.",
|
||||
"chat.user_typing": "%1 пише...",
|
||||
@@ -13,7 +12,6 @@
|
||||
"chat.recent-chats": "Скорошни разговори",
|
||||
"chat.contacts": "Контакти",
|
||||
"chat.message-history": "История на съобщенията",
|
||||
"chat.message-deleted": "Съобщението е изтрито",
|
||||
"chat.options": "Настройки на разговора",
|
||||
"chat.pop-out": "Отделяне на разговора в прозорец",
|
||||
"chat.minimize": "Намаляване",
|
||||
@@ -59,7 +57,6 @@
|
||||
"composer.upload-file": "Качване на файл",
|
||||
"composer.zen_mode": "Режим Дзен",
|
||||
"composer.select_category": "Изберете категория",
|
||||
"composer.textarea.placeholder": "Въведете съдържанието на публикацията си тук. Можете също да влачите и пускате снимки.",
|
||||
"bootbox.ok": "Добре",
|
||||
"bootbox.cancel": "Отказ",
|
||||
"bootbox.confirm": "Потвърждаване",
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
"user_posted_to_dual": "<strong>%1</strong> и <strong>%2</strong> публикуваха отговори на: <strong>%3</strong>",
|
||||
"user_posted_to_multiple": "<strong>%1</strong> и %2 други публикуваха отговори на: <strong>%3</strong>",
|
||||
"user_posted_topic": "<strong>%1</strong> публикува нова тема: <strong>%2</strong>",
|
||||
"user_edited_post": "<strong>%1</strong> редактира публикация в <strong>%2</strong>",
|
||||
"user_started_following_you": "<strong>%1</strong> започна да Ви следва.",
|
||||
"user_started_following_you_dual": "<strong>%1</strong> и <strong>%2</strong> започнаха да Ви следват.",
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> и %2 започнаха да Ви следват.",
|
||||
@@ -43,9 +42,6 @@
|
||||
"new_register_multiple": "Има <strong>%1</strong> заявки за регистрация, които очакват да бъдат прегледани.",
|
||||
"flag_assigned_to_you": "<strong>Докладът %1</strong> беше назначен на Вас",
|
||||
"post_awaiting_review": "Публикацията чака да бъде прегледана",
|
||||
"profile-exported": "Профилът на <strong>%1</strong> е изнесен, щракнете за сваляне",
|
||||
"posts-exported": "Публикациите на <strong>%1</strong> са изнесени, щракнете за сваляне",
|
||||
"uploads-exported": "Качванията на <strong>%1</strong> са изнесени, щракнете за сваляне",
|
||||
"email-confirmed": "Е-пощата беше потвърдена",
|
||||
"email-confirmed-message": "Благодарим Ви, че потвърдихте е-пощата си. Акаунтът Ви е вече напълно активиран.",
|
||||
"email-confirm-error-message": "Възникна проблем при потвърждаването на е-пощата Ви. Може кодът да е грешен или давността му да е изтекла.",
|
||||
@@ -57,7 +53,6 @@
|
||||
"notificationType_upvote": "Когато някой гласува положително за Ваша публикация",
|
||||
"notificationType_new-topic": "Когато някой, когото следвате, публикува тема",
|
||||
"notificationType_new-reply": "Когато бъде публикуван нов отговор в тема, която следвате",
|
||||
"notificationType_post-edit": "Когато бъде редактирана публикация в тема, която следите",
|
||||
"notificationType_follow": "Когато някой започне да Ви следва",
|
||||
"notificationType_new-chat": "Когато получите съобщение в разговор",
|
||||
"notificationType_group-invite": "Когато получите покана за група",
|
||||
|
||||
@@ -3,6 +3,5 @@
|
||||
"tags": "Етикети",
|
||||
"enter_tags_here": "Тук въведете етикети, всеки между %1 и %2 знака.",
|
||||
"enter_tags_here_short": "Въведете етикети...",
|
||||
"no_tags": "Все още няма етикети.",
|
||||
"select_tags": "Изберете етикети"
|
||||
"no_tags": "Все още няма етикети."
|
||||
}
|
||||
@@ -36,11 +36,8 @@
|
||||
"ban-ip": "Блокиране на IP адреса",
|
||||
"view-history": "История на редакциите",
|
||||
"bookmark_instructions": "Щракнете тук, за да се върнете към последно прочетената публикация в тази тема.",
|
||||
"flag-post": "Докладване на тази публикация",
|
||||
"flag-user": "Докладване на този потребител",
|
||||
"already-flagged": "Вече е докладвано",
|
||||
"view-flag-report": "Преглед на доклада",
|
||||
"merged_message": "Тази тема беше слята в <a href=\"%1\">%2</a>",
|
||||
"flag_title": "Докладване на тази публикация до модератор",
|
||||
"merged_message": "Тази тема беше слята в <a href=\"/topic/%1\">%2</a>",
|
||||
"deleted_message": "Темата е изтрита. Само потребители с права за управление на темите могат да я видят.",
|
||||
"following_topic.message": "Вече ще получавате известия когато някой публикува коментар в тази тема.",
|
||||
"not_following_topic.message": "Ще виждате тази тема в списъка с непрочетени теми, но няма да получавате известия, когато хората публикуват нещо в нея.",
|
||||
@@ -102,15 +99,11 @@
|
||||
"fork_pid_count": "Избрани публикации: %1",
|
||||
"fork_success": "Темата е разделена успешно! Натиснете тук, за да преминете към отделената тема.",
|
||||
"delete_posts_instruction": "Натиснете публикациите, които искате да изтриете/изчистите",
|
||||
"merge_topics_instruction": "Щракнете върху темите, които искате да слеете, или ги потърсете",
|
||||
"merge-topic-list-title": "Списък от темите, които ще бъдат слети",
|
||||
"merge-options": "Настройки за сливането",
|
||||
"merge-select-main-topic": "Изберете основната тема",
|
||||
"merge-new-title-for-topic": "Ново заглавие за темата",
|
||||
"merge_topics_instruction": "Натиснете темите, които искате да слеете",
|
||||
"move_posts_instruction": "Натиснете публикациите, които искате да преместите",
|
||||
"change_owner_instruction": "Натиснете публикациите, които искате да прехвърлите на друг потребител",
|
||||
"composer.title_placeholder": "Въведете заглавието на темата си тук...",
|
||||
"composer.handle_placeholder": "Въведете името тук",
|
||||
"composer.handle_placeholder": "Име",
|
||||
"composer.discard": "Отхвърляне",
|
||||
"composer.submit": "Публикуване",
|
||||
"composer.replying_to": "Отговор на %1",
|
||||
@@ -137,13 +130,10 @@
|
||||
"stale.reply_anyway": "Отговаряне в тази тема въпреки това",
|
||||
"link_back": "Отговор: [%1](%2)",
|
||||
"diffs.title": "История на редакциите",
|
||||
"diffs.description": "Тази публикация има <strong>%1</strong> версии. Щракнете върху някоя от версиите по-долу, за да видите съдържанието ѝ в съответния момент.",
|
||||
"diffs.no-revisions-description": "Тази публикация има <strong>%1</strong> версии.",
|
||||
"diffs.description": "Тази публикация има <strong>%1</strong> варианта. Щракнете върху някоя от версиите по-долу, за да видите съдържанието ѝ в съответния момент.",
|
||||
"diffs.no-revisions-description": "Тази публикация има <strong>%1</strong> варианта.",
|
||||
"diffs.current-revision": "текуща версия",
|
||||
"diffs.original-revision": "оригинална версия",
|
||||
"diffs.restore": "Възстановяване на тази версия",
|
||||
"diffs.restore-description": "Към историята на редакциите на тази публикация ще бъде добавена нова версия.",
|
||||
"diffs.post-restored": "Публикацията е възстановена успешно до по-ранна версия",
|
||||
"timeago_later": "%1 по-късно",
|
||||
"timeago_earlier": "%1 по-рано"
|
||||
}
|
||||
@@ -8,20 +8,13 @@
|
||||
"email": "Е-поща",
|
||||
"confirm_email": "Потвърдете е-пощата",
|
||||
"account_info": "Информация за акаунта",
|
||||
"admin_actions_label": "Административни действия",
|
||||
"ban_account": "Блокиране на акаунта",
|
||||
"ban_account_confirm": "Наистина ли искате да блокирате този потребител?",
|
||||
"unban_account": "Деблокиране на акаунта",
|
||||
"delete_account": "Изтриване на акаунта",
|
||||
"delete_account_as_admin": "Изтриване на <strong>акаунта</strong>",
|
||||
"delete_content": "Изтриване на <strong>съдържанието</strong> на акаунта",
|
||||
"delete_all": "Изтриване на <strong>акаунта</strong> и <strong>съдържанието</strong>",
|
||||
"delete_account_confirm": "Наистина ли искате да направите публикациите си анонимни и да изтриете акаунта си? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните си.</strong><br /><br />Въведете паролата си, за да потвърдите, че искате да унищожите този акаунт.",
|
||||
"delete_this_account_confirm": "Наистина ли искате да изтриете този акаунт, но да оставите съдържанието му?<br /><strong>Това действие е необратимо. Публикациите ще бъдат превърнати в анонимни и вече няма да можете да възстановите връзката между публикациите и изтрития акаунт</strong><br /><br />",
|
||||
"delete_account_content_confirm": "Наистина ли искате да изтриете съдържанието (публикации/теми/качвания) на този акаунт? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните.</strong><br /><br />",
|
||||
"delete_all_confirm": "Наистина ли искате да изтриете този акаунт и цялото му съдържание (публикации/теми/качвания)? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните.</strong><br /><br />",
|
||||
"delete_account_confirm": "Наистина ли искате да изтриете акаунта си? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните си.</strong><br /><br />Въведете паролата си, за да потвърдите, че искате да унищожите този акаунт.",
|
||||
"delete_this_account_confirm": "Наистина ли искате да изтриете този акаунт? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните си.</strong><br /><br />",
|
||||
"account-deleted": "Акаунтът е изтрит",
|
||||
"account-content-deleted": "Съдържанието на акаунта е изтрито",
|
||||
"fullname": "Пълно име",
|
||||
"website": "Уеб сайт",
|
||||
"location": "Местоположение",
|
||||
@@ -151,7 +144,6 @@
|
||||
"info.ban-history": "Скорошна история на блокиранията",
|
||||
"info.no-ban-history": "Този потребител никога не е бил блокиран",
|
||||
"info.banned-until": "Блокиран до %1",
|
||||
"info.banned-expiry": "Давност",
|
||||
"info.banned-permanently": "Блокиран за постоянно",
|
||||
"info.banned-reason-label": "Причина",
|
||||
"info.banned-no-reason": "Няма посочена причина.",
|
||||
@@ -178,10 +170,7 @@
|
||||
"consent.right_to_erasure_description": "Във всеки един момент можете да оттеглите съгласието си за събиране и/или обработка на данни, като изтриете акаунта си. Вашият профил може да бъде изтрит, но публикуваното от Вас съдържание ще остане. Ако искате да изтриете както акаунта, така <strong>и</strong> съдържанието, публикувано от Вас, моля, свържете се с администрационния екип на уеб сайта.",
|
||||
"consent.right_to_data_portability": "Имате право на пренос на данни",
|
||||
"consent.right_to_data_portability_description": "Можете да изискате от нас всички събрани за Вас и акаунта Ви данни в машинен формат. Можете да направите това като натиснете съответния бутон по-долу.",
|
||||
"consent.export_profile": "Изнасяне на профила (.json)",
|
||||
"consent.export-profile-success": "Изнасяне на профила… Ще получите известие, когато е готово.",
|
||||
"consent.export_profile": "Изнасяне на профила (.csv)",
|
||||
"consent.export_uploads": "Изнасяне на каченото съдържание (.zip)",
|
||||
"consent.export-uploads-success": "Изнасяне на каченото съдържание… Ще получите известие, когато е готово.",
|
||||
"consent.export_posts": "Изнасяне на публикациите (.csv)",
|
||||
"consent.export-posts-success": "Изнасяне на публикациите… Ще получите известие, когато е готово."
|
||||
"consent.export_posts": "Изнасяне на публикациите (.csv)"
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
"events": "Events",
|
||||
"no-events": "There are no events",
|
||||
"control-panel": "Events Control Panel",
|
||||
"delete-events": "Delete Events",
|
||||
"filters": "Filters",
|
||||
"filters-apply": "Apply Filters",
|
||||
"filter-type": "Event Type",
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
{
|
||||
"you-are-on": "You are on <strong>%1:%2</strong>",
|
||||
"ip": "IP <strong>%1</strong>",
|
||||
"you-are-on": "Info - You are on <strong>%1:%2</strong>",
|
||||
"nodes-responded": "%1 nodes responded within %2ms!",
|
||||
"host": "host",
|
||||
"primary": "primary / run jobs",
|
||||
"pid": "pid",
|
||||
"nodejs": "nodejs",
|
||||
"online": "online",
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
"num-recent-replies": "# of Recent Replies",
|
||||
"ext-link": "External Link",
|
||||
"is-section": "Treat this category as a section",
|
||||
"tag-whitelist": "Tag Whitelist",
|
||||
"upload-image": "Upload Image",
|
||||
"delete-image": "Remove",
|
||||
"category-image": "Category Image",
|
||||
@@ -27,8 +26,6 @@
|
||||
"enable": "Enable",
|
||||
"disable": "Disable",
|
||||
"edit": "Edit",
|
||||
"analytics": "Analytics",
|
||||
"view-category": "View category",
|
||||
|
||||
"select-category": "Select Category",
|
||||
"set-parent-category": "Set Parent Category",
|
||||
@@ -66,6 +63,7 @@
|
||||
"alert.create-success": "Category successfully created!",
|
||||
"alert.none-active": "You have no active categories.",
|
||||
"alert.create": "Create a Category",
|
||||
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
|
||||
"alert.confirm-purge": "<p class=\"lead\">Do you really want to purge this category \"%1\"?</p><h5><strong class=\"text-danger\">Warning!</strong> All topics and posts in this category will be purged!</h5> <p class=\"help-block\">Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category <em>temporarily</em>, you'll want to \"disable\" the category instead.</p>",
|
||||
"alert.purge-success": "Category purged!",
|
||||
"alert.copy-success": "Settings Copied!",
|
||||
@@ -77,9 +75,7 @@
|
||||
"alert.user-search": "Search for a user here...",
|
||||
"alert.find-group": "Find a Group",
|
||||
"alert.group-search": "Search for a group here...",
|
||||
"alert.not-enough-whitelisted-tags": "Whitelisted tags are less than minimum tags, you need to create more whitelisted tags!",
|
||||
"collapse-all": "Collapse All",
|
||||
"expand-all": "Expand All",
|
||||
"disable-on-create": "Disable on create",
|
||||
"no-matches": "No matches"
|
||||
"disable-on-create": "Disable on create"
|
||||
}
|
||||
@@ -9,7 +9,7 @@
|
||||
"default": "System default",
|
||||
"default-help": "<em>System default</em> means the user has not explicitly overridden the global forum setting for digests, which is currently: "<strong>%1</strong>"",
|
||||
"resend": "Resend Digest",
|
||||
"resend-all-confirm": "Are you sure you wish to manually execute this digest run?",
|
||||
"resend-all-confirm": "Are you sure you wish to mnually execute this digest run?",
|
||||
"resent-single": "Manual digest resend completed",
|
||||
"resent-day": "Daily digest resent",
|
||||
"resent-week": "Weekly digest resent",
|
||||
|
||||
@@ -8,9 +8,6 @@
|
||||
"hidden": "Hidden",
|
||||
"private": "Private",
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
"privileges": "Privileges",
|
||||
"download-csv": "CSV",
|
||||
"search-placeholder": "Search",
|
||||
"create": "Create Group",
|
||||
"description-placeholder": "A short description about your group",
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
{
|
||||
"global": "Global",
|
||||
"admin": "Admin",
|
||||
"global.no-users": "No user-specific global privileges.",
|
||||
"group-privileges": "Group Privileges",
|
||||
"user-privileges": "User Privileges",
|
||||
"edit-privileges": "Edit Privileges",
|
||||
"chat": "Chat",
|
||||
"upload-images": "Upload Images",
|
||||
"upload-files": "Upload Files",
|
||||
@@ -32,21 +31,5 @@
|
||||
"downvote-posts": "Downvote Posts",
|
||||
"delete-topics": "Delete Topics",
|
||||
"purge": "Purge",
|
||||
"moderate": "Moderate",
|
||||
"admin-dashboard": "Dashboard",
|
||||
"admin-categories": "Categories",
|
||||
"admin-privileges": "Privileges",
|
||||
"admin-users": "Users",
|
||||
"admin-settings": "Settings",
|
||||
|
||||
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
|
||||
"alert.confirm-save": "Please confirm your intention to save these privileges",
|
||||
"alert.saved": "Privilege changes saved and applied",
|
||||
"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
|
||||
"alert.discarded": "Privilege changes discarded",
|
||||
"alert.confirm-copyToAll": "Are you sure you wish to apply this privilege set to <strong>all categories</strong>?",
|
||||
"alert.confirm-copyToAllGroup": "Are you sure you wish to apply this group's privilege set to <strong>all categories</strong>?",
|
||||
"alert.confirm-copyToChildren": "Are you sure you wish to apply this privilege set to <strong>all descendant (child) categories</strong>?",
|
||||
"alert.confirm-copyToChildrenGroup": "Are you sure you wish to apply this group's privilege set to <strong>all descendant (child) categories</strong>?",
|
||||
"alert.no-undo": "<em>This action cannot be undone.</em>"
|
||||
"moderate": "Moderate"
|
||||
}
|
||||
@@ -3,16 +3,17 @@
|
||||
"bg-color": "Background Colour",
|
||||
"text-color": "Text Colour",
|
||||
"create-modify": "Create & Modify Tags",
|
||||
"description": "Select tags by clicking or dragging, use <code>CTRL</code> to select multiple tags.",
|
||||
"description": "Select tags via clicking and/or dragging, use shift to select multiple.",
|
||||
"create": "Create Tag",
|
||||
"modify": "Modify Tags",
|
||||
"rename": "Rename Tags",
|
||||
"delete": "Delete Selected Tags",
|
||||
"search": "Search for tags...",
|
||||
"settings": "Tags Settings",
|
||||
"settings": "Click <a href=\"%1\">here</a> to visit the tag settings page.",
|
||||
"name": "Tag Name",
|
||||
|
||||
"alerts.editing": "Editing tag(s)",
|
||||
"alerts.editing-multiple": "Editing multiple tags",
|
||||
"alerts.editing-x": "Editing \"%1\" tag",
|
||||
"alerts.confirm-delete": "Do you want to delete the selected tags?",
|
||||
"alerts.update-success": "Tag Updated!"
|
||||
}
|
||||
@@ -12,9 +12,8 @@
|
||||
"unban": "Unban User(s)",
|
||||
"reset-lockout": "Reset Lockout",
|
||||
"reset-flags": "Reset Flags",
|
||||
"delete": "Delete <strong>User(s)</strong>",
|
||||
"delete-content": "Delete User(s) <strong>Content</strong>",
|
||||
"purge": "Delete <strong>User(s)</strong> and <strong>Content</strong>",
|
||||
"delete": "Delete User(s)",
|
||||
"purge": "Delete User(s) and Content",
|
||||
"download-csv": "Download CSV",
|
||||
"manage-groups": "Manage Groups",
|
||||
"add-group": "Add Group",
|
||||
@@ -94,11 +93,9 @@
|
||||
"alerts.validate-email-success": "Emails validated",
|
||||
"alerts.validate-force-password-reset-success": "User(s) passwords have been reset and their existing sessions have been revoked.",
|
||||
"alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?",
|
||||
"alerts.confirm-delete": "<strong>Warning!</strong><p>Do you really want to delete <strong>user(s)</strong>?</p><p>This action is not reversible! Only the user account will be deleted, their posts and topics will remain.</p>",
|
||||
"alerts.confirm-delete": "<b>Warning!</b><br/>Do you really want to delete user(s)?<br/> This action is not reversable! Only the user account will be deleted, their posts and topics will remain.",
|
||||
"alerts.delete-success": "User(s) Deleted!",
|
||||
"alerts.confirm-delete-content": "<strong>Warning!</strong><p>Do you really want to delete these user(s) <strong>content</strong>?</p><p>This action is not reversible! The users' accounts will remain, but their posts and topics will be deleted.</p>",
|
||||
"alerts.delete-content-success": "User(s) Content Deleted!",
|
||||
"alerts.confirm-purge": "<strong>Warning!</strong><p>Do you really want to delete <strong>user(s) and their content</strong>?</p><p>This action is not reversible! All user data and content will be erased!</p>",
|
||||
"alerts.confirm-purge": "<b>Warning!</b><br/>Do you really want to delete user(s) and their content?<br/> This action is not reversable! All user data and content will be erased!",
|
||||
"alerts.create": "Create User",
|
||||
"alerts.button-create": "Create",
|
||||
"alerts.button-cancel": "Cancel",
|
||||
@@ -108,5 +105,5 @@
|
||||
|
||||
"alerts.prompt-email": "Emails: ",
|
||||
"alerts.email-sent-to": "An invitation email has been sent to %1",
|
||||
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)"
|
||||
"alerts.x-users-found": "%1 user(s) found! Search took %2 ms."
|
||||
}
|
||||
@@ -1,6 +1,11 @@
|
||||
{
|
||||
"dashboard": "Dashboard",
|
||||
"section-general": "General",
|
||||
"general/dashboard": "Dashboard",
|
||||
"general/homepage": "Home Page",
|
||||
"general/navigation": "Navigation",
|
||||
"general/languages": "Languages",
|
||||
"general/sounds": "Sounds",
|
||||
"general/social": "Social",
|
||||
|
||||
"section-manage": "Manage",
|
||||
"manage/categories": "Categories",
|
||||
@@ -17,22 +22,17 @@
|
||||
|
||||
"section-settings": "Settings",
|
||||
"settings/general": "General",
|
||||
"settings/homepage": "Home Page",
|
||||
"settings/navigation": "Navigation",
|
||||
"settings/reputation": "Reputation & Flags",
|
||||
"settings/reputation": "Reputation",
|
||||
"settings/email": "Email",
|
||||
"settings/user": "Users",
|
||||
"settings/group": "Groups",
|
||||
"settings/user": "User",
|
||||
"settings/group": "Group",
|
||||
"settings/guest": "Guests",
|
||||
"settings/uploads": "Uploads",
|
||||
"settings/languages": "Languages",
|
||||
"settings/post": "Posts",
|
||||
"settings/chat": "Chats",
|
||||
"settings/post": "Post",
|
||||
"settings/chat": "Chat",
|
||||
"settings/pagination": "Pagination",
|
||||
"settings/tags": "Tags",
|
||||
"settings/notifications": "Notifications",
|
||||
"settings/sounds": "Sounds",
|
||||
"settings/social": "Social",
|
||||
"settings/cookies": "Cookies",
|
||||
"settings/web-crawler": "Web Crawler",
|
||||
"settings/sockets": "Sockets",
|
||||
|
||||
@@ -15,20 +15,14 @@
|
||||
"headers.acah": "Access-Control-Allow-Headers",
|
||||
"hsts": "Strict Transport Security",
|
||||
"hsts.enabled": "Enabled HSTS (recommended)",
|
||||
"hsts.maxAge": "HSTS Max Age",
|
||||
"hsts.subdomains": "Include subdomains in HSTS header",
|
||||
"hsts.preload": "Allow preloading of HSTS header",
|
||||
"hsts.help": "If enabled, an HSTS header will be set for this site. You can elect to include subdomains and preloading flags in your header. If in doubt, you can leave these unchecked. <a href=\"%1\">More information <i class=\"fa fa-external-link\"></i></a>",
|
||||
"traffic-management": "Traffic Management",
|
||||
"traffic.help": "NodeBB uses a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.",
|
||||
"traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.",
|
||||
"traffic.enable": "Enable Traffic Management",
|
||||
"traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)",
|
||||
"traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)",
|
||||
"traffic.lag-check-interval": "Check Interval (in milliseconds)",
|
||||
"traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)",
|
||||
|
||||
"sockets.settings": "WebSocket Settings",
|
||||
"sockets.max-attempts": "Max Reconnection Attempts",
|
||||
"sockets.default-placeholder": "Default: %1",
|
||||
"sockets.delay": "Reconnection Delay"
|
||||
"traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)"
|
||||
}
|
||||
@@ -1,8 +1,6 @@
|
||||
{
|
||||
"site-settings": "Site Settings",
|
||||
"title": "Site Title",
|
||||
"title.short": "Short Title",
|
||||
"title.short-placeholder": "If no short title is specified, the site title will be used",
|
||||
"title.url": "URL",
|
||||
"title.url-placeholder": "The URL of the site title",
|
||||
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index.",
|
||||
@@ -33,9 +31,5 @@
|
||||
"outgoing-links": "Outgoing Links",
|
||||
"outgoing-links.warning-page": "Use Outgoing Links Warning Page",
|
||||
"search-default-sort-by": "Search default sort by",
|
||||
"outgoing-links.whitelist": "Domains to whitelist for bypassing the warning page",
|
||||
"site-colors": "Site Color Metadata",
|
||||
"theme-color": "Theme Color",
|
||||
"background-color": "Background Color",
|
||||
"background-color-help": "Color used for splash screen background when website is installed as a PWA"
|
||||
"outgoing-links.whitelist": "Domains to whitelist for bypassing the warning page"
|
||||
}
|
||||
@@ -3,7 +3,6 @@
|
||||
"private-groups": "Private Groups",
|
||||
"private-groups.help": "If enabled, joining of groups requires the approval of the group owner <em>(Default: enabled)</em>",
|
||||
"private-groups.warning": "<strong>Beware!</strong> If this option is disabled and you have private groups, they automatically become public.",
|
||||
"allow-multiple-badges": "Allow Multiple Badges",
|
||||
"allow-multiple-badges-help": "This flag can be used to allow users to select multiple group badges, requires theme support.",
|
||||
"max-name-length": "Maximum Group Name Length",
|
||||
"max-title-length": "Maximum Group Title Length",
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"home-page": "Home Page",
|
||||
"description": "Choose what page is shown when users navigate to the root URL of your forum.",
|
||||
"home-page-route": "Home Page Route",
|
||||
"custom-route": "Custom Route",
|
||||
"allow-user-home-pages": "Allow User Home Pages",
|
||||
"home-page-title": "Title of the home page (default \"Home\")"
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"icon": "Icon:",
|
||||
"change-icon": "change",
|
||||
"route": "Route:",
|
||||
"tooltip": "Tooltip:",
|
||||
"text": "Text:",
|
||||
"text-class": "Text Class: <small>optional</small>",
|
||||
"class": "Class: <small>optional</small>",
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
"groups": "Groups:",
|
||||
"open-new-window": "Open in a new window",
|
||||
|
||||
"btn.delete": "Delete",
|
||||
"btn.disable": "Disable",
|
||||
"btn.enable": "Enable",
|
||||
|
||||
"available-menu-items": "Available Menu Items",
|
||||
"custom-route": "Custom Route",
|
||||
"core": "core",
|
||||
"plugin": "plugin"
|
||||
}
|
||||
@@ -2,5 +2,6 @@
|
||||
"notifications": "Notifications",
|
||||
"welcome-notification": "Welcome Notification",
|
||||
"welcome-notification-link": "Welcome Notification Link",
|
||||
"welcome-notification-uid": "Welcome Notification User (UID)"
|
||||
"welcome-notification-uid": "Welcome Notification User (UID)",
|
||||
"notification-alert-timeout": "Notification Alert Timeout"
|
||||
}
|
||||
@@ -42,7 +42,6 @@
|
||||
"unread.cutoff": "Unread cutoff days",
|
||||
"unread.min-track-last": "Minimum posts in topic before tracking last read",
|
||||
"recent": "Recent Settings",
|
||||
"recent.max-topics": "Maximum topics on /recent",
|
||||
"recent.categoryFilter.disable": "Disable filtering of topics in ignored categories on the /recent page",
|
||||
"signature": "Signature Settings",
|
||||
"signature.disable": "Disable signatures",
|
||||
|
||||
@@ -5,16 +5,10 @@
|
||||
"votes-are-public": "All Votes Are Public",
|
||||
"thresholds": "Activity Thresholds",
|
||||
"min-rep-downvote": "Minimum reputation to downvote posts",
|
||||
"downvotes-per-day": "Downvotes per day (set to 0 for unlimited downvotes)",
|
||||
"downvotes-per-user-per-day": "Downvotes per user per day (set to 0 for unlimited downvotes)",
|
||||
"min-rep-flag": "Minimum reputation to flag posts",
|
||||
"min-rep-website": "Minimum reputation to add \"Website\" to user profile",
|
||||
"min-rep-aboutme": "Minimum reputation to add \"About me\" to user profile",
|
||||
"min-rep-signature": "Minimum reputation to add \"Signature\" to user profile",
|
||||
"min-rep-profile-picture": "Minimum reputation to add \"Profile Picture\" to user profile",
|
||||
"min-rep-cover-picture": "Minimum reputation to add \"Cover Picture\" to user profile",
|
||||
|
||||
"flags": "Flag Settings",
|
||||
"flags.limit-per-target": "Maximum number of times something can be flagged",
|
||||
"flags.limit-per-target-placeholder": "Default: 0"
|
||||
"min-rep-cover-picture": "Minimum reputation to add \"Cover Picture\" to user profile"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"post-sharing": "Post Sharing",
|
||||
"info-plugins-additional": "Plugins can add additional networks for sharing posts.",
|
||||
"save-success": "Successfully saved Post Sharing Networks!"
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"tag": "Tag Settings",
|
||||
"link-to-manage": "Manage Tags",
|
||||
"min-per-topic": "Minimum Tags per Topic",
|
||||
"max-per-topic": "Maximum Tags per Topic",
|
||||
"min-length": "Minimum Tag Length",
|
||||
"max-length": "Maximum Tag Length",
|
||||
"goto-manage": "Click here to visit the tag management page.",
|
||||
"related-topics": "Related Topics",
|
||||
"max-related-topics": "Maximum related topics to display (if supported by theme)"
|
||||
}
|
||||
@@ -9,7 +9,7 @@
|
||||
"allow-login-with.email": "Email Only",
|
||||
"account-settings": "Account Settings",
|
||||
"gdpr_enabled": "Enable GDPR consent collection",
|
||||
"gdpr_enabled_help": "When enabled, all new registrants will be required to explicitly give consent for data collection and usage under the <a href=\"https://ec.europa.eu/info/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules/eu-data-protection-rules_en\">General Data Protection Regulation (GDPR)</a>. <strong>Note</strong>: Enabling GDPR does not force pre-existing users to provide consent. To do so, you will need to install the GDPR plugin.",
|
||||
"gdpr_enabled_help": "When enabled, all new registrants will be required to explicitly give consent for data collection and usage under the <a href=\"https://eugdpr.org/the-regulation/gdpr-faqs/\">General Data Protection Regulation (GDPR)</a>. <strong>Note</strong>: Enabling GDPR does not force pre-existing users to provide consent. To do so, you will need to install the GDPR plugin.",
|
||||
"disable-username-changes": "Disable username changes",
|
||||
"disable-email-changes": "Disable email changes",
|
||||
"disable-password-changes": "Disable password changes",
|
||||
|
||||
@@ -138,13 +138,8 @@
|
||||
"not-enough-reputation-min-rep-signature": "You do not have enough reputation to add a signature",
|
||||
"not-enough-reputation-min-rep-profile-picture": "You do not have enough reputation to add a profile picture",
|
||||
"not-enough-reputation-min-rep-cover-picture": "You do not have enough reputation to add a cover picture",
|
||||
"post-already-flagged": "You have already flagged this post",
|
||||
"user-already-flagged": "You have already flagged this user",
|
||||
"post-flagged-too-many-times": "This post has been flagged by others already",
|
||||
"user-flagged-too-many-times": "This user has been flagged by others already",
|
||||
"already-flagged": "You have already flagged this post",
|
||||
"self-vote": "You cannot vote on your own post",
|
||||
"too-many-downvotes-today": "You can only downvote %1 times a day",
|
||||
"too-many-downvotes-today-user": "You can only downvote a user %1 times a day",
|
||||
"reload-failed": "\"%1\" রিলোড করতে সমস্যা হয়েছে। রিলোডের পূর্বে যা করা হয়েছিল সেটি আনডু করা সমীচীন। ",
|
||||
"registration-error": "নিবন্ধন এরর!",
|
||||
"parse-error": "Something went wrong while parsing server response",
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"state": "State",
|
||||
"reports": "Reports",
|
||||
"first-reported": "First Reported",
|
||||
"reporter": "Reporter",
|
||||
"reported-at": "Reported At",
|
||||
"description": "Description",
|
||||
"no-flags": "Hooray! No flags found.",
|
||||
"assignee": "Assignee",
|
||||
"update": "Update",
|
||||
@@ -25,17 +26,12 @@
|
||||
"filter-quick-mine": "Assigned to me",
|
||||
"filter-cid-all": "All categories",
|
||||
"apply-filters": "Apply Filters",
|
||||
"more-filters": "More Filters",
|
||||
|
||||
"quick-actions": "Quick Actions",
|
||||
"quick-links": "Quick Links",
|
||||
"flagged-user": "Flagged User",
|
||||
"view-profile": "View Profile",
|
||||
"start-new-chat": "Start New Chat",
|
||||
"go-to-target": "View Flag Target",
|
||||
"assign-to-me": "Assign To Me",
|
||||
"delete-post": "Delete Post",
|
||||
"purge-post": "Purge Post",
|
||||
"restore-post": "Restore Post",
|
||||
|
||||
"user-view": "View Profile",
|
||||
"user-edit": "Edit Profile",
|
||||
@@ -43,11 +39,9 @@
|
||||
"notes": "Flag Notes",
|
||||
"add-note": "Add Note",
|
||||
"no-notes": "No shared notes.",
|
||||
"delete-note-confirm": "Are you sure you want to delete this flag note?",
|
||||
"note-added": "Note Added",
|
||||
"note-deleted": "Note Deleted",
|
||||
|
||||
"history": "Account & Flag History",
|
||||
"history": "Flag History",
|
||||
"back": "Back to Flags List",
|
||||
"no-history": "No flag history.",
|
||||
|
||||
"state-all": "All states",
|
||||
@@ -56,6 +50,7 @@
|
||||
"state-resolved": "Resolved",
|
||||
"state-rejected": "Rejected",
|
||||
"no-assignee": "Not Assigned",
|
||||
"note-added": "Note Added",
|
||||
|
||||
"modal-title": "Report Inappropriate Content",
|
||||
"modal-body": "Please specify your reason for flagging %1 %2 for review. Alternatively, use one of the quick report buttons if applicable.",
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
"header.unread": "অপঠিত",
|
||||
"header.tags": "ট্যাগ",
|
||||
"header.popular": "জনপ্রিয়",
|
||||
"header.top": "Top",
|
||||
"header.users": "ব্যবহারকারীগণ",
|
||||
"header.groups": "Groups",
|
||||
"header.chats": "কথোপকথন",
|
||||
@@ -54,7 +53,6 @@
|
||||
"posts": "পোস্টগুলি",
|
||||
"best": "Best",
|
||||
"votes": "Votes",
|
||||
"voters": "Voters",
|
||||
"upvoters": "Upvoters",
|
||||
"upvoted": "Upvoted",
|
||||
"downvoters": "Downvoters",
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"chat.chatting_with": "Chat with",
|
||||
"chat.placeholder": "এখানে আপনার বার্তা লিখুন। পাঠানোর জন্য Enter চাপুন",
|
||||
"chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
|
||||
"chat.send": "প্রেরন করুন",
|
||||
"chat.no_active": "আপনার কোন সচল কথোপকথন নেই",
|
||||
"chat.user_typing": "%1 লিখছেন",
|
||||
@@ -13,7 +12,6 @@
|
||||
"chat.recent-chats": "সাম্প্রতিক চ্যাটসমূহ",
|
||||
"chat.contacts": "কন্টাক্টস",
|
||||
"chat.message-history": "মেসেজ হিস্টোরী",
|
||||
"chat.message-deleted": "Message Deleted",
|
||||
"chat.options": "Chat options",
|
||||
"chat.pop-out": "চ্যাট উইন্ডো আলাদা করুন",
|
||||
"chat.minimize": "Minimize",
|
||||
@@ -59,7 +57,6 @@
|
||||
"composer.upload-file": "Upload File",
|
||||
"composer.zen_mode": "Zen Mode",
|
||||
"composer.select_category": "Select a category",
|
||||
"composer.textarea.placeholder": "Enter your post content here, drag and drop images",
|
||||
"bootbox.ok": "OK",
|
||||
"bootbox.cancel": "Cancel",
|
||||
"bootbox.confirm": "Confirm",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user