Compare commits

..

4 Commits

Author SHA1 Message Date
Aziz Khoury
494447741a rename parseUrl to urlParse, closer to core url module, url.parse 2019-12-21 13:45:25 +02:00
Aziz Khoury
7b174d25cb pass isBrowser as arg to factory fn 2019-12-21 12:08:04 +02:00
Aziz Khoury
bbb03a08e9 isRelativeUrl back and switched to use isProtocolAbsoluteUrl 2019-12-18 16:08:04 +02:00
Aziz Khoury
b884b0be01 difference between protocol and scheme absolute/relative urls check logic 2019-12-18 15:46:35 +02:00
1773 changed files with 9603 additions and 32100 deletions

View File

@@ -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",

2
.gitignore vendored
View File

@@ -1,4 +1,3 @@
dist/
yarn.lock
npm-debug.log
node_modules/
@@ -67,4 +66,3 @@ test/files/normalise.jpg.png
test/files/normalise-resized.jpg
package-lock.json
/package.json
*.mongodb

View File

@@ -1,4 +0,0 @@
reporter: dot
timeout: 25000
exit: true
bail: true

View File

@@ -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"

View File

@@ -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]

View File

@@ -1,965 +1,3 @@
#### 1.14.1 (2020-07-08)
##### Chores
* incrementing version number - v1.14.1 (31203b16)
* update changelog for v1.14.1 (d4c16086)
* incrementing version number - v1.14.1-beta.3 (e8ecef6b)
* incrementing version number - v1.14.1-beta.2 (b8d9b6b1)
* incrementing version number - v1.14.1-beta.1 (be85123a)
* incrementing version number - v1.14.1-beta.0 (c279875a)
* incrementing version number - v1.14.0 (bb73d6a4)
* update changelog for v1.14.0 (cffae0f1)
##### New Features
* add tools to recent/unread (#8477) (658dd03b)
* fire new hooks on chat message editing (4f51838d)
* add back redis tests (bdc4d9e7)
* remove redis test (8461a179)
* use covered query (057b783d)
* add js-enabled.css to list of preloaded css files (da29b947)
* zscan (#8457) (723fe8e8)
* fix blocksCount not being returned on user profile (bd228d5e)
##### Bug Fixes
* **deps:**
* update dependency nodebb-theme-persona to v10.1.60 (#8478) (14eafcb6)
* bump nodebb-plugin-composer-default to 6.3.48 (943a344a)
* update dependency nodebb-plugin-dbsearch to v4.1.1 (#8476) (9f06f12c)
* update dependency nodebb-plugin-composer-default to v6.3.47 (#8473) (857900f1)
* update dependency nodebb-plugin-dbsearch to v4.1.0 (#8471) (eb51cfd4)
* update dependency nodebb-theme-persona to v10.1.59 (#8468) (ee38e05d)
* update dependency nodebb-widget-essentials to v4.1.1 (#8466) (519e035d)
* update dependency @nodebb/socket.io-adapter-mongo to v3.0.1 (#8464) (412ca4ae)
* #8474 (c2ca02df)
* show stack properly (7b04d897)
* editing chat messages does not go through content sanity checks (9a6b87d2)
* don't show blocked users under nested replies (d6c619cf)
* tests (87dd6c83)
* handle scan/zscan returning duplicate elements on redis (746222d6)
* #8467, fix url to merged topic in subfolder installs (9eb748b9)
* openapi (5f1865c0)
* openapi (65c0adc7)
* dont allow searching by email/ip if not privileged (ac6b571e)
* missing backgroundImage #8386 (fef04fcf)
* dont allow searching by ip/banned/flagged for regular users (02ac44cc)
* admin privileges client-side regression (f3441fce)
* only add blocksCount for self and admins (59a2ace6)
* tests (fd20e5c6)
* better changelog (f992af05)
* **tests:**
* another shot in the dark (8853cd1a)
* shot in the dark (9458d90b)
* **openapi:** tests (c468942f)
##### Other Changes
* update changelog for v1.14.1" (26c74409)
* //github.com/NodeBB/NodeBB (0d9461b1)
* //github.com/NodeBB/NodeBB (ace312e0)
* post.changeOwner (b60e1cbf)
##### Reverts
* bad changelog (a761e31f)
#### 1.14.0 (2020-07-02)
##### Chores
* incrementing version number - v1.14.0 (bb73d6a4)
* update changelog for v1.14.0 (cffae0f1)
* bump persona (19f9af94)
* latest translations and fallbacks (22879633)
* incrementing version number - v1.13.3 (ee583e80)
* bump persona (d2bd746c)
* incrementing version number - v1.13.2 (beafd613)
* **deps:**
* update dependency smtp-server to v3.7.0 (e80100b5)
* update dependency eslint to v7.3.1 (#8417) (33492744)
* update commitlint monorepo to v9 (569b7664)
* update dependency lint-staged to v10.2.11 (157e7444)
* update dependency lint-staged to v10.2.10 (102a6004)
* update dependency mocha to v8 (#8393) (f4bace03)
* update dependency eslint to v7.2.0 (cd1375cb)
* update dependency eslint-plugin-import to v2.21.1 (4b577a52)
* update dependency lint-staged to v10.2.9 (#8369) (124125f7)
* update dependency lint-staged to v10.2.8 (331b1a85)
* update dependency lint-staged to v10.2.7 (d1df0826)
* update dependency mocha to v7.2.0 (ecaa9b76)
* update dependency eslint to v7.1.0 (e62d892a)
* update dependency lint-staged to v10.2.6 (78d562b3)
* update dependency lint-staged to v10.2.4 (a26011e7)
* update dependency eslint to v7 (28df9aba)
* update dependency coveralls to v3.1.0 (5ed4a108)
* pin dependency @apidevtools/swagger-parser to 9.0.1 (51eccef5)
* update dependency husky to v4.2.5 (30a25983)
* update dependency husky to v4.2.4 (0a650118)
* update dependency lint-staged to v10.1.3 (a9e68639)
* update dependency nyc to v15.0.1 (#8231) (a3789e28)
* update dependency lint-staged to v10.1.2 (#8235) (e1919c90)
* update dependency lint-staged to v10.1.1 (944a6f58)
* update dependency lint-staged to v10.1.0 (30bd233b)
* update dependency eslint-config-airbnb-base to v14.1.0 (811c3aee)
* update dependency jsdom to v16.2.2 (c5a7242d)
* update dependency eslint-plugin-import to v2.20.2 (b92c1600)
* update dependency lint-staged to v10.0.10 (0ad4b556)
* update dependency coveralls to v3.0.11 (14458087)
* update dependency smtp-server to v3.6.0 (22681945)
* update dependency mocha to v7.1.1 (#8215) (c5356541)
* update dependency grunt to v1.1.0 (#8214) (b0864e7c)
* update dependency husky to v4.2.3 (#8162) (776fe9d2)
* update dependency lint-staged to v10.0.8 (#8180) (13d8f6f1)
* update dependency eslint-plugin-import to v2.20.1 (#8081) (4cdb3131)
* update dependency jsdom to v16.2.1 (#8165) (fbd95a50)
* update dependency husky to v4.2.2 (#8160) (f4ed35c9)
* update dependency jsdom to v16 (#8114) (1037de02)
##### Documentation Changes
* updated changelog (146388aa)
##### New Features
* polish for user blocks UX (6cb31791)
* #8450, next/prev link tags on /unread /recent (eb9704f8)
* allow flagging of user acounts from post tools menu (6931f29d)
* closes #8440, allow configuring max topic count (e09ab3dc)
* add missing translation key (bffb830d)
* #3783, min/max tags per category (c718b729)
* use tags partial instead of post_bar (0482fb29)
* hide elements if search element is a direct child of dropdown (4f6b6c56)
* increase wait (6aecc177)
* move export functions into child processes (8383992d)
* display stack trace on winston.error (e80379dc)
* show more relevant snippets (f70d1648)
* #8412 breadcrumbs for ip-blacklist/post queue/flags (35a06a84)
* show editor in post diffs if available (f909ed25)
* #8408 flags' quick assignment (d5af9769)
* bump themes, closes #8406 (cb5ba76b)
* allow post diffs to be restored, #8406 (58b3d608)
* add missing translation (3a80a165)
* up composer (96cb94dc)
* more search changes (6349fa03)
* more merge/search fixes (4b38533b)
* merge changes (bb3aa540)
* more search & merge fixes (5fd05dc9)
* merge improvements wip (c4bdeae0)
* #8387 expose global and admin privs to flags detail page (4acb3fb2)
* redirect /me to user profile (3be4d5f7)
* #8384 options to delete account, content, or both (4d60eac6)
* account content deletion, closes #8381 (67aca822)
* add missing language files for #8347 (656b391f)
* privileges for Admin Control Panel (#8355) (a82e9bd7)
* add buildHeaderAsync (#8367) (842b8abb)
* #8360 flag quick actions for delete/restore/purge (8ea16348)
* #8349, remove user posts from queue if user is deleted (5a2b5154)
* up plugins (5b009e07)
* add results into results container (9ffcb6f7)
* quick search changes (f12d448e)
* move quick search into search module (bb1a56f0)
* fix session mismatch errors by clearing cookie on logout (#8338) (5781a2dc)
* add getSortedSetMembers (0009f54e)
* add privilege give/rescind hooks (#8336) (ec5582b5)
* filter followed tids by category (f3afba61)
* use getSortedSetsMembers to load followed tids (1b9e8928)
* add batch size to cursors (a015af4a)
* up cache size (9600ede5)
* tweak intersection code, add tests (4ee3543e)
* change to contains to match scoped modules (6108064e)
* improve grunt restart/rebuild speed (cb662e15)
* don't overwrite req.query.lang if it exists (4263efa0)
* convert queries so they used indices directly (12c6bc2e)
* cookie SameSite property (ae2db423)
* if only one value is passed used faster function (2587112f)
* closes #8316, add more data to export profile (f0323b6c)
* throw error if uid is missing for update (1d3fa3bc)
* ignore mongodb playground file (a219285e)
* parse quick search tpl even if no results (765b8156)
* match hook property to topic property (0e58fa33)
* add methods for adding/removing tags from topics (bfad4572)
* write-api update, WIP (9fd5c439)
* closes #8308, edit post notif for watched topic posts (a73c755b)
* add null tests for sorted sets (edf9fe3b)
* Add hooks for user blocks (#8296) (c4545381)
* allow activating additional plugins for testing via config.json (a969c5ce)
* move plugin tests to separate file (3a23ddab)
* remove node14 for now (a72e4429)
* reduce infinite scroll area (3fcbd691)
* manifest.json improvements from #8126 (#8264) (6e5ebb61)
* show error if json is invalid (15345627)
* moved component specs into separate files (cd506557)
* added UserObject, UserObjectFull, Breadcrumb, Pagination component (64d79fe5)
* added some summary and descriptions (ae3e90d6)
* add some descriptions (442c018e)
* common schema (eade13f9)
* openapi component (1af5507a)
* add page query param to docs (9987813f)
* tag route doc (bbddaadf)
* local redoc view on development mode only (1136a369)
* added auto-generated, slimmed-down openapi 3.0 file for read api (7b155dab)
* add parent cids to body class (23571224)
* add 2 hooks for modifying privileges (d080c7b0)
* add user ip to admin/dev/info (5e91a67e)
* change option name (cba5b23e)
* add no-build to ./nodebb setup (476f6717)
* add awaitable socket.emit (4083a6e3)
* settings sorted list (#8170) (3c9689a5)
* guard against accidental ommision (79737c53)
* **docs:** updated changelog (87c1687d)
* **openapi:**
* merging openapi-test branch into master (8387178b)
* move all commonprops out for commonprops component (65c78de6)
* added template to commonprops (2425f453)
##### Bug Fixes
* **deps:**
* update dependency nodebb-plugin-composer-default to v6.3.46 (5a713d85)
* update dependency nodebb-plugin-mentions to v2.8.3 (#8449) (bbd85049)
* update dependency nodebb-plugin-mentions to v2.8.0 (d40720f9)
* update dependency nodebb-plugin-composer-default to v6.3.44 (#8436) (c1991abe)
* update dependency winston to v3.3.3 (#8431) (6a8f54fd)
* update dependency nodebb-theme-persona to v10.1.55 (#8434) (a860a793)
* update dependency nodebb-theme-vanilla to v11.1.30 (#8435) (272b4992)
* update dependency nodebb-theme-vanilla to v11.1.29 (#8429) (b5a68a44)
* update dependency nodebb-theme-persona to v10.1.54 (#8428) (3ffb6fde)
* update dependency winston to v3.3.2 (54310d69)
* update dependency nodebb-plugin-spam-be-gone to v0.7.2 (11244348)
* update dependency winston to v3.3.1 (#8421) (fd628570)
* #8412 bump themes (365996e7)
* bump persona/vanilla, closes #8408 (225cac18)
* update dependency sharp to v0.25.4 (#8403) (3c3e1515)
* update dependency nodebb-theme-vanilla to v11.1.25 (#8405) (90446365)
* update dependency nodebb-theme-persona to v10.1.50 (#8404) (44273a64)
* update dependency mongodb to v3.5.9 (#8402) (90570660)
* update dependency nodebb-plugin-composer-default to v6.3.43 (78b7382c)
* update dependency validator to v13.1.1 (#8397) (2ae68f9b)
* update dependency validator to v13.1.0 (#8391) (ad6e3634)
* update dependency nodebb-theme-vanilla to v11.1.24 (#8395) (eec03de8)
* update dependency nodebb-theme-persona to v10.1.49 (#8394) (90846740)
* update dependency postcss to v7.0.32 (87ce31d1)
* update dependency nodebb-plugin-composer-default to v6.3.41 (dde830db)
* update dependency nodebb-plugin-composer-default to v6.3.40 (#8388) (cf0f8f64)
* bump themes, closes #8387 (e97a2b71)
* bump themes (ccac6a35)
* update dependency nodebb-theme-persona to v10.1.46 (#8382) (036e6ef5)
* update dependency nodebb-theme-vanilla to v11.1.21 (#8383) (7caeb273)
* update dependency nodebb-plugin-composer-default to v6.3.39 (aeefc60b)
* update dependency nodebb-plugin-composer-default to v6.3.37 (7f6ff0b1)
* update dependency nodebb-plugin-composer-default to v6.3.36 (6b2ea077)
* update dependency nodebb-plugin-composer-default to v6.3.35 (2d582df7)
* update dependency nodebb-theme-persona to v10.1.45 (#8372) (771ea194)
* update dependency nodebb-theme-vanilla to v11.1.20 (#8373) (f8ee981b)
* update dependency socket.io-redis to v5.3.0 (#8370) (d2463bb4)
* update dependency nodebb-theme-vanilla to v11.1.19 (f6ad9605)
* update dependency nodebb-theme-persona to v10.1.44 (cb28e6cf)
* update dependency nodebb-plugin-composer-default to v6.3.34 (#8357) (d7ab0894)
* update dependency nodebb-plugin-composer-default to v6.3.33 (c4047179)
* update dependency nodebb-plugin-spam-be-gone to v0.7.1 (27ab36ac)
* update dependency nodebb-theme-persona to v10.1.43 (#8343) (dabff972)
* update dependency mongodb to v3.5.8 (#8342) (8224127f)
* update dependency nodebb-theme-persona to v10.1.40 (#8332) (a20af6e2)
* update dependency nodebb-plugin-spam-be-gone to v0.7.0 (cc206b4d)
* bump composer-default (827d42a9)
* bump composer-default (a665881b)
* update dependency nodebb-plugin-composer-default to v6.3.29 (bf8a2c2e)
* update dependency postcss to v7.0.30 (#8288) (a532e2bb)
* update dependency sharp to v0.25.3 (0437ecc2)
* update dependency nodebb-plugin-composer-default to v6.3.28 (#8309) (f246057a)
* update dependency nodebb-plugin-composer-default to v6.3.27 (#8307) (6d57d844)
* #8298 bump persona (158d9231)
* update dependency nodebb-plugin-composer-default to v6.3.25 (89d17647)
* update dependency jquery to v3.5.1 [security] (#8281) (a69f0b29)
* update dependency nodebb-rewards-essentials to v0.1.3 (#8289) (919034a7)
* update dependency mongodb to v3.5.7 (#8279) (25d509c4)
* actually, swagger-parser is a dev dependency (d09c6ae0)
* missing @apidevtools/swagger-parser (f1720735)
* update dependency nodebb-theme-persona to v10.1.37 (#8258) (b0c30ceb)
* update dependency archiver to v4 (28777f67)
* update dependency mongodb to v3.5.6 (#8256) (49236067)
* bump dependencies (#8239) (e68156e1)
* update dependency jsesc to v3.0.1 (#8243) (92b55ef5)
* update dependency jsesc to v3 (bb70cebb)
* update dependency pg to v8 (#8227) (ac98775f)
* update dependency validator to v13 (f497ee62)
* update dependency sharp to v0.25.2 (#8220) (dd660c87)
* bump markdown (ee6cb412)
* update dependency mongodb to v3.5.5 (#8205) (5535c50c)
* update dependency sitemap to v6 (#8198) (2052f14c)
* update dependency nodebb-plugin-composer-default to v6.3.23 (6d98d5a1)
* update dependency sharp to v0.25.1 (#8199) (21e91c91)
* update dependency nodebb-plugin-composer-default to v6.3.22 (#8193) (e01f05e3)
* update dependency nodebb-theme-slick to v1.2.29 (#8177) (9daa21ff)
* update dependency nodebb-theme-vanilla to v11.1.16 (#8178) (7d6a983b)
* update dependency nodebb-theme-persona to v10.1.35 (#8176) (3acc24b0)
* update dependency sharp to v0.24.1 (#8164) (7cc63f7d)
* update dependency mongodb to v3.5.3 (#8161) (4b907137)
* update dependency nodebb-widget-essentials to v4.1.0 (#8159) (a5f3c2a2)
* update dependency request to v2.88.2 (#8158) (7fde180a)
* update dependency redis to v3 (#8152) (ef964b11)
* update dependency rimraf to v3.0.2 (#8153) (d8efc6b6)
* don't show in unreplied if score is null (fd400a00)
* lint (0d0b9513)
* upgrade script to unescape navigation titles (37b6b8fd)
* test (f0ce309d)
* show controls @julianlam (023de94e)
* #8437, #8433 (e53a18f2)
* copy settings showing empty category selection (ed4b5caf)
* don't init autocomplete if user doesn't have privs (8482a54a)
* only allow valid uids (00d8ce26)
* tests (f03ca086)
* vulnerability in cover and admin uploads (#8419) (48b41deb)
* reverse tabnabbing exploit in post images (040e6a9a)
* follower count going out of sync with real follower count (2bcf7f72)
* test lock for user create (#8415) (bef37e27)
* add mising timestamp (f0526bff)
* ban (bfd7eafe)
* remove use of 'hidden' class in navbar toggling (5a367ecb)
* bug where category privs page thought it was on admin (2515aa77)
* #8410 (b3115ea8)
* tests breaking due to #8406 (d5578c99)
* add missing translations (42466d3c)
* #8401, #8237 (7ed1a014)
* add timestamp to initial username history (18d89239)
* crash in export posts if post content is undefined (53a9517d)
* messaging unread (0041c024)
* whitespace (a024cc13)
* typo (0595e710)
* #8392, clear group member cache when group is renamed (89b01024)
* return false (8591f5d2)
* language (a255c8f6)
* #8386, use backgroundImage everywhere (8627bee5)
* prevent logout form from submitting (d92032da)
* missing space in ACP menu dropdown (daeceb45)
* #8385 (942cc4b1)
* acp language keys from #8347 not updated in tx config (9ae7fd3e)
* #8363, dont break history (50703db8)
* #8363, go to hash when entering topic (0c265a41)
* #8374, revert event delete (30cc83c0)
* new language tag for select_tags (09184f40)
* remove duplicate link to manage/tags in settings/tags (260a482c)
* tests (3a078f59)
* handle search tag permission as well (1b5d5425)
* checking correct permissions for user search (#8371) (f6b92d24)
* change event name so it doesnt trigger complete event (7786187e)
* clear error log before checking (75b3a81d)
* #8323, let admins send validation emails without timeout (e603ebc0)
* #8352, remove webfonts (#8354) (de7ec47f)
* more tests (da90fd56)
* tests due to 0633ad327 (98dffa3a)
* retry failed setObject calls (2c9e8657)
* acp menu items (0633ad32)
* re-jigged tags acp pages (a83f4259)
* move checks into timeout (47d73a2a)
* #8339, add missing translation (a9315aee)
* don't explode if server sends `checkSession` (84c20f91)
* eliminate unnecessary try..catch (f0e59c14)
* test breakages from 8d995d1eb609837e4e6e4c77cd855766830378fa (a66fe013)
* #8320, dont load moderators separately for each category (0a31e3e6)
* show stack trace on startup errors (11bb6abb)
* don't trigger quick search if val doesn't change (d6c2764f)
* prevent duplicate search triggers (6f78113e)
* user faster method if sorting by smallest set (3ec05eea)
* add txt to list of default allowed file extensions (01bff2ae)
* search post snipets incase content is plain text (ada45a34)
* derp includes (d484731d)
* another test fix (f2907908)
* tests (feb748a4)
* tests on redis (7a801aba)
* tests, handle no sessions (8bf980cb)
* #8318, clean expired sessions on login and get (a0d76ff0)
* tests (a032e12b)
* #8317 (81e33b93)
* #8142 invalid session warning if server-side session destroyed (526b3cd9)
* check privileges before exporting post/topic data (5fd81c5c)
* exporting posts (dfae664e)
* undefined uid when downloading posts (bdda0222)
* #8311, fix allowUserHomePage value (1ba6929c)
* dont crash if topic is null (e20ad5c5)
* if category in selector has url use it (1f992cf3)
* convert cids to string for comparison (c47a1c4d)
* missing await (97c086ab)
* add missing schema item (4e14cb57)
* category selector disabled categories (337be368)
* #8305, don't use null values (6a5e86dc)
* #8302, send string to writeFileSync (d09bd2cf)
* winston showing json object (7d081843)
* sortable topics even if only 1 pinned topic (6765de3d)
* #8298, use class name added by jQueryUI instead (dd2bc189)
* topic search shortcut for macs (f2c725c6)
* #8297, uids.length is different than topics.length (0431d75f)
* #8297 guest handles shown in category.tpl (fcb81cb8)
* only add to set if numRecentReplies>0 (16a98eaf)
* #8293, don't show error if there are no self messages (be305410)
* failing tests @julianlam (ecd622fd)
* #3321, run plugin tests for installed plugins (a6bb9f43)
* remove deprecated mocha.opts (3d0db963)
* spec (84383d39)
* #8290, if there are no filters go to ?reset=1 (9839346e)
* #8283, update gdpr link again (2d076344)
* add missing await (4f1128fd)
* #8287, dont readd user after deletion (9d153fd3)
* missing await (4d6b2ec3)
* #8286, rescind notif when its resolved/rejected (0391856d)
* #8284, parse ToS on register (0ca84bd9)
* #8283, point to official site (17d664e0)
* jquery xhtml violations (275e837b)
* #8274 Don't escape HTML in manage users (#8275) (4855f1de)
* crash in topic controller (0c7c70ed)
* crash when res.locals.linkTags is undefined (7cab2b0f)
* #8272 user link in digest email (e80b8101)
* tag of /api/unread/total (9ffdab02)
* response hook logic (5a1c6ee7)
* remove upload picture test (avatars) (6edf02d4)
* remove tests related to group covers, as route is gone (442fe65f)
* #8269, return array of topics from hook (4eafe0f0)
* remove dead picture upload code #8260 (ef52461f)
* path.resolve to logs file (5bcaf715)
* only trigger infinitescroll on scroll end (ba6d3fd3)
* wrong data returned in available.groups (c7ea84a2)
* no focus on find user modal (1b425ef1)
* accidental fp precision on flag and acp dash graphs (bcbf98aa)
* #8232, unresolvable session mismatch on register cancel (f2f6fbf1)
* pin jquery to 3.4.1, #8252 (e440d617)
* #8249, don't send move notifications for deleted posts/topics (d77036db)
* missing descriptions for common properties (7b31fb34)
* some definitions in read API spec (03739b6f)
* tagged all routes in read api spec (455d42bc)
* override ACAO header for read API spec file (240d9091)
* throw error if topic does not exist (59cf0e80)
* hookname (e93578b8)
* #8230, add hook getUserDataByUserSlug (0d1b5a7f)
* ignore case for group details route (15d6975e)
* lint (740e598a)
* lint (8e23dec8)
* #8221, fix parent selection (08031730)
* invite properly (071506eb)
* admins not seeing invite button (8f4b99a4)
* #8217, add missing lang key (0b5fac75)
* #8206 first message in chat has false `newSet` (93acd139)
* #8203, fix user invites refreshing page (2f9c7c62)
* #8202, filter non-existing users in search by uid (f07f4f8e)
* notification bodyShort truncated if there is a comma in topic title (266061c3)
* hsts max-age missing translation (b67af70d)
* call next (80f1bcad)
* try travis fix again (05bee629)
* try fixing psql on travis (bc9e92a1)
* dont let regular users see other users watched categories (cf6eadb9)
* also fix updating bookmark if sorting is newest_to_oldest (6e5de39b)
* #8188, fix bookmark if sorting is newest_to_oldest (32ada7c4)
* duplicate ID + label (ac241fb8)
* #8184 global mods unable to revoke other user sessions (f0db240a)
* return null if field does not exist (e72a29b3)
* #8179, limit length of location/website/fullname, check grouptitle (14e78667)
* tag key (32636755)
* #8175 (bc93b567)
* #8168 re-allowing slashes in homePageRoute (667608a0)
* tweak to session validation in addHeaders (eddbd868)
* only call clearCookie for logged in users (630f5d5b)
* #6422, update deleted/restored messages (06703408)
* #8163, prevent account deletion (4d0636f8)
* register (5a0c7c14)
* #8157, update recent tid when post is moved (e7495440)
* tests (b73aa84d)
* move start/stop every iteration (dd3893b1)
* #8154, move start/stop every iteration (300c04ce)
* #8154, respect stop (690bb69d)
* #8156 dont allow loading members from hidden groups (f23bc347)
* #8155, don't validate name on update if groupName didn't change (03a02e5d)
* return correct number of suggested topics (236e1e68)
* #8151, don't crash if taskbar doesn't have element (2e794801)
* logic for determining dailyStats hour vars (398f0120)
* fix daily analytics being one day off (9ecdb92f)
* remove debug line (0b9ad416)
* no decimal places for category analytics (14655f87)
* #8142, broken site if no server-side session (#8148) (d6e3f3f0)
* #8144 pluginHooks in maintenance mode middleware (0885ec68)
* **openapi:**
* tests for #8412 (4cae893f)
* api change for #8387 (6a969442)
* schema for new flags api (a0e243ee)
* broken tests (45dfeeb0)
* v14 test fix (23a0b8c5)
* remove account and group upload routes (d342a28c)
* more fleshing out (058a15db)
* fleshed out admin routes (bae88e08)
* added some descriptions (ab4bd7e1)
* added PostsObject component (2395d2be)
* finished moving all category objects out (23dd2727)
* changed some descriptions (c939f8c6)
* added CategoryObject component (55d0a9ff)
* removed repeated breadcrumb blocks in favour of $ref (646fac1e)
* remove all repeated pagination blocks in favour of (ac579f9d)
* removed warning for category mods route (1cf62095)
* normalising the file for programmatic updates (3a5c6e07)
* **style:**
* more switch..case (6b1d1acb)
* switch..case (922d49be)
* enforcing "better" indentation for switch..case (d135b6f7)
* **docs:** added titles to all routes (aa4ae78b)
##### Other Changes
* id, category fields (2355d9d5)
* //github.com/NodeBB/NodeBB (c3c8b19a)
* //github.com/NodeBB/NodeBB (0ddfb6b0)
* //github.com/NodeBB/NodeBB (d1c1cb2c)
* //github.com/NodeBB/NodeBB (79a7f892)
* user.getFields to match topic/posts (a680a95e)
* //github.com/NodeBB/NodeBB (b459592a)
* //github.com/NodeBB/NodeBB (066b442e)
* //github.com/NodeBB/NodeBB (fd6bf0c9)
* //github.com/NodeBB/NodeBB (c1d8b9bb)
* middleware.renderHeader (2727f472)
* //github.com/NodeBB/NodeBB (69a87933)
* uploadFile (7f24200c)
* #8142 invalid session warning if server-side session destroyed" (e327d124)
* ''}) (2a00b0e9)
* //github.com/NodeBB/NodeBB (8c8cdc99)
* categories.getRecentTopicReplies (aad0880f)
* #8298 (2e57d8ac)
* post.updatePostVoteCount (b25b51bd)
* //github.com/NodeBB/NodeBB (5e140454)
* categories.updateRecentTid (6c59683b)
* categories.updateRecentTid (51933c1f)
* router.page, dep. filter variant (0053e779)
* flags as well (5ebcdb18)
* crash when res.locals.linkTags is undefined" (fe03effe)
* //github.com/NodeBB/NodeBB (87a6ff0d)
* cnpm and pnpm (#8222) (e6a1741c)
* //github.com/NodeBB/NodeBB (7ae76477)
* openapi component" (683e5851)
* override ACAO header for read API spec file" (c82a2637)
* password.change (00e299e9)
* topic.tools.load (5aa76cdf)
* #8154, move start/stop every iteration" (4abe5eb7)
* **deps:** update dependency nodebb-plugin-mentions to v2.8.0" (5c7d37c0)
##### Refactors
* make code climate happier? (0d112b36)
* shorter code (af790e3f)
* shorter code (e8f0da6e)
* change name to privileges to match other apis (2100a03c)
* making rendering of header and footer async functions (023942da)
* remove general menu from ACP (#8347) (a51fff8b)
* use getSortedSetMembers (7d484fc0)
* src/flags.js because codeclimate (cf00cda0)
* flags detail page (8d995d1e)
* move code (3b6d57e4)
* remove console.log (40b5cbab)
* shorter function (7e429884)
* match core field name pinned (478ed6c1)
* getUsersCSV to use batch lib (1efb238a)
* reorganized socket.io admin modules (e1c6c3b2)
##### Reverts
* bad changelog (a761e31f)
#### 1.13.3 (2020-05-08)
##### Chores
* incrementing version number - v1.13.3 (ee583e80)
* bump persona (d2bd746c)
* incrementing version number - v1.13.2 (beafd613)
* **deps:**
* update dependency coveralls to v3.1.0 (5ed4a108)
* pin dependency @apidevtools/swagger-parser to 9.0.1 (51eccef5)
* update dependency husky to v4.2.5 (30a25983)
* update dependency husky to v4.2.4 (0a650118)
* update dependency lint-staged to v10.1.3 (a9e68639)
* update dependency nyc to v15.0.1 (#8231) (a3789e28)
* update dependency lint-staged to v10.1.2 (#8235) (e1919c90)
* update dependency lint-staged to v10.1.1 (944a6f58)
* update dependency lint-staged to v10.1.0 (30bd233b)
* update dependency eslint-config-airbnb-base to v14.1.0 (811c3aee)
* update dependency jsdom to v16.2.2 (c5a7242d)
* update dependency eslint-plugin-import to v2.20.2 (b92c1600)
* update dependency lint-staged to v10.0.10 (0ad4b556)
* update dependency coveralls to v3.0.11 (14458087)
* update dependency smtp-server to v3.6.0 (22681945)
* update dependency mocha to v7.1.1 (#8215) (c5356541)
* update dependency grunt to v1.1.0 (#8214) (b0864e7c)
* update dependency husky to v4.2.3 (#8162) (776fe9d2)
* update dependency lint-staged to v10.0.8 (#8180) (13d8f6f1)
* update dependency eslint-plugin-import to v2.20.1 (#8081) (4cdb3131)
* update dependency jsdom to v16.2.1 (#8165) (fbd95a50)
* update dependency husky to v4.2.2 (#8160) (f4ed35c9)
* update dependency jsdom to v16 (#8114) (1037de02)
##### Documentation Changes
* updated changelog (146388aa)
##### New Features
* allow activating additional plugins for testing via config.json (a969c5ce)
* move plugin tests to separate file (3a23ddab)
* remove node14 for now (a72e4429)
* reduce infinite scroll area (3fcbd691)
* manifest.json improvements from #8126 (#8264) (6e5ebb61)
* show error if json is invalid (15345627)
* moved component specs into separate files (cd506557)
* added UserObject, UserObjectFull, Breadcrumb, Pagination component (64d79fe5)
* added some summary and descriptions (ae3e90d6)
* add some descriptions (442c018e)
* common schema (eade13f9)
* openapi component (1af5507a)
* add page query param to docs (9987813f)
* tag route doc (bbddaadf)
* local redoc view on development mode only (1136a369)
* added auto-generated, slimmed-down openapi 3.0 file for read api (7b155dab)
* add parent cids to body class (23571224)
* add 2 hooks for modifying privileges (d080c7b0)
* add user ip to admin/dev/info (5e91a67e)
* change option name (cba5b23e)
* add no-build to ./nodebb setup (476f6717)
* add awaitable socket.emit (4083a6e3)
* settings sorted list (#8170) (3c9689a5)
* guard against accidental ommision (79737c53)
* **openapi:**
* merging openapi-test branch into master (8387178b)
* move all commonprops out for commonprops component (65c78de6)
* added template to commonprops (2425f453)
##### Bug Fixes
* #8302, send string to writeFileSync (d09bd2cf)
* winston showing json object (7d081843)
* sortable topics even if only 1 pinned topic (6765de3d)
* #8298, use class name added by jQueryUI instead (dd2bc189)
* topic search shortcut for macs (f2c725c6)
* #8297, uids.length is different than topics.length (0431d75f)
* #8297 guest handles shown in category.tpl (fcb81cb8)
* only add to set if numRecentReplies>0 (16a98eaf)
* #8293, don't show error if there are no self messages (be305410)
* failing tests @julianlam (ecd622fd)
* #3321, run plugin tests for installed plugins (a6bb9f43)
* remove deprecated mocha.opts (3d0db963)
* spec (84383d39)
* #8290, if there are no filters go to ?reset=1 (9839346e)
* #8283, update gdpr link again (2d076344)
* add missing await (4f1128fd)
* #8287, dont readd user after deletion (9d153fd3)
* missing await (4d6b2ec3)
* #8286, rescind notif when its resolved/rejected (0391856d)
* #8284, parse ToS on register (0ca84bd9)
* #8283, point to official site (17d664e0)
* jquery xhtml violations (275e837b)
* #8274 Don't escape HTML in manage users (#8275) (4855f1de)
* crash in topic controller (0c7c70ed)
* crash when res.locals.linkTags is undefined (7cab2b0f)
* #8272 user link in digest email (e80b8101)
* tag of /api/unread/total (9ffdab02)
* response hook logic (5a1c6ee7)
* remove upload picture test (avatars) (6edf02d4)
* remove tests related to group covers, as route is gone (442fe65f)
* #8269, return array of topics from hook (4eafe0f0)
* remove dead picture upload code #8260 (ef52461f)
* path.resolve to logs file (5bcaf715)
* only trigger infinitescroll on scroll end (ba6d3fd3)
* wrong data returned in available.groups (c7ea84a2)
* no focus on find user modal (1b425ef1)
* accidental fp precision on flag and acp dash graphs (bcbf98aa)
* #8232, unresolvable session mismatch on register cancel (f2f6fbf1)
* pin jquery to 3.4.1, #8252 (e440d617)
* #8249, don't send move notifications for deleted posts/topics (d77036db)
* missing descriptions for common properties (7b31fb34)
* some definitions in read API spec (03739b6f)
* tagged all routes in read api spec (455d42bc)
* override ACAO header for read API spec file (240d9091)
* throw error if topic does not exist (59cf0e80)
* hookname (e93578b8)
* #8230, add hook getUserDataByUserSlug (0d1b5a7f)
* ignore case for group details route (15d6975e)
* lint (740e598a)
* lint (8e23dec8)
* #8221, fix parent selection (08031730)
* invite properly (071506eb)
* admins not seeing invite button (8f4b99a4)
* #8217, add missing lang key (0b5fac75)
* #8206 first message in chat has false `newSet` (93acd139)
* #8203, fix user invites refreshing page (2f9c7c62)
* #8202, filter non-existing users in search by uid (f07f4f8e)
* notification bodyShort truncated if there is a comma in topic title (266061c3)
* hsts max-age missing translation (b67af70d)
* call next (80f1bcad)
* try travis fix again (05bee629)
* try fixing psql on travis (bc9e92a1)
* dont let regular users see other users watched categories (cf6eadb9)
* also fix updating bookmark if sorting is newest_to_oldest (6e5de39b)
* #8188, fix bookmark if sorting is newest_to_oldest (32ada7c4)
* duplicate ID + label (ac241fb8)
* #8184 global mods unable to revoke other user sessions (f0db240a)
* return null if field does not exist (e72a29b3)
* #8179, limit length of location/website/fullname, check grouptitle (14e78667)
* tag key (32636755)
* #8175 (bc93b567)
* #8168 re-allowing slashes in homePageRoute (667608a0)
* tweak to session validation in addHeaders (eddbd868)
* only call clearCookie for logged in users (630f5d5b)
* #6422, update deleted/restored messages (06703408)
* #8163, prevent account deletion (4d0636f8)
* register (5a0c7c14)
* #8157, update recent tid when post is moved (e7495440)
* tests (b73aa84d)
* move start/stop every iteration (dd3893b1)
* #8154, move start/stop every iteration (300c04ce)
* #8154, respect stop (690bb69d)
* #8156 dont allow loading members from hidden groups (f23bc347)
* #8155, don't validate name on update if groupName didn't change (03a02e5d)
* return correct number of suggested topics (236e1e68)
* #8151, don't crash if taskbar doesn't have element (2e794801)
* logic for determining dailyStats hour vars (398f0120)
* fix daily analytics being one day off (9ecdb92f)
* remove debug line (0b9ad416)
* no decimal places for category analytics (14655f87)
* #8142, broken site if no server-side session (#8148) (d6e3f3f0)
* #8144 pluginHooks in maintenance mode middleware (0885ec68)
* **deps:**
* #8298 bump persona (158d9231)
* update dependency nodebb-plugin-composer-default to v6.3.25 (89d17647)
* update dependency jquery to v3.5.1 [security] (#8281) (a69f0b29)
* update dependency nodebb-rewards-essentials to v0.1.3 (#8289) (919034a7)
* update dependency mongodb to v3.5.7 (#8279) (25d509c4)
* actually, swagger-parser is a dev dependency (d09c6ae0)
* missing @apidevtools/swagger-parser (f1720735)
* update dependency nodebb-theme-persona to v10.1.37 (#8258) (b0c30ceb)
* update dependency archiver to v4 (28777f67)
* update dependency mongodb to v3.5.6 (#8256) (49236067)
* bump dependencies (#8239) (e68156e1)
* update dependency jsesc to v3.0.1 (#8243) (92b55ef5)
* update dependency jsesc to v3 (bb70cebb)
* update dependency pg to v8 (#8227) (ac98775f)
* update dependency validator to v13 (f497ee62)
* update dependency sharp to v0.25.2 (#8220) (dd660c87)
* bump markdown (ee6cb412)
* update dependency mongodb to v3.5.5 (#8205) (5535c50c)
* update dependency sitemap to v6 (#8198) (2052f14c)
* update dependency nodebb-plugin-composer-default to v6.3.23 (6d98d5a1)
* update dependency sharp to v0.25.1 (#8199) (21e91c91)
* update dependency nodebb-plugin-composer-default to v6.3.22 (#8193) (e01f05e3)
* update dependency nodebb-theme-slick to v1.2.29 (#8177) (9daa21ff)
* update dependency nodebb-theme-vanilla to v11.1.16 (#8178) (7d6a983b)
* update dependency nodebb-theme-persona to v10.1.35 (#8176) (3acc24b0)
* update dependency sharp to v0.24.1 (#8164) (7cc63f7d)
* update dependency mongodb to v3.5.3 (#8161) (4b907137)
* update dependency nodebb-widget-essentials to v4.1.0 (#8159) (a5f3c2a2)
* update dependency request to v2.88.2 (#8158) (7fde180a)
* update dependency redis to v3 (#8152) (ef964b11)
* update dependency rimraf to v3.0.2 (#8153) (d8efc6b6)
* **openapi:**
* v14 test fix (23a0b8c5)
* remove account and group upload routes (d342a28c)
* more fleshing out (058a15db)
* fleshed out admin routes (bae88e08)
* added some descriptions (ab4bd7e1)
* added PostsObject component (2395d2be)
* finished moving all category objects out (23dd2727)
* changed some descriptions (c939f8c6)
* added CategoryObject component (55d0a9ff)
* removed repeated breadcrumb blocks in favour of $ref (646fac1e)
* remove all repeated pagination blocks in favour of (ac579f9d)
* removed warning for category mods route (1cf62095)
* normalising the file for programmatic updates (3a5c6e07)
##### Other Changes
* #8298 (2e57d8ac)
* post.updatePostVoteCount (b25b51bd)
* //github.com/NodeBB/NodeBB (5e140454)
* categories.updateRecentTid (6c59683b)
* categories.updateRecentTid (51933c1f)
* router.page, dep. filter variant (0053e779)
* flags as well (5ebcdb18)
* crash when res.locals.linkTags is undefined" (fe03effe)
* //github.com/NodeBB/NodeBB (87a6ff0d)
* cnpm and pnpm (#8222) (e6a1741c)
* //github.com/NodeBB/NodeBB (7ae76477)
* openapi component" (683e5851)
* override ACAO header for read API spec file" (c82a2637)
* password.change (00e299e9)
* topic.tools.load (5aa76cdf)
* #8154, move start/stop every iteration" (4abe5eb7)
##### Refactors
* match core field name pinned (478ed6c1)
* getUsersCSV to use batch lib (1efb238a)
* reorganized socket.io admin modules (e1c6c3b2)
#### 1.13.2 (2020-02-05)
##### Chores
* incrementing version number - v1.13.2 (71f4607d)
* bump themes (027f3f22)
* bump vanilla (236a1730)
* bump persona (82ace391)
* incrementing version number - v1.13.1 (cc6758a0)
* **deps:**
* update dependency eslint to v6.8.0 (#8062) (15783213)
* update dependency nyc to v15 (#8094) (976e26a9)
* update commitlint monorepo (#8100) (eb4a1a57)
* update dependency lint-staged to v10.0.7 (#8132) (cdfbcbb9)
* update dependency mocha to v7 (#8106) (b370333c)
* update dependency husky to v4 (dd440ce9)
* update dependency lint-staged to v10.0.1 (66992a55)
* update dependency lint-staged to v10 (d74eecfb)
##### Documentation Changes
* updated changelog (2edc6960)
##### New Features
* add test for isOnline (66febb80)
* add test for change post owner (df2c7851)
* check flag values on save (assignee and state) (#8122) (8e5a2276)
##### Bug Fixes
* admin relogin (a5ef6b53)
* #8135 (c35a21d7)
* handle mkdirp0.5->1.0x so it doesn't break upgrade (1e50616c)
* #8134, upgrade mkdirp to 1.0.x (87225a90)
* onSuccessfulLogin not working (111ed802)
* #8139, dont allow restore if not deleted by self (8c48f94b)
* use view_deleted when filtering, closes #8137 (9969dd63)
* escape invalid rules (d927b763)
* add missing await (3cca929a)
* missing await in SocketPosts.changeOwner (0ae1eb4f)
* #8133, check if user is in room before removing (23810cc6)
* add missing await (cd1fa27a)
* missing await (f799f017)
* dont return flag data to client (418c174d)
* check if user has read priv before flagging (51236df4)
* restrict getUsersInRoom to members (1f13ab8a)
* remove unused conditional, dont add dupe messages (3077eb94)
* tests for messaging (ecc579a2)
* #8127 user join system message duplicated (594cd7e1)
* background-size in taskbar images (106c141f)
* tests, was using hardcoded message id (1b08f376)
* typo in #8116 (8bb5e71e)
* build step defaults to series instead of parallel (3fac09b1)
* escape system message, don't allow editing system messages (6a63c1a1)
* escape register query param (c8fb7f92)
* delete upload (8c6a7954)
* check uploadName (153b1a0e)
* #8120, bubble errors from static hooks (01d1ae78)
* escape bootswatchSkin and homepageRoute (b0f3e48a)
* change owner missing await (3e525576)
* hsts always enabled (e3952674)
* escape topic.thumb (b7a57996)
* #8112, don't crash hook returns no data (4eb9652a)
* escape config.userLang/acpLang, don't allow invalid language codes (e06c1bfc)
* group create/join/update name validation (61da8c29)
* don't crash if groupData is missing (48f08627)
* #8105, fix export json on page load (5a8217de)
* #8103, fix advanced menu not displaying in ACP (52774531)
* meta description missing if url doesn't have post index (10989ccc)
* create user modal instantly closing (c1b1ee61)
* login with weak password (9d074731)
* dont check password strength on login (f6d7a24a)
* **deps:**
* update dependency connect-redis to v4.0.4 (#8143) (16ab641d)
* update dependency rimraf to v3.0.1 (#8138) (726ba71c)
* update dependency validator to v12.2.0 (#8136) (f07b4bfa)
* update dependency nodebb-theme-persona to v10.1.34 (#8140) (6d7131fb)
* update dependency nodebb-theme-persona to v10.1.31 (#8129) (c510a2c4)
* update dependency mongodb to v3.5.2 (#8092) (0e49cfb9)
* update dependency sharp to v0.24.0 (#8121) (16e8f496)
* update dependency nodebb-plugin-composer-default to v6.3.21 (#8119) (ca10f8f0)
* update dependency nodebb-widget-essentials to v4.0.18 (#8111) (df5e3a73)
##### Other Changes
* NodeBB/NodeBB (b959c24a)
* //github.com/NodeBB/NodeBB (ee4304b4)
* //github.com/NodeBB/NodeBB (bfaba895)
* save disableLeave (#8123) (09d55581)
* //github.com/NodeBB/NodeBB (842916ea)
##### Refactors
* messaging (30c50361)
#### 1.13.1 (2019-12-19)
##### Chores
* incrementing version number - v1.13.1 (d1e0672f)
* incrementing version number - v1.13.0 (c38b2d23)
* **deps:**
* update dependency husky to v3.1.0 (#8046) (c3418c26)
* update dependency coveralls to v3.0.9 (#8067) (0aeee144)
* update dependency eslint to v6.7.0 (32cfe96f)
* update dependency coveralls to v3.0.8 (#8054) (8ba26104)
##### Documentation Changes
* updated changelog (94499da3)
##### New Features
* better output for cli plugins list, closes #8075 (4fc69443)
* #5272, allow changing user groups from manage users page (05c9fe27)
* merge social authentication into plugins menu in ACP (f9a8ebfc)
* convert middleware.isAdmin to async/await (efd1e88b)
##### Bug Fixes
* #8085, fix cookie name (dec157d6)
* #8058, fix incorrect digest setting display in ACP (1b992d82)
* remove select version (6a17e32d)
* travis config (3ae98300)
* travis :dog: (3731dc4e)
* #8078, dont mark notifications read without a mergeId (a8df6d62)
* #8077, show continue chat on all profile pages (7af1c873)
* profile showing posts from deleted topics (2679f37d)
* #8073, configurable necroThreshold (4d669783)
* allow members to search as well (b323df2f)
* #8069, dont show hidden groups in search (c2cd7de8)
* missing await (33fd4a1c)
* #8064, break-word on post-queue (1bda92e3)
* #6711 (7ed002a1)
* #8061, don't crash if there is a network problem (de404102)
* #8059, properly mark topic unread when using mark unread for all (a688aaae)
* #8042, dont show errors after clearing form (3811e0a3)
* unhandled promise rejection error on reset error (51073772)
* #8050, fix redirect after registration (366ad5cd)
* make _csrf a secure cookie if the website is using https (#8045) (0efe27b1)
* #8034 (0a96c923)
* serialize (a2545204)
* show login fields if user has local password (1eca5b3d)
* use the correct attribute name for widgets (6c404b81)
* **deps:**
* update dependency semver to v7 (483d7535)
* update dependency nodebb-theme-vanilla to v11.1.12 (610ecf35)
* update dependency sharp to v0.23.4 (#8076) (eb18c182)
* update dependency nodebb-theme-persona to v10.1.30 (0514383a)
* update dependency nodebb-plugin-markdown to v8.11.0 (702ca164)
* update dependency connect-mongo to v3.2.0 (2aef7a5b)
* update dependency mongodb to v3.3.5 (#8065) (68118e43)
* update dependency nodebb-theme-persona to v10.1.29 (#8057) (34933091)
* update dependency sharp to v0.23.3 (#8044) (6fa88823)
* update dependency validator to v12.1.0 (#8055) (488ea394)
* update dependency nodebb-theme-slick to v1.2.28 (#8041) (b3511f71)
* update dependency nodebb-theme-vanilla to v11.1.11 (#8040) (d567c4ae)
* update dependency nodebb-theme-persona to v10.1.28 (#8039) (6c87bed5)
* update dependency nodebb-plugin-dbsearch to v4.0.7 (#8038) (1e2e16b4)
##### Refactors
* async/await middleware (a227cbe3)
* change to const/let (3454a24b)
* shorter returns (cec00795)
### 1.13.0 (2019-11-13)
##### Chores

View File

@@ -19,4 +19,5 @@ ENV NODE_ENV=production \
EXPOSE 4567
CMD node ./nodebb build ; node ./nodebb start
CMD ./nodebb start

View File

@@ -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);
}

1
app.js
View File

@@ -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

View File

@@ -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,
@@ -82,11 +81,9 @@
"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",
@@ -112,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,

View File

@@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
"version": "1.14.2",
"version": "1.13.0",
"homepage": "http://www.nodebb.org",
"repository": {
"type": "git",
@@ -11,9 +11,9 @@
"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": {
@@ -29,125 +29,123 @@
]
},
"dependencies": {
"ace-builds": "^1.4.9",
"archiver": "^4.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",
"benchpressjs": "^2.0.0",
"body-parser": "^1.18.2",
"bootstrap": "^3.4.0",
"bootswatch": "git://github.com/thomaspark/bootswatch.git#c41a8f066feb8950c6f9c6bcf5a3c37d1085404e",
"chart.js": "^2.9.3",
"chart.js": "^2.7.1",
"cli-graph": "^3.2.2",
"clipboard": "^2.0.6",
"colors": "^1.4.0",
"commander": "^5.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": "4.0.4",
"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": "^3.22.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",
"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.5.9",
"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.50",
"nodebb-plugin-dbsearch": "4.1.1",
"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.1",
"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.1.65",
"nodebb-theme-slick": "1.2.29",
"nodebb-theme-vanilla": "11.1.33",
"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": "9.0.1",
"@commitlint/cli": "9.1.1",
"@commitlint/config-angular": "9.1.1",
"coveralls": "3.1.0",
"eslint": "7.3.1",
"eslint-config-airbnb-base": "14.1.0",
"eslint-plugin-import": "2.21.1",
"grunt": "1.1.0",
"@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.2.2",
"lint-staged": "10.2.11",
"mocha": "8.0.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.0.1",
"smtp-server": "3.7.0"
"nyc": "14.1.1",
"smtp-server": "3.5.0"
},
"bugs": {
"url": "https://github.com/NodeBB/NodeBB/issues"

View File

@@ -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);

View File

@@ -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([

View File

@@ -21,7 +21,6 @@
"es6": false
},
"rules": {
"block-scoped-var": "off",
"no-dupe-class-members": "off",
"no-var": "off",
"object-shorthand": "off",

View File

@@ -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;

View File

@@ -2,7 +2,6 @@
"events": "أحداث",
"no-events": "لا توجد أحداث",
"control-panel": "لوحة تحكم الأحداث",
"delete-events": "Delete Events",
"filters": "Filters",
"filters-apply": "Apply Filters",
"filter-type": "Event Type",

View File

@@ -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 &amp; 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"
}

View File

@@ -1,6 +1,5 @@
{
"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",
"pid": "pid",

View File

@@ -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",

View File

@@ -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: &quot;<strong>%1</strong>&quot;",
"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",

View File

@@ -1,7 +1,6 @@
{
"global": "Global",
"global.no-users": "No user-specific global privileges.",
"admin": "Admin",
"group-privileges": "Group Privileges",
"user-privileges": "User Privileges",
"chat": "Chat",
@@ -32,11 +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"
"moderate": "Moderate"
}

View File

@@ -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!"
}

View File

@@ -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",

View File

@@ -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": "السمعة",
"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",

View File

@@ -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)"
}

View File

@@ -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. &#123;pageTitle&#125; | &#123;browserTitle&#125;",
"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"
}

View File

@@ -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",

View File

@@ -1,6 +0,0 @@
{
"language-settings": "اعدادات اللغة",
"description": "تُحدد اللغة الافتراضية إعدادات اللغة لجميع المستخدمين الذين يزورون المنتدى. <br />يمكن للأعضاء تجاوز اللغة الافتراضية من خلال صفحة إعدادات الحساب الخاصة بهم.",
"default-language": "اللغة الافتراضية",
"auto-detect": "الكشف عن إعدادات اللغة للزوار بشكل آلي"
}

View File

@@ -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",

View File

@@ -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"
}

View File

@@ -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)"
}

View File

@@ -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": "عدم السماح بتغيير كلمة المرور",

View File

@@ -1,57 +1,54 @@
{
"state": "الحالة",
"reporter": "المُبلغ",
"reported-at": "وقت التبليغ",
"description": "الوصف",
"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",
"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.",
"history": "Account &amp; 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",

View File

@@ -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": "مصوتين بالسالب",

View File

@@ -12,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",

View File

@@ -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",

View File

@@ -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": "لا يوجد كلمات دلالية بعد."
}

View File

@@ -36,8 +36,7 @@
"ban-ip": "Ban IP",
"view-history": "Edit History",
"bookmark_instructions": "اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
"flag_post": "Flag this post",
"flag_user": "Flag this user",
"flag_title": "إشعار بمشاركة مخلة.",
"merged_message": "This topic has been merged into <a href=\"/topic/%1\">%2</a>",
"deleted_message": "هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
"following_topic.message": "ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
@@ -100,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",
@@ -139,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"
}

View File

@@ -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)"
}

View File

@@ -2,7 +2,6 @@
"events": "Събития",
"no-events": "Няма събития",
"control-panel": "Контролен панел за събитията",
"delete-events": "Изтриване на събитията",
"filters": "Филтри",
"filters-apply": "Прилагане на филтрите",
"filter-type": "Вид събитие",

View File

@@ -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": "Няма разглеждащи потребители"
}

View File

@@ -1,6 +1,5 @@
{
"you-are-on": "Вие сте на <strong>%1:%2</strong>",
"ip": "IP <strong>%1</strong>",
"you-are-on": "Информация — Вие сте на <strong>%1:%2</strong>",
"nodes-responded": "%1 възела отговориха в рамките на %2мсек!",
"host": "сървър",
"pid": "ид. на процеса",

View File

@@ -11,7 +11,6 @@
"num-recent-replies": "Брой на скорошните отговори",
"ext-link": "Външна връзка",
"is-section": "Използване на тази категория като раздел",
"tag-whitelist": "Списък от разрешени етикети",
"upload-image": "Качване на изображение",
"delete-image": "Премахване",
"category-image": "Изображение на категорията",

View File

@@ -1,7 +1,6 @@
{
"global": "Глобални",
"global.no-users": "Няма глобални правомощия за отделни потребители.",
"admin": "Администратор",
"group-privileges": "Правомощия за групите",
"user-privileges": "Правомощия за потребителите",
"chat": "Разговор",
@@ -32,11 +31,5 @@
"downvote-posts": "Отрицателно гласуване за публикации",
"delete-topics": "Изтриване на теми",
"purge": "Изчистване",
"moderate": "Модериране",
"admin-dashboard": "Табло",
"admin-categories": "Категории",
"admin-privileges": "Правомощия",
"admin-users": "Потребители",
"admin-settings": "Настройки"
"moderate": "Модериране"
}

View File

@@ -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": "Етикетът е променен!"
}

View File

@@ -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": "Отказ",

View File

@@ -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/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": "Сокети",

View File

@@ -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 по-чувствителен към скоковете в натовареността, но може и да направи проверката твърде чувствителна. (Нужно е рестартиране.)"
}

View File

@@ -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": "Домейни, за които да не се показва предупредителната страница"
}

View File

@@ -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": "Максимална дължина на заглавието на група",

View File

@@ -1,8 +0,0 @@
{
"home-page": "Начална страница",
"description": "Изберете коя страница да бъде показана, когато потребителите отидат на главния адрес на форума.",
"home-page-route": "Път на началната страница",
"custom-route": "Персонализиран път",
"allow-user-home-pages": "Разрешаване на потребителските начални страници",
"home-page-title": "Заглавие на началната страница (по подразбиране: „Начало“)"
}

View File

@@ -1,6 +0,0 @@
{
"language-settings": "Езикови настройки",
"description": "Езикът по подразбиране определя езиковите настройки за всички потребители, които посещават Вашия форум. <br />Отделните потребители могат да сменят езика си от страницата с настройки на профила си.",
"default-language": "Език по подразбиране",
"auto-detect": "Автоматично разпознаване на езика за гостите"
}

View File

@@ -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": "добавка"
}

View File

@@ -42,7 +42,6 @@
"unread.cutoff": "Възраст на публикациите, след която те не се показват в непрочетените (в брой дни)",
"unread.min-track-last": "Минимален брой публикации в темата, след което да започва следене на последно прочетената",
"recent": "Настройки за скорошните",
"recent.max-topics": "Максимален брой теми в скорошните",
"recent.categoryFilter.disable": "Изключване на филтрирането на темите в пренебрегваните категории на страницата /recent",
"signature": "Настройки за подписите",
"signature.disable": "Забраняване на подписите",

View File

@@ -1,5 +0,0 @@
{
"post-sharing": "Споделяне на публикации",
"info-plugins-additional": "Добавките могат да добавят допълнителни мрежи за споделяне на публикации.",
"save-success": "Мрежите за споделяне на публикации са запазени успешно!"
}

View File

@@ -1,9 +0,0 @@
{
"notifications": "Известия",
"chat-messages": "Съобщения в разговори",
"play-sound": "Пускане",
"incoming-message": "Входящо съобщение",
"outgoing-message": "Изходящо съобщение",
"upload-new-sound": "Качване на нов звук",
"saved": "Настройките са запазени"
}

View File

@@ -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": "Максимален брой свързани теми, които да бъдат показвани (ако това се поддържа от темата)"
}

View File

@@ -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": "Забраняване на промяната на паролата",

View File

@@ -27,15 +27,11 @@
"filter-cid-all": "Всички категории",
"apply-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": "Редактиране на профила",
@@ -44,7 +40,8 @@
"add-note": "Добавяне на бележка",
"no-notes": "Няма споделени бележки.",
"history": "Акаунт и история на докладванията",
"history": "История на доклада",
"back": "Обратно към списъка с доклади",
"no-history": "Няма история на доклада.",
"state-all": "Всички състояния",

View File

@@ -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": "Гласували отрицателно",

View File

@@ -12,7 +12,6 @@
"chat.recent-chats": "Скорошни разговори",
"chat.contacts": "Контакти",
"chat.message-history": "История на съобщенията",
"chat.message-deleted": "Съобщението е изтрито",
"chat.options": "Настройки на разговора",
"chat.pop-out": "Отделяне на разговора в прозорец",
"chat.minimize": "Намаляване",

View File

@@ -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": "Когато получите покана за група",

View File

@@ -3,6 +3,5 @@
"tags": "Етикети",
"enter_tags_here": "Тук въведете етикети, всеки между %1 и %2 знака.",
"enter_tags_here_short": "Въведете етикети...",
"no_tags": "Все още няма етикети.",
"select_tags": "Изберете етикети"
"no_tags": "Все още няма етикети."
}

View File

@@ -36,8 +36,7 @@
"ban-ip": "Блокиране на IP адреса",
"view-history": "История на редакциите",
"bookmark_instructions": "Щракнете тук, за да се върнете към последно прочетената публикация в тази тема.",
"flag_post": "Докладване на тази публикация",
"flag_user": "Докладване на този потребител",
"flag_title": "Докладване на тази публикация до модератор",
"merged_message": "Тази тема беше слята в <a href=\"/topic/%1\">%2</a>",
"deleted_message": "Темата е изтрита. Само потребители с права за управление на темите могат да я видят.",
"following_topic.message": "Вече ще получавате известия когато някой публикува коментар в тази тема.",
@@ -100,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",
@@ -135,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 по-рано"
}

View File

@@ -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)"
}

View File

@@ -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",

View File

@@ -1,6 +1,5 @@
{
"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",
"pid": "pid",

View File

@@ -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",

View File

@@ -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: &quot;<strong>%1</strong>&quot;",
"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",

View File

@@ -1,7 +1,6 @@
{
"global": "Global",
"global.no-users": "No user-specific global privileges.",
"admin": "Admin",
"group-privileges": "Group Privileges",
"user-privileges": "User Privileges",
"chat": "Chat",
@@ -32,11 +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"
"moderate": "Moderate"
}

View File

@@ -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!"
}

View File

@@ -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",

View File

@@ -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",
"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",

View File

@@ -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)"
}

View File

@@ -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"
}

View File

@@ -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",

View File

@@ -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\")"
}

View File

@@ -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"
}

View File

@@ -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",

View File

@@ -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!"
}

View File

@@ -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)"
}

View File

@@ -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",

View File

@@ -27,15 +27,11 @@
"filter-cid-all": "All categories",
"apply-filters": "Apply 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",
@@ -44,7 +40,8 @@
"add-note": "Add Note",
"no-notes": "No shared notes.",
"history": "Account &amp; Flag History",
"history": "Flag History",
"back": "Back to Flags List",
"no-history": "No flag history.",
"state-all": "All states",

View File

@@ -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",

View File

@@ -12,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",

View File

@@ -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> has posted a new topic: <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": "<strong>Flag %1</strong> has been assigned to you",
"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": "When someone upvotes your post",
"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",

View File

@@ -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": "এখন পর্যন্ত কোন ট্যাগ নেই"
}

View File

@@ -36,8 +36,7 @@
"ban-ip": "Ban IP",
"view-history": "Edit History",
"bookmark_instructions": "Click here to return to the last read post in this thread.",
"flag_post": "Flag this post",
"flag_user": "Flag this user",
"flag_title": "মডারেশনের জন্য এই পোস্টটি ফ্ল্যাগ করুন",
"merged_message": "This topic has been merged into <a href=\"/topic/%1\">%2</a>",
"deleted_message": "এই টপিকটি মুছে ফেলা হয়েছে। শুধুমাত্র টপিক ব্যবস্থাপনার ক্ষমতাপ্রাপ্ত সদস্যগণ এটি দেখতে পারবেন।",
"following_topic.message": "এখন থেকে এই টপিকে অন্যকেউ পোস্ট করলে আপনি নোটিফিকেশন পাবেন।",
@@ -100,15 +99,11 @@
"fork_pid_count": "%1 post(s) selected",
"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": "Name",
"composer.discard": "বাতিল",
"composer.submit": "সাবমিট",
"composer.replying_to": "%1 এর উত্তরে:",
@@ -139,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"
}

View File

@@ -8,20 +8,13 @@
"email": "ইমেইল",
"confirm_email": "ইমেইল নিশ্চিত করুন",
"account_info": "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": "Are you sure you want to delete this account? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
"account-deleted": "একাউন্ট মুছে ফেলা হয়েছে",
"account-content-deleted": "Account content deleted",
"fullname": "পুর্ণ নাম",
"website": "ওয়েবসাইট",
"location": "স্থান",
@@ -151,7 +144,6 @@
"info.ban-history": "Recent Ban History",
"info.no-ban-history": "This user has never been banned",
"info.banned-until": "Banned until %1",
"info.banned-expiry": "Expiry",
"info.banned-permanently": "Banned permanently",
"info.banned-reason-label": "Reason",
"info.banned-no-reason": "No reason given.",
@@ -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)"
}

View File

@@ -2,7 +2,6 @@
"events": "Události",
"no-events": "Žádné nové události",
"control-panel": "Ovládací panel událostí",
"delete-events": "Delete Events",
"filters": "Filtry",
"filters-apply": "Použít filtry",
"filter-type": "Typ události",

View File

@@ -1,79 +0,0 @@
{
"forum-traffic": "Provoz fóra",
"page-views": "Zobrazení stránky",
"unique-visitors": "Jedineční návštěvníci",
"new-users": "Nový uživatelé",
"posts": "Příspěvky",
"topics": "Témata",
"page-views-seven": "Posledních 7 dnů",
"page-views-thirty": "Posledních 30 dní",
"page-views-last-day": "Posledních 24 hodin",
"page-views-custom": "Dle rozsahu data",
"page-views-custom-start": "Začátek rozsahu",
"page-views-custom-end": "Konec rozsahu",
"page-views-custom-help": "Zadejte rozsah data zobrazení stránek, které chcete vidět. Není-li datum nastaveno, výchozí formát je <code>YYYY-MM-DD</code>",
"page-views-custom-error": "Zadejte správný rozsah ve formátu <code>YYYY-MM-DD</code>",
"stats.yesterday": "Včera",
"stats.today": "Dnes",
"stats.last-week": "Poslední týden",
"stats.this-week": "Tento víkend",
"stats.last-month": "Poslední měsíc",
"stats.this-month": "Tento měsíc",
"stats.all": "Všechny časy",
"updates": "Aktualizace",
"running-version": "Fungujete na <strong>NodeBB v<span id=\"version\">%1</span></strong>.",
"keep-updated": "Vždy udržujte NodeBB aktuální kvůli bezpečnostním záplatám a opravám.",
"up-to-date": "<p>Máte <strong>aktuální verzi</strong><i class=\"fa fa-check\"></i></p>",
"upgrade-available": "<p>Nová verze (v%1) byla zveřejněna. Zvažte <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">aktualizaci vašeho NodeBB</a>.</p>",
"prerelease-upgrade-available": "<p>Toto je zastaralá testovací verze NodeBB. Nová verze (v%1) byla zveřejněna. Zvažte <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">aktualizaci vaší verze NodeBB</a>.</p>",
"prerelease-warning": "<p>Toto je <strong>zkušební</strong> verze NodeBB. Mohou se vyskytnout různé chyby.<i class=\"fa fa-exclamation-triangle\"></i></p>",
"running-in-development": "<span>Fórum běží ve vývojářském režimu a může být potencionálně zranitelné . Kontaktujte správce systému.</span>",
"latest-lookup-failed": "<p>Náhled na poslední dostupnou verzi NodeBB</p>",
"notices": "Oznámení",
"restart-not-required": "Restart není potřeba",
"restart-required": "Je potřeba restartovat",
"search-plugin-installed": "Rozšíření pro hledání je nainstalováno",
"search-plugin-not-installed": "Rozšíření pro hledání není nainstalováno",
"search-plugin-tooltip": "Pro aktivování funkce vyhledávání, nainstalujte rozšíření pro hledání ze stránky rozšíření.",
"control-panel": "Ovládání systému",
"rebuild-and-restart": "Znovu sestavit a restartovat",
"restart": "Restartovat",
"restart-warning": "Znovu sestavení nebo restartování NodeBB odpojí všechna existující připojení na několik vteřin.",
"restart-disabled": "Znovu sestavení a restartování vašeho NodeBB bylo zakázáno, protože se nezdá, že byste byl/a připojena přes příslušného „daemona”.",
"maintenance-mode": "Režim údržby",
"maintenance-mode-title": "Pro nastavení režimu údržby NodeBB, klikněte zde",
"realtime-chart-updates": "Aktualizace grafů v reálném čase",
"active-users": "Aktivní uživatelé",
"active-users.users": "Uživatelé",
"active-users.guests": "Hosté",
"active-users.total": "Celkově",
"active-users.connections": "Připojení",
"anonymous-registered-users": "Anonymní × registrovaní uživatelé",
"anonymous": "Anonymní",
"registered": "Registrovaní",
"user-presence": "Výskyt uživatele",
"on-categories": "V seznamu kategorii",
"reading-posts": "Čtení příspěvku",
"browsing-topics": "Prohlížení témat",
"recent": "Poslední",
"unread": "Nepřečtené",
"high-presence-topics": "Témata s vysokou účastí",
"graphs.page-views": "Zobrazení stránky",
"graphs.page-views-registered": "Zobrazených stránek/registrovaní",
"graphs.page-views-guest": "Zobrazených stránek/hosté",
"graphs.page-views-bot": "Zobrazených stránek/bot",
"graphs.unique-visitors": "Jedineční návštěvníci",
"graphs.registered-users": "Registrovaní uživatelé",
"graphs.anonymous-users": "Anonymní uživatelé",
"last-restarted-by": "Poslední restart od",
"no-users-browsing": "Nikdo si nic neprohlíží"
}

View File

@@ -1,6 +1,5 @@
{
"you-are-on": "You are on <strong>%1:%2</strong>",
"ip": "IP <strong>%1</strong>",
"you-are-on": "Informace jste na <strong>%1:%2</strong>",
"nodes-responded": "%1 vazeb odpovědělo během %2ms.",
"host": "host",
"pid": "pid",

View File

@@ -11,7 +11,6 @@
"num-recent-replies": "# posledních odpovědí",
"ext-link": "Externí odkaz",
"is-section": "Zacházet s kategorii jako se sekcí",
"tag-whitelist": "Tag Whitelist",
"upload-image": "Nahrát obrázek",
"delete-image": "Vyjmout",
"category-image": "Obrázek kategorie",

View File

@@ -9,7 +9,7 @@
"default": "Výchozí systémové",
"default-help": "Výchozí systémové znamená, že uživatel nemůže přenastavit celkové nastavení pravidel na fóru pro odesílání přehledů, které je momentálně<strong>%1</strong>",
"resend": "Znovu odeslat přehled",
"resend-all-confirm": "Are you sure you wish to manually execute this digest run?",
"resend-all-confirm": "Jste si jist/a, že chcete ručně spustit odeslání přehledu",
"resent-single": "Manuální znovu poslání přehledu bylo dokončeno",
"resent-day": "Znovu odeslat denní přehled",
"resent-week": "Znovu odeslat týdenní přehled",

View File

@@ -1,7 +1,6 @@
{
"global": "Všeobecné",
"global.no-users": "Žádné všeobecné uživatelské nastavení.",
"admin": "Admin",
"group-privileges": "Oprávnění skupiny",
"user-privileges": "Oprávnění uživatele",
"chat": "Konverzace",
@@ -32,11 +31,5 @@
"downvote-posts": "Nesouhlasné příspěvky",
"delete-topics": "Odstranit témata",
"purge": "Vyčistit",
"moderate": "Moderace",
"admin-dashboard": "Dashboard",
"admin-categories": "Categories",
"admin-privileges": "Privileges",
"admin-users": "Users",
"admin-settings": "Settings"
"moderate": "Moderace"
}

View File

@@ -3,16 +3,17 @@
"bg-color": "Barva pozadí",
"text-color": "Barva textu",
"create-modify": "Vytvořit a upravit značky",
"description": "Select tags by clicking or dragging, use <code>CTRL</code> to select multiple tags.",
"description": "Vyberte značky pomocí kliknutí a/nebo přetažením, pro vícenásobný výběr, použijte klávesu Shift.",
"create": "Vytvořit značku",
"modify": "Upravit značky",
"rename": "Přejmenovat značky",
"delete": "Odstranit vybrané značky",
"search": "Hledat značky...",
"settings": "Tags Settings",
"settings": "Pro přejití na stránku s nastavením značek, klikněte <a href=\"%1\">zde</a>.",
"name": "Název značky",
"alerts.editing": "Editing tag(s)",
"alerts.editing-multiple": "Upravení víceznaček",
"alerts.editing-x": "Upravení značky \"%1\"",
"alerts.confirm-delete": "Chcete odstranit vybranou značku?",
"alerts.update-success": "Značka aktualizována."
}

View File

@@ -12,9 +12,8 @@
"unban": "Zrušit zákaz uživatele",
"reset-lockout": "Obnovit uzamčení",
"reset-flags": "Obnovit označení",
"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": "Odstranit uživatele",
"purge": "Odstranit uživatele a obsah",
"download-csv": "Stáhnout jako CSV",
"manage-groups": "Manage Groups",
"add-group": "Add Group",
@@ -94,11 +93,9 @@
"alerts.validate-email-success": "E-maily byly ověřeny",
"alerts.validate-force-password-reset-success": "Uživatelské heslo bylo resetováno a přihlašovací relace byla ukončena.",
"alerts.password-reset-confirm": "Chcete poslat těmto uživatelům e-mail pro resetování hesla?",
"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>Upozornění</b><br/>Opravdu chcete odstranit uživatele?<br/>Tento úkon se nedá vrátit. Budou odstraněni jen uživatelé jako takový, jejich příspěvky a témata zůstanou.",
"alerts.delete-success": "Uživatel byl odstraněn.",
"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>Upozornění</b><br/>Opravdu chcete odstranit uživatele a jeho obsah?<br/>Tento úkon je nevratný. Všechna uživatelská data a obsah bude smazán.",
"alerts.create": "Vytvořit uživatele",
"alerts.button-create": "Vytvořit",
"alerts.button-cancel": "Zrušit",

View File

@@ -1,6 +1,11 @@
{
"dashboard": "Dashboard",
"section-general": "Všeobecné",
"general/dashboard": "Nástěnka",
"general/homepage": "Domovská stránka",
"general/navigation": "Navigace",
"general/languages": "Jazyky",
"general/sounds": "Zvuky",
"general/social": "Sociální",
"section-manage": "Spravovat",
"manage/categories": "Kategorie",
@@ -17,22 +22,17 @@
"section-settings": "Nastavení",
"settings/general": "Všeobecné",
"settings/homepage": "Home Page",
"settings/navigation": "Navigation",
"settings/reputation": "Reputace",
"settings/email": "E-mail",
"settings/user": "Users",
"settings/group": "Groups",
"settings/user": "Uživatel",
"settings/group": "Skupina",
"settings/guest": "Hosté",
"settings/uploads": "Nahrané",
"settings/languages": "Languages",
"settings/post": "Posts",
"settings/chat": "Chats",
"settings/post": "Příspěvěk",
"settings/chat": "Konverzace",
"settings/pagination": "Stránkování",
"settings/tags": "Značky",
"settings/notifications": "Oznámení",
"settings/sounds": "Sounds",
"settings/social": "Social",
"settings/cookies": "Cookies",
"settings/web-crawler": "Webový prohledávač",
"settings/sockets": "Sockety",

View File

@@ -15,20 +15,14 @@
"headers.acah": "Access-Control-Allow-Headers",
"hsts": "Přísné zabezpečení přenosu",
"hsts.enabled": "Povolit HSTS (doporučeno)",
"hsts.maxAge": "HSTS Max Age",
"hsts.subdomains": "Zahrnout poddomény v hlavičce HSTS",
"hsts.preload": "Povolit před-načtení hlavičky HSTS",
"hsts.help": "Je-li povoleno, bude nastavena pro tyto stránky hlavička HSTS . Můžete si v hlavičce zvolit zahrnutí i poddomén a přednastavených příznaků. Nejste-li si jist/a, ponechte nezaškrtnuté<a href=\"%1\">Více informací <i class=\"fa fa-external-link\"></i></a>",
"traffic-management": "Správa provozu",
"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 obsahuje modul, který automaticky zamítá požadavky při vysokém vytížení. Toto nastavení můžete zde upravit, ačkoliv výchozí hodnoty jsou zaručením úspěchu.",
"traffic.enable": "Povolit správu provozu",
"traffic.event-lag": "Hranice prodlevy smyčky události (v milisekundách)",
"traffic.event-lag-help": "Snížení této hodnoty sníží čas pro načtení stránky, ale taky zobrazí více uživatelům zprávu o „přetížení stránek”. (je vyžadován restart)",
"traffic.lag-check-interval": "Kontrola intervalů (v milisekundách)",
"traffic.lag-check-interval-help": "Snížení této hodnoty způsobí, že NodeBB bude citlivější na zatížení načítání stránek a na kontrolu tohoto zatížení. (je vyžadován restart)",
"sockets.settings": "WebSocket Settings",
"sockets.max-attempts": "Max Reconnection Attempts",
"sockets.default-placeholder": "Default: %1",
"sockets.delay": "Reconnection Delay"
"traffic.lag-check-interval-help": "Snížení této hodnoty způsobí, že NodeBB bude citlivější na zatížení načítání stránek a na kontrolu tohoto zatížení. (je vyžadován restart)"
}

View File

@@ -1,8 +1,6 @@
{
"site-settings": "Nastavení stránky",
"title": "Název stránky",
"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": "URL názvu stránky",
"title.url-help": "Bude-li kliknuto na název, uživatel bude přesměrován na tuto adresu. Zůstane-li prázdné, uživatel bude odeslán na index fóra",
@@ -33,9 +31,5 @@
"outgoing-links": "Odchozí odkazy",
"outgoing-links.warning-page": "Použít stránku s upozorněním při odchozích odkazech",
"search-default-sort-by": "Výchozí třídění při hledání",
"outgoing-links.whitelist": "Domény u kterých bude přeskočena upozorňovací stránka",
"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": "Domény u kterých bude přeskočena upozorňovací stránka"
}

Some files were not shown because too many files have changed in this diff Show More