mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-20 07:20:27 +01:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5de430deb5 | ||
|
|
e1c9bd7229 | ||
|
|
eabbc81b40 | ||
|
|
e29aa5abf8 | ||
|
|
cde7168f9c |
@@ -1,8 +1,4 @@
|
|||||||
root = true
|
root = true
|
||||||
|
|
||||||
[{*.js, *.css, *.tpl, *.json}]
|
[*.js, *.css, *.tpl]
|
||||||
indent_style = tab
|
indent_style = tab
|
||||||
end_of_line = lf
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
insert_final_newline = false
|
|
||||||
|
|||||||
15
.gitignore
vendored
15
.gitignore
vendored
@@ -3,7 +3,7 @@ node_modules/
|
|||||||
sftp-config.json
|
sftp-config.json
|
||||||
config.json
|
config.json
|
||||||
public/src/nodebb.min.js
|
public/src/nodebb.min.js
|
||||||
!src/views/config.json
|
public/config.json
|
||||||
public/css/*.css
|
public/css/*.css
|
||||||
*.sublime-project
|
*.sublime-project
|
||||||
*.sublime-workspace
|
*.sublime-workspace
|
||||||
@@ -17,18 +17,11 @@ provision.sh
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
feeds/recent.rss
|
feeds/recent.rss
|
||||||
|
|
||||||
logs/
|
# winston?
|
||||||
|
error.log
|
||||||
|
events.log
|
||||||
|
|
||||||
pidfile
|
pidfile
|
||||||
|
|
||||||
# templates
|
# templates
|
||||||
/public/templates
|
/public/templates
|
||||||
/public/sounds
|
|
||||||
|
|
||||||
/public/uploads
|
|
||||||
|
|
||||||
# compiled files
|
|
||||||
/public/stylesheet.css
|
|
||||||
/public/admin.css
|
|
||||||
/public/nodebb.min.js
|
|
||||||
/public/nodebb.min.js.map
|
|
||||||
18
.travis.yml
18
.travis.yml
@@ -1,18 +0,0 @@
|
|||||||
services:
|
|
||||||
- redis-server
|
|
||||||
before_install:
|
|
||||||
- "sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10"
|
|
||||||
- "echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list"
|
|
||||||
- "sudo apt-get update"
|
|
||||||
- "sudo apt-get install mongodb-org-server"
|
|
||||||
- npm i --production
|
|
||||||
- node app --setup="{\"url\":\"http://127.0.0.1:4567/\",\"secret\":\"abcdef\",\"database\":\"mongo\",\"mongo:host\":\"127.0.0.1\",\"mongo:port\":27017,\"mongo:username\":\"\",\"mongo:password\":\"\",\"mongo:database\":0,\"redis:host\":\"127.0.0.1\",\"redis:port\":6379,\"redis:password\":\"\",\"redis:database\":0,\"admin:username\":\"admin\",\"admin:email\":\"test@example.org\",\"admin:password\":\"abcdef\",\"admin:password:confirm\":\"abcdef\"}" --ci="{\"host\":\"127.0.0.1\",\"port\":27017,\"database\":0}"
|
|
||||||
before_script:
|
|
||||||
- "until nc -z localhost 27017; do echo Waiting for MongoDB; sleep 1; done"
|
|
||||||
language: node_js
|
|
||||||
node_js:
|
|
||||||
- "0.11"
|
|
||||||
- "0.10"
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
415
.tx/config
415
.tx/config
@@ -6,37 +6,26 @@ file_filter = public/language/<lang>/category.json
|
|||||||
source_file = public/language/en_GB/category.json
|
source_file = public/language/en_GB/category.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/category.json
|
trans.ar = public/language/ar/category.json
|
||||||
trans.bn = public/language/bn/category.json
|
|
||||||
trans.cs = public/language/cs/category.json
|
trans.cs = public/language/cs/category.json
|
||||||
trans.de = public/language/de/category.json
|
trans.de = public/language/de/category.json
|
||||||
trans.el = public/language/el/category.json
|
|
||||||
trans.en_US = public/language/en_US/category.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/category.json
|
trans.en@pirate = public/language/en@pirate/category.json
|
||||||
trans.es = public/language/es/category.json
|
trans.es = public/language/es/category.json
|
||||||
trans.et = public/language/et/category.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/category.json
|
trans.fa_IR = public/language/fa_IR/category.json
|
||||||
trans.fi = public/language/fi/category.json
|
trans.fi = public/language/fi/category.json
|
||||||
trans.fr = public/language/fr/category.json
|
trans.fr = public/language/fr/category.json
|
||||||
trans.he = public/language/he/category.json
|
trans.he = public/language/he/category.json
|
||||||
trans.hu = public/language/hu/category.json
|
trans.hu = public/language/hu/category.json
|
||||||
trans.id = public/language/id/category.json
|
|
||||||
trans.it = public/language/it/category.json
|
trans.it = public/language/it/category.json
|
||||||
trans.ja = public/language/ja/category.json
|
|
||||||
trans.ko = public/language/ko/category.json
|
|
||||||
trans.lt = public/language/lt/category.json
|
|
||||||
trans.ms = public/language/ms/category.json
|
|
||||||
trans.nb = public/language/nb/category.json
|
trans.nb = public/language/nb/category.json
|
||||||
trans.nl = public/language/nl/category.json
|
trans.nl = public/language/nl/category.json
|
||||||
trans.pl = public/language/pl/category.json
|
trans.pl = public/language/pl/category.json
|
||||||
trans.pt_BR = public/language/pt_BR/category.json
|
trans.pt_BR = public/language/pt_BR/category.json
|
||||||
trans.ru = public/language/ru/category.json
|
trans.ru = public/language/ru/category.json
|
||||||
trans.ro = public/language/ro/category.json
|
|
||||||
trans.sc = public/language/sc/category.json
|
trans.sc = public/language/sc/category.json
|
||||||
trans.sk = public/language/sk/category.json
|
trans.sk = public/language/sk/category.json
|
||||||
trans.sv = public/language/sv/category.json
|
trans.sv = public/language/sv/category.json
|
||||||
trans.th = public/language/th/category.json
|
trans.th = public/language/th/category.json
|
||||||
trans.tr = public/language/tr/category.json
|
trans.tr = public/language/tr/category.json
|
||||||
trans.vi = public/language/vi/category.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/category.json
|
trans.zh_CN = public/language/zh_CN/category.json
|
||||||
trans.zh_TW = public/language/zh_TW/category.json
|
trans.zh_TW = public/language/zh_TW/category.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
@@ -46,37 +35,26 @@ file_filter = public/language/<lang>/login.json
|
|||||||
source_file = public/language/en_GB/login.json
|
source_file = public/language/en_GB/login.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/login.json
|
trans.ar = public/language/ar/login.json
|
||||||
trans.bn = public/language/bn/login.json
|
|
||||||
trans.cs = public/language/cs/login.json
|
trans.cs = public/language/cs/login.json
|
||||||
trans.de = public/language/de/login.json
|
trans.de = public/language/de/login.json
|
||||||
trans.el = public/language/el/login.json
|
|
||||||
trans.en_US = public/language/en_US/login.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/login.json
|
trans.en@pirate = public/language/en@pirate/login.json
|
||||||
trans.es = public/language/es/login.json
|
trans.es = public/language/es/login.json
|
||||||
trans.et = public/language/et/login.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/login.json
|
trans.fa_IR = public/language/fa_IR/login.json
|
||||||
trans.fi = public/language/fi/login.json
|
trans.fi = public/language/fi/login.json
|
||||||
trans.fr = public/language/fr/login.json
|
trans.fr = public/language/fr/login.json
|
||||||
trans.he = public/language/he/login.json
|
trans.he = public/language/he/login.json
|
||||||
trans.hu = public/language/hu/login.json
|
trans.hu = public/language/hu/login.json
|
||||||
trans.id = public/language/id/login.json
|
|
||||||
trans.it = public/language/it/login.json
|
trans.it = public/language/it/login.json
|
||||||
trans.ja = public/language/ja/login.json
|
|
||||||
trans.ko = public/language/ko/login.json
|
|
||||||
trans.lt = public/language/lt/login.json
|
|
||||||
trans.ms = public/language/ms/login.json
|
|
||||||
trans.nb = public/language/nb/login.json
|
trans.nb = public/language/nb/login.json
|
||||||
trans.nl = public/language/nl/login.json
|
trans.nl = public/language/nl/login.json
|
||||||
trans.pl = public/language/pl/login.json
|
trans.pl = public/language/pl/login.json
|
||||||
trans.pt_BR = public/language/pt_BR/login.json
|
trans.pt_BR = public/language/pt_BR/login.json
|
||||||
trans.ru = public/language/ru/login.json
|
trans.ru = public/language/ru/login.json
|
||||||
trans.ro = public/language/ro/login.json
|
|
||||||
trans.sc = public/language/sc/login.json
|
trans.sc = public/language/sc/login.json
|
||||||
trans.sk = public/language/sk/login.json
|
trans.sk = public/language/sk/login.json
|
||||||
trans.sv = public/language/sv/login.json
|
trans.sv = public/language/sv/login.json
|
||||||
trans.th = public/language/th/login.json
|
trans.th = public/language/th/login.json
|
||||||
trans.tr = public/language/tr/login.json
|
trans.tr = public/language/tr/login.json
|
||||||
trans.vi = public/language/vi/login.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/login.json
|
trans.zh_CN = public/language/zh_CN/login.json
|
||||||
trans.zh_TW = public/language/zh_TW/login.json
|
trans.zh_TW = public/language/zh_TW/login.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
@@ -85,37 +63,26 @@ type = KEYVALUEJSON
|
|||||||
source_file = public/language/en_GB/recent.json
|
source_file = public/language/en_GB/recent.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/recent.json
|
trans.ar = public/language/ar/recent.json
|
||||||
trans.bn = public/language/bn/recent.json
|
|
||||||
trans.cs = public/language/cs/recent.json
|
trans.cs = public/language/cs/recent.json
|
||||||
trans.de = public/language/de/recent.json
|
trans.de = public/language/de/recent.json
|
||||||
trans.el = public/language/el/recent.json
|
|
||||||
trans.en_US = public/language/en_US/recent.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/recent.json
|
trans.en@pirate = public/language/en@pirate/recent.json
|
||||||
trans.es = public/language/es/recent.json
|
trans.es = public/language/es/recent.json
|
||||||
trans.et = public/language/et/recent.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/recent.json
|
trans.fa_IR = public/language/fa_IR/recent.json
|
||||||
trans.fi = public/language/fi/recent.json
|
trans.fi = public/language/fi/recent.json
|
||||||
trans.fr = public/language/fr/recent.json
|
trans.fr = public/language/fr/recent.json
|
||||||
trans.he = public/language/he/recent.json
|
trans.he = public/language/he/recent.json
|
||||||
trans.hu = public/language/hu/recent.json
|
trans.hu = public/language/hu/recent.json
|
||||||
trans.id = public/language/id/recent.json
|
|
||||||
trans.it = public/language/it/recent.json
|
trans.it = public/language/it/recent.json
|
||||||
trans.ja = public/language/ja/recent.json
|
|
||||||
trans.ko = public/language/ko/recent.json
|
|
||||||
trans.lt = public/language/lt/recent.json
|
|
||||||
trans.ms = public/language/ms/recent.json
|
|
||||||
trans.nb = public/language/nb/recent.json
|
trans.nb = public/language/nb/recent.json
|
||||||
trans.nl = public/language/nl/recent.json
|
trans.nl = public/language/nl/recent.json
|
||||||
trans.pl = public/language/pl/recent.json
|
trans.pl = public/language/pl/recent.json
|
||||||
trans.pt_BR = public/language/pt_BR/recent.json
|
trans.pt_BR = public/language/pt_BR/recent.json
|
||||||
trans.ru = public/language/ru/recent.json
|
trans.ru = public/language/ru/recent.json
|
||||||
trans.ro = public/language/ro/recent.json
|
|
||||||
trans.sc = public/language/sc/recent.json
|
trans.sc = public/language/sc/recent.json
|
||||||
trans.sk = public/language/sk/recent.json
|
trans.sk = public/language/sk/recent.json
|
||||||
trans.sv = public/language/sv/recent.json
|
trans.sv = public/language/sv/recent.json
|
||||||
trans.th = public/language/th/recent.json
|
trans.th = public/language/th/recent.json
|
||||||
trans.tr = public/language/tr/recent.json
|
trans.tr = public/language/tr/recent.json
|
||||||
trans.vi = public/language/vi/recent.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/recent.json
|
trans.zh_CN = public/language/zh_CN/recent.json
|
||||||
trans.zh_TW = public/language/zh_TW/recent.json
|
trans.zh_TW = public/language/zh_TW/recent.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
@@ -124,76 +91,82 @@ type = KEYVALUEJSON
|
|||||||
source_file = public/language/en_GB/unread.json
|
source_file = public/language/en_GB/unread.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/unread.json
|
trans.ar = public/language/ar/unread.json
|
||||||
trans.bn = public/language/bn/unread.json
|
|
||||||
trans.cs = public/language/cs/unread.json
|
trans.cs = public/language/cs/unread.json
|
||||||
trans.de = public/language/de/unread.json
|
trans.de = public/language/de/unread.json
|
||||||
trans.el = public/language/el/unread.json
|
|
||||||
trans.en_US = public/language/en_US/unread.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/unread.json
|
trans.en@pirate = public/language/en@pirate/unread.json
|
||||||
trans.es = public/language/es/unread.json
|
trans.es = public/language/es/unread.json
|
||||||
trans.et = public/language/et/unread.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/unread.json
|
trans.fa_IR = public/language/fa_IR/unread.json
|
||||||
trans.fi = public/language/fi/unread.json
|
trans.fi = public/language/fi/unread.json
|
||||||
trans.fr = public/language/fr/unread.json
|
trans.fr = public/language/fr/unread.json
|
||||||
trans.he = public/language/he/unread.json
|
trans.he = public/language/he/unread.json
|
||||||
trans.hu = public/language/hu/unread.json
|
trans.hu = public/language/hu/unread.json
|
||||||
trans.id = public/language/id/unread.json
|
|
||||||
trans.it = public/language/it/unread.json
|
trans.it = public/language/it/unread.json
|
||||||
trans.ja = public/language/ja/unread.json
|
|
||||||
trans.ko = public/language/ko/unread.json
|
|
||||||
trans.lt = public/language/lt/unread.json
|
|
||||||
trans.ms = public/language/ms/unread.json
|
|
||||||
trans.nb = public/language/nb/unread.json
|
trans.nb = public/language/nb/unread.json
|
||||||
trans.nl = public/language/nl/unread.json
|
trans.nl = public/language/nl/unread.json
|
||||||
trans.pl = public/language/pl/unread.json
|
trans.pl = public/language/pl/unread.json
|
||||||
trans.pt_BR = public/language/pt_BR/unread.json
|
trans.pt_BR = public/language/pt_BR/unread.json
|
||||||
trans.ru = public/language/ru/unread.json
|
trans.ru = public/language/ru/unread.json
|
||||||
trans.ro = public/language/ro/unread.json
|
|
||||||
trans.sc = public/language/sc/unread.json
|
trans.sc = public/language/sc/unread.json
|
||||||
trans.sk = public/language/sk/unread.json
|
trans.sk = public/language/sk/unread.json
|
||||||
trans.sv = public/language/sv/unread.json
|
trans.sv = public/language/sv/unread.json
|
||||||
trans.th = public/language/th/unread.json
|
trans.th = public/language/th/unread.json
|
||||||
trans.tr = public/language/tr/unread.json
|
trans.tr = public/language/tr/unread.json
|
||||||
trans.vi = public/language/vi/unread.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/unread.json
|
trans.zh_CN = public/language/zh_CN/unread.json
|
||||||
trans.zh_TW = public/language/zh_TW/unread.json
|
trans.zh_TW = public/language/zh_TW/unread.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
|
[nodebb.footer]
|
||||||
|
source_file = public/language/en_GB/footer.json
|
||||||
|
source_lang = en_GB
|
||||||
|
trans.ar = public/language/ar/footer.json
|
||||||
|
trans.cs = public/language/cs/footer.json
|
||||||
|
trans.de = public/language/de/footer.json
|
||||||
|
trans.en@pirate = public/language/en@pirate/footer.json
|
||||||
|
trans.es = public/language/es/footer.json
|
||||||
|
trans.fa_IR = public/language/fa_IR/footer.json
|
||||||
|
trans.fi = public/language/fi/footer.json
|
||||||
|
trans.fr = public/language/fr/footer.json
|
||||||
|
trans.he = public/language/he/footer.json
|
||||||
|
trans.hu = public/language/hu/footer.json
|
||||||
|
trans.it = public/language/it/footer.json
|
||||||
|
trans.nb = public/language/nb/footer.json
|
||||||
|
trans.nl = public/language/nl/footer.json
|
||||||
|
trans.pl = public/language/pl/footer.json
|
||||||
|
trans.pt_BR = public/language/pt_BR/footer.json
|
||||||
|
trans.ru = public/language/ru/footer.json
|
||||||
|
trans.sc = public/language/sc/footer.json
|
||||||
|
trans.sk = public/language/sk/footer.json
|
||||||
|
trans.sv = public/language/sv/footer.json
|
||||||
|
trans.th = public/language/th/footer.json
|
||||||
|
trans.tr = public/language/tr/footer.json
|
||||||
|
trans.zh_CN = public/language/zh_CN/footer.json
|
||||||
|
trans.zh_TW = public/language/zh_TW/footer.json
|
||||||
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.modules]
|
[nodebb.modules]
|
||||||
source_file = public/language/en_GB/modules.json
|
source_file = public/language/en_GB/modules.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/modules.json
|
trans.ar = public/language/ar/modules.json
|
||||||
trans.bn = public/language/bn/modules.json
|
|
||||||
trans.cs = public/language/cs/modules.json
|
trans.cs = public/language/cs/modules.json
|
||||||
trans.de = public/language/de/modules.json
|
trans.de = public/language/de/modules.json
|
||||||
trans.el = public/language/el/modules.json
|
|
||||||
trans.en_US = public/language/en_US/modules.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/modules.json
|
trans.en@pirate = public/language/en@pirate/modules.json
|
||||||
trans.es = public/language/es/modules.json
|
trans.es = public/language/es/modules.json
|
||||||
trans.et = public/language/et/modules.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/modules.json
|
trans.fa_IR = public/language/fa_IR/modules.json
|
||||||
trans.fi = public/language/fi/modules.json
|
trans.fi = public/language/fi/modules.json
|
||||||
trans.fr = public/language/fr/modules.json
|
trans.fr = public/language/fr/modules.json
|
||||||
trans.he = public/language/he/modules.json
|
trans.he = public/language/he/modules.json
|
||||||
trans.hu = public/language/hu/modules.json
|
trans.hu = public/language/hu/modules.json
|
||||||
trans.id = public/language/id/modules.json
|
|
||||||
trans.it = public/language/it/modules.json
|
trans.it = public/language/it/modules.json
|
||||||
trans.ja = public/language/ja/modules.json
|
|
||||||
trans.ko = public/language/ko/modules.json
|
|
||||||
trans.lt = public/language/lt/modules.json
|
|
||||||
trans.ms = public/language/ms/modules.json
|
|
||||||
trans.nb = public/language/nb/modules.json
|
trans.nb = public/language/nb/modules.json
|
||||||
trans.nl = public/language/nl/modules.json
|
trans.nl = public/language/nl/modules.json
|
||||||
trans.pl = public/language/pl/modules.json
|
trans.pl = public/language/pl/modules.json
|
||||||
trans.pt_BR = public/language/pt_BR/modules.json
|
trans.pt_BR = public/language/pt_BR/modules.json
|
||||||
trans.ru = public/language/ru/modules.json
|
trans.ru = public/language/ru/modules.json
|
||||||
trans.ro = public/language/ro/modules.json
|
|
||||||
trans.sc = public/language/sc/modules.json
|
trans.sc = public/language/sc/modules.json
|
||||||
trans.sk = public/language/sk/modules.json
|
trans.sk = public/language/sk/modules.json
|
||||||
trans.sv = public/language/sv/modules.json
|
trans.sv = public/language/sv/modules.json
|
||||||
trans.th = public/language/th/modules.json
|
trans.th = public/language/th/modules.json
|
||||||
trans.tr = public/language/tr/modules.json
|
trans.tr = public/language/tr/modules.json
|
||||||
trans.vi = public/language/vi/modules.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/modules.json
|
trans.zh_CN = public/language/zh_CN/modules.json
|
||||||
trans.zh_TW = public/language/zh_TW/modules.json
|
trans.zh_TW = public/language/zh_TW/modules.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
@@ -202,37 +175,26 @@ type = KEYVALUEJSON
|
|||||||
source_file = public/language/en_GB/register.json
|
source_file = public/language/en_GB/register.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/register.json
|
trans.ar = public/language/ar/register.json
|
||||||
trans.bn = public/language/bn/register.json
|
|
||||||
trans.cs = public/language/cs/register.json
|
trans.cs = public/language/cs/register.json
|
||||||
trans.de = public/language/de/register.json
|
trans.de = public/language/de/register.json
|
||||||
trans.el = public/language/el/register.json
|
|
||||||
trans.en_US = public/language/en_US/register.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/register.json
|
trans.en@pirate = public/language/en@pirate/register.json
|
||||||
trans.es = public/language/es/register.json
|
trans.es = public/language/es/register.json
|
||||||
trans.et = public/language/et/register.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/register.json
|
trans.fa_IR = public/language/fa_IR/register.json
|
||||||
trans.fi = public/language/fi/register.json
|
trans.fi = public/language/fi/register.json
|
||||||
trans.fr = public/language/fr/register.json
|
trans.fr = public/language/fr/register.json
|
||||||
trans.he = public/language/he/register.json
|
trans.he = public/language/he/register.json
|
||||||
trans.hu = public/language/hu/register.json
|
trans.hu = public/language/hu/register.json
|
||||||
trans.id = public/language/id/register.json
|
|
||||||
trans.it = public/language/it/register.json
|
trans.it = public/language/it/register.json
|
||||||
trans.ja = public/language/ja/register.json
|
|
||||||
trans.ko = public/language/ko/register.json
|
|
||||||
trans.lt = public/language/lt/register.json
|
|
||||||
trans.ms = public/language/ms/register.json
|
|
||||||
trans.nb = public/language/nb/register.json
|
trans.nb = public/language/nb/register.json
|
||||||
trans.nl = public/language/nl/register.json
|
trans.nl = public/language/nl/register.json
|
||||||
trans.pl = public/language/pl/register.json
|
trans.pl = public/language/pl/register.json
|
||||||
trans.pt_BR = public/language/pt_BR/register.json
|
trans.pt_BR = public/language/pt_BR/register.json
|
||||||
trans.ru = public/language/ru/register.json
|
trans.ru = public/language/ru/register.json
|
||||||
trans.ro = public/language/ro/register.json
|
|
||||||
trans.sc = public/language/sc/register.json
|
trans.sc = public/language/sc/register.json
|
||||||
trans.sk = public/language/sk/register.json
|
trans.sk = public/language/sk/register.json
|
||||||
trans.sv = public/language/sv/register.json
|
trans.sv = public/language/sv/register.json
|
||||||
trans.th = public/language/th/register.json
|
trans.th = public/language/th/register.json
|
||||||
trans.tr = public/language/tr/register.json
|
trans.tr = public/language/tr/register.json
|
||||||
trans.vi = public/language/vi/register.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/register.json
|
trans.zh_CN = public/language/zh_CN/register.json
|
||||||
trans.zh_TW = public/language/zh_TW/register.json
|
trans.zh_TW = public/language/zh_TW/register.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
@@ -241,37 +203,26 @@ type = KEYVALUEJSON
|
|||||||
source_file = public/language/en_GB/user.json
|
source_file = public/language/en_GB/user.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/user.json
|
trans.ar = public/language/ar/user.json
|
||||||
trans.bn = public/language/bn/user.json
|
|
||||||
trans.cs = public/language/cs/user.json
|
trans.cs = public/language/cs/user.json
|
||||||
trans.de = public/language/de/user.json
|
trans.de = public/language/de/user.json
|
||||||
trans.el = public/language/el/user.json
|
|
||||||
trans.en_US = public/language/en_US/user.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/user.json
|
trans.en@pirate = public/language/en@pirate/user.json
|
||||||
trans.es = public/language/es/user.json
|
trans.es = public/language/es/user.json
|
||||||
trans.et = public/language/et/user.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/user.json
|
trans.fa_IR = public/language/fa_IR/user.json
|
||||||
trans.fi = public/language/fi/user.json
|
trans.fi = public/language/fi/user.json
|
||||||
trans.fr = public/language/fr/user.json
|
trans.fr = public/language/fr/user.json
|
||||||
trans.he = public/language/he/user.json
|
trans.he = public/language/he/user.json
|
||||||
trans.hu = public/language/hu/user.json
|
trans.hu = public/language/hu/user.json
|
||||||
trans.id = public/language/id/user.json
|
|
||||||
trans.it = public/language/it/user.json
|
trans.it = public/language/it/user.json
|
||||||
trans.ja = public/language/ja/user.json
|
|
||||||
trans.ko = public/language/ko/user.json
|
|
||||||
trans.lt = public/language/lt/user.json
|
|
||||||
trans.ms = public/language/ms/user.json
|
|
||||||
trans.nb = public/language/nb/user.json
|
trans.nb = public/language/nb/user.json
|
||||||
trans.nl = public/language/nl/user.json
|
trans.nl = public/language/nl/user.json
|
||||||
trans.pl = public/language/pl/user.json
|
trans.pl = public/language/pl/user.json
|
||||||
trans.pt_BR = public/language/pt_BR/user.json
|
trans.pt_BR = public/language/pt_BR/user.json
|
||||||
trans.ru = public/language/ru/user.json
|
trans.ru = public/language/ru/user.json
|
||||||
trans.ro = public/language/ro/user.json
|
|
||||||
trans.sc = public/language/sc/user.json
|
trans.sc = public/language/sc/user.json
|
||||||
trans.sk = public/language/sk/user.json
|
trans.sk = public/language/sk/user.json
|
||||||
trans.sv = public/language/sv/user.json
|
trans.sv = public/language/sv/user.json
|
||||||
trans.th = public/language/th/user.json
|
trans.th = public/language/th/user.json
|
||||||
trans.tr = public/language/tr/user.json
|
trans.tr = public/language/tr/user.json
|
||||||
trans.vi = public/language/vi/user.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/user.json
|
trans.zh_CN = public/language/zh_CN/user.json
|
||||||
trans.zh_TW = public/language/zh_TW/user.json
|
trans.zh_TW = public/language/zh_TW/user.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
@@ -280,37 +231,26 @@ type = KEYVALUEJSON
|
|||||||
source_file = public/language/en_GB/global.json
|
source_file = public/language/en_GB/global.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/global.json
|
trans.ar = public/language/ar/global.json
|
||||||
trans.bn = public/language/bn/global.json
|
|
||||||
trans.cs = public/language/cs/global.json
|
trans.cs = public/language/cs/global.json
|
||||||
trans.de = public/language/de/global.json
|
trans.de = public/language/de/global.json
|
||||||
trans.el = public/language/el/global.json
|
|
||||||
trans.en_US = public/language/en_US/global.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/global.json
|
trans.en@pirate = public/language/en@pirate/global.json
|
||||||
trans.es = public/language/es/global.json
|
trans.es = public/language/es/global.json
|
||||||
trans.et = public/language/et/global.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/global.json
|
trans.fa_IR = public/language/fa_IR/global.json
|
||||||
trans.fi = public/language/fi/global.json
|
trans.fi = public/language/fi/global.json
|
||||||
trans.fr = public/language/fr/global.json
|
trans.fr = public/language/fr/global.json
|
||||||
trans.he = public/language/he/global.json
|
trans.he = public/language/he/global.json
|
||||||
trans.hu = public/language/hu/global.json
|
trans.hu = public/language/hu/global.json
|
||||||
trans.id = public/language/id/global.json
|
|
||||||
trans.it = public/language/it/global.json
|
trans.it = public/language/it/global.json
|
||||||
trans.ja = public/language/ja/global.json
|
|
||||||
trans.ko = public/language/ko/global.json
|
|
||||||
trans.lt = public/language/lt/global.json
|
|
||||||
trans.ms = public/language/ms/global.json
|
|
||||||
trans.nb = public/language/nb/global.json
|
trans.nb = public/language/nb/global.json
|
||||||
trans.nl = public/language/nl/global.json
|
trans.nl = public/language/nl/global.json
|
||||||
trans.pl = public/language/pl/global.json
|
trans.pl = public/language/pl/global.json
|
||||||
trans.pt_BR = public/language/pt_BR/global.json
|
trans.pt_BR = public/language/pt_BR/global.json
|
||||||
trans.ru = public/language/ru/global.json
|
trans.ru = public/language/ru/global.json
|
||||||
trans.ro = public/language/ro/global.json
|
|
||||||
trans.sc = public/language/sc/global.json
|
trans.sc = public/language/sc/global.json
|
||||||
trans.sk = public/language/sk/global.json
|
trans.sk = public/language/sk/global.json
|
||||||
trans.sv = public/language/sv/global.json
|
trans.sv = public/language/sv/global.json
|
||||||
trans.th = public/language/th/global.json
|
trans.th = public/language/th/global.json
|
||||||
trans.tr = public/language/tr/global.json
|
trans.tr = public/language/tr/global.json
|
||||||
trans.vi = public/language/vi/global.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/global.json
|
trans.zh_CN = public/language/zh_CN/global.json
|
||||||
trans.zh_TW = public/language/zh_TW/global.json
|
trans.zh_TW = public/language/zh_TW/global.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
@@ -319,37 +259,26 @@ type = KEYVALUEJSON
|
|||||||
source_file = public/language/en_GB/notifications.json
|
source_file = public/language/en_GB/notifications.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/notifications.json
|
trans.ar = public/language/ar/notifications.json
|
||||||
trans.bn = public/language/bn/notifications.json
|
|
||||||
trans.cs = public/language/cs/notifications.json
|
trans.cs = public/language/cs/notifications.json
|
||||||
trans.de = public/language/de/notifications.json
|
trans.de = public/language/de/notifications.json
|
||||||
trans.el = public/language/el/notifications.json
|
|
||||||
trans.en_US = public/language/en_US/notifications.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/notifications.json
|
trans.en@pirate = public/language/en@pirate/notifications.json
|
||||||
trans.es = public/language/es/notifications.json
|
trans.es = public/language/es/notifications.json
|
||||||
trans.et = public/language/et/notifications.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/notifications.json
|
trans.fa_IR = public/language/fa_IR/notifications.json
|
||||||
trans.fi = public/language/fi/notifications.json
|
trans.fi = public/language/fi/notifications.json
|
||||||
trans.fr = public/language/fr/notifications.json
|
trans.fr = public/language/fr/notifications.json
|
||||||
trans.he = public/language/he/notifications.json
|
trans.he = public/language/he/notifications.json
|
||||||
trans.hu = public/language/hu/notifications.json
|
trans.hu = public/language/hu/notifications.json
|
||||||
trans.id = public/language/id/notifications.json
|
|
||||||
trans.it = public/language/it/notifications.json
|
trans.it = public/language/it/notifications.json
|
||||||
trans.ja = public/language/ja/notifications.json
|
|
||||||
trans.ko = public/language/ko/notifications.json
|
|
||||||
trans.lt = public/language/lt/notifications.json
|
|
||||||
trans.ms = public/language/ms/notifications.json
|
|
||||||
trans.nb = public/language/nb/notifications.json
|
trans.nb = public/language/nb/notifications.json
|
||||||
trans.nl = public/language/nl/notifications.json
|
trans.nl = public/language/nl/notifications.json
|
||||||
trans.pl = public/language/pl/notifications.json
|
trans.pl = public/language/pl/notifications.json
|
||||||
trans.pt_BR = public/language/pt_BR/notifications.json
|
trans.pt_BR = public/language/pt_BR/notifications.json
|
||||||
trans.ru = public/language/ru/notifications.json
|
trans.ru = public/language/ru/notifications.json
|
||||||
trans.ro = public/language/ro/notifications.json
|
|
||||||
trans.sc = public/language/sc/notifications.json
|
trans.sc = public/language/sc/notifications.json
|
||||||
trans.sk = public/language/sk/notifications.json
|
trans.sk = public/language/sk/notifications.json
|
||||||
trans.sv = public/language/sv/notifications.json
|
trans.sv = public/language/sv/notifications.json
|
||||||
trans.th = public/language/th/notifications.json
|
trans.th = public/language/th/notifications.json
|
||||||
trans.tr = public/language/tr/notifications.json
|
trans.tr = public/language/tr/notifications.json
|
||||||
trans.vi = public/language/vi/notifications.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/notifications.json
|
trans.zh_CN = public/language/zh_CN/notifications.json
|
||||||
trans.zh_TW = public/language/zh_TW/notifications.json
|
trans.zh_TW = public/language/zh_TW/notifications.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
@@ -358,37 +287,26 @@ type = KEYVALUEJSON
|
|||||||
source_file = public/language/en_GB/reset_password.json
|
source_file = public/language/en_GB/reset_password.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/reset_password.json
|
trans.ar = public/language/ar/reset_password.json
|
||||||
trans.bn = public/language/bn/reset_password.json
|
|
||||||
trans.cs = public/language/cs/reset_password.json
|
trans.cs = public/language/cs/reset_password.json
|
||||||
trans.de = public/language/de/reset_password.json
|
trans.de = public/language/de/reset_password.json
|
||||||
trans.el = public/language/el/reset_password.json
|
|
||||||
trans.en_US = public/language/en_US/reset_password.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/reset_password.json
|
trans.en@pirate = public/language/en@pirate/reset_password.json
|
||||||
trans.es = public/language/es/reset_password.json
|
trans.es = public/language/es/reset_password.json
|
||||||
trans.et = public/language/et/reset_password.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/reset_password.json
|
trans.fa_IR = public/language/fa_IR/reset_password.json
|
||||||
trans.fi = public/language/fi/reset_password.json
|
trans.fi = public/language/fi/reset_password.json
|
||||||
trans.fr = public/language/fr/reset_password.json
|
trans.fr = public/language/fr/reset_password.json
|
||||||
trans.he = public/language/he/reset_password.json
|
trans.he = public/language/he/reset_password.json
|
||||||
trans.hu = public/language/hu/reset_password.json
|
trans.hu = public/language/hu/reset_password.json
|
||||||
trans.id = public/language/id/reset_password.json
|
|
||||||
trans.it = public/language/it/reset_password.json
|
trans.it = public/language/it/reset_password.json
|
||||||
trans.ja = public/language/ja/reset_password.json
|
|
||||||
trans.ko = public/language/ko/reset_password.json
|
|
||||||
trans.lt = public/language/lt/reset_password.json
|
|
||||||
trans.ms = public/language/ms/reset_password.json
|
|
||||||
trans.nb = public/language/nb/reset_password.json
|
trans.nb = public/language/nb/reset_password.json
|
||||||
trans.nl = public/language/nl/reset_password.json
|
trans.nl = public/language/nl/reset_password.json
|
||||||
trans.pl = public/language/pl/reset_password.json
|
trans.pl = public/language/pl/reset_password.json
|
||||||
trans.pt_BR = public/language/pt_BR/reset_password.json
|
trans.pt_BR = public/language/pt_BR/reset_password.json
|
||||||
trans.ru = public/language/ru/reset_password.json
|
trans.ru = public/language/ru/reset_password.json
|
||||||
trans.ro = public/language/ro/reset_password.json
|
|
||||||
trans.sc = public/language/sc/reset_password.json
|
trans.sc = public/language/sc/reset_password.json
|
||||||
trans.sk = public/language/sk/reset_password.json
|
trans.sk = public/language/sk/reset_password.json
|
||||||
trans.sv = public/language/sv/reset_password.json
|
trans.sv = public/language/sv/reset_password.json
|
||||||
trans.th = public/language/th/reset_password.json
|
trans.th = public/language/th/reset_password.json
|
||||||
trans.tr = public/language/tr/reset_password.json
|
trans.tr = public/language/tr/reset_password.json
|
||||||
trans.vi = public/language/vi/reset_password.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/reset_password.json
|
trans.zh_CN = public/language/zh_CN/reset_password.json
|
||||||
trans.zh_TW = public/language/zh_TW/reset_password.json
|
trans.zh_TW = public/language/zh_TW/reset_password.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
@@ -397,37 +315,26 @@ type = KEYVALUEJSON
|
|||||||
source_file = public/language/en_GB/users.json
|
source_file = public/language/en_GB/users.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/users.json
|
trans.ar = public/language/ar/users.json
|
||||||
trans.bn = public/language/bn/users.json
|
|
||||||
trans.cs = public/language/cs/users.json
|
trans.cs = public/language/cs/users.json
|
||||||
trans.de = public/language/de/users.json
|
trans.de = public/language/de/users.json
|
||||||
trans.el = public/language/el/users.json
|
|
||||||
trans.en_US = public/language/en_US/users.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/users.json
|
trans.en@pirate = public/language/en@pirate/users.json
|
||||||
trans.es = public/language/es/users.json
|
trans.es = public/language/es/users.json
|
||||||
trans.et = public/language/et/users.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/users.json
|
trans.fa_IR = public/language/fa_IR/users.json
|
||||||
trans.fi = public/language/fi/users.json
|
trans.fi = public/language/fi/users.json
|
||||||
trans.fr = public/language/fr/users.json
|
trans.fr = public/language/fr/users.json
|
||||||
trans.he = public/language/he/users.json
|
trans.he = public/language/he/users.json
|
||||||
trans.hu = public/language/hu/users.json
|
trans.hu = public/language/hu/users.json
|
||||||
trans.id = public/language/id/users.json
|
|
||||||
trans.it = public/language/it/users.json
|
trans.it = public/language/it/users.json
|
||||||
trans.ja = public/language/ja/users.json
|
|
||||||
trans.ko = public/language/ko/users.json
|
|
||||||
trans.lt = public/language/lt/users.json
|
|
||||||
trans.ms = public/language/ms/users.json
|
|
||||||
trans.nb = public/language/nb/users.json
|
trans.nb = public/language/nb/users.json
|
||||||
trans.nl = public/language/nl/users.json
|
trans.nl = public/language/nl/users.json
|
||||||
trans.pl = public/language/pl/users.json
|
trans.pl = public/language/pl/users.json
|
||||||
trans.pt_BR = public/language/pt_BR/users.json
|
trans.pt_BR = public/language/pt_BR/users.json
|
||||||
trans.ru = public/language/ru/users.json
|
trans.ru = public/language/ru/users.json
|
||||||
trans.ro = public/language/ro/users.json
|
|
||||||
trans.sc = public/language/sc/users.json
|
trans.sc = public/language/sc/users.json
|
||||||
trans.sk = public/language/sk/users.json
|
trans.sk = public/language/sk/users.json
|
||||||
trans.sv = public/language/sv/users.json
|
trans.sv = public/language/sv/users.json
|
||||||
trans.th = public/language/th/users.json
|
trans.th = public/language/th/users.json
|
||||||
trans.tr = public/language/tr/users.json
|
trans.tr = public/language/tr/users.json
|
||||||
trans.vi = public/language/vi/users.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/users.json
|
trans.zh_CN = public/language/zh_CN/users.json
|
||||||
trans.zh_TW = public/language/zh_TW/users.json
|
trans.zh_TW = public/language/zh_TW/users.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
@@ -436,37 +343,26 @@ type = KEYVALUEJSON
|
|||||||
source_file = public/language/en_GB/language.json
|
source_file = public/language/en_GB/language.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/language.json
|
trans.ar = public/language/ar/language.json
|
||||||
trans.bn = public/language/bn/language.json
|
|
||||||
trans.cs = public/language/cs/language.json
|
trans.cs = public/language/cs/language.json
|
||||||
trans.de = public/language/de/language.json
|
trans.de = public/language/de/language.json
|
||||||
trans.el = public/language/el/language.json
|
|
||||||
trans.en_US = public/language/en_US/language.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/language.json
|
trans.en@pirate = public/language/en@pirate/language.json
|
||||||
trans.es = public/language/es/language.json
|
trans.es = public/language/es/language.json
|
||||||
trans.et = public/language/et/language.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/language.json
|
trans.fa_IR = public/language/fa_IR/language.json
|
||||||
trans.fi = public/language/fi/language.json
|
trans.fi = public/language/fi/language.json
|
||||||
trans.fr = public/language/fr/language.json
|
trans.fr = public/language/fr/language.json
|
||||||
trans.he = public/language/he/language.json
|
trans.he = public/language/he/language.json
|
||||||
trans.hu = public/language/hu/language.json
|
trans.hu = public/language/hu/language.json
|
||||||
trans.id = public/language/id/language.json
|
|
||||||
trans.it = public/language/it/language.json
|
trans.it = public/language/it/language.json
|
||||||
trans.ja = public/language/ja/language.json
|
|
||||||
trans.ko = public/language/ko/language.json
|
|
||||||
trans.lt = public/language/lt/language.json
|
|
||||||
trans.ms = public/language/ms/language.json
|
|
||||||
trans.nb = public/language/nb/language.json
|
trans.nb = public/language/nb/language.json
|
||||||
trans.nl = public/language/nl/language.json
|
trans.nl = public/language/nl/language.json
|
||||||
trans.pl = public/language/pl/language.json
|
trans.pl = public/language/pl/language.json
|
||||||
trans.pt_BR = public/language/pt_BR/language.json
|
trans.pt_BR = public/language/pt_BR/language.json
|
||||||
trans.ru = public/language/ru/language.json
|
trans.ru = public/language/ru/language.json
|
||||||
trans.ro = public/language/ro/language.json
|
|
||||||
trans.sc = public/language/sc/language.json
|
trans.sc = public/language/sc/language.json
|
||||||
trans.sk = public/language/sk/language.json
|
trans.sk = public/language/sk/language.json
|
||||||
trans.sv = public/language/sv/language.json
|
trans.sv = public/language/sv/language.json
|
||||||
trans.th = public/language/th/language.json
|
trans.th = public/language/th/language.json
|
||||||
trans.tr = public/language/tr/language.json
|
trans.tr = public/language/tr/language.json
|
||||||
trans.vi = public/language/vi/language.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/language.json
|
trans.zh_CN = public/language/zh_CN/language.json
|
||||||
trans.zh_TW = public/language/zh_TW/language.json
|
trans.zh_TW = public/language/zh_TW/language.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
@@ -475,37 +371,26 @@ type = KEYVALUEJSON
|
|||||||
source_file = public/language/en_GB/pages.json
|
source_file = public/language/en_GB/pages.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/pages.json
|
trans.ar = public/language/ar/pages.json
|
||||||
trans.bn = public/language/bn/pages.json
|
|
||||||
trans.cs = public/language/cs/pages.json
|
trans.cs = public/language/cs/pages.json
|
||||||
trans.de = public/language/de/pages.json
|
trans.de = public/language/de/pages.json
|
||||||
trans.el = public/language/el/pages.json
|
|
||||||
trans.en_US = public/language/en_US/pages.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/pages.json
|
trans.en@pirate = public/language/en@pirate/pages.json
|
||||||
trans.es = public/language/es/pages.json
|
trans.es = public/language/es/pages.json
|
||||||
trans.et = public/language/et/pages.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/pages.json
|
trans.fa_IR = public/language/fa_IR/pages.json
|
||||||
trans.fi = public/language/fi/pages.json
|
trans.fi = public/language/fi/pages.json
|
||||||
trans.fr = public/language/fr/pages.json
|
trans.fr = public/language/fr/pages.json
|
||||||
trans.he = public/language/he/pages.json
|
trans.he = public/language/he/pages.json
|
||||||
trans.hu = public/language/hu/pages.json
|
trans.hu = public/language/hu/pages.json
|
||||||
trans.id = public/language/id/pages.json
|
|
||||||
trans.it = public/language/it/pages.json
|
trans.it = public/language/it/pages.json
|
||||||
trans.ja = public/language/ja/pages.json
|
|
||||||
trans.ko = public/language/ko/pages.json
|
|
||||||
trans.lt = public/language/lt/pages.json
|
|
||||||
trans.ms = public/language/ms/pages.json
|
|
||||||
trans.nb = public/language/nb/pages.json
|
trans.nb = public/language/nb/pages.json
|
||||||
trans.nl = public/language/nl/pages.json
|
trans.nl = public/language/nl/pages.json
|
||||||
trans.pl = public/language/pl/pages.json
|
trans.pl = public/language/pl/pages.json
|
||||||
trans.pt_BR = public/language/pt_BR/pages.json
|
trans.pt_BR = public/language/pt_BR/pages.json
|
||||||
trans.ru = public/language/ru/pages.json
|
trans.ru = public/language/ru/pages.json
|
||||||
trans.ro = public/language/ro/pages.json
|
|
||||||
trans.sc = public/language/sc/pages.json
|
trans.sc = public/language/sc/pages.json
|
||||||
trans.sk = public/language/sk/pages.json
|
trans.sk = public/language/sk/pages.json
|
||||||
trans.sv = public/language/sv/pages.json
|
trans.sv = public/language/sv/pages.json
|
||||||
trans.th = public/language/th/pages.json
|
trans.th = public/language/th/pages.json
|
||||||
trans.tr = public/language/tr/pages.json
|
trans.tr = public/language/tr/pages.json
|
||||||
trans.vi = public/language/vi/pages.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/pages.json
|
trans.zh_CN = public/language/zh_CN/pages.json
|
||||||
trans.zh_TW = public/language/zh_TW/pages.json
|
trans.zh_TW = public/language/zh_TW/pages.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
@@ -514,271 +399,27 @@ type = KEYVALUEJSON
|
|||||||
source_file = public/language/en_GB/topic.json
|
source_file = public/language/en_GB/topic.json
|
||||||
source_lang = en_GB
|
source_lang = en_GB
|
||||||
trans.ar = public/language/ar/topic.json
|
trans.ar = public/language/ar/topic.json
|
||||||
trans.bn = public/language/bn/topic.json
|
|
||||||
trans.cs = public/language/cs/topic.json
|
trans.cs = public/language/cs/topic.json
|
||||||
trans.de = public/language/de/topic.json
|
trans.de = public/language/de/topic.json
|
||||||
trans.el = public/language/el/topic.json
|
|
||||||
trans.en_US = public/language/en_US/topic.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/topic.json
|
trans.en@pirate = public/language/en@pirate/topic.json
|
||||||
trans.es = public/language/es/topic.json
|
trans.es = public/language/es/topic.json
|
||||||
trans.et = public/language/et/topic.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/topic.json
|
trans.fa_IR = public/language/fa_IR/topic.json
|
||||||
trans.fi = public/language/fi/topic.json
|
trans.fi = public/language/fi/topic.json
|
||||||
trans.fr = public/language/fr/topic.json
|
trans.fr = public/language/fr/topic.json
|
||||||
trans.he = public/language/he/topic.json
|
trans.he = public/language/he/topic.json
|
||||||
trans.hu = public/language/hu/topic.json
|
trans.hu = public/language/hu/topic.json
|
||||||
trans.id = public/language/id/topic.json
|
|
||||||
trans.it = public/language/it/topic.json
|
trans.it = public/language/it/topic.json
|
||||||
trans.ja = public/language/ja/topic.json
|
|
||||||
trans.ko = public/language/ko/topic.json
|
|
||||||
trans.lt = public/language/lt/topic.json
|
|
||||||
trans.ms = public/language/ms/topic.json
|
|
||||||
trans.nb = public/language/nb/topic.json
|
trans.nb = public/language/nb/topic.json
|
||||||
trans.nl = public/language/nl/topic.json
|
trans.nl = public/language/nl/topic.json
|
||||||
trans.pl = public/language/pl/topic.json
|
trans.pl = public/language/pl/topic.json
|
||||||
trans.pt_BR = public/language/pt_BR/topic.json
|
trans.pt_BR = public/language/pt_BR/topic.json
|
||||||
trans.ru = public/language/ru/topic.json
|
trans.ru = public/language/ru/topic.json
|
||||||
trans.ro = public/language/ro/topic.json
|
|
||||||
trans.sc = public/language/sc/topic.json
|
trans.sc = public/language/sc/topic.json
|
||||||
trans.sk = public/language/sk/topic.json
|
trans.sk = public/language/sk/topic.json
|
||||||
trans.sv = public/language/sv/topic.json
|
trans.sv = public/language/sv/topic.json
|
||||||
trans.th = public/language/th/topic.json
|
trans.th = public/language/th/topic.json
|
||||||
trans.tr = public/language/tr/topic.json
|
trans.tr = public/language/tr/topic.json
|
||||||
trans.vi = public/language/vi/topic.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/topic.json
|
trans.zh_CN = public/language/zh_CN/topic.json
|
||||||
trans.zh_TW = public/language/zh_TW/topic.json
|
trans.zh_TW = public/language/zh_TW/topic.json
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
[nodebb.success]
|
|
||||||
source_file = public/language/en_GB/success.json
|
|
||||||
source_lang = en_GB
|
|
||||||
trans.ar = public/language/ar/success.json
|
|
||||||
trans.bn = public/language/bn/success.json
|
|
||||||
trans.cs = public/language/cs/success.json
|
|
||||||
trans.de = public/language/de/success.json
|
|
||||||
trans.el = public/language/el/success.json
|
|
||||||
trans.en_US = public/language/en_US/success.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/success.json
|
|
||||||
trans.es = public/language/es/success.json
|
|
||||||
trans.et = public/language/et/success.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/success.json
|
|
||||||
trans.fi = public/language/fi/success.json
|
|
||||||
trans.fr = public/language/fr/success.json
|
|
||||||
trans.he = public/language/he/success.json
|
|
||||||
trans.hu = public/language/hu/success.json
|
|
||||||
trans.id = public/language/id/success.json
|
|
||||||
trans.it = public/language/it/success.json
|
|
||||||
trans.ja = public/language/ja/success.json
|
|
||||||
trans.ko = public/language/ko/success.json
|
|
||||||
trans.lt = public/language/lt/success.json
|
|
||||||
trans.ms = public/language/ms/success.json
|
|
||||||
trans.nb = public/language/nb/success.json
|
|
||||||
trans.nl = public/language/nl/success.json
|
|
||||||
trans.pl = public/language/pl/success.json
|
|
||||||
trans.pt_BR = public/language/pt_BR/success.json
|
|
||||||
trans.ru = public/language/ru/success.json
|
|
||||||
trans.ro = public/language/ro/success.json
|
|
||||||
trans.sc = public/language/sc/success.json
|
|
||||||
trans.sk = public/language/sk/success.json
|
|
||||||
trans.sv = public/language/sv/success.json
|
|
||||||
trans.th = public/language/th/success.json
|
|
||||||
trans.tr = public/language/tr/success.json
|
|
||||||
trans.vi = public/language/vi/success.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/success.json
|
|
||||||
trans.zh_TW = public/language/zh_TW/success.json
|
|
||||||
type = KEYVALUEJSON
|
|
||||||
|
|
||||||
[nodebb.error]
|
|
||||||
source_file = public/language/en_GB/error.json
|
|
||||||
source_lang = en_GB
|
|
||||||
trans.ar = public/language/ar/error.json
|
|
||||||
trans.bn = public/language/bn/error.json
|
|
||||||
trans.cs = public/language/cs/error.json
|
|
||||||
trans.de = public/language/de/error.json
|
|
||||||
trans.el = public/language/el/error.json
|
|
||||||
trans.en_US = public/language/en_US/error.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/error.json
|
|
||||||
trans.es = public/language/es/error.json
|
|
||||||
trans.et = public/language/et/error.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/error.json
|
|
||||||
trans.fi = public/language/fi/error.json
|
|
||||||
trans.fr = public/language/fr/error.json
|
|
||||||
trans.he = public/language/he/error.json
|
|
||||||
trans.hu = public/language/hu/error.json
|
|
||||||
trans.id = public/language/id/error.json
|
|
||||||
trans.it = public/language/it/error.json
|
|
||||||
trans.ja = public/language/ja/error.json
|
|
||||||
trans.ko = public/language/ko/error.json
|
|
||||||
trans.lt = public/language/lt/error.json
|
|
||||||
trans.ms = public/language/ms/error.json
|
|
||||||
trans.nb = public/language/nb/error.json
|
|
||||||
trans.nl = public/language/nl/error.json
|
|
||||||
trans.pl = public/language/pl/error.json
|
|
||||||
trans.pt_BR = public/language/pt_BR/error.json
|
|
||||||
trans.ru = public/language/ru/error.json
|
|
||||||
trans.ro = public/language/ro/error.json
|
|
||||||
trans.sc = public/language/sc/error.json
|
|
||||||
trans.sk = public/language/sk/error.json
|
|
||||||
trans.sv = public/language/sv/error.json
|
|
||||||
trans.th = public/language/th/error.json
|
|
||||||
trans.tr = public/language/tr/error.json
|
|
||||||
trans.vi = public/language/vi/error.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/error.json
|
|
||||||
trans.zh_TW = public/language/zh_TW/error.json
|
|
||||||
type = KEYVALUEJSON
|
|
||||||
|
|
||||||
[nodebb.tags]
|
|
||||||
source_file = public/language/en_GB/tags.json
|
|
||||||
source_lang = en_GB
|
|
||||||
trans.ar = public/language/ar/tags.json
|
|
||||||
trans.bn = public/language/bn/tags.json
|
|
||||||
trans.cs = public/language/cs/tags.json
|
|
||||||
trans.de = public/language/de/tags.json
|
|
||||||
trans.el = public/language/el/tags.json
|
|
||||||
trans.en_US = public/language/en_US/tags.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/tags.json
|
|
||||||
trans.es = public/language/es/tags.json
|
|
||||||
trans.et = public/language/et/tags.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/tags.json
|
|
||||||
trans.fi = public/language/fi/tags.json
|
|
||||||
trans.fr = public/language/fr/tags.json
|
|
||||||
trans.he = public/language/he/tags.json
|
|
||||||
trans.hu = public/language/hu/tags.json
|
|
||||||
trans.id = public/language/id/tags.json
|
|
||||||
trans.it = public/language/it/tags.json
|
|
||||||
trans.ja = public/language/ja/tags.json
|
|
||||||
trans.ko = public/language/ko/tags.json
|
|
||||||
trans.lt = public/language/lt/tags.json
|
|
||||||
trans.ms = public/language/ms/tags.json
|
|
||||||
trans.nb = public/language/nb/tags.json
|
|
||||||
trans.nl = public/language/nl/tags.json
|
|
||||||
trans.pl = public/language/pl/tags.json
|
|
||||||
trans.pt_BR = public/language/pt_BR/tags.json
|
|
||||||
trans.ru = public/language/ru/tags.json
|
|
||||||
trans.ro = public/language/ro/tags.json
|
|
||||||
trans.sc = public/language/sc/tags.json
|
|
||||||
trans.sk = public/language/sk/tags.json
|
|
||||||
trans.sv = public/language/sv/tags.json
|
|
||||||
trans.th = public/language/th/tags.json
|
|
||||||
trans.tr = public/language/tr/tags.json
|
|
||||||
trans.vi = public/language/vi/tags.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/tags.json
|
|
||||||
trans.zh_TW = public/language/zh_TW/tags.json
|
|
||||||
type = KEYVALUEJSON
|
|
||||||
|
|
||||||
[nodebb.email]
|
|
||||||
source_file = public/language/en_GB/email.json
|
|
||||||
source_lang = en_GB
|
|
||||||
trans.ar = public/language/ar/email.json
|
|
||||||
trans.bn = public/language/bn/email.json
|
|
||||||
trans.cs = public/language/cs/email.json
|
|
||||||
trans.de = public/language/de/email.json
|
|
||||||
trans.el = public/language/el/email.json
|
|
||||||
trans.en_US = public/language/en_US/email.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/email.json
|
|
||||||
trans.es = public/language/es/email.json
|
|
||||||
trans.et = public/language/et/email.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/email.json
|
|
||||||
trans.fi = public/language/fi/email.json
|
|
||||||
trans.fr = public/language/fr/email.json
|
|
||||||
trans.he = public/language/he/email.json
|
|
||||||
trans.hu = public/language/hu/email.json
|
|
||||||
trans.id = public/language/id/email.json
|
|
||||||
trans.it = public/language/it/email.json
|
|
||||||
trans.ja = public/language/ja/email.json
|
|
||||||
trans.ko = public/language/ko/email.json
|
|
||||||
trans.lt = public/language/lt/email.json
|
|
||||||
trans.ms = public/language/ms/email.json
|
|
||||||
trans.nb = public/language/nb/email.json
|
|
||||||
trans.nl = public/language/nl/email.json
|
|
||||||
trans.pl = public/language/pl/email.json
|
|
||||||
trans.pt_BR = public/language/pt_BR/email.json
|
|
||||||
trans.ru = public/language/ru/email.json
|
|
||||||
trans.ro = public/language/ro/email.json
|
|
||||||
trans.sc = public/language/sc/email.json
|
|
||||||
trans.sk = public/language/sk/email.json
|
|
||||||
trans.sv = public/language/sv/email.json
|
|
||||||
trans.th = public/language/th/email.json
|
|
||||||
trans.tr = public/language/tr/email.json
|
|
||||||
trans.vi = public/language/vi/email.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/email.json
|
|
||||||
trans.zh_TW = public/language/zh_TW/email.json
|
|
||||||
type = KEYVALUEJSON
|
|
||||||
|
|
||||||
[nodebb.search]
|
|
||||||
source_file = public/language/en_GB/search.json
|
|
||||||
source_lang = en_GB
|
|
||||||
trans.ar = public/language/ar/search.json
|
|
||||||
trans.bn = public/language/bn/search.json
|
|
||||||
trans.cs = public/language/cs/search.json
|
|
||||||
trans.de = public/language/de/search.json
|
|
||||||
trans.el = public/language/el/search.json
|
|
||||||
trans.en_US = public/language/en_US/search.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/search.json
|
|
||||||
trans.es = public/language/es/search.json
|
|
||||||
trans.et = public/language/et/search.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/search.json
|
|
||||||
trans.fi = public/language/fi/search.json
|
|
||||||
trans.fr = public/language/fr/search.json
|
|
||||||
trans.he = public/language/he/search.json
|
|
||||||
trans.hu = public/language/hu/search.json
|
|
||||||
trans.id = public/language/id/search.json
|
|
||||||
trans.it = public/language/it/search.json
|
|
||||||
trans.ja = public/language/ja/search.json
|
|
||||||
trans.ko = public/language/ko/search.json
|
|
||||||
trans.lt = public/language/lt/search.json
|
|
||||||
trans.ms = public/language/ms/search.json
|
|
||||||
trans.nb = public/language/nb/search.json
|
|
||||||
trans.nl = public/language/nl/search.json
|
|
||||||
trans.pl = public/language/pl/search.json
|
|
||||||
trans.pt_BR = public/language/pt_BR/search.json
|
|
||||||
trans.ru = public/language/ru/search.json
|
|
||||||
trans.ro = public/language/ro/search.json
|
|
||||||
trans.sc = public/language/sc/search.json
|
|
||||||
trans.sk = public/language/sk/search.json
|
|
||||||
trans.sv = public/language/sv/search.json
|
|
||||||
trans.th = public/language/th/search.json
|
|
||||||
trans.tr = public/language/tr/search.json
|
|
||||||
trans.vi = public/language/vi/search.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/search.json
|
|
||||||
trans.zh_TW = public/language/zh_TW/search.json
|
|
||||||
type = KEYVALUEJSON
|
|
||||||
|
|
||||||
[nodebb.groups]
|
|
||||||
source_file = public/language/en_GB/groups.json
|
|
||||||
source_lang = en_GB
|
|
||||||
trans.ar = public/language/ar/groups.json
|
|
||||||
trans.bn = public/language/bn/groups.json
|
|
||||||
trans.cs = public/language/cs/groups.json
|
|
||||||
trans.de = public/language/de/groups.json
|
|
||||||
trans.el = public/language/el/groups.json
|
|
||||||
trans.en_US = public/language/en_US/groups.json
|
|
||||||
trans.en@pirate = public/language/en@pirate/groups.json
|
|
||||||
trans.es = public/language/es/groups.json
|
|
||||||
trans.et = public/language/et/groups.json
|
|
||||||
trans.fa_IR = public/language/fa_IR/groups.json
|
|
||||||
trans.fi = public/language/fi/groups.json
|
|
||||||
trans.fr = public/language/fr/groups.json
|
|
||||||
trans.he = public/language/he/groups.json
|
|
||||||
trans.hu = public/language/hu/groups.json
|
|
||||||
trans.id = public/language/id/groups.json
|
|
||||||
trans.it = public/language/it/groups.json
|
|
||||||
trans.ja = public/language/ja/groups.json
|
|
||||||
trans.ko = public/language/ko/groups.json
|
|
||||||
trans.lt = public/language/lt/groups.json
|
|
||||||
trans.ms = public/language/ms/groups.json
|
|
||||||
trans.nb = public/language/nb/groups.json
|
|
||||||
trans.nl = public/language/nl/groups.json
|
|
||||||
trans.pl = public/language/pl/groups.json
|
|
||||||
trans.pt_BR = public/language/pt_BR/groups.json
|
|
||||||
trans.ru = public/language/ru/groups.json
|
|
||||||
trans.ro = public/language/ro/groups.json
|
|
||||||
trans.sc = public/language/sc/groups.json
|
|
||||||
trans.sk = public/language/sk/groups.json
|
|
||||||
trans.sv = public/language/sv/groups.json
|
|
||||||
trans.th = public/language/th/groups.json
|
|
||||||
trans.tr = public/language/tr/groups.json
|
|
||||||
trans.vi = public/language/vi/groups.json
|
|
||||||
trans.zh_CN = public/language/zh_CN/groups.json
|
|
||||||
trans.zh_TW = public/language/zh_TW/groups.json
|
|
||||||
type = KEYVALUEJSON
|
|
||||||
4
ATTRIBUTION.md
Normal file
4
ATTRIBUTION.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
## Sound Assets
|
||||||
|
|
||||||
|
* "Waterdrop" by [Porphyr](freesound.org/people/Porphyr) / [CC BY 3.0](creativecommons.org/licenses/by/3.0)
|
||||||
|
* "SweetAlertSound2.wav" by [KIZILSUNGUR](http://www.freesound.org/people/KIZILSUNGUR/) / [Public Domain / CC 0](http://creativecommons.org/publicdomain/zero/1.0/)
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
# Submitting a Pull Request to NodeBB?
|
|
||||||
|
|
||||||
First of all, thank you! Please consider this [style guide](https://docs.nodebb.org/en/latest/contributing/style-guide.html) when submitting your changes. Also, please join our [community](https://community.nodebb.org) to meet other NodeBB developers and designers :)
|
|
||||||
|
|
||||||
## Contributor License Agreement
|
|
||||||
|
|
||||||
Thank you for considering contributing to NodeBB. **Before we can accept any pull requests, please take a moment to read and sign our [license agreement](https://www.clahub.com/agreements/NodeBB/NodeBB)**. In summary, signing this document means that 1) you own the code that you are contributing and 2) you give permission to NodeBB Inc. to license the code to others. This agreement applies to any repository under the NodeBB organization.
|
|
||||||
|
|
||||||
If you are writing contributions as part of employment from another company / individual, then your employer will need to sign a separate agreement. Please [contact us](mailto:accounts@nodebb.org) so that we can send this additional agreement to your employer.
|
|
||||||
|
|
||||||
|
|
||||||
# Having problems installing NodeBB?
|
|
||||||
|
|
||||||
Chances are somebody has run into this problem before. After consulting our [documentation](https://docs.nodebb.org/en/latest/installing/os.html), please head over to our [community support forum](https://community.nodebb.org) for advice.
|
|
||||||
|
|
||||||
|
|
||||||
# Issues & Bugs
|
|
||||||
|
|
||||||
Thanks for reporting an issue with NodeBB! Please follow these guidelines in order to streamline the debugging process. The more guidelines you follow, the easier it will be for us to reproduce your problem.
|
|
||||||
|
|
||||||
In general, if we can't reproduce it, we can't fix it!
|
|
||||||
|
|
||||||
> #### **Important**
|
|
||||||
> If you believe you have identified a security vulnerability with NodeBB, report it as soon as possible via email to **security@nodebb.org**.
|
|
||||||
> A member of the NodeBB security team will respond to the issue.
|
|
||||||
> Please do not post it to the public bug tracker.
|
|
||||||
|
|
||||||
## Try the latest version of NodeBB
|
|
||||||
|
|
||||||
There is a chance that the issue you are experiencing may have already been fixed.
|
|
||||||
|
|
||||||
## Provide the NodeBB version number and git hash
|
|
||||||
|
|
||||||
You can find the NodeBB version number in the Admin Control Panel (ACP), as well as the first line output to the shell when running NodeBB
|
|
||||||
|
|
||||||
``` plaintext
|
|
||||||
info: NodeBB v0.5.2-dev Copyright (C) 2013-2014 NodeBB Inc.
|
|
||||||
info: This program comes with ABSOLUTELY NO WARRANTY.
|
|
||||||
info: This is free software, and you are welcome to redistribute it under certain conditions.
|
|
||||||
info:
|
|
||||||
info: Time: Tue Oct 07 2014 20:25:20 GMT-0400 (EDT)
|
|
||||||
```
|
|
||||||
|
|
||||||
If you are running NodeBB via git, it is also helpful to let the maintainers know what commit hash you are on. To find the commit hash, execute the following command:
|
|
||||||
|
|
||||||
``` bash
|
|
||||||
$ cd /path/to/my/nodebb
|
|
||||||
$ git rev-parse HEAD
|
|
||||||
```
|
|
||||||
|
|
||||||
If you have downloaded the `.zip` or `.tar.gz` packages from GitHub (or elsewhere), please let us know.
|
|
||||||
|
|
||||||
## Attempt to use `git bisect`
|
|
||||||
|
|
||||||
If you have installed NodeBB via GitHub clone, are familiar with utilising git, and are willing to help us narrow down the specific commit that causes a bug, consider running `git bisect`.
|
|
||||||
|
|
||||||
A full guide can be found here: [Debugging with Git/Binary Search](http://git-scm.com/book/en/Git-Tools-Debugging-with-Git#Binary-Search)
|
|
||||||
15
NOTES.md
Normal file
15
NOTES.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
## 0.4x Refactor Notes
|
||||||
|
|
||||||
|
Please remove this file after 0.4x (or perhaps organize it so that we can see the history of breaking changes)
|
||||||
|
|
||||||
|
### Immediate Deprecation Notices
|
||||||
|
|
||||||
|
* `action:ajaxifying` is no longer triggered on body but on window instead, in line with other similar hooks.
|
||||||
|
* `filter:server.create_routes` and `filter:admin.create_routes` will have limited support (ajaxify works, but first-load will not). Please have a look at [this plugin](https://github.com/psychobunny/nodebb-plugin-kitchen-sink/blob/master/library.js#L16-L22) for an example on how to create routes in plugins from now on.
|
||||||
|
|
||||||
|
### Upcoming Deprecation Warnings
|
||||||
|
|
||||||
|
* `filter:footer.build` will be deprecated for 0.4x in favour of the widget system (WIP)
|
||||||
|
* templates.setGlobal (server-side only) deprecated in favour of using res.locals
|
||||||
|
* `plugins/fireHook` route will be deprecated for 0.4x
|
||||||
|
* synchronous hooks will be deprecated for 0.4x - we're reducing complexity by removing the `callbacked: true` property in `plugin.json` - just use callbacks.
|
||||||
37
README.md
37
README.md
@@ -1,52 +1,45 @@
|
|||||||
# <img alt="NodeBB" src="http://i.imgur.com/mYxPPtB.png" />
|
# <img alt="NodeBB" src="http://i.imgur.com/3yj1n6N.png" />
|
||||||
|
[](https://david-dm.org/designcreateplay/nodebb)
|
||||||
|
[](https://codeclimate.com/github/designcreateplay/NodeBB)
|
||||||
|
|
||||||
[](https://gitter.im/NodeBB/NodeBB?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
**NodeBB Forum Software** is powered by Node.js and built on a Redis database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB is compatible down to IE8 and has many modern features out of the box such as social network integration and streaming discussions.
|
||||||
[](https://travis-ci.org/NodeBB/NodeBB)
|
|
||||||
[](https://david-dm.org/nodebb/nodebb)
|
|
||||||
[](https://codeclimate.com/github/NodeBB/NodeBB)
|
|
||||||
[](https://readthedocs.org/projects/nodebb/?badge=latest)
|
|
||||||
|
|
||||||
**NodeBB Forum Software** is powered by Node.js and built on either a Redis or MongoDB database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB is compatible down to IE8 and has many modern features out of the box such as social network integration and streaming discussions.
|
|
||||||
|
|
||||||
Additional functionality is enabled through the use of third-party plugins.
|
|
||||||
|
|
||||||
* [Get NodeBB](http://www.nodebb.org/ "NodeBB")
|
* [Get NodeBB](http://www.nodebb.org/ "NodeBB")
|
||||||
* [Demo & Meta Discussion](http://community.nodebb.org)
|
* [Demo & Meta Discussion](http://community.nodebb.org)
|
||||||
* [NodeBB Blog](http://blog.nodebb.org)
|
* [NodeBB Blog](http://blog.nodebb.org)
|
||||||
* [Documentation & Installation Instructions](http://docs.nodebb.org)
|
* [Wiki Guides](https://github.com/designcreateplay/NodeBB/wiki) - includes setup for other platforms
|
||||||
* [Join us on IRC](https://kiwiirc.com/client/irc.freenode.net/nodebb) - #nodebb on Freenode
|
* [Join us on IRC](https://kiwiirc.com/client/irc.freenode.net/nodebb) - #nodebb on Freenode
|
||||||
* [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
|
* [Follow on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
|
||||||
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")
|
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")
|
||||||
* [Get Plugins](http://community.nodebb.org/category/7/nodebb-plugins "NodeBB Plugins")
|
* [Get Plugins](http://community.nodebb.org/category/7/nodebb-plugins "NodeBB Plugins")
|
||||||
* [Get Themes](http://community.nodebb.org/category/10/nodebb-themes "NodeBB Themes")
|
* [Get Themes](http://community.nodebb.org/category/10/nodebb-themes "NodeBB Themes")
|
||||||
* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/)
|
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||
[<img src="http://i.imgur.com/FLOUuIqb.png" />](http://i.imgur.com/FLOUuIq.png) [<img src="http://i.imgur.com/Ud1LrfIb.png" />](http://i.imgur.com/Ud1LrfI.png) [<img src="http://i.imgur.com/ZC8W39ab.png" />](http://i.imgur.com/ZC8W39a.png) [<img src="http://i.imgur.com/o90kVPib.png" />](http://i.imgur.com/o90kVPi.png) [<img src="http://i.imgur.com/AaRRrU2b.png" />](http://i.imgur.com/AaRRrU2.png) [<img src="http://i.imgur.com/LmHtPhob.png" />](http://i.imgur.com/LmHtPho.png) [<img src="http://i.imgur.com/paiJPJkb.jpg" />](http://i.imgur.com/paiJPJk.jpg) [<img src="http://i.imgur.com/ZfavPHDb.png" />](http://i.imgur.com/ZfavPHD.png) [<img src="http://i.imgur.com/8OLssij.png" />](http://i.imgur.com/8OLssij.png) [<img src="http://i.imgur.com/JKOc0LZ.png"/>](http://i.imgur.com/JKOc0LZ.png)
|
[<img src="http://i.imgur.com/FLOUuIqb.png" />](http://i.imgur.com/FLOUuIq.png) [<img src="http://i.imgur.com/Ud1LrfIb.png" />](http://i.imgur.com/Ud1LrfI.png) [<img src="http://i.imgur.com/ZC8W39ab.png" />](http://i.imgur.com/ZC8W39a.png) [<img src="http://i.imgur.com/o90kVPib.png" />](http://i.imgur.com/o90kVPi.png) [<img src="http://i.imgur.com/AaRRrU2b.png" />](http://i.imgur.com/AaRRrU2.png) [<img src="http://i.imgur.com/LmHtPhob.png" />](http://i.imgur.com/LmHtPho.png) [<img src="http://i.imgur.com/paiJPJkb.jpg" />](http://i.imgur.com/paiJPJk.jpg) [<img src="http://i.imgur.com/ZfavPHDb.png" />](http://i.imgur.com/ZfavPHD.png) [<img src="http://i.imgur.com/8vc1Ytc.png" />](http://i.imgur.com/8vc1Ytc.png)
|
||||||
|
|
||||||
|
|
||||||
Credit: [Convoe](http://www.convoe.com), [Kano](http://www.kano.me), [Manchester United Forum](http://manutdforums.com/).
|
Credit: [Convoe](http://www.convoe.com), [Kano](http://www.kano.me), [Manchester United Forum](http://manutdforums.com/).
|
||||||
|
|
||||||
|
|
||||||
## How can I follow along/contribute?
|
## How can I follow along/contribute?
|
||||||
|
|
||||||
* Our feature roadmap is hosted on the project wiki's [Version History / Roadmap](https://github.com/NodeBB/NodeBB/wiki/Version-History-%26-Roadmap)
|
* Our feature roadmap is hosted on the project wiki's [Version History / Roadmap](https://github.com/designcreateplay/NodeBB/wiki/Version-History-%26-Roadmap)
|
||||||
* If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of [plugins](http://community.nodebb.org/category/7/nodebb-plugins) which would be a great starting point for learning the codebase.
|
* If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of [plugins](http://community.nodebb.org/category/7/nodebb-plugins) which would be a great starting point for learning the codebase.
|
||||||
* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extention of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether.
|
* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extention of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether.
|
||||||
* If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://www.transifex.com/projects/p/nodebb/) for internationalization.
|
|
||||||
* Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development.
|
* Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
NodeBB requires the following software to be installed:
|
NodeBB requires the following software to be installed:
|
||||||
|
|
||||||
* A version of Node.js at least 0.10 or greater
|
* A version of Node.js at least 0.8 or greater
|
||||||
* Redis, version 2.6 or greater **or** MongoDB, version 2.6 or greater
|
* Redis, version 2.6 or greater **or** MongoDB, version 2.4 or greater
|
||||||
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
|
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
[Please refer to platform-specific installation documentation](http://docs.nodebb.org/en/latest/installing/os.html)
|
[Please refer to platform-specific installation documentation](https://github.com/designcreateplay/NodeBB/wiki#wiki-installing-nodebb)
|
||||||
|
|
||||||
## Securing NodeBB
|
## Securing NodeBB
|
||||||
|
|
||||||
@@ -61,8 +54,4 @@ It is important to ensure that your NodeBB and database servers are secured. Bea
|
|||||||
|
|
||||||
## Upgrading NodeBB
|
## Upgrading NodeBB
|
||||||
|
|
||||||
Detailed upgrade instructions are listed in [Upgrading NodeBB](https://docs.nodebb.org/en/latest/upgrading/index.html)
|
Detailed upgrade instructions are listed in [Upgrading NodeBB](https://github.com/designcreateplay/NodeBB/wiki/Upgrading-NodeBB)
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
NodeBB is licensed under the **GNU General Public License v3 (GPL-3)** (http://www.gnu.org/copyleft/gpl.html)
|
|
||||||
|
|||||||
295
app.js
295
app.js
@@ -1,7 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
NodeBB - A better forum platform for the modern web
|
NodeBB - A forum powered by node in development by designcreateplay
|
||||||
https://github.com/NodeBB/NodeBB/
|
Copyright (C) 2013 DesignCreatePlay Inc.
|
||||||
Copyright (C) 2013-2014 NodeBB Inc.
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -17,16 +16,14 @@
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
/*global require, global, process*/
|
|
||||||
|
|
||||||
var nconf = require('nconf');
|
var nconf = require('nconf');
|
||||||
nconf.argv().env();
|
nconf.argv().env();
|
||||||
|
|
||||||
var fs = require('fs'),
|
var fs = require('fs'),
|
||||||
os = require('os'),
|
os = require('os'),
|
||||||
url = require('url'),
|
|
||||||
async = require('async'),
|
|
||||||
semver = require('semver'),
|
semver = require('semver'),
|
||||||
winston = require('winston'),
|
winston = require('winston'),
|
||||||
path = require('path'),
|
path = require('path'),
|
||||||
@@ -38,14 +35,19 @@ global.env = process.env.NODE_ENV || 'production';
|
|||||||
|
|
||||||
winston.remove(winston.transports.Console);
|
winston.remove(winston.transports.Console);
|
||||||
winston.add(winston.transports.Console, {
|
winston.add(winston.transports.Console, {
|
||||||
colorize: true,
|
colorize: true
|
||||||
timestamp: function() {
|
|
||||||
var date = new Date();
|
|
||||||
return date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0,5) + ' [' + global.process.pid + ']';
|
|
||||||
},
|
|
||||||
level: global.env === 'production' ? 'info' : 'verbose'
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
winston.add(winston.transports.File, {
|
||||||
|
filename: 'error.log',
|
||||||
|
level: 'error'
|
||||||
|
});
|
||||||
|
|
||||||
|
// TODO: remove once https://github.com/flatiron/winston/issues/280 is fixed
|
||||||
|
winston.err = function (err) {
|
||||||
|
winston.error(err.stack);
|
||||||
|
};
|
||||||
|
|
||||||
if(os.platform() === 'linux') {
|
if(os.platform() === 'linux') {
|
||||||
require('child_process').exec('/usr/bin/which convert', function(err, stdout, stderr) {
|
require('child_process').exec('/usr/bin/which convert', function(err, stdout, stderr) {
|
||||||
if(err || !stdout) {
|
if(err || !stdout) {
|
||||||
@@ -54,24 +56,21 @@ if(os.platform() === 'linux') {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!process.send) {
|
// Log GNU copyright info along with server info
|
||||||
// If run using `node app`, log GNU copyright info along with server info
|
winston.info('NodeBB v' + pkg.version + ' Copyright (C) 2013 DesignCreatePlay Inc.');
|
||||||
winston.info('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.');
|
|
||||||
winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
|
winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
|
||||||
winston.info('This is free software, and you are welcome to redistribute it under certain conditions.');
|
winston.info('This is free software, and you are welcome to redistribute it under certain conditions.');
|
||||||
winston.info('');
|
winston.info('');
|
||||||
}
|
|
||||||
|
|
||||||
// Alternate configuration file support
|
// Alternate configuration file support
|
||||||
var configFile = path.join(__dirname, '/config.json'),
|
var configFile = __dirname + '/config.json',
|
||||||
configExists;
|
configExists;
|
||||||
|
|
||||||
if (nconf.get('config')) {
|
if (nconf.get('config')) {
|
||||||
configFile = path.resolve(__dirname, nconf.get('config'));
|
configFile = path.resolve(__dirname, nconf.get('config'));
|
||||||
}
|
}
|
||||||
configExists = fs.existsSync(configFile);
|
configExists = fs.existsSync(configFile);
|
||||||
|
|
||||||
if (!nconf.get('setup') && !nconf.get('install') && !nconf.get('upgrade') && !nconf.get('reset') && configExists) {
|
if (!nconf.get('help') && !nconf.get('setup') && !nconf.get('install') && !nconf.get('upgrade') && !nconf.get('reset') && configExists) {
|
||||||
start();
|
start();
|
||||||
} else if (nconf.get('setup') || nconf.get('install') || !configExists) {
|
} else if (nconf.get('setup') || nconf.get('install') || !configExists) {
|
||||||
setup();
|
setup();
|
||||||
@@ -79,6 +78,8 @@ if (!nconf.get('setup') && !nconf.get('install') && !nconf.get('upgrade') && !nc
|
|||||||
upgrade();
|
upgrade();
|
||||||
} else if (nconf.get('reset')) {
|
} else if (nconf.get('reset')) {
|
||||||
reset();
|
reset();
|
||||||
|
} else {
|
||||||
|
displayHelp();
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadConfig() {
|
function loadConfig() {
|
||||||
@@ -87,60 +88,39 @@ function loadConfig() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
nconf.defaults({
|
nconf.defaults({
|
||||||
base_dir: __dirname,
|
themes_path: path.join(__dirname, 'node_modules')
|
||||||
themes_path: path.join(__dirname, 'node_modules'),
|
|
||||||
views_dir: path.join(__dirname, 'public/templates')
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!nconf.get('isCluster')) {
|
|
||||||
nconf.set('isPrimary', 'true');
|
|
||||||
nconf.set('isCluster', 'false');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ensure themes_path is a full filepath
|
// Ensure themes_path is a full filepath
|
||||||
nconf.set('themes_path', path.resolve(__dirname, nconf.get('themes_path')));
|
nconf.set('themes_path', path.resolve(__dirname, nconf.get('themes_path')));
|
||||||
nconf.set('core_templates_path', path.join(__dirname, 'src/views'));
|
|
||||||
nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-vanilla/templates'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
loadConfig();
|
loadConfig();
|
||||||
|
|
||||||
// nconf defaults, if not set in config
|
nconf.set('url', nconf.get('base_url') + (nconf.get('use_port') ? ':' + nconf.get('port') : '') + nconf.get('relative_path'));
|
||||||
if (!nconf.get('upload_path')) {
|
nconf.set('upload_url', path.join(path.sep, 'uploads', path.sep));
|
||||||
nconf.set('upload_path', '/public/uploads');
|
nconf.set('base_dir', __dirname);
|
||||||
}
|
nconf.set('views_dir', path.join(__dirname, 'public/templates'));
|
||||||
// Parse out the relative_url and other goodies from the configured URL
|
|
||||||
var urlObject = url.parse(nconf.get('url'));
|
|
||||||
var relativePath = urlObject.pathname !== '/' ? urlObject.pathname : '';
|
|
||||||
nconf.set('use_port', !!urlObject.port);
|
|
||||||
nconf.set('relative_path', relativePath);
|
|
||||||
nconf.set('port', urlObject.port || nconf.get('port') || nconf.get('PORT') || 4567);
|
|
||||||
nconf.set('upload_url', relativePath + '/uploads/');
|
|
||||||
|
|
||||||
if (nconf.get('isPrimary') === 'true') {
|
winston.info('Time: ' + new Date());
|
||||||
winston.info('Time: %s', (new Date()).toString());
|
winston.info('Initializing NodeBB v' + pkg.version);
|
||||||
winston.info('Initializing NodeBB v%s', pkg.version);
|
winston.info('* using configuration stored in: ' + configFile);
|
||||||
winston.verbose('* using configuration stored in: %s', configFile);
|
var host = nconf.get(nconf.get('database') + ':host');
|
||||||
|
winston.info('* using ' + nconf.get('database') +' store at ' + host + (host.indexOf('/') === -1 ? ':' + nconf.get(nconf.get('database') + ':port') : ''));
|
||||||
|
winston.info('* using themes stored in: ' + nconf.get('themes_path'));
|
||||||
|
|
||||||
var host = nconf.get(nconf.get('database') + ':host'),
|
if (process.env.NODE_ENV === 'development') {
|
||||||
storeLocation = host ? 'at ' + host + (host.indexOf('/') === -1 ? ':' + nconf.get(nconf.get('database') + ':port') : '') : '';
|
winston.info('Base Configuration OK.');
|
||||||
|
|
||||||
winston.verbose('* using %s store %s', nconf.get('database'), storeLocation);
|
|
||||||
winston.verbose('* using themes stored in: %s', nconf.get('themes_path'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var meta = require('./src/meta');
|
||||||
var webserver = require('./src/webserver');
|
|
||||||
|
|
||||||
require('./src/database').init(function(err) {
|
require('./src/database').init(function(err) {
|
||||||
if (err) {
|
|
||||||
winston.error(err.stack);
|
|
||||||
process.exit();
|
|
||||||
}
|
|
||||||
var meta = require('./src/meta');
|
|
||||||
meta.configs.init(function () {
|
meta.configs.init(function () {
|
||||||
var templates = require('templates.js'),
|
var templates = require('./public/src/templates'),
|
||||||
|
translator = require('./public/src/translator'),
|
||||||
|
webserver = require('./src/webserver'),
|
||||||
sockets = require('./src/socket.io'),
|
sockets = require('./src/socket.io'),
|
||||||
plugins = require('./src/plugins'),
|
plugins = require('./src/plugins'),
|
||||||
upgrade = require('./src/upgrade');
|
upgrade = require('./src/upgrade');
|
||||||
@@ -149,65 +129,30 @@ function start() {
|
|||||||
|
|
||||||
upgrade.check(function(schema_ok) {
|
upgrade.check(function(schema_ok) {
|
||||||
if (schema_ok || nconf.get('check-schema') === false) {
|
if (schema_ok || nconf.get('check-schema') === false) {
|
||||||
webserver.init();
|
|
||||||
sockets.init(webserver.server);
|
sockets.init(webserver.server);
|
||||||
|
plugins.init();
|
||||||
|
translator.loadServer();
|
||||||
|
|
||||||
if (nconf.get('isPrimary') === 'true' && !nconf.get('jobsDisabled')) {
|
nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-vanilla/templates'));
|
||||||
require('./src/notifications').init();
|
nconf.set('theme_templates_path', meta.config['theme:templates'] ? path.join(nconf.get('themes_path'), meta.config['theme:id'], meta.config['theme:templates']) : nconf.get('base_templates_path'));
|
||||||
require('./src/user').startJobs();
|
|
||||||
}
|
|
||||||
|
|
||||||
async.waterfall([
|
plugins.ready(function() {
|
||||||
async.apply(meta.themes.setupPaths),
|
webserver.init();
|
||||||
async.apply(plugins.ready),
|
|
||||||
async.apply(meta.templates.compile),
|
|
||||||
async.apply(webserver.listen)
|
|
||||||
], function(err) {
|
|
||||||
if (err) {
|
|
||||||
winston.error(err.stack);
|
|
||||||
process.exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (process.send) {
|
|
||||||
process.send({
|
|
||||||
action: 'ready'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
process.on('SIGTERM', shutdown);
|
process.on('SIGTERM', shutdown);
|
||||||
process.on('SIGINT', shutdown);
|
process.on('SIGINT', shutdown);
|
||||||
process.on('SIGHUP', restart);
|
process.on('SIGHUP', restart);
|
||||||
process.on('message', function(message) {
|
|
||||||
switch(message.action) {
|
|
||||||
case 'reload':
|
|
||||||
meta.reload();
|
|
||||||
break;
|
|
||||||
case 'js-propagate':
|
|
||||||
meta.js.cache = message.cache;
|
|
||||||
meta.js.map = message.map;
|
|
||||||
meta.js.hash = message.hash;
|
|
||||||
winston.verbose('[cluster] Client-side javascript and mapping propagated to worker %s', process.pid);
|
|
||||||
break;
|
|
||||||
case 'css-propagate':
|
|
||||||
meta.css.cache = message.cache;
|
|
||||||
meta.css.acpCache = message.acpCache;
|
|
||||||
meta.css.hash = message.hash;
|
|
||||||
winston.verbose('[cluster] Stylesheets propagated to worker %s', process.pid);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
process.on('uncaughtException', function(err) {
|
process.on('uncaughtException', function(err) {
|
||||||
winston.error(err.stack);
|
winston.error('[app] Encountered Uncaught Exception: ' + err.message);
|
||||||
console.log(err.stack);
|
console.log(err.stack);
|
||||||
|
restart();
|
||||||
meta.js.killMinifier();
|
|
||||||
shutdown(1);
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:');
|
winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:');
|
||||||
winston.warn(' ./nodebb upgrade');
|
winston.warn(' node app --upgrade');
|
||||||
|
winston.warn('To ignore this error (not recommended):');
|
||||||
|
winston.warn(' node app --no-check-schema');
|
||||||
process.exit();
|
process.exit();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -244,12 +189,10 @@ function setup() {
|
|||||||
function upgrade() {
|
function upgrade() {
|
||||||
loadConfig();
|
loadConfig();
|
||||||
|
|
||||||
|
var meta = require('./src/meta');
|
||||||
|
|
||||||
require('./src/database').init(function(err) {
|
require('./src/database').init(function(err) {
|
||||||
if (err) {
|
meta.configs.init(function () {
|
||||||
winston.error(err.stack);
|
|
||||||
process.exit();
|
|
||||||
}
|
|
||||||
require('./src/meta').configs.init(function () {
|
|
||||||
require('./src/upgrade').upgrade();
|
require('./src/upgrade').upgrade();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -258,102 +201,38 @@ function upgrade() {
|
|||||||
function reset() {
|
function reset() {
|
||||||
loadConfig();
|
loadConfig();
|
||||||
|
|
||||||
require('./src/database').init(function(err) {
|
var meta = require('./src/meta'),
|
||||||
|
db = require('./src/database'),
|
||||||
|
async = require('async');
|
||||||
|
|
||||||
|
db.init(function(err) {
|
||||||
|
meta.configs.init(function () {
|
||||||
|
async.parallel([
|
||||||
|
function(next) {
|
||||||
|
db.delete('plugins:active', next);
|
||||||
|
},
|
||||||
|
function(next) {
|
||||||
|
meta.configs.set('theme:type', 'local', next);
|
||||||
|
},
|
||||||
|
function(next) {
|
||||||
|
meta.configs.set('theme:id', 'nodebb-theme-vanilla', next);
|
||||||
|
},
|
||||||
|
function(next) {
|
||||||
|
meta.configs.set('theme:staticDir', '', next);
|
||||||
|
},
|
||||||
|
function(next) {
|
||||||
|
meta.configs.set('theme:templates', '', next);
|
||||||
|
}
|
||||||
|
], function(err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
winston.error(err.message);
|
winston.error(err);
|
||||||
process.exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nconf.get('theme')) {
|
|
||||||
resetThemes();
|
|
||||||
} else if (nconf.get('plugin')) {
|
|
||||||
resetPlugin(nconf.get('plugin'));
|
|
||||||
} else if (nconf.get('plugins')) {
|
|
||||||
resetPlugins();
|
|
||||||
} else if (nconf.get('widgets')) {
|
|
||||||
resetWidgets();
|
|
||||||
} else if (nconf.get('settings')) {
|
|
||||||
resetSettings();
|
|
||||||
} else if (nconf.get('all')) {
|
|
||||||
require('async').series([resetWidgets, resetThemes, resetPlugins, resetSettings], function(err) {
|
|
||||||
if (!err) {
|
|
||||||
winston.info('[reset] Reset complete.');
|
|
||||||
} else {
|
} else {
|
||||||
winston.error('[reset] Errors were encountered while resetting your forum settings: %s', err.message);
|
winston.info("Successfully reset theme to Vanilla and disabled all plugins.");
|
||||||
}
|
|
||||||
process.exit();
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
winston.warn('[reset] Nothing reset.');
|
|
||||||
winston.info('Use ./nodebb reset {theme|plugins|widgets|settings|all}');
|
|
||||||
winston.info(' or');
|
|
||||||
winston.info('Use ./nodebb reset plugin="nodebb-plugin-pluginName"');
|
|
||||||
process.exit();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function resetSettings(callback) {
|
|
||||||
var meta = require('./src/meta');
|
|
||||||
meta.configs.set('allowLocalLogin', 1, function(err) {
|
|
||||||
winston.info('[reset] Settings reset to default');
|
|
||||||
if (typeof callback === 'function') {
|
|
||||||
callback(err);
|
|
||||||
} else {
|
|
||||||
process.exit();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function resetThemes(callback) {
|
|
||||||
var meta = require('./src/meta');
|
|
||||||
|
|
||||||
meta.themes.set({
|
|
||||||
type: 'local',
|
|
||||||
id: 'nodebb-theme-vanilla'
|
|
||||||
}, function(err) {
|
|
||||||
winston.info('[reset] Theme reset to Vanilla');
|
|
||||||
if (typeof callback === 'function') {
|
|
||||||
callback(err);
|
|
||||||
} else {
|
|
||||||
process.exit();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function resetPlugin(pluginId) {
|
|
||||||
var db = require('./src/database');
|
|
||||||
db.setRemove('plugins:active', pluginId, function(err) {
|
|
||||||
if (err) {
|
|
||||||
winston.error('[reset] Could not disable plugin: %s encountered error %s', pluginId, err.message);
|
|
||||||
} else {
|
|
||||||
winston.info('[reset] Plugin `%s` disabled', pluginId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
process.exit();
|
process.exit();
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
function resetPlugins(callback) {
|
|
||||||
var db = require('./src/database');
|
|
||||||
db.delete('plugins:active', function(err) {
|
|
||||||
winston.info('[reset] All Plugins De-activated');
|
|
||||||
if (typeof callback === 'function') {
|
|
||||||
callback(err);
|
|
||||||
} else {
|
|
||||||
process.exit();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
function resetWidgets(callback) {
|
|
||||||
require('./src/widgets').reset(function(err) {
|
|
||||||
winston.info('[reset] All Widgets moved to Draft Zone');
|
|
||||||
if (typeof callback === 'function') {
|
|
||||||
callback(err);
|
|
||||||
} else {
|
|
||||||
process.exit();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -361,21 +240,29 @@ function shutdown(code) {
|
|||||||
winston.info('[app] Shutdown (SIGTERM/SIGINT) Initialised.');
|
winston.info('[app] Shutdown (SIGTERM/SIGINT) Initialised.');
|
||||||
require('./src/database').close();
|
require('./src/database').close();
|
||||||
winston.info('[app] Database connection closed.');
|
winston.info('[app] Database connection closed.');
|
||||||
require('./src/webserver').server.close();
|
|
||||||
winston.info('[app] Web server closed to connections.');
|
|
||||||
|
|
||||||
winston.info('[app] Shutdown complete.');
|
winston.info('[app] Shutdown complete.');
|
||||||
process.exit(code || 0);
|
process.exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
function restart() {
|
function restart() {
|
||||||
if (process.send) {
|
if (process.send) {
|
||||||
winston.info('[app] Restarting...');
|
winston.info('[app] Restarting...');
|
||||||
process.send({
|
process.send('nodebb:restart');
|
||||||
action: 'restart'
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
winston.error('[app] Could not restart server. Shutting down.');
|
winston.error('[app] Could not restart server. Shutting down.');
|
||||||
shutdown(1);
|
shutdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function displayHelp() {
|
||||||
|
winston.info('Usage: node app [options] [arguments]');
|
||||||
|
winston.info(' [NODE_ENV=development | NODE_ENV=production] node app [--start] [arguments]');
|
||||||
|
winston.info('');
|
||||||
|
winston.info('Options:');
|
||||||
|
winston.info(' --help displays this usage information');
|
||||||
|
winston.info(' --setup configure your environment and setup NodeBB');
|
||||||
|
winston.info(' --upgrade upgrade NodeBB, first read: github.com/designcreateplay/NodeBB/wiki/Upgrading-NodeBB');
|
||||||
|
winston.info(' --reset soft resets NodeBB; disables all plugins and restores selected theme to Vanilla');
|
||||||
|
winston.info(' --start manually start NodeBB (default when no options are given)');
|
||||||
|
}
|
||||||
|
|||||||
43
bcrypt.js
43
bcrypt.js
@@ -1,43 +0,0 @@
|
|||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var bcrypt = require('bcryptjs'),
|
|
||||||
async = require('async');
|
|
||||||
|
|
||||||
|
|
||||||
process.on('message', function(msg) {
|
|
||||||
if (msg.type === 'hash') {
|
|
||||||
hashPassword(msg.password, msg.rounds);
|
|
||||||
} else if (msg.type === 'compare') {
|
|
||||||
compare(msg.password, msg.hash);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
function hashPassword(password, rounds) {
|
|
||||||
async.waterfall([
|
|
||||||
function(next) {
|
|
||||||
bcrypt.genSalt(parseInt(rounds, 10), next);
|
|
||||||
},
|
|
||||||
function(salt, next) {
|
|
||||||
bcrypt.hash(password, salt, next);
|
|
||||||
}
|
|
||||||
], function(err, hash) {
|
|
||||||
if (err) {
|
|
||||||
process.send({err: err.message});
|
|
||||||
return process.disconnect();
|
|
||||||
}
|
|
||||||
process.send({result: hash});
|
|
||||||
process.disconnect();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function compare(password, hash) {
|
|
||||||
bcrypt.compare(password, hash, function(err, res) {
|
|
||||||
if (err) {
|
|
||||||
process.send({err: err.message});
|
|
||||||
return process.disconnect();
|
|
||||||
}
|
|
||||||
process.send({result: res});
|
|
||||||
process.disconnect();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Announcements",
|
"name": "Announcements",
|
||||||
"description": "Announcements regarding our community",
|
"description": "Announcements regarding our community",
|
||||||
"bgColor": "#fda34b",
|
"bgColor": "#0059B2",
|
||||||
"color": "#fff",
|
"color": "#fff",
|
||||||
"icon" : "fa-bullhorn",
|
"icon" : "fa-bullhorn",
|
||||||
"order": 1
|
"order": 1
|
||||||
@@ -10,25 +10,89 @@
|
|||||||
{
|
{
|
||||||
"name": "General Discussion",
|
"name": "General Discussion",
|
||||||
"description": "A place to talk about whateeeever you want",
|
"description": "A place to talk about whateeeever you want",
|
||||||
"bgColor": "#59b3d0",
|
"bgColor": "#0059B2",
|
||||||
"color": "#fff",
|
"color": "#fff",
|
||||||
"icon" : "fa-comments-o",
|
"icon" : "fa-comment",
|
||||||
"order": 2
|
"order": 2
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "NodeBB Development",
|
||||||
|
"description": "NodeBB development news and announcements",
|
||||||
|
"bgColor": "#0059B2",
|
||||||
|
"color": "#fff",
|
||||||
|
"icon" : "fa-github",
|
||||||
|
"order": 3
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Blogs",
|
"name": "Blogs",
|
||||||
"description": "Blog posts from individual members",
|
"description": "Blog posts from individual members",
|
||||||
"bgColor": "#86ba4b",
|
"bgColor": "#0059B2",
|
||||||
"color": "#fff",
|
"color": "#fff",
|
||||||
"icon" : "fa-newspaper-o",
|
"icon" : "fa-pencil",
|
||||||
"order": 4
|
"order": 4
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Comments & Feedback",
|
"name": "Feature Requests",
|
||||||
"description": "Got a question? Ask away!",
|
"description": "Got a feature request you'd like to see? Give us a shout here.",
|
||||||
"bgColor": "#e95c5a",
|
"bgColor": "#ab1290",
|
||||||
"color": "#fff",
|
"color": "#fff",
|
||||||
"icon" : "fa-question",
|
"icon" : "fa-lightbulb-o",
|
||||||
"order": 3
|
"order": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Bug Reports",
|
||||||
|
"description": "Having trouble with NodeBB? Let us know...",
|
||||||
|
"bgColor": "#ab1290",
|
||||||
|
"color": "#fff",
|
||||||
|
"icon" : "fa-cogs",
|
||||||
|
"order": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "NodeBB Plugins",
|
||||||
|
"description": "Enhance your NodeBB with plugins!",
|
||||||
|
"bgColor": "#ab1290",
|
||||||
|
"color": "#fff",
|
||||||
|
"icon" : "fa-plus-square",
|
||||||
|
"order": 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "NodeBB Link Exchange",
|
||||||
|
"description": "Link exchange",
|
||||||
|
"bgColor": "#ab1290",
|
||||||
|
"color": "#fff",
|
||||||
|
"icon" : "fa-exchange",
|
||||||
|
"order": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "News",
|
||||||
|
"description": "News from around the world",
|
||||||
|
"bgColor": "#004C66",
|
||||||
|
"color": "#fff",
|
||||||
|
"icon" : "fa-globe",
|
||||||
|
"order": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Movies",
|
||||||
|
"description": "Discuss the latest movies here",
|
||||||
|
"bgColor": "#004C66",
|
||||||
|
"color": "#fff",
|
||||||
|
"icon" : "fa-film",
|
||||||
|
"order": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Games",
|
||||||
|
"description": "Discuss the latest games here",
|
||||||
|
"bgColor": "#004C66",
|
||||||
|
"color": "#fff",
|
||||||
|
"icon" : "fa-crosshairs",
|
||||||
|
"order": 11
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Random",
|
||||||
|
"description": "Anything and (almost) everything welcome!",
|
||||||
|
"bgColor": "#004C66",
|
||||||
|
"color": "#fff",
|
||||||
|
"icon" : "fa-beer",
|
||||||
|
"order": 12
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"field": "title",
|
|
||||||
"value": "NodeBB"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "showSiteTitle",
|
|
||||||
"value": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "postDelay",
|
|
||||||
"value": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "initialPostDelay",
|
|
||||||
"value": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "newbiePostDelay",
|
|
||||||
"value": 120
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "newbiePostDelayThreshold",
|
|
||||||
"value": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "minimumPostLength",
|
|
||||||
"value": 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "maximumPostLength",
|
|
||||||
"value": 32767
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "allowGuestSearching",
|
|
||||||
"value": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "allowTopicsThumbnail",
|
|
||||||
"value": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "allowRegistration",
|
|
||||||
"value": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "allowLocalLogin",
|
|
||||||
"value": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "allowAccountDelete",
|
|
||||||
"value": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "allowFileUploads",
|
|
||||||
"value": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "maximumFileSize",
|
|
||||||
"value": 2048
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "minimumTitleLength",
|
|
||||||
"value": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "maximumTitleLength",
|
|
||||||
"value": 255
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "minimumUsernameLength",
|
|
||||||
"value": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "maximumUsernameLength",
|
|
||||||
"value": 16
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "minimumPasswordLength",
|
|
||||||
"value": 6
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "maximumSignatureLength",
|
|
||||||
"value": 255
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "maximumProfileImageSize",
|
|
||||||
"value": 256
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "profileImageDimension",
|
|
||||||
"value": 128
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "requireEmailConfirmation",
|
|
||||||
"value": 0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,104 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
|
|
||||||
var async = require('async'),
|
|
||||||
prompt = require('prompt'),
|
|
||||||
nconf = require('nconf'),
|
|
||||||
winston = require('winston'),
|
|
||||||
|
|
||||||
questions = {};
|
|
||||||
|
|
||||||
function success(err, config, callback) {
|
|
||||||
if (!config) {
|
|
||||||
return callback(new Error('aborted'));
|
|
||||||
}
|
|
||||||
|
|
||||||
var database = (config.redis || config.mongo) ? config.secondary_database : config.database;
|
|
||||||
|
|
||||||
function dbQuestionsSuccess(err, databaseConfig) {
|
|
||||||
if (!databaseConfig) {
|
|
||||||
return callback(new Error('aborted'));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Translate redis properties into redis object
|
|
||||||
if(database === 'redis') {
|
|
||||||
config.redis = {
|
|
||||||
host: databaseConfig['redis:host'],
|
|
||||||
port: databaseConfig['redis:port'],
|
|
||||||
password: databaseConfig['redis:password'],
|
|
||||||
database: databaseConfig['redis:database']
|
|
||||||
};
|
|
||||||
|
|
||||||
if (config.redis.host.slice(0, 1) === '/') {
|
|
||||||
delete config.redis.port;
|
|
||||||
}
|
|
||||||
} else if (database === 'mongo') {
|
|
||||||
config.mongo = {
|
|
||||||
host: databaseConfig['mongo:host'],
|
|
||||||
port: databaseConfig['mongo:port'],
|
|
||||||
username: databaseConfig['mongo:username'],
|
|
||||||
password: databaseConfig['mongo:password'],
|
|
||||||
database: databaseConfig['mongo:database']
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
return callback(new Error('unknown database : ' + database));
|
|
||||||
}
|
|
||||||
|
|
||||||
var allQuestions = questions.redis.concat(questions.mongo);
|
|
||||||
for(var x=0;x<allQuestions.length;x++) {
|
|
||||||
delete config[allQuestions[x].name];
|
|
||||||
}
|
|
||||||
|
|
||||||
callback(err, config);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(database === 'redis') {
|
|
||||||
if (config['redis:host'] && config['redis:port']) {
|
|
||||||
dbQuestionsSuccess(null, config);
|
|
||||||
} else {
|
|
||||||
prompt.get(questions.redis, dbQuestionsSuccess);
|
|
||||||
}
|
|
||||||
} else if(database === 'mongo') {
|
|
||||||
if (config['mongo:host'] && config['mongo:port']) {
|
|
||||||
dbQuestionsSuccess(null, config);
|
|
||||||
} else {
|
|
||||||
prompt.get(questions.mongo, dbQuestionsSuccess);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return callback(new Error('unknown database : ' + database));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getSecondaryDatabaseModules(config, next) {
|
|
||||||
prompt.get({
|
|
||||||
"name": "secondary_db_modules",
|
|
||||||
"description": "Which database modules should " + config.secondary_database + " store?",
|
|
||||||
"default": nconf.get('secondary_db_modules') || "hash, list, sets, sorted"
|
|
||||||
}, function(err, db) {
|
|
||||||
config.secondary_db_modules = db.secondary_db_modules;
|
|
||||||
success(err, config, next);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = function(err, config, databases, callback) {
|
|
||||||
var allowedDBs = Object.keys(databases);
|
|
||||||
|
|
||||||
allowedDBs.forEach(function(db) {
|
|
||||||
questions[db] = require('./../src/database/' + db).questions;
|
|
||||||
});
|
|
||||||
|
|
||||||
async.waterfall([
|
|
||||||
function(next) {
|
|
||||||
process.stdout.write('\n');
|
|
||||||
winston.info('Now configuring ' + config.database + ' database:');
|
|
||||||
success(err, config, next);
|
|
||||||
},
|
|
||||||
function(config, next) {
|
|
||||||
if (config.secondary_database && allowedDBs.indexOf(config.secondary_database) !== -1) {
|
|
||||||
winston.info('Now configuring ' + config.secondary_database + ' database:');
|
|
||||||
getSecondaryDatabaseModules(config, next);
|
|
||||||
} else {
|
|
||||||
next(err, config);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
], callback);
|
|
||||||
};
|
|
||||||
284
loader.js
284
loader.js
@@ -1,264 +1,76 @@
|
|||||||
'use strict';
|
"use strict";
|
||||||
|
|
||||||
var nconf = require('nconf'),
|
var nconf = require('nconf'),
|
||||||
fs = require('fs'),
|
fs = require('fs'),
|
||||||
url = require('url'),
|
|
||||||
path = require('path'),
|
|
||||||
fork = require('child_process').fork,
|
|
||||||
|
|
||||||
async = require('async'),
|
|
||||||
logrotate = require('logrotate-stream'),
|
|
||||||
|
|
||||||
pkg = require('./package.json'),
|
|
||||||
|
|
||||||
pidFilePath = __dirname + '/pidfile',
|
pidFilePath = __dirname + '/pidfile',
|
||||||
output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }),
|
start = function() {
|
||||||
silent = process.env.NODE_ENV !== 'development',
|
var fork = require('child_process').fork,
|
||||||
numProcs,
|
nbb_start = function() {
|
||||||
workers = [],
|
nbb = fork('./app', process.argv.slice(2), {
|
||||||
|
env: {
|
||||||
|
'NODE_ENV': process.env.NODE_ENV
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
Loader = {
|
nbb.on('message', function(cmd) {
|
||||||
timesStarted: 0,
|
if (cmd === 'nodebb:restart') {
|
||||||
js: {
|
nbb_restart();
|
||||||
cache: undefined,
|
}
|
||||||
map: undefined
|
});
|
||||||
},
|
},
|
||||||
css: {
|
nbb_stop = function() {
|
||||||
cache: undefined,
|
nbb.kill();
|
||||||
acpCache: undefined
|
if (fs.existsSync(pidFilePath)) {
|
||||||
|
var pid = parseInt(fs.readFileSync(pidFilePath, { encoding: 'utf-8' }), 10);
|
||||||
|
if (process.pid === pid) {
|
||||||
|
fs.unlinkSync(pidFilePath);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
nbb_restart = function() {
|
||||||
|
nbb.on('exit', function() {
|
||||||
|
nbb_start();
|
||||||
|
});
|
||||||
|
nbb.kill();
|
||||||
};
|
};
|
||||||
|
|
||||||
Loader.init = function(callback) {
|
process.on('SIGINT', nbb_stop);
|
||||||
if (silent) {
|
process.on('SIGTERM', nbb_stop);
|
||||||
console.log = function(value) {
|
process.on('SIGHUP', nbb_restart);
|
||||||
output.write(value + '\n');
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
process.on('SIGHUP', Loader.restart);
|
nbb_start();
|
||||||
process.on('SIGUSR2', Loader.reload);
|
},
|
||||||
process.on('SIGTERM', Loader.stop);
|
nbb;
|
||||||
callback();
|
|
||||||
};
|
|
||||||
|
|
||||||
Loader.displayStartupMessages = function(callback) {
|
nconf.argv();
|
||||||
console.log('');
|
|
||||||
console.log('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.');
|
|
||||||
console.log('This program comes with ABSOLUTELY NO WARRANTY.');
|
|
||||||
console.log('This is free software, and you are welcome to redistribute it under certain conditions.');
|
|
||||||
console.log('For the full license, please visit: http://www.gnu.org/copyleft/gpl.html');
|
|
||||||
console.log('');
|
|
||||||
callback();
|
|
||||||
};
|
|
||||||
|
|
||||||
Loader.addWorkerEvents = function(worker) {
|
// Start the daemon!
|
||||||
|
if (nconf.get('d')) {
|
||||||
worker.on('exit', function(code, signal) {
|
// Check for a still-active NodeBB process
|
||||||
if (code !== 0) {
|
|
||||||
if (Loader.timesStarted < numProcs*3) {
|
|
||||||
Loader.timesStarted++;
|
|
||||||
if (Loader.crashTimer) {
|
|
||||||
clearTimeout(Loader.crashTimer);
|
|
||||||
}
|
|
||||||
Loader.crashTimer = setTimeout(function() {
|
|
||||||
Loader.timesStarted = 0;
|
|
||||||
}, 10000);
|
|
||||||
} else {
|
|
||||||
console.log(numProcs*3 + ' restarts in 10 seconds, most likely an error on startup. Halting.');
|
|
||||||
process.exit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('[cluster] Child Process (' + worker.pid + ') has exited (code: ' + code + ', signal: ' + signal +')');
|
|
||||||
if (!(worker.suicide || code === 0)) {
|
|
||||||
console.log('[cluster] Spinning up another process...');
|
|
||||||
|
|
||||||
forkWorker(worker.index, worker.isPrimary);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
worker.on('message', function(message) {
|
|
||||||
if (message && typeof message === 'object' && message.action) {
|
|
||||||
switch (message.action) {
|
|
||||||
case 'ready':
|
|
||||||
if (Loader.js.cache) {
|
|
||||||
worker.send({
|
|
||||||
action: 'js-propagate',
|
|
||||||
cache: Loader.js.cache,
|
|
||||||
map: Loader.js.map,
|
|
||||||
hash: Loader.js.hash
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Loader.css.cache) {
|
|
||||||
worker.send({
|
|
||||||
action: 'css-propagate',
|
|
||||||
cache: Loader.css.cache,
|
|
||||||
acpCache: Loader.css.acpCache,
|
|
||||||
hash: Loader.css.hash
|
|
||||||
});
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'restart':
|
|
||||||
console.log('[cluster] Restarting...');
|
|
||||||
Loader.restart();
|
|
||||||
break;
|
|
||||||
case 'reload':
|
|
||||||
console.log('[cluster] Reloading...');
|
|
||||||
Loader.reload();
|
|
||||||
break;
|
|
||||||
case 'js-propagate':
|
|
||||||
Loader.js.cache = message.cache;
|
|
||||||
Loader.js.map = message.map;
|
|
||||||
Loader.js.hash = message.hash;
|
|
||||||
|
|
||||||
Loader.notifyWorkers({
|
|
||||||
action: 'js-propagate',
|
|
||||||
cache: message.cache,
|
|
||||||
map: message.map,
|
|
||||||
hash: message.hash
|
|
||||||
}, worker.pid);
|
|
||||||
break;
|
|
||||||
case 'css-propagate':
|
|
||||||
Loader.css.cache = message.cache;
|
|
||||||
Loader.css.acpCache = message.acpCache;
|
|
||||||
Loader.css.hash = message.hash;
|
|
||||||
|
|
||||||
Loader.notifyWorkers({
|
|
||||||
action: 'css-propagate',
|
|
||||||
cache: message.cache,
|
|
||||||
acpCache: message.acpCache,
|
|
||||||
hash: message.hash
|
|
||||||
}, worker.pid);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
Loader.start = function(callback) {
|
|
||||||
numProcs = getPorts().length;
|
|
||||||
console.log('Clustering enabled: Spinning up ' + numProcs + ' process(es).\n');
|
|
||||||
|
|
||||||
for (var x=0; x<numProcs; ++x) {
|
|
||||||
forkWorker(x, x === 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (callback) {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
function forkWorker(index, isPrimary) {
|
|
||||||
var ports = getPorts();
|
|
||||||
|
|
||||||
if(!ports[index]) {
|
|
||||||
return console.log('[cluster] invalid port for worker : ' + index + ' ports: ' + ports.length);
|
|
||||||
}
|
|
||||||
|
|
||||||
process.env.isPrimary = isPrimary;
|
|
||||||
process.env.isCluster = true;
|
|
||||||
process.env.port = ports[index];
|
|
||||||
|
|
||||||
var worker = fork('app.js', [], {
|
|
||||||
silent: silent,
|
|
||||||
env: process.env
|
|
||||||
});
|
|
||||||
|
|
||||||
worker.index = index;
|
|
||||||
worker.isPrimary = isPrimary;
|
|
||||||
|
|
||||||
workers[index] = worker;
|
|
||||||
|
|
||||||
Loader.addWorkerEvents(worker);
|
|
||||||
|
|
||||||
if (silent) {
|
|
||||||
var output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true });
|
|
||||||
worker.stdout.pipe(output);
|
|
||||||
worker.stderr.pipe(output);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getPorts() {
|
|
||||||
var urlObject = url.parse(nconf.get('url'));
|
|
||||||
var port = nconf.get('port') || nconf.get('PORT') || urlObject.port || 4567;
|
|
||||||
if (!Array.isArray(port)) {
|
|
||||||
port = [port];
|
|
||||||
}
|
|
||||||
return port;
|
|
||||||
}
|
|
||||||
|
|
||||||
Loader.restart = function() {
|
|
||||||
killWorkers();
|
|
||||||
|
|
||||||
Loader.start();
|
|
||||||
};
|
|
||||||
|
|
||||||
Loader.reload = function() {
|
|
||||||
workers.forEach(function(worker) {
|
|
||||||
worker.send({
|
|
||||||
action: 'reload'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
Loader.stop = function() {
|
|
||||||
killWorkers();
|
|
||||||
|
|
||||||
// Clean up the pidfile
|
|
||||||
fs.unlinkSync(__dirname + '/pidfile');
|
|
||||||
};
|
|
||||||
|
|
||||||
function killWorkers() {
|
|
||||||
workers.forEach(function(worker) {
|
|
||||||
worker.suicide = true;
|
|
||||||
worker.kill();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Loader.notifyWorkers = function(msg, worker_pid) {
|
|
||||||
worker_pid = parseInt(worker_pid, 10);
|
|
||||||
workers.forEach(function(worker) {
|
|
||||||
if (parseInt(worker.pid, 10) !== worker_pid) {
|
|
||||||
try {
|
|
||||||
worker.send(msg);
|
|
||||||
} catch (e) {
|
|
||||||
console.log('[cluster/notifyWorkers] Failed to reach pid ' + worker_pid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
nconf.argv().file({
|
|
||||||
file: path.join(__dirname, '/config.json')
|
|
||||||
});
|
|
||||||
|
|
||||||
if (nconf.get('daemon') !== false) {
|
|
||||||
if (fs.existsSync(pidFilePath)) {
|
if (fs.existsSync(pidFilePath)) {
|
||||||
try {
|
try {
|
||||||
var pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
|
var pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
|
||||||
process.kill(pid, 0);
|
process.kill(pid, 0);
|
||||||
|
console.log('\n Error: Another NodeBB is already running!');
|
||||||
process.exit();
|
process.exit();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
fs.unlinkSync(pidFilePath);
|
fs.unlinkSync(pidFilePath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Initialise logging streams
|
||||||
|
var outputStream = fs.createWriteStream(__dirname + '/logs/output.log');
|
||||||
|
outputStream.on('open', function(fd) {
|
||||||
|
// Daemonize
|
||||||
require('daemon')({
|
require('daemon')({
|
||||||
stdout: process.stdout,
|
stdout: fd
|
||||||
stderr: process.stderr
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Write its pid to a pidfile
|
||||||
fs.writeFile(__dirname + '/pidfile', process.pid);
|
fs.writeFile(__dirname + '/pidfile', process.pid);
|
||||||
}
|
|
||||||
|
|
||||||
async.series([
|
start();
|
||||||
Loader.init,
|
|
||||||
Loader.displayStartupMessages,
|
|
||||||
Loader.start
|
|
||||||
], function(err) {
|
|
||||||
if (err) {
|
|
||||||
console.log('[loader] Error during startup: ' + err.message);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
start();
|
||||||
|
}
|
||||||
80
minifier.js
80
minifier.js
@@ -1,80 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
|
|
||||||
var uglifyjs = require('uglify-js'),
|
|
||||||
less = require('less'),
|
|
||||||
async = require('async'),
|
|
||||||
fs = require('fs'),
|
|
||||||
path = require('path'),
|
|
||||||
crypto = require('crypto'),
|
|
||||||
|
|
||||||
Minifier = {
|
|
||||||
js: {}
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Javascript */
|
|
||||||
Minifier.js.minify = function (scripts, minify, callback) {
|
|
||||||
scripts = scripts.filter(function(file) {
|
|
||||||
return fs.existsSync(file);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (minify) {
|
|
||||||
minifyScripts(scripts, function() {
|
|
||||||
callback.apply(this, arguments);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
concatenateScripts(scripts, callback);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
process.on('message', function(payload) {
|
|
||||||
switch(payload.action) {
|
|
||||||
case 'js':
|
|
||||||
Minifier.js.minify(payload.scripts, payload.minify, function(minified) {
|
|
||||||
process.send({
|
|
||||||
type: 'end',
|
|
||||||
minified: minified
|
|
||||||
});
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
function minifyScripts(scripts, callback) {
|
|
||||||
try {
|
|
||||||
var minified = uglifyjs.minify(scripts, {
|
|
||||||
compress: false
|
|
||||||
}),
|
|
||||||
hasher = crypto.createHash('md5'),
|
|
||||||
hash;
|
|
||||||
|
|
||||||
// Calculate js hash
|
|
||||||
hasher.update(minified.code, 'utf-8');
|
|
||||||
hash = hasher.digest('hex');
|
|
||||||
process.send({
|
|
||||||
type: 'hash',
|
|
||||||
payload: hash.slice(0, 8)
|
|
||||||
});
|
|
||||||
|
|
||||||
callback(minified.code);
|
|
||||||
} catch(err) {
|
|
||||||
process.send({
|
|
||||||
type: 'error',
|
|
||||||
payload: err.message
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function concatenateScripts(scripts, callback) {
|
|
||||||
async.map(scripts, fs.readFile, function(err, scripts) {
|
|
||||||
if (err) {
|
|
||||||
process.send({
|
|
||||||
type: 'error',
|
|
||||||
payload: err
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
scripts = scripts.join(require('os').EOL + ';');
|
|
||||||
|
|
||||||
callback(scripts);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
87
mocks/databasemock.js
Normal file
87
mocks/databasemock.js
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
/**
|
||||||
|
* Database Mock - wrapper for database.js, makes system use separate test db, instead of production
|
||||||
|
* ATTENTION: testing db is flushed before every use!
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function(module) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var utils = require('./../public/src/utils.js'),
|
||||||
|
path = require('path'),
|
||||||
|
nconf = require('nconf'),
|
||||||
|
winston = require('winston'),
|
||||||
|
errorText;
|
||||||
|
|
||||||
|
|
||||||
|
nconf.file({ file: path.join(__dirname, '../config.json') });
|
||||||
|
|
||||||
|
var dbType = nconf.get('database'),
|
||||||
|
testDbConfig = nconf.get('test_database'),
|
||||||
|
productionDbConfig = nconf.get(dbType);
|
||||||
|
|
||||||
|
if(!testDbConfig){
|
||||||
|
errorText = 'test_database is not defined';
|
||||||
|
winston.info(
|
||||||
|
"\n===========================================================\n"+
|
||||||
|
"Please, add parameters for test database in config.json\n"+
|
||||||
|
"For example (redis):\n"+
|
||||||
|
'"test_database": {' + '\n' +
|
||||||
|
' "host": "127.0.0.1",' + '\n' +
|
||||||
|
' "port": "6379",' + '\n' +
|
||||||
|
' "password": "",' + '\n' +
|
||||||
|
' "database": "1"' + '\n' +
|
||||||
|
'}\n'+
|
||||||
|
" or (mongo):\n" +
|
||||||
|
'"test_database": {' + '\n' +
|
||||||
|
' "host": "127.0.0.1",' + '\n' +
|
||||||
|
' "port": "27017",' + '\n' +
|
||||||
|
' "password": "",' + '\n' +
|
||||||
|
' "database": "1"' + '\n' +
|
||||||
|
'}\n'+
|
||||||
|
"==========================================================="
|
||||||
|
);
|
||||||
|
winston.error(errorText);
|
||||||
|
throw new Error(errorText);
|
||||||
|
}
|
||||||
|
|
||||||
|
if( testDbConfig.database === productionDbConfig.database &&
|
||||||
|
testDbConfig.host === productionDbConfig.host &&
|
||||||
|
testDbConfig.port === productionDbConfig.port
|
||||||
|
){
|
||||||
|
errorText = 'test_database has the same config as production db';
|
||||||
|
winston.error(errorText);
|
||||||
|
throw new Error(errorText);
|
||||||
|
}
|
||||||
|
|
||||||
|
nconf.set(dbType, testDbConfig);
|
||||||
|
|
||||||
|
var db = require('../src/database'),
|
||||||
|
meta = require('../src/meta');
|
||||||
|
|
||||||
|
before(function(done) {
|
||||||
|
|
||||||
|
db.init(function(err) {
|
||||||
|
//Clean up
|
||||||
|
db.flushdb(function(err) {
|
||||||
|
if(err) {
|
||||||
|
winston.error(err);
|
||||||
|
throw new Error(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
winston.info('test_database flushed');
|
||||||
|
|
||||||
|
meta.configs.init(function () {
|
||||||
|
|
||||||
|
var webserver = require('../src/webserver'),
|
||||||
|
sockets = require('../src/socket.io');
|
||||||
|
sockets.init(webserver.server);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = db;
|
||||||
|
|
||||||
|
}(module));
|
||||||
64
nodebb
64
nodebb
@@ -4,19 +4,13 @@
|
|||||||
# $1 action
|
# $1 action
|
||||||
# $2 subaction
|
# $2 subaction
|
||||||
|
|
||||||
node="$(which nodejs 2>/dev/null)";
|
|
||||||
if [ $? -gt 0 ];
|
|
||||||
then node="$(which node)";
|
|
||||||
fi
|
|
||||||
|
|
||||||
function pidExists() {
|
function pidExists() {
|
||||||
if [ -e "pidfile" ];
|
if [ -e "pidfile" ];
|
||||||
then
|
then
|
||||||
if ps -p $(cat pidfile) > /dev/null
|
kill -s 0 $(cat pidfile);
|
||||||
|
if [ !$? ];
|
||||||
then return 1;
|
then return 1;
|
||||||
else
|
else return 0;
|
||||||
rm ./pidfile;
|
|
||||||
return 0;
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
@@ -28,42 +22,18 @@ case "$1" in
|
|||||||
echo "Starting NodeBB";
|
echo "Starting NodeBB";
|
||||||
echo " \"./nodebb stop\" to stop the NodeBB server";
|
echo " \"./nodebb stop\" to stop the NodeBB server";
|
||||||
echo " \"./nodebb log\" to view server output";
|
echo " \"./nodebb log\" to view server output";
|
||||||
|
echo "" > ./logs/output.log;
|
||||||
# Start the loader daemon
|
node loader -d "$@"
|
||||||
"$node" loader "$@"
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
stop)
|
stop)
|
||||||
pidExists;
|
|
||||||
if [ 0 -eq $? ];
|
|
||||||
then
|
|
||||||
echo "NodeBB is already stopped.";
|
|
||||||
else
|
|
||||||
echo "Stopping NodeBB. Goodbye!";
|
echo "Stopping NodeBB. Goodbye!";
|
||||||
kill $(cat pidfile);
|
kill $(cat pidfile);
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
restart)
|
reload|restart)
|
||||||
pidExists;
|
|
||||||
if [ 0 -eq $? ];
|
|
||||||
then
|
|
||||||
echo "NodeBB could not be restarted, as a running instance could not be found.";
|
|
||||||
else
|
|
||||||
echo "Restarting NodeBB.";
|
echo "Restarting NodeBB.";
|
||||||
kill -1 $(cat pidfile);
|
kill -1 $(cat pidfile);
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
reload)
|
|
||||||
pidExists;
|
|
||||||
if [ 0 -eq $? ];
|
|
||||||
then
|
|
||||||
echo "NodeBB could not be reloaded, as a running instance could not be found.";
|
|
||||||
else
|
|
||||||
echo "Reloading NodeBB.";
|
|
||||||
kill -12 $(cat pidfile);
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
status)
|
status)
|
||||||
@@ -72,11 +42,13 @@ case "$1" in
|
|||||||
then
|
then
|
||||||
echo "NodeBB is not running";
|
echo "NodeBB is not running";
|
||||||
echo " \"./nodebb start\" to launch the NodeBB server";
|
echo " \"./nodebb start\" to launch the NodeBB server";
|
||||||
|
return 1;
|
||||||
else
|
else
|
||||||
echo "NodeBB Running (pid $(cat pidfile))";
|
echo "NodeBB Running (pid $(cat pidfile))";
|
||||||
echo " \"./nodebb stop\" to stop the NodeBB server";
|
echo " \"./nodebb stop\" to stop the NodeBB server";
|
||||||
echo " \"./nodebb log\" to view server output";
|
echo " \"./nodebb log\" to view server output";
|
||||||
echo " \"./nodebb restart\" to restart NodeBB";
|
echo " \"./nodebb restart\" to restart NodeBB";
|
||||||
|
return 0;
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -87,33 +59,33 @@ case "$1" in
|
|||||||
|
|
||||||
upgrade)
|
upgrade)
|
||||||
npm install
|
npm install
|
||||||
# ls -d node_modules/nodebb* | xargs -n1 basename | xargs npm install
|
ls -d node_modules/nodebb* | xargs -n1 basename | xargs npm install
|
||||||
# ls -d node_modules/nodebb* | xargs -n1 basename | xargs npm update
|
ls -d node_modules/nodebb* | xargs -n1 basename | xargs npm update
|
||||||
npm i nodebb-theme-vanilla nodebb-theme-lavender nodebb-widget-essentials
|
node loader --upgrade
|
||||||
"$node" app --upgrade
|
|
||||||
touch package.json
|
touch package.json
|
||||||
|
echo -e "\n\e[00;32mNodeBB Dependencies up-to-date!\e[00;00m";
|
||||||
;;
|
;;
|
||||||
|
|
||||||
setup)
|
setup)
|
||||||
"$node" app --setup "$@"
|
node loader --setup "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
reset)
|
reset)
|
||||||
"$node" app --reset --$2
|
node loader --reset
|
||||||
;;
|
;;
|
||||||
|
|
||||||
dev)
|
dev)
|
||||||
echo "Launching NodeBB in \"development\" mode."
|
echo "Launching NodeBB in \"development\" mode."
|
||||||
echo "To run the production build of NodeBB, please use \"forever\"."
|
echo "To run the production build of NodeBB, please use \"forever\"."
|
||||||
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
|
echo "More Information: https://github.com/designcreateplay/NodeBB/wiki/How-to-run-NodeBB"
|
||||||
NODE_ENV=development "$node" loader --no-daemon "$@"
|
NODE_ENV=development node loader "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
watch)
|
watch)
|
||||||
echo "Launching NodeBB in \"development\" mode."
|
echo "Launching NodeBB in \"development\" mode."
|
||||||
echo "To run the production build of NodeBB, please use \"forever\"."
|
echo "To run the production build of NodeBB, please use \"forever\"."
|
||||||
echo "More Information: https://docs.nodebb.org/en/latest/running/index.html"
|
echo "More Information: https://github.com/designcreateplay/NodeBB/wiki/How-to-run-NodeBB"
|
||||||
NODE_ENV=development supervisor -q --ignore public/templates,public/nodebb.min.js,public/nodebb.min.js.map --extensions 'node|js|tpl|less' -- app "$@"
|
NODE_ENV=development supervisor -q --ignore public/templates --extensions 'node|js|tpl' -- app "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
|
|||||||
122
nodebb.bat
122
nodebb.bat
@@ -1,122 +0,0 @@
|
|||||||
@echo off
|
|
||||||
|
|
||||||
rem %1 action
|
|
||||||
rem %2 subaction
|
|
||||||
|
|
||||||
setlocal enabledelayedexpansion
|
|
||||||
2>nul call :CASE_%1
|
|
||||||
if ERRORLEVEL 1 call :DEFAULT_CASE
|
|
||||||
|
|
||||||
exit /B
|
|
||||||
|
|
||||||
:CASE_start
|
|
||||||
echo Starting NodeBB
|
|
||||||
echo "nodebb.bat stop" to stop the NodeBB server
|
|
||||||
echo "nodebb.bat log" to view server output
|
|
||||||
|
|
||||||
rem Start the loader daemon
|
|
||||||
node loader %*
|
|
||||||
|
|
||||||
goto END_CASE
|
|
||||||
|
|
||||||
:CASE_stop
|
|
||||||
call :pidexists
|
|
||||||
if %_result%==0 (
|
|
||||||
echo NodeBB is already stopped.
|
|
||||||
) else (
|
|
||||||
echo Stopping NodeBB. Goodbye!
|
|
||||||
|
|
||||||
rem Doing this forcefully is probably not the best method
|
|
||||||
taskkill /PID !_pid! /f>nul
|
|
||||||
)
|
|
||||||
|
|
||||||
goto END_CASE
|
|
||||||
|
|
||||||
:CASE_restart
|
|
||||||
echo Unsupported
|
|
||||||
|
|
||||||
goto END_CASE
|
|
||||||
|
|
||||||
:CASE_reload
|
|
||||||
echo Unsupported
|
|
||||||
|
|
||||||
goto END_CASE
|
|
||||||
|
|
||||||
:CASE_status
|
|
||||||
call :pidexists
|
|
||||||
if %_result%==0 (
|
|
||||||
echo NodeBB is not running
|
|
||||||
echo "nodebb.bat start" to launch the NodeBB server
|
|
||||||
) else (
|
|
||||||
echo NodeBB Running ^(pid !_pid!^)
|
|
||||||
echo "nodebb.bat stop" to stop the NodeBB server
|
|
||||||
echo "nodebb.bat log" to view server output
|
|
||||||
echo "nodebb.bat restart" to restart NodeBB
|
|
||||||
)
|
|
||||||
|
|
||||||
goto END_CASE
|
|
||||||
|
|
||||||
:CASE_log
|
|
||||||
cls
|
|
||||||
type .\logs\output.log
|
|
||||||
|
|
||||||
goto END_CASE
|
|
||||||
|
|
||||||
:CASE_upgrade
|
|
||||||
call npm install
|
|
||||||
call npm i nodebb-theme-vanilla nodebb-theme-lavender nodebb-widget-essentials
|
|
||||||
node app --upgrade
|
|
||||||
copy /b package.json +,,>nul
|
|
||||||
|
|
||||||
goto END_CASE
|
|
||||||
|
|
||||||
:CASE_setup
|
|
||||||
node app --setup %*
|
|
||||||
|
|
||||||
goto END_CASE
|
|
||||||
|
|
||||||
:CASE_reset
|
|
||||||
node app --reset --%2
|
|
||||||
|
|
||||||
goto END_CASE
|
|
||||||
|
|
||||||
:CASE_dev
|
|
||||||
echo Launching NodeBB in "development" mode.
|
|
||||||
echo To run the production build of NodeBB, please use "forever".
|
|
||||||
echo More Information: https://docs.nodebb.org/en/latest/running/index.html
|
|
||||||
set NODE_ENV=development
|
|
||||||
node loader --no-daemon %*
|
|
||||||
|
|
||||||
goto END_CASE
|
|
||||||
|
|
||||||
:CASE_watch
|
|
||||||
echo Not supported
|
|
||||||
|
|
||||||
goto END_CASE
|
|
||||||
|
|
||||||
:DEFAULT_CASE
|
|
||||||
echo Welcome to NodeBB
|
|
||||||
echo Usage: nodebb.bat ^{start^|stop^|reload^|restart^|log^|setup^|reset^|upgrade^|dev^|watch^}
|
|
||||||
|
|
||||||
goto END_CASE
|
|
||||||
|
|
||||||
:END_CASE
|
|
||||||
endlocal
|
|
||||||
VER > NUL
|
|
||||||
goto :EOF
|
|
||||||
|
|
||||||
:pidexists
|
|
||||||
if exist %~dp0pidfile (
|
|
||||||
set /p _pid=<pidfile
|
|
||||||
|
|
||||||
for /f "usebackq" %%Z in (`tasklist /nh /fi "PID eq !_pid!"`) do (
|
|
||||||
if %%Z==INFO: (
|
|
||||||
del pidfile
|
|
||||||
set _result=0
|
|
||||||
) else (
|
|
||||||
set _result=1
|
|
||||||
)
|
|
||||||
)
|
|
||||||
) else (
|
|
||||||
set _result=0
|
|
||||||
)
|
|
||||||
3107
npm-shrinkwrap.json
generated
3107
npm-shrinkwrap.json
generated
File diff suppressed because it is too large
Load Diff
99
package.json
99
package.json
@@ -2,78 +2,69 @@
|
|||||||
"name": "nodebb",
|
"name": "nodebb",
|
||||||
"license": "GPLv3 or later",
|
"license": "GPLv3 or later",
|
||||||
"description": "NodeBB Forum",
|
"description": "NodeBB Forum",
|
||||||
"version": "0.6.1",
|
"version": "0.4.0",
|
||||||
"homepage": "http://www.nodebb.org",
|
"homepage": "http://www.nodebb.org",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/NodeBB/NodeBB/"
|
"url": "https://github.com/designcreateplay/NodeBB/"
|
||||||
},
|
},
|
||||||
"main": "app.js",
|
"main": "app.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "./nodebb start",
|
"start": "./nodebb start",
|
||||||
"stop": "./nodebb stop",
|
"stop": "./nodebb stop",
|
||||||
"test": "mocha ./tests -t 10000"
|
"test": "mocha ./tests"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"async": "~0.9.0",
|
"socket.io": "~0.9.16",
|
||||||
"bcryptjs": "~2.1.0",
|
"express": "3.2.0",
|
||||||
"body-parser": "^1.9.0",
|
"express-namespace": "~0.1.1",
|
||||||
"compression": "^1.1.0",
|
"passport": "~0.2.0",
|
||||||
"connect-ensure-login": "^0.1.1",
|
"passport-local": "0.1.6",
|
||||||
"connect-flash": "^0.1.1",
|
"less-middleware": "0.1.12",
|
||||||
"connect-multiparty": "^1.2.4",
|
"marked": "0.2.8",
|
||||||
"cookie-parser": "^1.3.3",
|
"async": "~0.2.8",
|
||||||
"cron": "^1.0.5",
|
"gm": "1.14.2",
|
||||||
"csurf": "^1.6.1",
|
"gravatar": "1.0.6",
|
||||||
|
"nconf": "~0.6.7",
|
||||||
|
"sitemap": "~0.7.1",
|
||||||
|
"reds": "~0.2.4",
|
||||||
|
"winston": "~0.7.2",
|
||||||
|
"rss": "~0.2.0",
|
||||||
|
"prompt": "~0.2.11",
|
||||||
|
"uglify-js": "~2.4.0",
|
||||||
|
"validator": "^3.4.0",
|
||||||
|
"cron": "~1.0.4",
|
||||||
|
"semver": "~2.2.1",
|
||||||
|
"string": "~1.7.0",
|
||||||
|
"xregexp": "~2.0.0",
|
||||||
|
"socket.io-wildcard": "~0.1.1",
|
||||||
|
"bcryptjs": "~0.7.10",
|
||||||
|
"nodebb-plugin-mentions": "~0.4.0",
|
||||||
|
"nodebb-plugin-markdown": "~0.4.1",
|
||||||
|
"nodebb-widget-essentials": "~0.0.21",
|
||||||
|
"nodebb-theme-vanilla": "~0.0.19",
|
||||||
|
"nodebb-theme-lavender": "~0.0.25",
|
||||||
|
"less": "~1.6.3",
|
||||||
"daemon": "~1.1.0",
|
"daemon": "~1.1.0",
|
||||||
"express": "^4.9.5",
|
"underscore": "^1.6.0",
|
||||||
"express-session": "^1.8.2",
|
"mkdirp": "~0.3.5",
|
||||||
"gm": "1.17.0",
|
"rimraf": "~2.2.6"
|
||||||
"gravatar": "^1.1.0",
|
},
|
||||||
"heapdump": "^0.3.0",
|
"optionalDependencies": {
|
||||||
"less": "^2.0.0",
|
"redis": "0.8.3",
|
||||||
"logrotate-stream": "^0.2.3",
|
"hiredis": "~0.1.15",
|
||||||
"mkdirp": "~0.5.0",
|
"connect-redis": "1.4.5",
|
||||||
"morgan": "^1.3.2",
|
"mongodb": "~1.3.19",
|
||||||
"nconf": "~0.7.1",
|
"connect-mongo": "0.4.0"
|
||||||
"nodebb-plugin-dbsearch": "^0.1.0",
|
|
||||||
"nodebb-plugin-markdown": "^0.8.0",
|
|
||||||
"nodebb-plugin-mentions": "^0.9.0",
|
|
||||||
"nodebb-plugin-soundpack-default": "~0.1.1",
|
|
||||||
"nodebb-plugin-spam-be-gone": "^0.4.0",
|
|
||||||
"nodebb-theme-lavender": "^0.2.0",
|
|
||||||
"nodebb-theme-vanilla": "^0.2.0",
|
|
||||||
"nodebb-widget-essentials": "~0.2.0",
|
|
||||||
"npm": "^2.1.4",
|
|
||||||
"passport": "^0.2.1",
|
|
||||||
"passport-local": "1.0.0",
|
|
||||||
"prompt": "^0.2.14",
|
|
||||||
"request": "^2.44.0",
|
|
||||||
"rimraf": "~2.2.6",
|
|
||||||
"rss": "^1.0.0",
|
|
||||||
"semver": "^4.0.3",
|
|
||||||
"serve-favicon": "^2.1.5",
|
|
||||||
"sitemap": "^0.7.4",
|
|
||||||
"socket.io": "^1.2.1",
|
|
||||||
"socket.io-client": "^1.2.1",
|
|
||||||
"socket.io-redis": "^0.1.3",
|
|
||||||
"socketio-wildcard": "~0.1.1",
|
|
||||||
"string": "^3.0.0",
|
|
||||||
"templates.js": "^0.1.15",
|
|
||||||
"uglify-js": "git+https://github.com/julianlam/UglifyJS2.git",
|
|
||||||
"underscore": "~1.7.0",
|
|
||||||
"validator": "~3.28.0",
|
|
||||||
"winston": "^0.9.0",
|
|
||||||
"xregexp": "~2.0.0"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"mocha": "~1.13.0"
|
"mocha": "~1.13.0"
|
||||||
},
|
},
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/NodeBB/NodeBB/issues"
|
"url": "https://github.com/designcreateplay/NodeBB/issues"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.10"
|
"node": ">=0.8"
|
||||||
},
|
},
|
||||||
"maintainers": [
|
"maintainers": [
|
||||||
{
|
{
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 33 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 5.9 KiB |
@@ -1,8 +1,12 @@
|
|||||||
{
|
{
|
||||||
"new_topic_button": "موضوع جديد",
|
"new_topic_button": "موضوع جديد",
|
||||||
"no_topics": "<strong>لا توجد مواضيع في هذه الفئة</strong>لم لا تحاول إنشاء موضوع؟<br />",
|
"no_topics": "<strong>لا توجد مواضيع في هذه الفئة</strong>لماذا لا تحاول نشر واحد؟<br />",
|
||||||
"browsing": "تصفح",
|
"posts": "مشاركات",
|
||||||
|
"views": "مشاهدات",
|
||||||
|
"posted": "نشر",
|
||||||
|
"browsing": "يتصفح",
|
||||||
"no_replies": "لم يرد أحد",
|
"no_replies": "لم يرد أحد",
|
||||||
"share_this_category": "انشر هذه الفئة",
|
"replied": "رد",
|
||||||
"ignore": "تجاهل"
|
"last_edited_by": "تغيرت أخيراً عبر",
|
||||||
|
"share_this_category": "Share this category"
|
||||||
}
|
}
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
"password-reset-requested": "تم طلب إعادة تعيين كلمة السر - %1!",
|
|
||||||
"welcome-to": "مرحبًا بك في %1",
|
|
||||||
"greeting_no_name": "مرحبًا",
|
|
||||||
"greeting_with_name": "مرحبًا بك يا %1",
|
|
||||||
"welcome.text1": "شكرًا على تسجيلك في %1!",
|
|
||||||
"welcome.text2": "لتفعيل حسابك، نحتاج إلى التأكد من صحة عنوان البريد الإلكتروني الذي تسجلت به.",
|
|
||||||
"welcome.cta": "انقر هنا لتفعيل عنوان بريدك الإلكتروني",
|
|
||||||
"reset.text1": "لقد توصلنا بطلب إعادة تعيين كلمة السرالخاصة بك، ربما لكونك قد نسيتها, إن لم يكن الأمر كذلك، المرجو تجاهل هذه الرسالة.",
|
|
||||||
"reset.text2": "لمواصلة طلب إعاة تعيين كلمة السر، المرجو تتبع هذا الرابط.",
|
|
||||||
"reset.cta": "انقر هنا لإعادة تعيين كلمة السر الخاصة بك.",
|
|
||||||
"digest.notifications": "لديك تنبيهات غير مقروءة من طرف %1:",
|
|
||||||
"digest.latest_topics": "آخر المستجدات من %1",
|
|
||||||
"digest.cta": "انقر هنا لمشاهدة %1",
|
|
||||||
"digest.unsub.info": "تم إرسال هذا الإشعار بآخر المستجدات وفقا لخيارات تسجيلكم.",
|
|
||||||
"digest.no_topics": "ليس هناك مواضيع نشيطة في %1 الماضي",
|
|
||||||
"notif.chat.subject": "هناك محادثة جديدة من %1",
|
|
||||||
"notif.chat.cta": "انقر هنا لمتابعة المحادثة",
|
|
||||||
"notif.chat.unsub.info": "تم إرسال هذا الإشعار بوجودة محادثة جديدة وفقا لخيارات تسجيلك.",
|
|
||||||
"notif.post.cta": "Click here to read the full topic",
|
|
||||||
"notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.",
|
|
||||||
"test.text1": "هذه رسالة تجريبية للتأكد من صحة إعدادت الرسائل الإلكترونية في منتدى NodeBB خاصتك.",
|
|
||||||
"unsub.cta": "انقر هنا لتغيير تلك الإعدادات",
|
|
||||||
"closing": "شكرًا لك!"
|
|
||||||
}
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
{
|
|
||||||
"invalid-data": "بيانات غير صالحة",
|
|
||||||
"not-logged-in": "لم تقم بتسجيل الدخول",
|
|
||||||
"account-locked": "تم إقفال حسابكم مؤقتًا.",
|
|
||||||
"search-requires-login": "البحث في المنتدى يستلزم توفرك على حساب! المرجو تسجيل دخولك أو إنشاء حساب!",
|
|
||||||
"invalid-cid": "قائمة غير موجودة",
|
|
||||||
"invalid-tid": "موضوع غير متواجد",
|
|
||||||
"invalid-pid": "رد غير موجود",
|
|
||||||
"invalid-uid": "مستخدم غير موجود",
|
|
||||||
"invalid-username": "اسم المستخدم غير مقبول",
|
|
||||||
"invalid-email": "البريد الاكتروني غير مقبول",
|
|
||||||
"invalid-title": "عنوان غير صحيح",
|
|
||||||
"invalid-user-data": "بيانات المستخدم غير صحيحة",
|
|
||||||
"invalid-password": "كلمة السر غير مقبولة",
|
|
||||||
"invalid-username-or-password": "المرجود تحديد اسم مستخدم و كلمة مرور",
|
|
||||||
"invalid-search-term": "كلمة البحث غير صحيحة",
|
|
||||||
"invalid-pagination-value": "رقم الصفحة غير موجود",
|
|
||||||
"username-taken": "اسم المستخدم مأخوذ",
|
|
||||||
"email-taken": "البريد الالكتروني مأخوذ",
|
|
||||||
"email-not-confirmed": "عنوان بريدك الإلكتروني غير مفعل بعد. انقر هنا لتفعيله من فضلك.",
|
|
||||||
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed",
|
|
||||||
"username-too-short": "اسم المستخدم قصير.",
|
|
||||||
"username-too-long": "اسم المستخدم طويل",
|
|
||||||
"user-banned": "المستخدم محظور",
|
|
||||||
"user-too-new": "عذرًا، يجب الانتظار %1 ثواني قبل إضافة ردك الأول.",
|
|
||||||
"no-category": "قائمة غير موجودة",
|
|
||||||
"no-topic": "موضوع غير موجود",
|
|
||||||
"no-post": "رد غير موجود",
|
|
||||||
"no-group": "مجموعة غير موجودة",
|
|
||||||
"no-user": "اسم مستخدم غير موجود",
|
|
||||||
"no-teaser": "مقتطف غير موجود",
|
|
||||||
"no-privileges": "لاتملك الصلاحيات اللازمة للقيام بهذه العملية",
|
|
||||||
"no-emailers-configured": "لا يمكن إرسال رسالة إلكترونية تجريبية لعدم وجود قوالب خاصة بالرسائل الإلكترونية،",
|
|
||||||
"category-disabled": "قائمة معطلة",
|
|
||||||
"topic-locked": "الموضوع مقفول",
|
|
||||||
"still-uploading": "الرجاء انتظار الرفع",
|
|
||||||
"content-too-short": "المرجو إدخال موضوع أطول من هذا. يجب أن تتوفر المواضيع على %1 حروف على الأقل.",
|
|
||||||
"title-too-short": "المرجو إدخال عنوان أطول من هذا. يجب أن تتوفر العناوين على %1 حروف على الأقل.",
|
|
||||||
"title-too-long": "المرجو إدخال عنوان أقصر من هذا. يجب ألا تتجاوز العناوين %1 حرفًا.",
|
|
||||||
"too-many-posts": "يمكنك إنشاء المواضيع بمعدل موضوع واحد كل %1 ثانية - المرجو الانتظار قليلا.",
|
|
||||||
"too-many-posts-newbie": "بصفتك مستخدمًا جديدًا، يمكنك إنشاء المواضيع بمعدل موضوع واحد كل %1 ثانية حتى تحصل على سمعة %2 - المرجو الانتظار قليلا.",
|
|
||||||
"file-too-big": "حجم الملفات الأقصى المسموح به هو %1 كب - المرجو رفع ملف أقل حجمًا",
|
|
||||||
"cant-vote-self-post": "لايمكنك التصويت لردك",
|
|
||||||
"already-favourited": "لقد سبق وأضفت هذا الرد إلى المفضلة",
|
|
||||||
"already-unfavourited": "لقد سبق وحذفت هذا الرد من المفضلة",
|
|
||||||
"cant-ban-other-admins": "لايمكن حظر مدبر نظام آخر.",
|
|
||||||
"invalid-image-type": "Invalid image type. Allowed types are: %1",
|
|
||||||
"invalid-image-extension": "Invalid image extension",
|
|
||||||
"group-name-too-short": "اسم المجموعة قصير",
|
|
||||||
"group-already-exists": "المجموعة موجودة مسبقا",
|
|
||||||
"group-name-change-not-allowed": "لايسمح بتغيير أسماء المجموعات",
|
|
||||||
"group-already-member": "You are already part of this group",
|
|
||||||
"group-needs-owner": "This group requires at least one owner",
|
|
||||||
"post-already-deleted": "سبق وتم حذف هذا الرد",
|
|
||||||
"post-already-restored": "سبق وتم إلغاء حذف هذا الرد",
|
|
||||||
"topic-already-deleted": "سبق وتم حذف هذا الموضوع",
|
|
||||||
"topic-already-restored": "سبق وتم إلغاء حذف هذا الرد",
|
|
||||||
"topic-thumbnails-are-disabled": "الصور المصغرة غير مفعلة.",
|
|
||||||
"invalid-file": "ملف غير مقبول",
|
|
||||||
"uploads-are-disabled": "رفع الملفات غير مفعل",
|
|
||||||
"upload-error": "مشكلة في الرفع: 1%",
|
|
||||||
"signature-too-long": "عذرا، توقيعك يجب ألا يتجاوز %1 حرفًا",
|
|
||||||
"cant-chat-with-yourself": "لايمكنك فتح محادثة مع نفسك",
|
|
||||||
"chat-restricted": "هذا المستخدم عطل المحادثات الواردة عليه. يجب أن يتبعك حتى تتمكن من فتح محادثة معه.",
|
|
||||||
"too-many-messages": "You have sent too many messages, please wait awhile.",
|
|
||||||
"reputation-system-disabled": "نظام السمعة معطل",
|
|
||||||
"downvoting-disabled": "التصويتات السلبية معطلة",
|
|
||||||
"not-enough-reputation-to-downvote": "ليس لديك سمعة تكفي لإضافة صوت سلبي لهذا الموضوع",
|
|
||||||
"not-enough-reputation-to-flag": "ليس لديك سمعة تكفي للإشعار بموضوع مخل",
|
|
||||||
"reload-failed": "المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
|
|
||||||
"registration-error": "حدث خطأ أثناء التسجيل",
|
|
||||||
"parse-error": "Something went wrong while parsing server response"
|
|
||||||
}
|
|
||||||
7
public/language/ar/footer.json
Normal file
7
public/language/ar/footer.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"stats.online": "حالياً على الموقع",
|
||||||
|
"stats.users": "مستخدمين",
|
||||||
|
"stats.topics": "مواضيع",
|
||||||
|
"stats.posts": "مشاركات",
|
||||||
|
"success": "نجاح"
|
||||||
|
}
|
||||||
@@ -3,79 +3,53 @@
|
|||||||
"search": "بحث",
|
"search": "بحث",
|
||||||
"buttons.close": "أغلق",
|
"buttons.close": "أغلق",
|
||||||
"403.title": "غير مسموح بالدخول",
|
"403.title": "غير مسموح بالدخول",
|
||||||
"403.message": "You seem to have stumbled upon a page that you do not have access to.",
|
"403.message": "يبدو أنك قد تعثر على الصفحة التي لم يكن لديك الوصول إليها. ربما يجب عليك <a href='/login'> تسجيل الدخول </a> ",
|
||||||
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
|
|
||||||
"404.title": "لم يتم العثور",
|
"404.title": "لم يتم العثور",
|
||||||
"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
|
"404.message": "يبدو أنك قد تعثرت على صفحة غير موجودة. عودة إلى الصفحة الرئيسية.",
|
||||||
"500.title": "خطأ داخلي.",
|
"500.title": "خطأ داخلي.",
|
||||||
"500.message": "عفوا! يبدو وكأنه شيء ذهب على نحو خاطئ!",
|
"500.message": "عفوا! يبدو وكأنه شيء ذهب على نحو خاطئ!",
|
||||||
"register": "تسجيل",
|
"register": "تسجيل",
|
||||||
"login": "دخول",
|
"login": "دخول",
|
||||||
"please_log_in": "المرجو تسجيل الدخول",
|
"please_log_in": "Please Log In",
|
||||||
"logout": "تسجيل الخروج",
|
"logout": "تسجيل الخروج",
|
||||||
"posting_restriction_info": "إضافة مشاركات جديد حكر على الأعضاء المسجلين، انقر هنا لتسجيل الدخول.",
|
"posting_restriction_info": "Posting is currently restricted to registered members only, click here to log in.",
|
||||||
"welcome_back": "مرحبًا بعودتك",
|
"welcome_back": "Welcome Back ",
|
||||||
"you_have_successfully_logged_in": "تم سجيل الدخول بنجاح",
|
"you_have_successfully_logged_in": "You have successfully logged in",
|
||||||
"save_changes": "حفظ التغييرات",
|
"save_changes": "حفظ التغييرات",
|
||||||
"close": "أغلق",
|
"close": "أغلق",
|
||||||
"pagination": "الصفحات",
|
"pagination": "Pagination",
|
||||||
"pagination.out_of": "%1 من %2",
|
"header.admin": "مشرف",
|
||||||
"pagination.enter_index": "أدخل الرقم التسلسلي",
|
|
||||||
"header.admin": "مدبر نظام",
|
|
||||||
"header.recent": "حديث",
|
"header.recent": "حديث",
|
||||||
"header.unread": "غير مقروء",
|
"header.unread": "غير مقروء",
|
||||||
"header.tags": "وسم",
|
"header.popular": "Popular",
|
||||||
"header.popular": "الأكثر شهرة",
|
|
||||||
"header.users": "المستخدمين",
|
"header.users": "المستخدمين",
|
||||||
"header.groups": "Groups",
|
"header.chats": "Chats",
|
||||||
"header.chats": "المحادثات",
|
"header.notifications": "Notifications",
|
||||||
"header.notifications": "التنبيهات",
|
|
||||||
"header.search": "بحث",
|
"header.search": "بحث",
|
||||||
"header.profile": "ملف",
|
"header.profile": "ملف",
|
||||||
"notifications.loading": "تحميل التبليغات",
|
"notifications.loading": "تحميل التبليغات",
|
||||||
"chats.loading": "تحميل الدردشات",
|
"chats.loading": "تحميل الدردشات",
|
||||||
"motd.welcome": "مرحبا بكم NodeBB، منصة مناقشة المستقبل",
|
"motd.welcome": "مرحبا بكم NodeBB، منصة مناقشة المستقبل",
|
||||||
"previouspage": "الصفحة السابقة",
|
"previouspage": "Previous Page",
|
||||||
"nextpage": "الصفحة التالية",
|
"nextpage": "Next Page",
|
||||||
"alert.success": "نجاح",
|
"alert.success": "Success",
|
||||||
"alert.error": "خطأ",
|
"alert.error": "Error",
|
||||||
"alert.banned": "محظور",
|
"alert.banned": "Banned",
|
||||||
"alert.banned.message": "لقد تم حظر حسابك. سيتم تسجيل الخروج.",
|
"alert.banned.message": "You are banned you will be logged out!",
|
||||||
"alert.unfollow": "أنت لا تتابع %1 بعد الآن!",
|
"alert.unfollow": "You are no longer following %1!",
|
||||||
"alert.follow": "أنت الآن تتابع %1!",
|
"alert.follow": "You are now following %1!",
|
||||||
"online": "المتواجدون حاليًّا",
|
"posts": "Posts",
|
||||||
"users": "الأعضاء",
|
"views": "Views",
|
||||||
"topics": "المواضيع",
|
"posted": "posted",
|
||||||
"posts": "المشاركات",
|
"in": "in",
|
||||||
"views": "المشاهدات",
|
"norecentposts": "No Recent Posts",
|
||||||
"reputation": "السمعة",
|
"norecenttopics": "No Recent Topics",
|
||||||
"read_more": "اقرأ المزيد",
|
"recentposts": "Recent Posts",
|
||||||
"posted_ago_by_guest": "كتب %1 من طرف زائر",
|
"recentips": "Recently Logged In IPs",
|
||||||
"posted_ago_by": "كتب %1 من طرف %2",
|
"online": "Online",
|
||||||
"posted_ago": "كتب %1",
|
"away": "Away",
|
||||||
"posted_in_ago_by_guest": "كتب في %1 %2 من طرف زائر",
|
"dnd": "Do not Disturb",
|
||||||
"posted_in_ago_by": "كتب في %1 %2 من طرف %3",
|
"invisible": "Invisible",
|
||||||
"posted_in_ago": "كتب في %1 %2",
|
"offline": "Offline",
|
||||||
"replied_ago": "رد %1",
|
"privacy": "Privacy"
|
||||||
"user_posted_ago": "%1 كتب %2",
|
|
||||||
"guest_posted_ago": "كتب زائر %1",
|
|
||||||
"last_edited_by_ago": "آخر تعديل من طرف %1 %2",
|
|
||||||
"norecentposts": "لاوجود لمشاركات جديدة",
|
|
||||||
"norecenttopics": "لاوجود لمواضيع جديدة",
|
|
||||||
"recentposts": "آخر المشاركات",
|
|
||||||
"recentips": "آخر عناوين ال IP التي سجلت الدخول",
|
|
||||||
"away": "غير متواجد",
|
|
||||||
"dnd": "المرجو عدم الإزعاج",
|
|
||||||
"invisible": "مخفي",
|
|
||||||
"offline": "غير متصل",
|
|
||||||
"email": "عنوان البريد الإلكتروني",
|
|
||||||
"language": "اللغة",
|
|
||||||
"guest": "زائر",
|
|
||||||
"guests": "الزوار",
|
|
||||||
"updated.title": "تم تحديث المنتدى",
|
|
||||||
"updated.message": "لقد تم تحديث المنتدى إلى آخر نسخة للتو. المرجو إعادة تحميل الصفحة.",
|
|
||||||
"privacy": "الخصوصية",
|
|
||||||
"follow": "Follow",
|
|
||||||
"unfollow": "Unfollow",
|
|
||||||
"delete_all": "حذف الكل"
|
|
||||||
}
|
}
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"groups": "المجموعات",
|
|
||||||
"view_group": "معاينة المجموعة",
|
|
||||||
"owner": "Group Owner",
|
|
||||||
"new_group": "Create New Group",
|
|
||||||
"no_groups_found": "There are no groups to see",
|
|
||||||
"cover-instructions": "Drag and Drop a photo, drag to position, and hit <strong>Save</strong>",
|
|
||||||
"cover-change": "Change",
|
|
||||||
"cover-save": "Save",
|
|
||||||
"cover-saving": "Saving",
|
|
||||||
"details.title": "تفاصيل المجموعة",
|
|
||||||
"details.members": "لائحة الأعضاء",
|
|
||||||
"details.pending": "Pending Members",
|
|
||||||
"details.has_no_posts": "أعضاء هذه المجموعة لم يضيفوا أية مشاركة",
|
|
||||||
"details.latest_posts": "آخر المشاركات",
|
|
||||||
"details.private": "Private Group",
|
|
||||||
"details.public": "Public Group",
|
|
||||||
"details.owner_options": "Group Administration",
|
|
||||||
"event.updated": "Group details have been updated",
|
|
||||||
"event.deleted": "The group \"%1\" has been deleted"
|
|
||||||
}
|
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
{
|
{
|
||||||
"username": "اسم المستخدم / عنوان البريد الإلكتروني",
|
"login": "دخول",
|
||||||
|
"username": "Username / Email",
|
||||||
|
"password": "كلمة السر",
|
||||||
"remember_me": "تذكرني؟",
|
"remember_me": "تذكرني؟",
|
||||||
"forgot_password": "نسيت كلمة المرور؟",
|
"forgot_password": "نسيت كلمة المرور؟",
|
||||||
"alternative_logins": "تسجيلات الدخول البديلة",
|
"alternative_logins": "تسجيلات الدخول البديلة",
|
||||||
"failed_login_attempt": "فشلت محاولة تسجيل الدخول، يرجى المحاولة مرة أخرى.",
|
"failed_login_attempt": "فشلت محاولة تسجيل الدخول، يرجى المحاولة مرة أخرى.",
|
||||||
"login_successful": "قمت بتسجيل الدخول بنجاح!",
|
"login_successful": "قمت بتسجيل الدخول بنجاح!"
|
||||||
"dont_have_account": "لم تفتح حسابك بعد؟"
|
|
||||||
}
|
}
|
||||||
@@ -1,21 +1,6 @@
|
|||||||
{
|
{
|
||||||
"chat.chatting_with": "الدردشة مع <span id=\"chat-with-name\"></span>",
|
"chat.chatting_with": "الدردشة مع <span id=\"chat-with-name\"></span>",
|
||||||
"chat.placeholder": "أكتب رسالة دردشة هنا، اضغط ENTER للإرسال",
|
"chat.placeholder": "اكتب رسالة دردشة هنا، وإضغط ENTER لإرسال",
|
||||||
"chat.send": "أرسل",
|
"chat.send": "أرسل",
|
||||||
"chat.no_active": "لا يوجد لديك دردشات نشطة.",
|
"chat.no_active": "لا يوجد لديك دردشات نشطة."
|
||||||
"chat.user_typing": "%1 يكتب رسالة...",
|
|
||||||
"chat.user_has_messaged_you": "%1 أرسل لك رسالة.",
|
|
||||||
"chat.see_all": "معاينة كل الدردشات",
|
|
||||||
"chat.no-messages": "المرجو اختيار مرسل إليه لمعاينة تاريخ الدردشات",
|
|
||||||
"chat.recent-chats": "آخر الدردشات",
|
|
||||||
"chat.contacts": "الأصدقاء",
|
|
||||||
"chat.message-history": "تاريخ الرسائل",
|
|
||||||
"chat.pop-out": "افتح الدردشة في نافذة خاصة",
|
|
||||||
"chat.maximize": "تكبير",
|
|
||||||
"chat.seven_days": "7 أيام",
|
|
||||||
"chat.thirty_days": "30 يومًا",
|
|
||||||
"chat.three_months": "3 أشهر",
|
|
||||||
"composer.user_said_in": "%1 كتب في %2",
|
|
||||||
"composer.user_said": "%1 كتب:",
|
|
||||||
"composer.discard": "هل أنت متأكد أنك تريد التخلي عن التغييرات؟"
|
|
||||||
}
|
}
|
||||||
@@ -1,27 +1,10 @@
|
|||||||
{
|
{
|
||||||
"title": "تنبيهات",
|
"title": "إعلام",
|
||||||
"no_notifs": "ليس لديك أية تنبيهات جديدة",
|
"no_notifs": "You have no new notifications",
|
||||||
"see_all": "معاينة كل التنبيهات",
|
"see_all": "See all Notifications",
|
||||||
"back_to_home": "عودة إلى %1",
|
"back_to_home": "العودة إلى NodeBB",
|
||||||
"outgoing_link": "رابط خارجي",
|
"outgoing_link": "رابط خارجي",
|
||||||
"outgoing_link_message": "أنت تغادر %1 حاليا.",
|
"outgoing_link_message": "أنت الأن ترحل",
|
||||||
"continue_to": "استمر إلى %1",
|
"continue_to": "أكمل إلى",
|
||||||
"return_to": "عودة إى %1",
|
"return_to": "إرجع إلى"
|
||||||
"new_notification": "تنبيه جديد",
|
|
||||||
"you_have_unread_notifications": "لديك تنبيهات غير مقروءة.",
|
|
||||||
"new_message_from": "رسالة جديدة من <strong>%1</strong>",
|
|
||||||
"upvoted_your_post_in": "<strong>%1</strong> أضاف صوتًا إيجابيا إلى مشاركتك في <strong>%2</strong>.",
|
|
||||||
"moved_your_post": "<strong>%1</strong> نقل مشاركتك.",
|
|
||||||
"moved_your_topic": "<strong>%1</strong> نقل موضوعك.",
|
|
||||||
"favourited_your_post_in": "<strong>%1</strong> أضاف مشاركتك في <strong>%2</strong> إلى مفضلته.",
|
|
||||||
"user_flagged_post_in": "<strong>%1</strong> أشعَرَ بمشاركة مخلة في <strong>%2</strong>",
|
|
||||||
"user_posted_to": "<strong>%1</strong> أضاف ردا إلى: <strong>%2</strong>",
|
|
||||||
"user_posted_topic": "<strong>%1</strong> أنشأ موضوعًا جديدًا: <strong>%2</strong>",
|
|
||||||
"user_mentioned_you_in": "<strong>%1</strong> ذكرَ اسمك في <strong>%2</strong>",
|
|
||||||
"user_started_following_you": "<strong>%1</strong> صار يتابعك.",
|
|
||||||
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
|
|
||||||
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
|
|
||||||
"email-confirm-error": "حدث خطأ ما...",
|
|
||||||
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
|
|
||||||
"email-confirm-sent": "تم إرسال بريد التفعيل."
|
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,14 @@
|
|||||||
{
|
{
|
||||||
"home": "الصفحة الرئيسية",
|
"home": "Home",
|
||||||
"unread": "المواضيع غير المقروءة",
|
"unread": "Unread Topics",
|
||||||
"popular": "المواضيع الأكثر شهرة",
|
"popular": "Popular Topics",
|
||||||
"recent": "المواضيع الحديثة",
|
"recent": "Recent Topics",
|
||||||
"users": "المستخدمون المسجلون",
|
"users": "Registered Users",
|
||||||
"notifications": "التنبيهات",
|
"notifications": "Notifications",
|
||||||
"tags": "المواضيع المرتبطة بالوسم %1",
|
"user.edit": "Editing \"%1\"",
|
||||||
"user.edit": "تعديل \"%1\"",
|
"user.following": "People %1 Follows",
|
||||||
"user.following": "المستخدمون الذين يتبعهم %1",
|
"user.followers": "People who Follow %1",
|
||||||
"user.followers": "المستخدمون الذين يتبعون %1",
|
"user.posts": "Posts made by %1",
|
||||||
"user.posts": "ردود %1",
|
"user.favourites": "%1's Favourite Posts",
|
||||||
"user.topics": "مواضيع %1",
|
"user.settings": "User Settings"
|
||||||
"user.favourites": "مفضلات %1",
|
|
||||||
"user.settings": "خيارات المستخدم",
|
|
||||||
"maintenance.text": "جاري صيانة %1. المرجو العودة لاحقًا.",
|
|
||||||
"maintenance.messageIntro": "بالإضافة إلى ذلك، قام مدبر النظام بترك هذه الرسالة:"
|
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,7 @@
|
|||||||
{
|
{
|
||||||
"title": "الحديثة",
|
"title": "Recent",
|
||||||
"day": "يوم",
|
"day": "يوم",
|
||||||
"week": "أسبوع",
|
"week": "أسبوع",
|
||||||
"month": "شهر",
|
"month": "شهر",
|
||||||
"year": "سنة",
|
"no_recent_topics": "There are no recent topics."
|
||||||
"alltime": "دائمًا",
|
|
||||||
"no_recent_topics": "لاوجود لمشاركات جديدة",
|
|
||||||
"there-is-a-new-topic": "There is a new topic.",
|
|
||||||
"there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
|
|
||||||
"there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
|
|
||||||
"there-are-new-topics": "There are %1 new topics.",
|
|
||||||
"there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
|
|
||||||
"there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
|
|
||||||
"there-is-a-new-post": "There is a new post.",
|
|
||||||
"there-are-new-posts": "There are %1 new posts.",
|
|
||||||
"click-here-to-reload": "Click here to reload."
|
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
"confirm_password": "تأكيد كلمة السر",
|
"confirm_password": "تأكيد كلمة السر",
|
||||||
"confirm_password_placeholder": "تأكيد كلمة السر",
|
"confirm_password_placeholder": "تأكيد كلمة السر",
|
||||||
"register_now_button": "قم بالتسجيل الآن",
|
"register_now_button": "قم بالتسجيل الآن",
|
||||||
"alternative_registration": "طريقة تسجيل بديلة",
|
"alternative_registration": "التسجيل البديلة",
|
||||||
"terms_of_use": "قوانين الاستخدام",
|
"terms_of_use": "Terms of Use",
|
||||||
"agree_to_terms_of_use": "أوافق على قوانين الاستخدام"
|
"agree_to_terms_of_use": "I agree to the Terms of Use"
|
||||||
}
|
}
|
||||||
@@ -3,12 +3,12 @@
|
|||||||
"update_password": "تحديث كلمة السر",
|
"update_password": "تحديث كلمة السر",
|
||||||
"password_changed.title": "تم تغير كلمة السر",
|
"password_changed.title": "تم تغير كلمة السر",
|
||||||
"password_changed.message": "<p>تم تغير كلمة السر بنجاح. يرجى <a href='/login'>إعادة الدخول</a></p>",
|
"password_changed.message": "<p>تم تغير كلمة السر بنجاح. يرجى <a href='/login'>إعادة الدخول</a></p>",
|
||||||
"wrong_reset_code.title": "رمز إعادة التعيين غير صحيح",
|
"wrong_reset_code.title": "إعادة تعيين رمز غير صحيح",
|
||||||
"wrong_reset_code.message": "رمز إعادة التعين غير صحيح، يرجى المحاولة مرة أخرى أو <a href='/reset'>اطلب رمزا جديدا</a>",
|
"wrong_reset_code.message": "رامز إعادة التعين غير صحيح، يرجى المحاولة مرة أخرى أو <a href='/reset'>اطلب رمز جديد</a>",
|
||||||
"new_password": "كلمة السر الجديدة",
|
"new_password": "كلمة السر الجديدة",
|
||||||
"repeat_password": "تأكيد كلمة السر",
|
"repeat_password": "تأكيد كلمة السر",
|
||||||
"enter_email": "يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
|
"enter_email": "يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
|
||||||
"enter_email_address": "ادخل عنوان البريد الإلكتروني",
|
"enter_email_address": "Enter Email Address",
|
||||||
"password_reset_sent": "إعادة تعيين كلمة السر أرسلت",
|
"password_reset_sent": "إعادة تعيين كلمة السر أرسلت",
|
||||||
"invalid_email": "بريد إلكتروني غير صالح أو غير موجود"
|
"invalid_email": "بريد إلكتروني غير صالح أو غير موجود"
|
||||||
}
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"results_matching": "%1 نتيجة (نتائج) موافقة ل \"%2\", (%3 ثواني)",
|
|
||||||
"no-matches": "No matches found",
|
|
||||||
"in": "In",
|
|
||||||
"by": "By",
|
|
||||||
"posted-by": "Posted by"
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"success": "نجاح",
|
|
||||||
"topic-post": "لقد تمت الإضافة بنجاح.",
|
|
||||||
"authentication-successful": "تم تسجيل الدخول بنجاح",
|
|
||||||
"settings-saved": "تم حفظ التغييرات!"
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"no_tag_topics": "لاوجود لمواضيع تحمل هذا الوسم.",
|
|
||||||
"tags": "بطاقات",
|
|
||||||
"enter_tags_here": "أدخل البطاقات هنا. اضغط ENTER بعد كل بطاقة.",
|
|
||||||
"enter_tags_here_short": "أدخل البطاقات...",
|
|
||||||
"no_tags": "لاتوجد هناك بطاقات بعد."
|
|
||||||
}
|
|
||||||
@@ -1,98 +1,87 @@
|
|||||||
{
|
{
|
||||||
"topic": "موضوع",
|
"topic": "موضوع",
|
||||||
"topic_id": "معرف الموضوع",
|
"topics": "مواضيع",
|
||||||
"topic_id_placeholder": "أدخل معرف الموضوع",
|
"topic_id": "Topic ID",
|
||||||
|
"topic_id_placeholder": "Enter topic ID",
|
||||||
"no_topics_found": "لا توجد مواضيع !",
|
"no_topics_found": "لا توجد مواضيع !",
|
||||||
"no_posts_found": "لا توجد مشاركات!",
|
"no_posts_found": "No posts found!",
|
||||||
"post_is_deleted": "هذه المشاركة محذوفة!",
|
"profile": "ملف",
|
||||||
"profile": "الملف الشخصي",
|
"posted_by": "Posted by",
|
||||||
"posted_by": "كتب من طرف %1",
|
|
||||||
"posted_by_guest": "كتب من طرف زائر",
|
|
||||||
"chat": "دردشة",
|
"chat": "دردشة",
|
||||||
"notify_me": "تلق تنبيهات بالردود الجديدة في هذا الموضوع",
|
"notify_me": "تنبه من ردود جديدة في هذا الموضوع",
|
||||||
"quote": "اقتبس",
|
"quote": "اقتبس",
|
||||||
"reply": "رد",
|
"reply": "رد",
|
||||||
"edit": "تعديل",
|
"edit": "صحح",
|
||||||
"delete": "حذف",
|
"delete": "حذف",
|
||||||
"purge": "تطهير",
|
"restore": "Restore",
|
||||||
"restore": "استعادة",
|
|
||||||
"move": "انقل",
|
"move": "انقل",
|
||||||
"fork": "فرع",
|
"fork": "فرع",
|
||||||
|
"banned": "محظور",
|
||||||
"link": "رابط",
|
"link": "رابط",
|
||||||
"share": "نشر",
|
"share": "شارك",
|
||||||
"tools": "أدوات",
|
"tools": "أدوات",
|
||||||
"flag": "اشعار بمشاركة مخلة",
|
"flag": "Flag",
|
||||||
"locked": "مقفل",
|
"bookmark_instructions": "Click here to return to your last position or close to discard.",
|
||||||
"bookmark_instructions": "انقر هنا للإكمال أو أغلق للإلغاء.",
|
"flag_title": "Flag this post for moderation",
|
||||||
"flag_title": "إشعار بمشاركة مخلة.",
|
"flag_confirm": "Are you sure you want to flag this post?",
|
||||||
"flag_confirm": "هل تريد حقًّا أن تشعر بهذه المشاركة على أنها مخلة؟",
|
"flag_success": "This post has been flagged for moderation.",
|
||||||
"flag_success": "تم الإشعار بهذه المشاركة على أنها مخلة",
|
"deleted_message": "This thread has been deleted. Only users with thread management privileges can see it.",
|
||||||
"deleted_message": "هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
|
"following_topic.title": "Following Topic",
|
||||||
"following_topic.message": "ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
|
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
||||||
"not_following_topic.message": "لن تستلم أي تنبيه بخصوص عذا الموضوع بعد الآن.",
|
"not_following_topic.title": "Not Following Topic",
|
||||||
"login_to_subscribe": "المرجو إنشاء حساب أو تسجيل الدخول حتى يمكنك متابعة هذا الموضوع.",
|
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
||||||
"markAsUnreadForAll.success": "تم تحديد الموضوع على أنه غير مقروء.",
|
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
||||||
"watch": "مراقبة",
|
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
||||||
"unwatch": "الغاء المراقبة",
|
"watch": "Watch",
|
||||||
"watch.title": "استلم تنبيها بالردود الجديدة في هذا الموضوع",
|
"watch.title": "Be notified of new replies in this topic",
|
||||||
"unwatch.title": "ألغ مراقبة هذا الموضوع",
|
"share_this_post": "Share this Post",
|
||||||
"share_this_post": "انشر هذا الموضوع",
|
|
||||||
"thread_tools.title": "أدوات الموضوع",
|
"thread_tools.title": "أدوات الموضوع",
|
||||||
"thread_tools.markAsUnreadForAll": "علم غير مقروء",
|
"thread_tools.markAsUnreadForAll": "علم غير مقروء",
|
||||||
"thread_tools.pin": "علق الموضوع",
|
"thread_tools.pin": "علق الموضوع",
|
||||||
"thread_tools.unpin": "إلغاء تعليق الموضوع",
|
"thread_tools.unpin": "Unpin Topic",
|
||||||
"thread_tools.lock": "أقفل الموضوع",
|
"thread_tools.lock": "قفل الموضوع",
|
||||||
"thread_tools.unlock": "إلغاء إقفال الموضوع",
|
"thread_tools.unlock": "Unlock Topic",
|
||||||
"thread_tools.move": "نقل الموضوع",
|
"thread_tools.move": "نقل الموضوع",
|
||||||
"thread_tools.move_all": "نقل الكل",
|
"thread_tools.fork": "تفرع الموضوع",
|
||||||
"thread_tools.fork": "إنشاء فرع الموضوع",
|
|
||||||
"thread_tools.delete": "حذف الموضوع",
|
"thread_tools.delete": "حذف الموضوع",
|
||||||
"thread_tools.delete_confirm": "هل أنت متأكد أنك تريد حذف هذا الموضوع؟",
|
"thread_tools.restore": "Restore Topic",
|
||||||
"thread_tools.restore": "استعادة الموضوع",
|
|
||||||
"thread_tools.restore_confirm": "هل أنت متأكد أنك تريد استعادة هذا الموضوع؟",
|
|
||||||
"thread_tools.purge": "تطهير الموضوع",
|
|
||||||
"thread_tools.purge_confirm": "هل أنت متأكد أنك تريد تطهير هذا الموضوع؟",
|
|
||||||
"topic_move_success": "تم نقل هذا الموضوع إلى %1 بنجاح",
|
|
||||||
"post_delete_confirm": "هل أنت متأكد أنك تريد حذف هذه المشاركة؟",
|
|
||||||
"post_restore_confirm": "هل أنت متأكد أنك تريد استعادة هذه المشاركة؟",
|
|
||||||
"post_purge_confirm": "هل أنت متأكد أنك تريد تطهير هذه المشاركة؟",
|
|
||||||
"load_categories": "تحميل الفئات",
|
"load_categories": "تحميل الفئات",
|
||||||
"disabled_categories_note": "الفئات المعطلة رمادية",
|
"disabled_categories_note": "الفئات المجلدة رمادية",
|
||||||
"confirm_move": "انقل",
|
"confirm_move": "انقل",
|
||||||
"confirm_fork": "فرع",
|
"confirm_fork": "فرع",
|
||||||
"favourite": "إضافة إلى المفضلة",
|
"favourite": "المفضل",
|
||||||
"favourites": "المفضلة",
|
"favourites": "المفضلة",
|
||||||
"favourites.has_no_favourites": "ليس لديك أي ردود مفضلة. أضف بعض المشاركات إلى المفضلة لرؤيتهم هنا",
|
"favourites.not_logged_in.title": "ليس موجود حالياً",
|
||||||
|
"favourites.not_logged_in.message": "الرجاء تسجيل الدخول لتفضل هذا الرد",
|
||||||
|
"favourites.has_no_favourites": "ليس لديك أي ردود مفضلة. فضل بعد الردود لرؤيتهم هنا",
|
||||||
|
"vote.not_logged_in.title": "Not Logged In",
|
||||||
|
"vote.not_logged_in.message": "Please log in in order to vote",
|
||||||
|
"vote.cant_vote_self.title": "Invalid Vote",
|
||||||
|
"vote.cant_vote_self.message": "You cannot vote for your own post",
|
||||||
"loading_more_posts": "تحميل المزيد من المشاركات",
|
"loading_more_posts": "تحميل المزيد من المشاركات",
|
||||||
"move_topic": "نقل الموضوع",
|
"move_topic": "نقل الموضوع",
|
||||||
"move_topics": "نقل المواضيع",
|
"move_post": "نقل الرد",
|
||||||
"move_post": "نقل المشاركة",
|
|
||||||
"post_moved": "تم نقل المشاركة",
|
|
||||||
"fork_topic": "فرع الموضوع",
|
"fork_topic": "فرع الموضوع",
|
||||||
"topic_will_be_moved_to": "هذا الموضوع سوف ينقل إلى فئة",
|
"topic_will_be_moved_to": "هذا الموضوع سوف ينقل إلى فئة",
|
||||||
"fork_topic_instruction": "إضغط على المشاركات التي تريد تفريعها",
|
"fork_topic_instruction": "إضغط على الردود لتفريعهم",
|
||||||
"fork_no_pids": "لم تختر أي مشاركة",
|
"fork_no_pids": "لم تختار أي رد",
|
||||||
"fork_success": "تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
|
"fork_success": "تفريع الموضوع بنجاح!",
|
||||||
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
|
"reputation": "سمعة",
|
||||||
"composer.handle_placeholder": "Name",
|
"posts": "ردود",
|
||||||
"composer.discard": "نبذ التغييرات",
|
"composer.title_placeholder": "Enter your topic title here...",
|
||||||
"composer.submit": "حفظ",
|
"composer.write": "Write",
|
||||||
"composer.replying_to": "الرد على %1",
|
"composer.preview": "Preview",
|
||||||
"composer.new_topic": "موضوع جديد",
|
"composer.help": "Help",
|
||||||
"composer.uploading": "جاري الرفع",
|
"composer.discard": "Discard",
|
||||||
"composer.thumb_url_label": "ألصق رابط الصورة المصغرة للموضوع",
|
"composer.submit": "Submit",
|
||||||
"composer.thumb_title": "إضافة صورة مصغرة للموضوع",
|
"composer.replying_to": "Replying to",
|
||||||
|
"composer.new_topic": "New Topic",
|
||||||
|
"composer.uploading": "uploading...",
|
||||||
|
"composer.thumb_url_label": "Paste a topic thumbnail URL",
|
||||||
|
"composer.thumb_title": "Add a thumbnail to this topic",
|
||||||
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
|
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
|
||||||
"composer.thumb_file_label": "أو قم برفع ملف",
|
"composer.thumb_file_label": "Or upload a file",
|
||||||
"composer.thumb_remove": "تفريغ الخانات",
|
"composer.thumb_remove": "Clear fields",
|
||||||
"composer.drag_and_drop_images": "اسحب وأسقص الصور هنا",
|
"composer.drag_and_drop_images": "Drag and Drop Images Here",
|
||||||
"more_users_and_guests": "%1 مستخدم(ين) و %2 زائر(ين)",
|
"composer.upload_instructions": "Upload images by dragging & dropping them."
|
||||||
"more_users": "%1 مستخدم(ين)",
|
|
||||||
"more_guests": "%1 زائر(ين)",
|
|
||||||
"users_and_others": "%1 و %2 آخرين",
|
|
||||||
"sort_by": "ترتيب حسب",
|
|
||||||
"oldest_to_newest": "من الأقدم إلى الأحدث",
|
|
||||||
"newest_to_oldest": "من الأحدث إلى الأقدم",
|
|
||||||
"most_votes": "الأكثر تصويتًا",
|
|
||||||
"most_posts": "Most posts"
|
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
{
|
{
|
||||||
"title": "غير مقروء",
|
"title": "Unread",
|
||||||
"no_unread_topics": "ليس هناك أي موضوع غير مقروء",
|
"no_unread_topics": "ليس هناك أي موضوع غير مقروء",
|
||||||
"load_more": "حمل المزيد",
|
"mark_all_read": "إجعل كل المواضيع مقرؤة",
|
||||||
"mark_as_read": "حدد غير مقروء",
|
"load_more": "حمل المزيد"
|
||||||
"selected": "المختارة",
|
|
||||||
"all": "الكل",
|
|
||||||
"topics_marked_as_read.success": "تم تحديد المواضيع على أنها مقروءة!"
|
|
||||||
}
|
}
|
||||||
@@ -2,79 +2,55 @@
|
|||||||
"banned": "محظور",
|
"banned": "محظور",
|
||||||
"offline": "ليس موجود حالياً",
|
"offline": "ليس موجود حالياً",
|
||||||
"username": "إسم المستخدم",
|
"username": "إسم المستخدم",
|
||||||
"joindate": "Join Date",
|
|
||||||
"postcount": "Post Count",
|
|
||||||
"email": "البريد الإلكتروني",
|
"email": "البريد الإلكتروني",
|
||||||
"confirm_email": "تأكيد عنوان البريد الإلكتروني",
|
|
||||||
"delete_account": "حذف الحساب",
|
|
||||||
"delete_account_confirm": "هل أن متأكد أنك تريد حذف حسابك؟<br /><strong> هذه العملية غير قابلة للإلغاء ولن يكون بالإمكان استعادة بياناتك</strong><br /><br />أدخل اسم المستخدم الخاص بك لتأكيد عملية الحذف",
|
|
||||||
"fullname": "الاسم الكامل",
|
"fullname": "الاسم الكامل",
|
||||||
"website": "الموقع الإلكتروني",
|
"website": "الموقع الإلكتروني",
|
||||||
"location": "الموقع",
|
"user:website_placeholder": "http://...",
|
||||||
"age": "السن",
|
"location": "موقع",
|
||||||
|
"age": "عمر",
|
||||||
"joined": "تاريخ التسجيل",
|
"joined": "تاريخ التسجيل",
|
||||||
"lastonline": "تاريخ آخر دخول",
|
"lastonline": "تاريخ أخر دخول",
|
||||||
"profile": "الملف الشخصي",
|
"profile": "Profile",
|
||||||
"profile_views": "عدد مشاهدات الملف الشخصي",
|
"profile_views": "مشاهد الملف",
|
||||||
"reputation": "السمعة",
|
"reputation": "سمعة",
|
||||||
"favourites": "المفضلات",
|
"posts": "ردود",
|
||||||
"watched": "Watched",
|
"favourites": "Favourites",
|
||||||
"followers": "المتابعون",
|
"followers": "أتباع",
|
||||||
"following": "يتابع",
|
"following": "يتبع",
|
||||||
"signature": "توقيع",
|
"signature": "توقيع",
|
||||||
"gravatar": "Gravatar",
|
"gravatar": "Gravatar",
|
||||||
"birthday": "عيد ميلاد",
|
"birthday": "عيد ميلاد",
|
||||||
"chat": "محادثة",
|
"birthday_placeholder": "mm/dd/yyyy",
|
||||||
"follow": "تابع",
|
"chat": "Chat",
|
||||||
"unfollow": "إلغاء المتابعة",
|
"follow": "Follow",
|
||||||
"profile_update_success": "تم تحديث الملف الشخصي بنجاح",
|
"unfollow": "Unfollow",
|
||||||
"change_picture": "تغيير الصورة",
|
"change_picture": "تغيير الصورة",
|
||||||
"edit": "تعديل",
|
"edit": "صحح",
|
||||||
"uploaded_picture": "الصورة المرفوعة",
|
"uploaded_picture": "صورة تم تحميلها",
|
||||||
"upload_new_picture": "رفع صورة جديدة",
|
"upload_new_picture": "تحميل صورة جديدة",
|
||||||
"upload_new_picture_from_url": "رفع صورة جديدة بواسطة رابط",
|
"current_password": "Current Password",
|
||||||
"current_password": "كلمة السر الحالية",
|
|
||||||
"change_password": "تغيير كلمة السر",
|
"change_password": "تغيير كلمة السر",
|
||||||
"change_password_error": "كلمة سر غير صحيحة",
|
"change_password_error": "Invalid Password!",
|
||||||
"change_password_error_wrong_current": "كلمة السر الحالية ليست صحيحة",
|
"change_password_error_wrong_current": "Your current password is not correct!",
|
||||||
"change_password_error_length": "كلمة السر قصيرة",
|
"change_password_error_length": "Password too short!",
|
||||||
"change_password_error_match": "كلمة السر غير مطابقة لتأكيد كلمة السر",
|
"change_password_error_match": "Passwords must match!",
|
||||||
"change_password_error_privileges": "ليس لديك الصلاحيات الكافية لتغيير كلمة السر هذه.",
|
"change_password_error_privileges": "You are not have the rights to change this password.",
|
||||||
"change_password_success": "تم تحديث كلمة السر خاصتك.",
|
"change_password_success": "Your password is updated!",
|
||||||
"confirm_password": "تأكيد كلمة السر",
|
"confirm_password": "تأكيد كلمة السر",
|
||||||
"password": "كلمة السر",
|
"password": "كلمة السر",
|
||||||
"username_taken_workaround": "اسم المستخدم الذي اخترته سبق أخذه، لذا تم تغييره قليلا. أن الآن مسجل تحت الاسم <strong>%1</strong>",
|
"upload_picture": "تحميل الصورة",
|
||||||
"upload_picture": "ارفع الصورة",
|
"upload_a_picture": "تحميل صورة",
|
||||||
"upload_a_picture": "رفع صورة",
|
"image_spec": "You may only upload PNG, JPG, or GIF files",
|
||||||
"image_spec": "لايمكنك رفع إلا الصور ذات الصيغ PNG أو JPG أو GIF.",
|
"max": "max.",
|
||||||
"max": "الحد الأقصى",
|
"settings": "Settings",
|
||||||
"settings": "خيارات",
|
|
||||||
"show_email": "أظهر بريدي الإلكتروني",
|
"show_email": "أظهر بريدي الإلكتروني",
|
||||||
"show_fullname": "أظهر اسمي الكامل",
|
"has_no_follower": "هذا المستخدم ليس لديه أي أتباع :(",
|
||||||
"restrict_chats": "لاتسمح بورود محادثات إلا من طرف المستخدمين الذين أتابعهم.",
|
"follows_no_one": "هذا المستخدم لا يتبع أحد :(",
|
||||||
"digest_label": "اشترك في النشرة الدورية",
|
"has_no_posts": "This user didn't post anything yet.",
|
||||||
"digest_description": "استلام اشعارات بآخر مستجدات هذا القسم (التنبيهات والمواضيع الجديدة) عبر البريد الإلكتروني وفقا لجدول زمني محدد.",
|
|
||||||
"digest_off": "غير مفعل",
|
|
||||||
"digest_daily": "يوميا",
|
|
||||||
"digest_weekly": "أسبوعيًّا",
|
|
||||||
"digest_monthly": "شهريًّا",
|
|
||||||
"send_chat_notifications": "استلام رسالة إلكترونية عند ورود محادثة وأنا غير متصل.",
|
|
||||||
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
|
|
||||||
"has_no_follower": "هذا المستخدم ليس لديه أي متابع :(",
|
|
||||||
"follows_no_one": "هذا المستخدم لا يتابع أحد :(",
|
|
||||||
"has_no_posts": "هذا المستخدم لم يكتب أي شيء بعد.",
|
|
||||||
"has_no_topics": "هذا المستخدم لم ينشئ أي موضوع بعد.",
|
|
||||||
"has_no_watched_topics": "This user didn't watch any topics yet.",
|
|
||||||
"email_hidden": "البريد الإلكتروني مخفي",
|
"email_hidden": "البريد الإلكتروني مخفي",
|
||||||
"hidden": "مخفي",
|
"hidden": "مخفي",
|
||||||
"paginate_description": "عرض المواضيع والردود موزعة على صفحات عوض صفحة واحدة.",
|
"paginate_description": "Paginate topics and posts instead of using infinite scroll.",
|
||||||
"topics_per_page": "المواضيع في كل صفحة",
|
"topics_per_page": "Topics per Page",
|
||||||
"posts_per_page": "الردود في كل صفحة",
|
"posts_per_page": "Posts per Page",
|
||||||
"notification_sounds": "تشغيل ملف صوتي عند استلام التنبيهات.",
|
"notification_sounds": "Play a sound when you receive a notification."
|
||||||
"browsing": "خيارات التصفح",
|
|
||||||
"open_links_in_new_tab": "فتح الروابط الخارجية في تبويب جديد؟",
|
|
||||||
"enable_topic_searching": "تفعيل خاصية البحث داخل المواضيع",
|
|
||||||
"topic_search_help": "في حالة تفعيلها، ستعوض خاصيةُ البحث داخل المواضيع خاصيةَ البحث الخاصة بالمتصفح، فتمكنك بالتالي بالبحث في الموضوع بأكمله دون الاقتصار على مايظهر في الشاشة فحسب.",
|
|
||||||
"follow_topics_you_reply_to": "متابعة المشاركات التي ترد عليها",
|
|
||||||
"follow_topics_you_create": "متابعة المشاركات التي تكتبها"
|
|
||||||
}
|
}
|
||||||
@@ -2,11 +2,8 @@
|
|||||||
"latest_users": "أحدث المستخدمين",
|
"latest_users": "أحدث المستخدمين",
|
||||||
"top_posters": "أكثر المشتركين",
|
"top_posters": "أكثر المشتركين",
|
||||||
"most_reputation": "أعلى سمعة",
|
"most_reputation": "أعلى سمعة",
|
||||||
|
"online": "موجودين حالياً",
|
||||||
"search": "بحث",
|
"search": "بحث",
|
||||||
"enter_username": "أدخل اسم مستخدم للبحث",
|
"enter_username": "أدخل اسم مستخدم للبحث",
|
||||||
"load_more": "حمل المزيد",
|
"load_more": "حمل المزيد"
|
||||||
"users-found-search-took": "تم إيجاد %1 مستخدمـ(ين)! استغرق البحث %2 ميليثانية.",
|
|
||||||
"filter-by": "Filter By",
|
|
||||||
"online-only": "Online only",
|
|
||||||
"picture-only": "Picture only"
|
|
||||||
}
|
}
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"new_topic_button": "নতুন টপিক",
|
|
||||||
"no_topics": "<strong>এই বিভাগে কোন টপিক নেই! </strong><br /> আপনি চাইলে একটি পোষ্ট করতে পারেন।",
|
|
||||||
"browsing": "ব্রাউজিং",
|
|
||||||
"no_replies": "কোন রিপ্লাই নেই",
|
|
||||||
"share_this_category": "এই বিভাগটি অন্যের সাথে ভাগাভাগি করুন",
|
|
||||||
"ignore": "উপেক্ষা করুন"
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
"password-reset-requested": "পাসওয়ার্ড রিসেটের জন্য অনুরোধ করা হয়েছে - %1!",
|
|
||||||
"welcome-to": "%1 এ স্বাগতম",
|
|
||||||
"greeting_no_name": "স্বাগতম",
|
|
||||||
"greeting_with_name": "স্বাগতম %1",
|
|
||||||
"welcome.text1": "%1 এ নিবন্ধন করার জন্য আপনাকে ধন্যবাদ!",
|
|
||||||
"welcome.text2": "আপনার একাউন্ট এ্যাক্টিভেট করার জন্য, আপনি যে ইমেইল এড্রেস ব্যাবহার করে নিবন্ধন করেছেন তা যাচাই করতে হবে",
|
|
||||||
"welcome.cta": "আপনার ইমেইল এড্রেস নিশ্চিত করার জন্য এখানে ক্লিক করুন",
|
|
||||||
"reset.text1": "আমরা আপনার পাসওয়ার্ড রিসেট করার অনুরোধ পেয়েছি, সম্ভবত আপনি আপনার পাসওয়ার্ড ভুলে গিয়েছেন বলেই। তবে যদি তা না হয়ে থাকে, তাহলে এই মেইলকে উপেক্ষা করতে পারেন।",
|
|
||||||
"reset.text2": "পাসওয়ার্ড রিসেট করতে নিচের লিংকে ক্লিক করুন",
|
|
||||||
"reset.cta": "পাসওয়ার্ড রিসেট করতে এখানে ক্লিক করুন",
|
|
||||||
"digest.notifications": "%1 থেকে আনরিড নোটিফিকেশন আছে।",
|
|
||||||
"digest.latest_topics": "%1 এর সর্বশেষ টপিকসমূহ",
|
|
||||||
"digest.cta": "%1 ভিজিট করতে এখানে ক্লিক করুন",
|
|
||||||
"digest.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনাকে এই ডাইজেষ্টটি পাঠানো হয়েছে।",
|
|
||||||
"digest.no_topics": "%1 এ কোন সক্রিয় টপিক নেই।",
|
|
||||||
"notif.chat.subject": "%1 এর থেকে নতুন মেসেজ এসেছে।",
|
|
||||||
"notif.chat.cta": "কথপোকথন চালিয়ে যেতে এখানে ক্লিক করুন",
|
|
||||||
"notif.chat.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনার এই নোটিফিকেশন পাঠানো হয়েছে",
|
|
||||||
"notif.post.cta": "Click here to read the full topic",
|
|
||||||
"notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.",
|
|
||||||
"test.text1": "আপনি সঠিকভাবে নোডবিবির জন্য মেইলার সেটাপ করেছেন কিনা নিশ্চিত করার জন্য এই টেষ্ট ইমেইল পাঠানো হয়েছে",
|
|
||||||
"unsub.cta": "সেটিংসগুলো পরিবর্তন করতে এখানে ক্লিক করুন",
|
|
||||||
"closing": "ধন্যবাদ!"
|
|
||||||
}
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
{
|
|
||||||
"invalid-data": "ভুল তথ্য",
|
|
||||||
"not-logged-in": "আপনি লগিন করেননি",
|
|
||||||
"account-locked": "আপনার অ্যাকাউন্ট সাময়িকভাবে লক করা হয়েছে",
|
|
||||||
"search-requires-login": "অনুসন্ধান করার জন্য একটি অ্যাকাউন্ট প্রয়োজন! অনুগ্রহপূর্বক প্রবেশ করুন অথবা নিবন্ধন করুন!",
|
|
||||||
"invalid-cid": "ভুল বিভাগ নাম্বার",
|
|
||||||
"invalid-tid": "ভুল টপিক নাম্বার",
|
|
||||||
"invalid-pid": "ভুল পোস্ট নাম্বার",
|
|
||||||
"invalid-uid": "ভুল ব্যবহারকারী নাম্বার",
|
|
||||||
"invalid-username": "ভুল ইউজারনেম",
|
|
||||||
"invalid-email": "ভুল ইমেইল",
|
|
||||||
"invalid-title": "ভুল শিরোনাম",
|
|
||||||
"invalid-user-data": "ভুল ব্যবহারকারী তথ্য",
|
|
||||||
"invalid-password": "ভুল পাসওয়ার্ড",
|
|
||||||
"invalid-username-or-password": "অনুগ্রহ পূর্বক ইউজারনেম এবং পাসওয়ার্ড উভয়ই প্রদান করুন",
|
|
||||||
"invalid-search-term": "অগ্রহনযোগ্য সার্চ টার্ম",
|
|
||||||
"invalid-pagination-value": "ভুল পৃষ্ঠা নাম্বার",
|
|
||||||
"username-taken": "ইউজারনেম আগেই ব্যবহৃত",
|
|
||||||
"email-taken": "ইমেইল আগেই ব্যবহৃত",
|
|
||||||
"email-not-confirmed": "আপনার ইমেইল এড্রেস নিশ্চিত করা হয় নি, নিশ্চিত করতে এখানে ক্লিক করুন।",
|
|
||||||
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed",
|
|
||||||
"username-too-short": "খুব ছোট ইউজারনেম",
|
|
||||||
"username-too-long": "ইউজারনেম বড় হয়ে গিয়েছে",
|
|
||||||
"user-banned": "ব্যবহারকারী নিষিদ্ধ",
|
|
||||||
"user-too-new": "দুঃখিত! প্রথম পোষ্ট করার জন্য আপনাকে %1 সেকেন্ড অপেক্ষা করতে হবে।",
|
|
||||||
"no-category": "বিভাগটি খুজে পাওয়া যায় নি",
|
|
||||||
"no-topic": "এই টপিক নেই",
|
|
||||||
"no-post": "এই পোষ্ট নেই",
|
|
||||||
"no-group": "এই গ্রুপ অস্তিত্বহীন",
|
|
||||||
"no-user": "এই নামে কোন সদস্য নেই",
|
|
||||||
"no-teaser": "টিজারটি খুজে পাওয়া যায় নি",
|
|
||||||
"no-privileges": "এই কাজটির জন্য আপনার পর্যাপ্ত অধিকার নেই",
|
|
||||||
"no-emailers-configured": "কোন ইমেল প্লাগইন লোড করা নেই, কাজেই টেস্ট মেইল পাঠানো সম্ভব হচ্ছে না",
|
|
||||||
"category-disabled": "বিভাগটি নিষ্ক্রিয়",
|
|
||||||
"topic-locked": "টপিক বন্ধ",
|
|
||||||
"still-uploading": "আপলোড সম্পূর্ণ জন্য অনুগ্রহ করে অপেক্ষা করুন",
|
|
||||||
"content-too-short": "অনুগ্রহকরে অপেক্ষকৃত বড় পোষ্ট করুন। একটি পোষ্টে নূন্যতম %1 অক্ষর থাকতে হবে।",
|
|
||||||
"title-too-short": "অনুগ্রহপূর্বক বড় শিরোনাম ব্যাবহার করুন। শিরোনামের জন্য নূন্যতম %1 অক্ষর ব্যাবহার করতে হবে।",
|
|
||||||
"title-too-long": "অনুগ্রহ করে সংক্ষিপ্ত শিরোনাম লিখুন। শিরোনাম %1 অক্ষরের বেশি হতে পারবে না।",
|
|
||||||
"too-many-posts": "আপনি প্রতি %1 সেকেন্ডে একবার পোষ্ট করতে পারবেন। পরবর্তী পোষ্ট করার জন্য অপেক্ষা করুন। ",
|
|
||||||
"too-many-posts-newbie": "নতুন সদস্য হিসাবে %2 সন্মানণা পাওয়া পর্যন্ত আপনি প্রতি %1 সেকেন্ডে একবার পোষ্ট করতে পারবেন। পরবর্তী পোষ্ট করার জন্য অপেক্ষা করুন। ",
|
|
||||||
"file-too-big": "সর্বোচ্চ গৃহীত ফাইলসাইজ হচ্ছে %1 kb - অনুগ্রহপূর্বক ছোট ফাইল আপলোড করুন",
|
|
||||||
"cant-vote-self-post": "আপনি নিজের পোস্টে ভোট দিতে পারবেন না।",
|
|
||||||
"already-favourited": "আপনি ইতিমধ্যে এই পোষ্টটি পছন্দের তালিকায় যোগ করেছেন",
|
|
||||||
"already-unfavourited": "আপনি ইতিমধ্যে এই পোষ্টটি আপনার পছন্দের তালিকা থেকে সরিয়ে ফেলেছেন",
|
|
||||||
"cant-ban-other-admins": "আপনি অন্য এ্যাডমিনদের নিষিদ্ধ করতে পারেন না!",
|
|
||||||
"invalid-image-type": "Invalid image type. Allowed types are: %1",
|
|
||||||
"invalid-image-extension": "Invalid image extension",
|
|
||||||
"group-name-too-short": "গ্রুপের নাম খুব ছোট",
|
|
||||||
"group-already-exists": "গ্রুপ ইতিমধ্যেই বিদ্যমান",
|
|
||||||
"group-name-change-not-allowed": "গ্রুপের নাম পরিবর্তনের অনুমতি নেই",
|
|
||||||
"group-already-member": "You are already part of this group",
|
|
||||||
"group-needs-owner": "This group requires at least one owner",
|
|
||||||
"post-already-deleted": "এই পোস্টটি ইতিমধ্যে ডিলিট করা হয়ে গিয়েছে",
|
|
||||||
"post-already-restored": "এই পোষ্টটি ইতিমধ্যে পুনরোদ্ধার করা হয়েছে",
|
|
||||||
"topic-already-deleted": "এই টপিকটি ইতিমধ্যে ডিলিট করা হয়েছে",
|
|
||||||
"topic-already-restored": "এই টপিকটি ইতিমধ্যে পুনরোদ্ধার করা হয়েছে",
|
|
||||||
"topic-thumbnails-are-disabled": "টপিক থাম্বনেল নিষ্ক্রিয় করা। ",
|
|
||||||
"invalid-file": "ভুল ফাইল",
|
|
||||||
"uploads-are-disabled": "আপলোড নিষ্ক্রিয় করা",
|
|
||||||
"upload-error": "আপলোড ত্রুটিঃ %1",
|
|
||||||
"signature-too-long": "দুঃখিত, আপনার সাক্ষর %1 অক্ষরের বেশী হতে পারবে না। ",
|
|
||||||
"cant-chat-with-yourself": "আপনি নিজের সাথে চ্যাট করতে পারবেন না!",
|
|
||||||
"chat-restricted": "এই সদস্য তার বার্তালাপ সংরক্ষিত রেখেছেন। এই সদস্য আপনাকে ফলো করার পরই কেবলমাত্র আপনি তার সাথে চ্যাট করতে পারবেন",
|
|
||||||
"too-many-messages": "You have sent too many messages, please wait awhile.",
|
|
||||||
"reputation-system-disabled": "সম্মাননা ব্যাবস্থা নিস্ক্রীয় রাখা হয়েছে",
|
|
||||||
"downvoting-disabled": "ঋণাত্মক ভোট নিস্ক্রীয় রাখা হয়েছে।",
|
|
||||||
"not-enough-reputation-to-downvote": "আপনার এই পোস্ট downvote করার জন্য পর্যাপ্ত সম্মাননা নেই",
|
|
||||||
"not-enough-reputation-to-flag": "এই পোষ্টকে ফ্লাগ করার জন্য আপনার পর্যাপ্ত সম্মাননা নেই",
|
|
||||||
"reload-failed": "\"%1\" রিলোড করতে সমস্যা হয়েছে। রিলোডের পূর্বে যা করা হয়েছিল সেটি আনডু করা সমীচীন। ",
|
|
||||||
"registration-error": "নিবন্ধন এরর!",
|
|
||||||
"parse-error": "Something went wrong while parsing server response"
|
|
||||||
}
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
{
|
|
||||||
"home": "নীড়পাতা",
|
|
||||||
"search": "অনুসন্ধান",
|
|
||||||
"buttons.close": "বন্ধ",
|
|
||||||
"403.title": "প্রবেশাধিকার প্রত্যাখ্যাত",
|
|
||||||
"403.message": "You seem to have stumbled upon a page that you do not have access to.",
|
|
||||||
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
|
|
||||||
"404.title": "পাওয়া যায়নি",
|
|
||||||
"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
|
|
||||||
"500.title": "অভ্যন্তরীণ ত্রুটি।",
|
|
||||||
"500.message": "ওহো! কিছু ভুল হয়েছে মনে হচ্ছে!",
|
|
||||||
"register": "নিবন্ধন",
|
|
||||||
"login": "প্রবেশ",
|
|
||||||
"please_log_in": "অনুগ্রহ করে প্রবেশ করুন",
|
|
||||||
"logout": "প্রস্থান",
|
|
||||||
"posting_restriction_info": "বর্তমানে নিবন্ধিত সদস্যরাই কেবল পোস্ট করতে পারেন, লগ ইন করতে এখানে ক্লিক করুন।",
|
|
||||||
"welcome_back": "আপনাকে স্বাগতম",
|
|
||||||
"you_have_successfully_logged_in": "আপনি সফলভাবে প্রবেশ করেছেন",
|
|
||||||
"save_changes": "পরিবর্তনগুলি সঞ্চয় করুন",
|
|
||||||
"close": "বন্ধ",
|
|
||||||
"pagination": "পাতা নং",
|
|
||||||
"pagination.out_of": "%2 এর মাঝে %1",
|
|
||||||
"pagination.enter_index": "সূচক লিখুন",
|
|
||||||
"header.admin": "অ্যাডমিন",
|
|
||||||
"header.recent": "সাম্প্রতিক",
|
|
||||||
"header.unread": "অপঠিত",
|
|
||||||
"header.tags": "ট্যাগ",
|
|
||||||
"header.popular": "জনপ্রিয়",
|
|
||||||
"header.users": "ব্যবহারকারীগণ",
|
|
||||||
"header.groups": "Groups",
|
|
||||||
"header.chats": "কথোপকথন",
|
|
||||||
"header.notifications": "বিজ্ঞপ্তি",
|
|
||||||
"header.search": "অনুসন্ধান",
|
|
||||||
"header.profile": "প্রোফাইল",
|
|
||||||
"notifications.loading": "বিজ্ঞপ্তিগুলি লোড হচ্ছে",
|
|
||||||
"chats.loading": "কথোপকথনগুলি লোড হচ্ছে ",
|
|
||||||
"motd.welcome": "ভবিষ্যতের আলোচনার প্লাটফর্ম, NodeBB তে স্বাগতম।",
|
|
||||||
"previouspage": "আগের পাতা",
|
|
||||||
"nextpage": "পরের পাতা",
|
|
||||||
"alert.success": "সফল",
|
|
||||||
"alert.error": "ত্রুটি",
|
|
||||||
"alert.banned": "নিষিদ্ধ",
|
|
||||||
"alert.banned.message": "আপনাকে কেবলই নিষিদ্ধ করা হয়েছে, আপনি এখন লগআউট হয়ে যাবেন।",
|
|
||||||
"alert.unfollow": "আপনি আর %1 কে অনুসরণ করছেন না!",
|
|
||||||
"alert.follow": "আপনি এখন %1 কে অনুসরণ করছেন!",
|
|
||||||
"online": "অনলাইন",
|
|
||||||
"users": "ব্যবহারকারীগণ",
|
|
||||||
"topics": "টপিক",
|
|
||||||
"posts": "পোস্টগুলি",
|
|
||||||
"views": "দেখেছেন",
|
|
||||||
"reputation": "সন্মাননা",
|
|
||||||
"read_more": "আরো পড়ুন",
|
|
||||||
"posted_ago_by_guest": "অতিথি পোস্ট করেছেন %1",
|
|
||||||
"posted_ago_by": " %1 %2 দ্বারা পোস্টকৃত",
|
|
||||||
"posted_ago": "পোস্ট করেছেন %1",
|
|
||||||
"posted_in_ago_by_guest": "%1 বিভাগে অতিথি পোস্ট করেছেন %2",
|
|
||||||
"posted_in_ago_by": "%3 %1 বিভাগে পোস্ট করেছেন %2",
|
|
||||||
"posted_in_ago": "%1 বিভাগে পোস্ট করা হয়েছে %2 আগে",
|
|
||||||
"replied_ago": "উত্তর দেয়া হয়েছে %1 ",
|
|
||||||
"user_posted_ago": "%1 পোস্ট করেছেন %2",
|
|
||||||
"guest_posted_ago": "অতিথি পোস্ট করেছেন %1",
|
|
||||||
"last_edited_by_ago": "সর্বশেষ সম্পাদনা করেছেন %1 %2",
|
|
||||||
"norecentposts": "কোনও সাম্প্রতিক পোস্ট নেই",
|
|
||||||
"norecenttopics": "কোনও সাম্প্রতিক টপিক নেই",
|
|
||||||
"recentposts": "সাম্প্রতিক পোস্ট",
|
|
||||||
"recentips": "সাম্প্রতিক প্রবেশকৃত আইপি সমুহ",
|
|
||||||
"away": "দূরে",
|
|
||||||
"dnd": "বিরক্ত করবেন না",
|
|
||||||
"invisible": "অদৃশ্য",
|
|
||||||
"offline": "অফলাইন",
|
|
||||||
"email": "ইমেইল",
|
|
||||||
"language": "ভাষা",
|
|
||||||
"guest": "অতিথি",
|
|
||||||
"guests": "অতিথি",
|
|
||||||
"updated.title": "ফোরাম আপডেট করা হয়েছে",
|
|
||||||
"updated.message": "এই ফোরামে এইমাত্র সর্বশেষ সংস্করণে আপডেট করা হয়েছে। পৃষ্ঠাটি রিফ্রেশ করতে এখানে ক্লিক করুন।",
|
|
||||||
"privacy": "নিরাপত্তা",
|
|
||||||
"follow": "Follow",
|
|
||||||
"unfollow": "Unfollow",
|
|
||||||
"delete_all": "সব মুছে ফেলুন"
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"groups": "গ্রুপসমূহ",
|
|
||||||
"view_group": "গ্রুপ দেখুন",
|
|
||||||
"owner": "Group Owner",
|
|
||||||
"new_group": "Create New Group",
|
|
||||||
"no_groups_found": "There are no groups to see",
|
|
||||||
"cover-instructions": "Drag and Drop a photo, drag to position, and hit <strong>Save</strong>",
|
|
||||||
"cover-change": "Change",
|
|
||||||
"cover-save": "Save",
|
|
||||||
"cover-saving": "Saving",
|
|
||||||
"details.title": "গ্রুপের বিস্তারিত",
|
|
||||||
"details.members": "সদস্য তালিকা",
|
|
||||||
"details.pending": "Pending Members",
|
|
||||||
"details.has_no_posts": "এই গ্রুপের সদস্যরা এখনো কোন পোষ্ট করেন নি",
|
|
||||||
"details.latest_posts": "সর্বশেষ পোষ্টসমূহ",
|
|
||||||
"details.private": "Private Group",
|
|
||||||
"details.public": "Public Group",
|
|
||||||
"details.owner_options": "Group Administration",
|
|
||||||
"event.updated": "Group details have been updated",
|
|
||||||
"event.deleted": "The group \"%1\" has been deleted"
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "বাংলা",
|
|
||||||
"code": "bn",
|
|
||||||
"dir": "ltr"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"username": "ইউজারনেম / ইমেইল",
|
|
||||||
"remember_me": "মনে রাখুন",
|
|
||||||
"forgot_password": "পাসওয়ার্ড ভুলে গিয়েছেন?",
|
|
||||||
"alternative_logins": "বিকল্প প্রবেশ",
|
|
||||||
"failed_login_attempt": "প্রবেশ সফল হয় নি, আবার চেষ্টা করুন।",
|
|
||||||
"login_successful": "আপনি সফলভাবে প্রবেশ করেছেন!",
|
|
||||||
"dont_have_account": "কোন একাউন্ট নেই?"
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"chat.chatting_with": "<span id=\"chat-with-name\"></span> এর সাথে কথোপকথন",
|
|
||||||
"chat.placeholder": "এখানে আপনার বার্তা লিখুন। পাঠানোর জন্য Enter চাপুন",
|
|
||||||
"chat.send": "প্রেরন করুন",
|
|
||||||
"chat.no_active": "আপনার কোন সচল কথোপকথন নেই",
|
|
||||||
"chat.user_typing": "%1 লিখছেন",
|
|
||||||
"chat.user_has_messaged_you": "%1 আপনাকে বার্তা পাঠিয়েছেন",
|
|
||||||
"chat.see_all": "সকল কথোপকথন দেখুন",
|
|
||||||
"chat.no-messages": "মেসেজ হিস্টোরী দেখতে প্রাপক নির্বাচন করুন",
|
|
||||||
"chat.recent-chats": "সাম্প্রতিক চ্যাটসমূহ",
|
|
||||||
"chat.contacts": "কন্টাক্টস",
|
|
||||||
"chat.message-history": "মেসেজ হিস্টোরী",
|
|
||||||
"chat.pop-out": "চ্যাট উইন্ডো আলাদা করুন",
|
|
||||||
"chat.maximize": "ম্যাক্সিমাইজ",
|
|
||||||
"chat.seven_days": "৭ দিন",
|
|
||||||
"chat.thirty_days": "৩০ দিন",
|
|
||||||
"chat.three_months": "৩ মাস",
|
|
||||||
"composer.user_said_in": "%1 বলেছেন %2:",
|
|
||||||
"composer.user_said": "%1 বলেছেনঃ",
|
|
||||||
"composer.discard": "আপনি কি নিশ্চিত যে আপনি এই পোস্ট বাতিল করতে ইচ্ছুক?"
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"title": "বিজ্ঞপ্তিগুলো",
|
|
||||||
"no_notifs": "আপনার নতুন কোন বিজ্ঞপ্তি নেই",
|
|
||||||
"see_all": "সকল বিজ্ঞপ্তিগুলো দেখুন",
|
|
||||||
"back_to_home": "ফিরুন %1",
|
|
||||||
"outgoing_link": "বহির্গামী লিঙ্ক",
|
|
||||||
"outgoing_link_message": "আপনি এখন %1 ত্যাগ করছেন",
|
|
||||||
"continue_to": "%1 তে আগান",
|
|
||||||
"return_to": "%1 এ ফেরত যান",
|
|
||||||
"new_notification": "নতুন বিজ্ঞপ্তি",
|
|
||||||
"you_have_unread_notifications": "আপনার অপঠিত বিজ্ঞপ্তি আছে।",
|
|
||||||
"new_message_from": "<strong>%1</strong> থেকে নতুন বার্তা",
|
|
||||||
"upvoted_your_post_in": "<strong>%1</strong> , <strong>%2</strong> এ আপানার পোষ্টকে আপভোট করেছেন। ",
|
|
||||||
"moved_your_post": "<strong>%1</strong> আপনার পোষ্ট সরিয়ে নিয়েছেন। ",
|
|
||||||
"moved_your_topic": "<strong>%1</strong> আপনার টপিক সরিয়ে নিয়েছেন। ",
|
|
||||||
"favourited_your_post_in": "<strong>%1</strong> has favourited your post in <strong>%2</strong>.",
|
|
||||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
|
||||||
"user_posted_to": "<strong>%1</strong> একটি উত্তর দিয়েছেন: <strong>%2</strong>",
|
|
||||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
|
||||||
"user_mentioned_you_in": "<strong>%1</strong>, <strong>%2</strong> এ আপনার নাম উল্লেখ করেছেন",
|
|
||||||
"user_started_following_you": "<strong>%1</strong> আপনাকে অনুসরন করা শুরু করেছেন।",
|
|
||||||
"email-confirmed": "ইমেইল নিশ্চিত করা হয়েছে",
|
|
||||||
"email-confirmed-message": "আপনার ইমেইল যাচাই করার জন্য আপনাকে ধন্যবাদ। আপনার অ্যাকাউন্টটি এখন সম্পূর্ণরূপে সক্রিয়।",
|
|
||||||
"email-confirm-error": "একটি ত্রুটি ঘটেছে...",
|
|
||||||
"email-confirm-error-message": "আপনার ইমেল ঠিকানার বৈধতা যাচাইয়ে একটি সমস্যা হয়েছে। সম্ভবত কোডটি ভুল ছিল অথবা কোডের মেয়াদ শেষ হয়ে গিয়েছে।",
|
|
||||||
"email-confirm-sent": "নিশ্চিতকরণ ইমেইল পাঠানো হয়েছে।"
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"home": "নীড়পাতা",
|
|
||||||
"unread": "অপঠিত টপিক",
|
|
||||||
"popular": "জনপ্রিয় টপিক",
|
|
||||||
"recent": "সাম্প্রতিক টপিক",
|
|
||||||
"users": "নিবন্ধিত সদস্যগণ",
|
|
||||||
"notifications": "বিজ্ঞপ্তি",
|
|
||||||
"tags": "\"%1\" এ ট্যগকৃত টপিকসমূহ",
|
|
||||||
"user.edit": "সম্পাদনা \"%1\"",
|
|
||||||
"user.following": "%1 যাদের অনুসরণ করেন",
|
|
||||||
"user.followers": "যারা %1 কে অনুসরণ করেন",
|
|
||||||
"user.posts": "%1 এর পোস্ট সমুহ",
|
|
||||||
"user.topics": "%1 এর টপিক সমুহ",
|
|
||||||
"user.favourites": "%1'র প্রিয় পোস্টগুলো",
|
|
||||||
"user.settings": "সদস্য সেটিংস",
|
|
||||||
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
|
|
||||||
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"title": "সাম্প্রতিক",
|
|
||||||
"day": "দিন",
|
|
||||||
"week": "সপ্তাহ",
|
|
||||||
"month": "মাস",
|
|
||||||
"year": "বছর",
|
|
||||||
"alltime": "সবসময় ",
|
|
||||||
"no_recent_topics": "কোন সাম্প্রতিক টপিক নেই। ",
|
|
||||||
"there-is-a-new-topic": "There is a new topic.",
|
|
||||||
"there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
|
|
||||||
"there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
|
|
||||||
"there-are-new-topics": "There are %1 new topics.",
|
|
||||||
"there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
|
|
||||||
"there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
|
|
||||||
"there-is-a-new-post": "There is a new post.",
|
|
||||||
"there-are-new-posts": "There are %1 new posts.",
|
|
||||||
"click-here-to-reload": "Click here to reload."
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"register": "নিবন্ধন",
|
|
||||||
"help.email": "ডিফল্টভাবে, আপনার ইমেইল সর্বসাধারণ থেকে লুকানো থাকবে।",
|
|
||||||
"help.username_restrictions": "%1 এবং %2 অক্ষরের মাঝে একটি অনন্য সদস্য নাম। বাকিরা আপনাকে @<span id='yourUsername'>নাম</span> দিয়ে উল্লেখ করতে পারবেন।",
|
|
||||||
"help.minimum_password_length": "আপনার পাসওয়ার্ড এর দৈর্ঘ্য অন্তত %1 অক্ষরের হতে হবে।",
|
|
||||||
"email_address": "ইমেইল অ্যাড্রেস",
|
|
||||||
"email_address_placeholder": "ইমেইল অ্যাড্রেস লিখুন",
|
|
||||||
"username": "ইউজারনেম",
|
|
||||||
"username_placeholder": "ইউজারনেম লিখুন",
|
|
||||||
"password": "পাসওয়ার্ড",
|
|
||||||
"password_placeholder": "পাসওয়ার্ড লিখুন",
|
|
||||||
"confirm_password": "পাসওয়ার্ড নিশ্চিত করুন",
|
|
||||||
"confirm_password_placeholder": "পাসওয়ার্ড নিশ্চিত করুন",
|
|
||||||
"register_now_button": "নিবন্ধন করুন",
|
|
||||||
"alternative_registration": "বিকল্প নিবন্ধন",
|
|
||||||
"terms_of_use": "নিয়মাবলী",
|
|
||||||
"agree_to_terms_of_use": "আমি নিয়মাবলী মেনে চলতে সম্মতি জানালাম"
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
"reset_password": "পাসওয়ার্ড রিসেট",
|
|
||||||
"update_password": "পাসওয়ার্ড হালনাগাদ",
|
|
||||||
"password_changed.title": "পাসওয়ার্ড পরিবর্তন করা হয়েছে",
|
|
||||||
"password_changed.message": "<p>পাসওয়ার্ড সফলভাবে রিসেট করা হয়েছে, পুনরায় <a href=\"/login\">প্রবেশ<a> করুন।",
|
|
||||||
"wrong_reset_code.title": "ভুল রিসেট কোড",
|
|
||||||
"wrong_reset_code.message": "প্রাপ্ত রিসেট কোডটি ভুল ছিল। আবার চেষ্টা করুন, অথবা <a href=\"/reset\">একটি নতুন রিসেট কোড</a> অনুরোধ করুন।",
|
|
||||||
"new_password": "নতুন পাসওয়ার্ড",
|
|
||||||
"repeat_password": "পাসওয়ার্ড নিশ্চিত করুন",
|
|
||||||
"enter_email": "অনুগ্রহপূর্বক আপনার ইমেইল এড্রেস প্রদান করুন, আমরা আপনাকে আপনার পাসওয়ার্ড রিসেট সম্পর্কিত তথ্যাবলী ইমেইলে পাঠিয়ে দিবো। ",
|
|
||||||
"enter_email_address": "আপনার ইমেইল এড্রেস",
|
|
||||||
"password_reset_sent": "পাসওয়ার্ড রিসেট মেইল পাঠানো হয়েছে",
|
|
||||||
"invalid_email": "ভুল ইমেইল / ইমেইল ডেটাবেইজে নেই"
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"results_matching": "\"%2\" এর সাথে মিলিয়ে %1 ফলাফল পাওয়া গেছে, ( %3 seconds সময় লেগেছে )",
|
|
||||||
"no-matches": "No matches found",
|
|
||||||
"in": "In",
|
|
||||||
"by": "By",
|
|
||||||
"posted-by": "Posted by"
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"success": "সফল হয়েছে",
|
|
||||||
"topic-post": "আপনি সফলভাবে পোষ্ট করেছেন। ",
|
|
||||||
"authentication-successful": "অথেন্টিকেশন সফল হয়েছে",
|
|
||||||
"settings-saved": "সেটিংস সেভ করা হয়েছে। "
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"no_tag_topics": "এই ট্যাগ সম্বলিত কোন টপিক নেই",
|
|
||||||
"tags": "ট্যাগসমূহ",
|
|
||||||
"enter_tags_here": "এখানে আপনার ট্যাগ টাইপ করুন, প্রত্যেকটি ট্যাগের পর Enter চাপুন",
|
|
||||||
"enter_tags_here_short": "ট্যাগ বসান",
|
|
||||||
"no_tags": "এখন পর্যন্ত কোন ট্যাগ নেই"
|
|
||||||
}
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
{
|
|
||||||
"topic": "টপিক",
|
|
||||||
"topic_id": "টপিক নাম্বার ",
|
|
||||||
"topic_id_placeholder": "টপিক নাম্বার দিন ",
|
|
||||||
"no_topics_found": "কোন টপিক পাওয়া যায়নি!",
|
|
||||||
"no_posts_found": "কোন পোস্ট পাওয়া যায়নি",
|
|
||||||
"post_is_deleted": "এই পোস্টটি মুছে ফেলা হয়েছে!",
|
|
||||||
"profile": "প্রোফাইল ",
|
|
||||||
"posted_by": "পোস্ট করেছেন %1",
|
|
||||||
"posted_by_guest": "অতিথি পোস্ট ",
|
|
||||||
"chat": "আলাপচারি",
|
|
||||||
"notify_me": "এই টপিকে নতুন উত্তর আসলে জানুন",
|
|
||||||
"quote": "উদ্ধৃতি",
|
|
||||||
"reply": "উত্তর",
|
|
||||||
"edit": "সম্পাদণা",
|
|
||||||
"delete": "মুছে ফেলুন",
|
|
||||||
"purge": "পার্জ",
|
|
||||||
"restore": "পুনরূদ্ধার",
|
|
||||||
"move": "সরানো",
|
|
||||||
"fork": "শাখা",
|
|
||||||
"link": "লিঙ্ক",
|
|
||||||
"share": "শেয়ার",
|
|
||||||
"tools": "টুলস",
|
|
||||||
"flag": "ফ্ল্যাগ",
|
|
||||||
"locked": "বন্ধ",
|
|
||||||
"bookmark_instructions": "আপনার সর্বশেষ অবস্থানে ফিরে যাবার জন্য এখানে ক্লিক করুন অথবা অগ্রাহ্য করতে চাইলে বন্ধ করুন",
|
|
||||||
"flag_title": "মডারেশনের জন্য এই পোস্টটি ফ্ল্যাগ করুন",
|
|
||||||
"flag_confirm": "আপনি কি নিশ্চিত যে এই পোস্টটিকে আপনি ফ্ল্যাগ করতে চান? ",
|
|
||||||
"flag_success": "এই পোস্টটি মডারেশনের জন্য ফ্ল্যাগ করা হয়েছে।",
|
|
||||||
"deleted_message": "এই টপিকটি মুছে ফেলা হয়েছে। শুধুমাত্র টপিক ব্যবস্থাপনার ক্ষমতাপ্রাপ্ত সদস্যগণ এটি দেখতে পারবেন।",
|
|
||||||
"following_topic.message": "এখন থেকে এই টপিকে অন্যকেউ পোস্ট করলে আপনি নোটিফিকেশন পাবেন।",
|
|
||||||
"not_following_topic.message": "এই টপিক থেকে আপনি আর নোটিফিকেশন পাবেন না।",
|
|
||||||
"login_to_subscribe": "এই টপিকে সাবস্ক্রাইব করতে চাইলে অনুগ্রহ করে নিবন্ধণ করুন অথবা প্রবেশ করুন।",
|
|
||||||
"markAsUnreadForAll.success": "টপিকটি সবার জন্য অপঠিত হিসাবে মার্ক করুন।",
|
|
||||||
"watch": "দেখা",
|
|
||||||
"unwatch": "অদেখা",
|
|
||||||
"watch.title": "এই টপিকে নতুন উত্তর এলে বিজ্ঞাপণের মাধ্যমে জানুন।",
|
|
||||||
"unwatch.title": "এই টপিক দেখা বন্ধ করুন",
|
|
||||||
"share_this_post": "এই পোষ্টটি শেয়ার করুন",
|
|
||||||
"thread_tools.title": "টপিক সম্পর্কিত টুলস",
|
|
||||||
"thread_tools.markAsUnreadForAll": "\"অপঠিত\" হিসেবে চিহ্নিত করুন",
|
|
||||||
"thread_tools.pin": "টপিক পিন করুন",
|
|
||||||
"thread_tools.unpin": "টপিক আনপিন করুন",
|
|
||||||
"thread_tools.lock": "টপিক বন্ধ করুন",
|
|
||||||
"thread_tools.unlock": "টপিক খুলে দিন",
|
|
||||||
"thread_tools.move": "টপিক সরান",
|
|
||||||
"thread_tools.move_all": "সমস্ত টপিক সরান",
|
|
||||||
"thread_tools.fork": "টপিক ফর্ক করুন",
|
|
||||||
"thread_tools.delete": "টপিক মুছে ফেলুন",
|
|
||||||
"thread_tools.delete_confirm": "আপনি নিশ্চিত যে আপনি এই টপিকটি মুছে ফেলতে চান?",
|
|
||||||
"thread_tools.restore": "টপিক পুনরূদ্ধার করুন",
|
|
||||||
"thread_tools.restore_confirm": "আপনি নিশ্চিত যে আপনি টপিকটি পুনরূদ্ধার করতে চান?",
|
|
||||||
"thread_tools.purge": "টপিক পার্জ করুন",
|
|
||||||
"thread_tools.purge_confirm": "আপনি নিশ্চিত যে আপনি টপিকটি পার্জ করতে চাচ্ছেন ? ",
|
|
||||||
"topic_move_success": "টপিকটি %1 এ সরিয়ে নেয়া হয়েছে",
|
|
||||||
"post_delete_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি মুছে ফেলতে চান ?",
|
|
||||||
"post_restore_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি পুনরূূদ্ধার করতে চান ? ",
|
|
||||||
"post_purge_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি পার্জ করতে চান ? ",
|
|
||||||
"load_categories": "ক্যাটাগরী লোড করা হচ্ছে",
|
|
||||||
"disabled_categories_note": "নিস্ক্রীয় ক্যাটাগরীসমূহ ধূসর কালিতে লেখা রয়েছে। ",
|
|
||||||
"confirm_move": "সরান",
|
|
||||||
"confirm_fork": "ফর্ক",
|
|
||||||
"favourite": "পছন্দ",
|
|
||||||
"favourites": "পছন্দতালিকা",
|
|
||||||
"favourites.has_no_favourites": "আপনার যদি কোন পছন্দের পোষ্ট না থেকে থাকে তাহলে কিছু পোষ্ট ফেভারিট করা হলে সেগুলো এখানে দেখতে পাবেন।",
|
|
||||||
"loading_more_posts": "আরো পোষ্ট লোড করা হচ্ছে",
|
|
||||||
"move_topic": "টপিক সরান",
|
|
||||||
"move_topics": "টপিক সমূহ সরান",
|
|
||||||
"move_post": "পোষ্ট সরান",
|
|
||||||
"post_moved": "পোষ্ট সরানো হয়েছে",
|
|
||||||
"fork_topic": "টপিক ফর্ক করুন",
|
|
||||||
"topic_will_be_moved_to": "এই টপিকটি ক্যাটাগরীতে সরানো হবে",
|
|
||||||
"fork_topic_instruction": "যে পোষ্টটি ফর্ক করতে চান সেটি ক্লিক করুন",
|
|
||||||
"fork_no_pids": "কোন পোষ্ট সিলেক্ট করা হয় নি",
|
|
||||||
"fork_success": "টপিক ফর্ক করা হয়েছে। ফর্ক করা টপিকে যেতে এখানে ক্লিক করুন",
|
|
||||||
"composer.title_placeholder": "আপনার টপিকের শিরোনাম দিন",
|
|
||||||
"composer.handle_placeholder": "Name",
|
|
||||||
"composer.discard": "বাতিল",
|
|
||||||
"composer.submit": "সাবমিট",
|
|
||||||
"composer.replying_to": "%1 এর উত্তরে:",
|
|
||||||
"composer.new_topic": "নতুন টপিক",
|
|
||||||
"composer.uploading": "আপলোডিং",
|
|
||||||
"composer.thumb_url_label": "টপিকে থাম্বনেইল URL পেষ্ট করুন",
|
|
||||||
"composer.thumb_title": "এই টপিকে থাম্বনেইল যোগ করুন",
|
|
||||||
"composer.thumb_url_placeholder": "http://example.com/thumb.png",
|
|
||||||
"composer.thumb_file_label": "অথবা একটি ফাইল আপলোড করুন",
|
|
||||||
"composer.thumb_remove": "ফিল্ড ক্লিয়ার করুন",
|
|
||||||
"composer.drag_and_drop_images": "ছবি এখানে ড্র্যাগ করে এনে ছেড়ে দিন",
|
|
||||||
"more_users_and_guests": "%1 more user(s) and %2 guest(s)",
|
|
||||||
"more_users": "%1 more user(s)",
|
|
||||||
"more_guests": "%1 more guest(s)",
|
|
||||||
"users_and_others": "%1 and %2 others",
|
|
||||||
"sort_by": "সাজানোর ভিত্তি:",
|
|
||||||
"oldest_to_newest": "পুরাতন থেকে নতুন",
|
|
||||||
"newest_to_oldest": "নতুন থেকে পুরাতন",
|
|
||||||
"most_votes": "সর্বোচ্চ ভোট",
|
|
||||||
"most_posts": "Most posts"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"title": "অপঠিত",
|
|
||||||
"no_unread_topics": "কোন অপঠিত টপিক নেই",
|
|
||||||
"load_more": "আরো লোড করুন",
|
|
||||||
"mark_as_read": "পঠিত হিসেবে চিহ্নিত করুন",
|
|
||||||
"selected": "নির্বাচিত",
|
|
||||||
"all": "সবগুলো",
|
|
||||||
"topics_marked_as_read.success": "পঠিত হিসেবে চিহ্নিত টপিকসমূহ"
|
|
||||||
}
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
{
|
|
||||||
"banned": "নিষিদ্ধ",
|
|
||||||
"offline": "অফলাইন",
|
|
||||||
"username": "সদস্যের নাম",
|
|
||||||
"joindate": "Join Date",
|
|
||||||
"postcount": "Post Count",
|
|
||||||
"email": "ইমেইল",
|
|
||||||
"confirm_email": "ইমেইল নিশ্চিত করুন",
|
|
||||||
"delete_account": "একাউন্ট মুছে ফেলুন",
|
|
||||||
"delete_account_confirm": "আপনি কি নিশ্চিত যে আপনি আপনার একাউন্ট মুছে ফেলতে চান ? <br /><strong>এই কাজটির ফলে আপনার কোন তথ্য পুনরূদ্ধার করা সম্ভব নয় </strong><br /><br /> নিশ্চিত করতে আপনার ইউজারনেম প্রবেশ করান। ",
|
|
||||||
"fullname": "পুর্ণ নাম",
|
|
||||||
"website": "ওয়েবসাইট",
|
|
||||||
"location": "স্থান",
|
|
||||||
"age": "বয়স",
|
|
||||||
"joined": "যোগদান করেছেন",
|
|
||||||
"lastonline": "সর্বশেষ অনলাইনে ছিলেন",
|
|
||||||
"profile": "প্রোফাইল",
|
|
||||||
"profile_views": "প্রোফাইল দেখেছেন",
|
|
||||||
"reputation": "সন্মাননা",
|
|
||||||
"favourites": "পছন্দের তালিকা",
|
|
||||||
"watched": "Watched",
|
|
||||||
"followers": "যাদের অনুসরণ করছেন",
|
|
||||||
"following": "যারা আপনাকে অনুসরণ করছে",
|
|
||||||
"signature": "স্বাক্ষর",
|
|
||||||
"gravatar": "গ্রাভাতার",
|
|
||||||
"birthday": "জন্মদিন",
|
|
||||||
"chat": "বার্তালাপ",
|
|
||||||
"follow": "অনুসরন করুন",
|
|
||||||
"unfollow": "অনুসরন করা থেকে বিরত থাকুন",
|
|
||||||
"profile_update_success": "প্রোফাইল আপডেট সফল হয়েছে",
|
|
||||||
"change_picture": "ছবি পরিবর্তন",
|
|
||||||
"edit": "সম্পাদনা",
|
|
||||||
"uploaded_picture": "ছবি আপলোড করুন",
|
|
||||||
"upload_new_picture": "নতুন ছবি আপলোড করুন",
|
|
||||||
"upload_new_picture_from_url": "URL থেকে নতুন ছবি আপলোড করুন",
|
|
||||||
"current_password": "বর্তমান পাসওয়ার্ড",
|
|
||||||
"change_password": "পাসওয়ার্ড পরিবর্তন",
|
|
||||||
"change_password_error": "অগ্রহনযোগ্য পাসওয়ার্ড",
|
|
||||||
"change_password_error_wrong_current": "আপনার পাসওয়ার্ড সঠিক নয়",
|
|
||||||
"change_password_error_length": "পাসওয়ার্ড অতিরিক্ত ছোট",
|
|
||||||
"change_password_error_match": "পাসওয়ার্ড অবশ্যই একই হতে হবে",
|
|
||||||
"change_password_error_privileges": "আপনার পাসওয়ার্ড পরিবর্তন করার অনুমতি নেই",
|
|
||||||
"change_password_success": "আপনার পাসওয়ার্ড আপডেট করা হয়েছে",
|
|
||||||
"confirm_password": "পাসওয়ার্ড নিশ্চিত করুন",
|
|
||||||
"password": "পাসওয়ার্ড",
|
|
||||||
"username_taken_workaround": "আপনি যে ইউজারনেম চাচ্ছিলেন সেটি ইতিমধ্যে নেয়া হয়ে গেছে, কাজেই আমরা এটি কিঞ্চিং পরিবর্তন করেছি। আপনি এখন <strong>%1</strong> হিসেবে পরিচিত",
|
|
||||||
"upload_picture": "ছবি আপলোড করুন",
|
|
||||||
"upload_a_picture": "ছবি (একটি) আপলোড করুন",
|
|
||||||
"image_spec": "আপনি কেবলমাত্র PNG, JPG অথবা GIF ফাইল আপলোড করতে পারবেন",
|
|
||||||
"max": "সর্বোচ্চ",
|
|
||||||
"settings": "সেটিংস",
|
|
||||||
"show_email": "আমার ইমেইল দেখাও",
|
|
||||||
"show_fullname": "আমার সম্পূর্ণ নাম দেখাও",
|
|
||||||
"restrict_chats": "আমি যাদের ফলো করি কেবলমাত্র তাদের থেকে বার্তা গ্রহন করা হোক",
|
|
||||||
"digest_label": "ডাইজেষ্টে সাবস্ক্রাইব করুন",
|
|
||||||
"digest_description": "শিডিউল অনূযায়ী এই ফোরামের ইমেইল আপডেটের জন্য সাবস্ক্রাইব করুন (নতুন নোটিফিকেশন এবং টপিকসমূহ )",
|
|
||||||
"digest_off": "বন্ধ",
|
|
||||||
"digest_daily": "দৈনিক",
|
|
||||||
"digest_weekly": "সাপ্তাহিক",
|
|
||||||
"digest_monthly": "মাসিক",
|
|
||||||
"send_chat_notifications": "যদি আমি অনলাইনে না থাকি, সেক্ষেত্রে নতুন চ্যাট মেসেজ আসলে আমাকে ইমেইল করুন",
|
|
||||||
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
|
|
||||||
"has_no_follower": "এই সদস্যের কোন ফলোয়ার নেই :(",
|
|
||||||
"follows_no_one": "এই সদস্য কাউকে ফলো করছেন না :(",
|
|
||||||
"has_no_posts": "এই সদস্য এখনো কোন পোষ্ট করেন নি",
|
|
||||||
"has_no_topics": "এই সদস্য এখনো কোন টপিক পোষ্ট করেন নি",
|
|
||||||
"has_no_watched_topics": "This user didn't watch any topics yet.",
|
|
||||||
"email_hidden": "ইমেইল গোপন রাখা হয়েছে",
|
|
||||||
"hidden": "গোপন করা হয়েছে",
|
|
||||||
"paginate_description": "ইনফাইনাইট স্ক্রলের বদলে টপিক এবং পোষ্টের জন্য পেজিনেশন ব্যাবহার করুন",
|
|
||||||
"topics_per_page": "প্রতি পেজে কতগুলো টপিক থাকবে",
|
|
||||||
"posts_per_page": "প্রতি পেইজে কতগুলো পোষ্ট থাকবে",
|
|
||||||
"notification_sounds": "নতুন নোটিফিকেশনের জন্য নোটিফিকেশন সাউন্ড বাজাও।",
|
|
||||||
"browsing": "Browsing সেটিংস",
|
|
||||||
"open_links_in_new_tab": "বাইরের URL গুলো নতুন ট্যাবে খোলা হবে ?",
|
|
||||||
"enable_topic_searching": "In-Topic সার্চ সক্রীয় করো",
|
|
||||||
"topic_search_help": "যদি এনাবল করা হয়ে থাকে, In-topic সার্চিং ব্রাউজারের ডিফল্ট সার্চের বদলে পুরো টপিকজুড়ে সার্চ করার সুবিধা দিবে, যা কেবলমাত্র বর্তমান স্কৃণে দেখানো অংশের মধ্যে সীমাবদ্ধ থাকবে না। ",
|
|
||||||
"follow_topics_you_reply_to": "আপনার উত্তর দেয়া টপিকগুলো ফলো করুন",
|
|
||||||
"follow_topics_you_create": "আপনার তৈরীকরা টপিকসমূহ ফলো করুন"
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"latest_users": "সর্বশেষ নিবন্ধিত সদস্যরা:",
|
|
||||||
"top_posters": "সর্বোচ্চ পোষ্টকারী",
|
|
||||||
"most_reputation": "সর্বোচ্চ সম্মাননাধারী",
|
|
||||||
"search": "খুঁজুন",
|
|
||||||
"enter_username": "ইউজারনেম এর ভিত্তিতে সার্চ করুন",
|
|
||||||
"load_more": "আরো লোড করুন",
|
|
||||||
"users-found-search-took": "%1 সদস্য(দের) খুঁজে পাওয়া গিয়েছে! সময় লেগেছে %2 ms.",
|
|
||||||
"filter-by": "Filter By",
|
|
||||||
"online-only": "Online only",
|
|
||||||
"picture-only": "Picture only"
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
{
|
{
|
||||||
"new_topic_button": "Nové téma",
|
"new_topic_button": "Nové téma",
|
||||||
"no_topics": "<strong>V této kategorii zatím nejsou žádné příspěvky.</strong><br />Můžeš být první!",
|
"no_topics": "<strong>V této kategorii zatím nejsou žádné příspěvky.</strong><br />Můžeš být první!",
|
||||||
|
"posts": "příspěvky",
|
||||||
|
"views": "zobrazení",
|
||||||
|
"posted": "odesláno",
|
||||||
"browsing": "prohlíží",
|
"browsing": "prohlíží",
|
||||||
"no_replies": "Nikdo ještě neodpověděl",
|
"no_replies": "Nikdo ještě neodpověděl",
|
||||||
"share_this_category": "Share this category",
|
"replied": "přispěl",
|
||||||
"ignore": "Ignorovat"
|
"last_edited_by": "naposledy upravil",
|
||||||
|
"share_this_category": "Share this category"
|
||||||
}
|
}
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
"password-reset-requested": "Požadována obnova hesla - %1!",
|
|
||||||
"welcome-to": "Vítejte v %1",
|
|
||||||
"greeting_no_name": "Dobrý den",
|
|
||||||
"greeting_with_name": "Dobrý den %1",
|
|
||||||
"welcome.text1": "Děkujeme vám za registraci s %1!",
|
|
||||||
"welcome.text2": "Pro úplnou aktivaci vašeho účtu potřebujeme ověřit vaší emailovou adresu.",
|
|
||||||
"welcome.cta": "Klikněte zde pro potvrzení vaší emailové adresy",
|
|
||||||
"reset.text1": "Obdrželi jsme požadavek na obnovu hesla, pravděpodobně kvůli tomu, že jste ho zapomněli. Pokud to není tento případ, ignorujte, prosím, tento email.",
|
|
||||||
"reset.text2": "Přejete-li si pokračovat v obnově vašeho hesla, klikněte, prosím, na následující odkaz:",
|
|
||||||
"reset.cta": "Klikněte zde, chcete-li obnovit vaše heslo",
|
|
||||||
"digest.notifications": "Máte tu nepřečtená oznámení od %1:",
|
|
||||||
"digest.latest_topics": "Nejnovější témata od %1",
|
|
||||||
"digest.cta": "Kliknutím zde navštívíte %1",
|
|
||||||
"digest.unsub.info": "Tento výtah vám byl odeslán, protože jste si to nastavili ve vašich odběrech.",
|
|
||||||
"digest.no_topics": "Dosud tu nebyly žádné aktivní témata %1",
|
|
||||||
"notif.chat.subject": "Nová zpráva z chatu od %1",
|
|
||||||
"notif.chat.cta": "Chcete-li pokračovat v konverzaci, klikněte zde.",
|
|
||||||
"notif.chat.unsub.info": "Toto oznámení z chatu vám bylo zasláno, protože jste si to nastavili ve vašich odběrech.",
|
|
||||||
"notif.post.cta": "Click here to read the full topic",
|
|
||||||
"notif.post.unsub.info": "This post notification was sent to you due to your subscription settings.",
|
|
||||||
"test.text1": "Tento testovací email slouží k ověření, že mailer je správně nastaven. NodeBB.",
|
|
||||||
"unsub.cta": "Chcete-li změnit tyto nastavení, klikněte zde.",
|
|
||||||
"closing": "Díky!"
|
|
||||||
}
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
{
|
|
||||||
"invalid-data": "Neplatná data",
|
|
||||||
"not-logged-in": "Zdá se, že nejste přihlášen(a)",
|
|
||||||
"account-locked": "Váš účet byl dočasně uzamčen",
|
|
||||||
"search-requires-login": "Chcete-li vyhledávat, musíte mít účet. Přihlašte se nebo zaregistrujte, prosím.",
|
|
||||||
"invalid-cid": "Neplatné ID kategorie",
|
|
||||||
"invalid-tid": "Neplatné ID tématu",
|
|
||||||
"invalid-pid": "Neplatné ID příspěvku",
|
|
||||||
"invalid-uid": "Neplatné ID uživatele",
|
|
||||||
"invalid-username": "Neplatné uživatelské jméno",
|
|
||||||
"invalid-email": "Neplatný email",
|
|
||||||
"invalid-title": "Neplatný titulek!",
|
|
||||||
"invalid-user-data": "Neplatná uživatelská data",
|
|
||||||
"invalid-password": "Neplatné heslo",
|
|
||||||
"invalid-username-or-password": "Stanovte, prosím, oboje, jak uživatelské jméno, tak heslo",
|
|
||||||
"invalid-search-term": "Neplatný výraz pro vyhledávání",
|
|
||||||
"invalid-pagination-value": "Neplatná hodnota pro stránkování",
|
|
||||||
"username-taken": "Uživatelské jméno je již použito",
|
|
||||||
"email-taken": "Email je již použit",
|
|
||||||
"email-not-confirmed": "Vaše emailová adresa zatím nebyla potvrzena. Kliknutím zde svůj email potvrdíte.",
|
|
||||||
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed",
|
|
||||||
"username-too-short": "Uživatelské jméno je příliš krátké",
|
|
||||||
"username-too-long": "Uživatelské jméno je příliš dlouhé",
|
|
||||||
"user-banned": "Uživatel byl zakázán",
|
|
||||||
"user-too-new": "Pardon, ale je potřeba vyčkat %1 sekund, než-li budete moci vytvořit svůj první příspěvek.",
|
|
||||||
"no-category": "Kategorie neexistuje",
|
|
||||||
"no-topic": "Téma neexistuje",
|
|
||||||
"no-post": "Příspěvek neexistuje",
|
|
||||||
"no-group": "Skupina neexistuje",
|
|
||||||
"no-user": "Uživatel neexistuje",
|
|
||||||
"no-teaser": "Teaser does not exist",
|
|
||||||
"no-privileges": "Na tuto akci nemáte dostatečná práva",
|
|
||||||
"no-emailers-configured": "Protože není zaveden žádný emailový plugin, není možné odeslat testovací email.",
|
|
||||||
"category-disabled": "Kategorie zakázána",
|
|
||||||
"topic-locked": "Téma uzamčeno",
|
|
||||||
"still-uploading": "Vyčkejte, prosím, nežli se vše kompletně nahraje.",
|
|
||||||
"content-too-short": "Vložte, prosím, delší příspěvek. Příspěvky by měly obsahovat nejméně %1 znaků.",
|
|
||||||
"title-too-short": "Vložte, prosím, delší titulek. Titulky by měly obsahovat nejméně %1 znaků.",
|
|
||||||
"title-too-long": "Vložte, prosím, kratší titulek. Titulky by neměly být delší, než-li %1 znaků.",
|
|
||||||
"too-many-posts": "Své příspěvky můžete odesílat po %1 sekundách - vyčkejte, prosím, před dalším odesláním",
|
|
||||||
"too-many-posts-newbie": "Jako nový uživatel můžete své příspěvky odesílat po %1 sekundách, dokud nedosáhnete %2 reputace - vyčkejte, prosím, před dalším odesláním",
|
|
||||||
"file-too-big": "Maximální povolená velikost souboru je %1 kbs - nahrávejte, prosím, menší soubory",
|
|
||||||
"cant-vote-self-post": "Nemůžete hlasovat pro svůj vlastní příspěvek",
|
|
||||||
"already-favourited": "You have already favourited this post",
|
|
||||||
"already-unfavourited": "You have already unfavourited this post",
|
|
||||||
"cant-ban-other-admins": "Nemůžete zakazovat ostatní administrátory!",
|
|
||||||
"invalid-image-type": "Invalid image type. Allowed types are: %1",
|
|
||||||
"invalid-image-extension": "Invalid image extension",
|
|
||||||
"group-name-too-short": "Název skupiny je příliš krátký",
|
|
||||||
"group-already-exists": "Skupina už exstuje",
|
|
||||||
"group-name-change-not-allowed": "Změna názvu skupiny není povolena",
|
|
||||||
"group-already-member": "You are already part of this group",
|
|
||||||
"group-needs-owner": "This group requires at least one owner",
|
|
||||||
"post-already-deleted": "Tento příspěvek byl již vymazán",
|
|
||||||
"post-already-restored": "Tento příspěvek byl již obnoven",
|
|
||||||
"topic-already-deleted": "Toto téma bylo již vymazáno",
|
|
||||||
"topic-already-restored": "Toto téma bylo již obnoveno",
|
|
||||||
"topic-thumbnails-are-disabled": "Topic thumbnails are disabled.",
|
|
||||||
"invalid-file": "Neplatný soubor",
|
|
||||||
"uploads-are-disabled": "Nahrávání je zakázáno",
|
|
||||||
"upload-error": "Chyba při nahrávání : %1",
|
|
||||||
"signature-too-long": "Pardon, ale váš podpis nemůže být delší, než-li %1 znaků.",
|
|
||||||
"cant-chat-with-yourself": "Nemůžete chatovat sami se sebou!",
|
|
||||||
"chat-restricted": "This user has restricted their chat messages. They must follow you before you can chat with them",
|
|
||||||
"too-many-messages": "You have sent too many messages, please wait awhile.",
|
|
||||||
"reputation-system-disabled": "Systém reputací je zakázán.",
|
|
||||||
"downvoting-disabled": "Downvoting is disabled",
|
|
||||||
"not-enough-reputation-to-downvote": "You do not have enough reputation to downvote this post",
|
|
||||||
"not-enough-reputation-to-flag": "You do not have enough reputation to flag this post",
|
|
||||||
"reload-failed": "NodeBB encountered a problem while reloading: \"%1\". NodeBB will continue to serve the existing client-side assets, although you should undo what you did just prior to reloading.",
|
|
||||||
"registration-error": "Chyba při registraci",
|
|
||||||
"parse-error": "Something went wrong while parsing server response"
|
|
||||||
}
|
|
||||||
7
public/language/cs/footer.json
Normal file
7
public/language/cs/footer.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"stats.online": "Online",
|
||||||
|
"stats.users": "Uživatelé",
|
||||||
|
"stats.topics": "Témata",
|
||||||
|
"stats.posts": "Příspěvky",
|
||||||
|
"success": "úspěch"
|
||||||
|
}
|
||||||
@@ -3,33 +3,28 @@
|
|||||||
"search": "Hledat",
|
"search": "Hledat",
|
||||||
"buttons.close": "Zavřít",
|
"buttons.close": "Zavřít",
|
||||||
"403.title": "Přístup odepřen",
|
"403.title": "Přístup odepřen",
|
||||||
"403.message": "You seem to have stumbled upon a page that you do not have access to.",
|
"403.message": "K této stránce nemáte přístup. Zkuste se <a href='/login'>přihlásit</a>?",
|
||||||
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
|
|
||||||
"404.title": "Stránka nenalezena",
|
"404.title": "Stránka nenalezena",
|
||||||
"404.message": "You seem to have stumbled upon a page that does not exist. Return to the <a href='%1/'>home page</a>.",
|
"404.message": "Tato stránka bohužel neexistuje. Vraťte se na <a href='/'>domovskou stránku</a>.",
|
||||||
"500.title": "Neznámá chyba",
|
"500.title": "Neznámá chyba",
|
||||||
"500.message": "Jejda, vypadá to, že se něco pokazilo.",
|
"500.message": "Jejda, vypadá to, že se něco pokazilo.",
|
||||||
"register": "Registrovat",
|
"register": "Registrovat",
|
||||||
"login": "Přihlásit se",
|
"login": "Přihlásit se",
|
||||||
"please_log_in": "Přihlašte se, prosím",
|
"please_log_in": "Please Log In",
|
||||||
"logout": "Odhlásit se",
|
"logout": "Odhlásit se",
|
||||||
"posting_restriction_info": "V současné době je zasílání příspěvků povoleno pouze registrovaným členům, klikněte zde a přihlašte se.",
|
"posting_restriction_info": "Posting is currently restricted to registered members only, click here to log in.",
|
||||||
"welcome_back": "Vítejte zpět",
|
"welcome_back": "Welcome Back ",
|
||||||
"you_have_successfully_logged_in": "Vaše přihlášení proběhlo úspěšně",
|
"you_have_successfully_logged_in": "You have successfully logged in",
|
||||||
"save_changes": "Uložit změny",
|
"save_changes": "Uložit změny",
|
||||||
"close": "Zrušit",
|
"close": "Zrušit",
|
||||||
"pagination": "Stránkování",
|
"pagination": "Pagination",
|
||||||
"pagination.out_of": "%1 z %2",
|
|
||||||
"pagination.enter_index": "Enter index",
|
|
||||||
"header.admin": "Administrace",
|
"header.admin": "Administrace",
|
||||||
"header.recent": "Aktuality",
|
"header.recent": "Aktuality",
|
||||||
"header.unread": "Nepřečtené",
|
"header.unread": "Nepřečtené",
|
||||||
"header.tags": "Tagy",
|
|
||||||
"header.popular": "Populární",
|
"header.popular": "Populární",
|
||||||
"header.users": "Uživatelé",
|
"header.users": "Uživatelé",
|
||||||
"header.groups": "Groups",
|
|
||||||
"header.chats": "Chats",
|
"header.chats": "Chats",
|
||||||
"header.notifications": "Oznámení",
|
"header.notifications": "Notifications",
|
||||||
"header.search": "Hledat",
|
"header.search": "Hledat",
|
||||||
"header.profile": "Můj profil",
|
"header.profile": "Můj profil",
|
||||||
"notifications.loading": "Načítání upozornění",
|
"notifications.loading": "Načítání upozornění",
|
||||||
@@ -38,44 +33,23 @@
|
|||||||
"previouspage": "Předchozí stránka",
|
"previouspage": "Předchozí stránka",
|
||||||
"nextpage": "Další stránka",
|
"nextpage": "Další stránka",
|
||||||
"alert.success": "Success",
|
"alert.success": "Success",
|
||||||
"alert.error": "Chyba",
|
"alert.error": "Error",
|
||||||
"alert.banned": "Banned",
|
"alert.banned": "Banned",
|
||||||
"alert.banned.message": "You have just been banned, you will now be logged out.",
|
"alert.banned.message": "You are banned you will be logged out!",
|
||||||
"alert.unfollow": "You are no longer following %1!",
|
"alert.unfollow": "You are no longer following %1!",
|
||||||
"alert.follow": "You are now following %1!",
|
"alert.follow": "You are now following %1!",
|
||||||
"online": "Online",
|
|
||||||
"users": "Uživatelé",
|
|
||||||
"topics": "Témata",
|
|
||||||
"posts": "Příspěvky",
|
"posts": "Příspěvky",
|
||||||
"views": "Zobrazení",
|
"views": "Zobrazení",
|
||||||
"reputation": "Reputation",
|
"posted": "odesláno",
|
||||||
"read_more": "read more",
|
"in": "v",
|
||||||
"posted_ago_by_guest": "posted %1 by Guest",
|
"norecentposts": "No Recent Posts",
|
||||||
"posted_ago_by": "posted %1 by %2",
|
"norecenttopics": "No Recent Topics",
|
||||||
"posted_ago": "posted %1",
|
|
||||||
"posted_in_ago_by_guest": "posted in %1 %2 by Guest",
|
|
||||||
"posted_in_ago_by": "posted in %1 %2 by %3",
|
|
||||||
"posted_in_ago": "posted in %1 %2",
|
|
||||||
"replied_ago": "replied %1",
|
|
||||||
"user_posted_ago": "%1 posted %2",
|
|
||||||
"guest_posted_ago": "Guest posted %1",
|
|
||||||
"last_edited_by_ago": "last edited by %1 %2",
|
|
||||||
"norecentposts": "Žádné nedávné příspěvky",
|
|
||||||
"norecenttopics": "Žádné nedávné témata",
|
|
||||||
"recentposts": "Nedávné příspěvky",
|
"recentposts": "Nedávné příspěvky",
|
||||||
"recentips": "Recently Logged In IPs",
|
"recentips": "Recently Logged In IPs",
|
||||||
|
"online": "Online",
|
||||||
"away": "Pryč",
|
"away": "Pryč",
|
||||||
"dnd": "Nerušit",
|
"dnd": "Nerušit",
|
||||||
"invisible": "Neviditelný",
|
"invisible": "Neviditelný",
|
||||||
"offline": "Offline",
|
"offline": "Offline",
|
||||||
"email": "Email",
|
"privacy": "Privacy"
|
||||||
"language": "Jazyk",
|
|
||||||
"guest": "Host",
|
|
||||||
"guests": "Hosté",
|
|
||||||
"updated.title": "Fórum zaktualizováno",
|
|
||||||
"updated.message": "Toto fórum bylo právě aktualizováno na poslední verzi. Klikněte zde a obnovte tuto stránku.",
|
|
||||||
"privacy": "Privacy",
|
|
||||||
"follow": "Follow",
|
|
||||||
"unfollow": "Unfollow",
|
|
||||||
"delete_all": "Vymazat vše"
|
|
||||||
}
|
}
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"groups": "Skupiny",
|
|
||||||
"view_group": "Prohlédnout skupinu",
|
|
||||||
"owner": "Group Owner",
|
|
||||||
"new_group": "Create New Group",
|
|
||||||
"no_groups_found": "There are no groups to see",
|
|
||||||
"cover-instructions": "Drag and Drop a photo, drag to position, and hit <strong>Save</strong>",
|
|
||||||
"cover-change": "Change",
|
|
||||||
"cover-save": "Save",
|
|
||||||
"cover-saving": "Saving",
|
|
||||||
"details.title": "podrobnosti skupiny",
|
|
||||||
"details.members": "Seznam členů",
|
|
||||||
"details.pending": "Pending Members",
|
|
||||||
"details.has_no_posts": "Členové této skupiny dosud neodeslali ani jeden příspěvek.",
|
|
||||||
"details.latest_posts": "Nejnovější příspěvky",
|
|
||||||
"details.private": "Private Group",
|
|
||||||
"details.public": "Public Group",
|
|
||||||
"details.owner_options": "Group Administration",
|
|
||||||
"event.updated": "Group details have been updated",
|
|
||||||
"event.deleted": "The group \"%1\" has been deleted"
|
|
||||||
}
|
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
{
|
{
|
||||||
"username": "Uživatelské jméno / Email",
|
"login": "Přihlásit se",
|
||||||
|
"username": "Username / Email",
|
||||||
|
"password": "Heslo",
|
||||||
"remember_me": "Zapamatovat si mě?",
|
"remember_me": "Zapamatovat si mě?",
|
||||||
"forgot_password": "Zapomněli jste heslo?",
|
"forgot_password": "Zapomněli jste heslo?",
|
||||||
"alternative_logins": "Další způsoby přihlášení",
|
"alternative_logins": "Další způsoby přihlášení",
|
||||||
"failed_login_attempt": "Přihlášení se nezdařilo, zkuste to prosím znovu.",
|
"failed_login_attempt": "Přihlášení se nezdařilo, zkuste to prosím znovu.",
|
||||||
"login_successful": "Přihlášení proběhlo úspěšně!",
|
"login_successful": "Přihlášení proběhlo úspěšně!"
|
||||||
"dont_have_account": "Nemáte účet?"
|
|
||||||
}
|
}
|
||||||
@@ -1,21 +1,6 @@
|
|||||||
{
|
{
|
||||||
"chat.chatting_with": "Chat s <span id=\"chat-with-name\"></span>",
|
"chat.chatting_with": "Chat s <span id=\"chat-with-name\"></span>",
|
||||||
"chat.placeholder": "Zprávu do chatu napište zde, pro odeslání stiskněte enter",
|
"chat.placeholder": "napište zprávu sem a zmáčkněte enter pro odeslání",
|
||||||
"chat.send": "Odeslat",
|
"chat.send": "Odeslat",
|
||||||
"chat.no_active": "Nemáte žádné aktivní konverzace.",
|
"chat.no_active": "Nemáte žádné aktivní konverzace."
|
||||||
"chat.user_typing": "%1 píše ...",
|
|
||||||
"chat.user_has_messaged_you": "%1 has messaged you.",
|
|
||||||
"chat.see_all": "See all Chats",
|
|
||||||
"chat.no-messages": "Please select a recipient to view chat message history",
|
|
||||||
"chat.recent-chats": "Recent Chats",
|
|
||||||
"chat.contacts": "Kontakty",
|
|
||||||
"chat.message-history": "Historie zpráv",
|
|
||||||
"chat.pop-out": "Pop out chat",
|
|
||||||
"chat.maximize": "Maximalizovat",
|
|
||||||
"chat.seven_days": "7 dní",
|
|
||||||
"chat.thirty_days": "30 dní",
|
|
||||||
"chat.three_months": "3 měsíce",
|
|
||||||
"composer.user_said_in": "%1 said in %2:",
|
|
||||||
"composer.user_said": "%1 said:",
|
|
||||||
"composer.discard": "Are you sure you wish to discard this post?"
|
|
||||||
}
|
}
|
||||||
@@ -2,26 +2,9 @@
|
|||||||
"title": "Upozornění",
|
"title": "Upozornění",
|
||||||
"no_notifs": "You have no new notifications",
|
"no_notifs": "You have no new notifications",
|
||||||
"see_all": "See all Notifications",
|
"see_all": "See all Notifications",
|
||||||
"back_to_home": "Back to %1",
|
"back_to_home": "Zpět na úvodní stránku",
|
||||||
"outgoing_link": "Odkaz mimo fórum",
|
"outgoing_link": "Odkaz mimo fórum",
|
||||||
"outgoing_link_message": "You are now leaving %1.",
|
"outgoing_link_message": "Nyní opouštíte fórum",
|
||||||
"continue_to": "Continue to %1",
|
"continue_to": "Přejít na",
|
||||||
"return_to": "Return to %1",
|
"return_to": "Vrátit se na "
|
||||||
"new_notification": "New Notification",
|
|
||||||
"you_have_unread_notifications": "You have unread notifications.",
|
|
||||||
"new_message_from": "New message from <strong>%1</strong>",
|
|
||||||
"upvoted_your_post_in": "<strong>%1</strong> has upvoted your post in <strong>%2</strong>.",
|
|
||||||
"moved_your_post": "<strong>%1</strong> has moved your post.",
|
|
||||||
"moved_your_topic": "<strong>%1</strong> has moved your topic.",
|
|
||||||
"favourited_your_post_in": "<strong>%1</strong> has favourited your post in <strong>%2</strong>.",
|
|
||||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
|
||||||
"user_posted_to": "<strong>%1</strong> has posted a reply to: <strong>%2</strong>",
|
|
||||||
"user_posted_topic": "<strong>%1</strong> has posted a new topic: <strong>%2</strong>",
|
|
||||||
"user_mentioned_you_in": "<strong>%1</strong> mentioned you in <strong>%2</strong>",
|
|
||||||
"user_started_following_you": "<strong>%1</strong> started following you.",
|
|
||||||
"email-confirmed": "Email Confirmed",
|
|
||||||
"email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.",
|
|
||||||
"email-confirm-error": "An error occurred...",
|
|
||||||
"email-confirm-error-message": "There was a problem validating your email address. Perhaps the code was invalid or has expired.",
|
|
||||||
"email-confirm-sent": "Confirmation email sent."
|
|
||||||
}
|
}
|
||||||
@@ -5,14 +5,10 @@
|
|||||||
"recent": "Recent Topics",
|
"recent": "Recent Topics",
|
||||||
"users": "Registered Users",
|
"users": "Registered Users",
|
||||||
"notifications": "Notifications",
|
"notifications": "Notifications",
|
||||||
"tags": "Topics tagged under \"%1\"",
|
|
||||||
"user.edit": "Editing \"%1\"",
|
"user.edit": "Editing \"%1\"",
|
||||||
"user.following": "People %1 Follows",
|
"user.following": "People %1 Follows",
|
||||||
"user.followers": "People who Follow %1",
|
"user.followers": "People who Follow %1",
|
||||||
"user.posts": "Posts made by %1",
|
"user.posts": "Posts made by %1",
|
||||||
"user.topics": "Topics created by %1",
|
|
||||||
"user.favourites": "%1's Favourite Posts",
|
"user.favourites": "%1's Favourite Posts",
|
||||||
"user.settings": "User Settings",
|
"user.settings": "User Settings"
|
||||||
"maintenance.text": "%1 is currently undergoing maintenance. Please come back another time.",
|
|
||||||
"maintenance.messageIntro": "Additionally, the administrator has left this message:"
|
|
||||||
}
|
}
|
||||||
@@ -3,16 +3,5 @@
|
|||||||
"day": "Den",
|
"day": "Den",
|
||||||
"week": "Týden",
|
"week": "Týden",
|
||||||
"month": "Měsíc",
|
"month": "Měsíc",
|
||||||
"year": "Year",
|
"no_recent_topics": "There are no recent topics."
|
||||||
"alltime": "All Time",
|
|
||||||
"no_recent_topics": "There are no recent topics.",
|
|
||||||
"there-is-a-new-topic": "There is a new topic.",
|
|
||||||
"there-is-a-new-topic-and-a-new-post": "There is a new topic and a new post.",
|
|
||||||
"there-is-a-new-topic-and-new-posts": "There is a new topic and %1 new posts.",
|
|
||||||
"there-are-new-topics": "There are %1 new topics.",
|
|
||||||
"there-are-new-topics-and-a-new-post": "There are %1 new topics and a new post.",
|
|
||||||
"there-are-new-topics-and-new-posts": "There are %1 new topics and %2 new posts.",
|
|
||||||
"there-is-a-new-post": "There is a new post.",
|
|
||||||
"there-are-new-posts": "There are %1 new posts.",
|
|
||||||
"click-here-to-reload": "Click here to reload."
|
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
"new_password": "Nové heslo",
|
"new_password": "Nové heslo",
|
||||||
"repeat_password": "Potvrzení hesla",
|
"repeat_password": "Potvrzení hesla",
|
||||||
"enter_email": "Zadejte svou <strong>emailovou adresu</strong> a my Vám pošleme informace, jak můžete obnovit své heslo.",
|
"enter_email": "Zadejte svou <strong>emailovou adresu</strong> a my Vám pošleme informace, jak můžete obnovit své heslo.",
|
||||||
"enter_email_address": "Zadejte emailovou adresu",
|
"enter_email_address": "Enter Email Address",
|
||||||
"password_reset_sent": "Obnova hesla odeslána",
|
"password_reset_sent": "Obnova hesla odeslána",
|
||||||
"invalid_email": "Špatný email / Email neexistuje!"
|
"invalid_email": "Špatný email / Email neexistuje!"
|
||||||
}
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
|
|
||||||
"no-matches": "No matches found",
|
|
||||||
"in": "In",
|
|
||||||
"by": "By",
|
|
||||||
"posted-by": "Posted by"
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"success": "Success",
|
|
||||||
"topic-post": "You have successfully posted.",
|
|
||||||
"authentication-successful": "Authentication Successful",
|
|
||||||
"settings-saved": "Settings saved!"
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"no_tag_topics": "Není zde žádné téma s tímto tagem.",
|
|
||||||
"tags": "Tagy",
|
|
||||||
"enter_tags_here": "Zde vložte tagy. Po každém vložení tagu zmáčkněte enter.",
|
|
||||||
"enter_tags_here_short": "Vložte tagy ...",
|
|
||||||
"no_tags": "Zatím tu není žádný tag."
|
|
||||||
}
|
|
||||||
@@ -1,83 +1,80 @@
|
|||||||
{
|
{
|
||||||
"topic": "Téma",
|
"topic": "Téma",
|
||||||
"topic_id": "ID tématu",
|
"topics": "Témata",
|
||||||
"topic_id_placeholder": "Vložte ID tématu",
|
"topic_id": "Topic ID",
|
||||||
|
"topic_id_placeholder": "Enter topic ID",
|
||||||
"no_topics_found": "Nebyla nalezena žádná témata!",
|
"no_topics_found": "Nebyla nalezena žádná témata!",
|
||||||
"no_posts_found": "Nebyly nalezeny žádné příspěvky!",
|
"no_posts_found": "No posts found!",
|
||||||
"post_is_deleted": "Tento příspěvek je vymazán!",
|
|
||||||
"profile": "Profil",
|
"profile": "Profil",
|
||||||
"posted_by": "Posted by %1",
|
"posted_by": "Odeslal",
|
||||||
"posted_by_guest": "Posted by Guest",
|
|
||||||
"chat": "Chat",
|
"chat": "Chat",
|
||||||
"notify_me": "Sledovat toto téma",
|
"notify_me": "Sledovat toto téma",
|
||||||
"quote": "Citovat",
|
"quote": "Citovat",
|
||||||
"reply": "Odpovědět",
|
"reply": "Odpovědět",
|
||||||
"edit": "Upravit",
|
"edit": "Upravit",
|
||||||
"delete": "Smazat",
|
"delete": "Smazat",
|
||||||
"purge": "Purge",
|
|
||||||
"restore": "Restore",
|
"restore": "Restore",
|
||||||
"move": "Přesunout",
|
"move": "Přesunout",
|
||||||
"fork": "Rozdělit",
|
"fork": "Rozdělit",
|
||||||
|
"banned": "banned",
|
||||||
"link": "Odkaz",
|
"link": "Odkaz",
|
||||||
"share": "Sdílet",
|
"share": "Sdílet",
|
||||||
"tools": "Nástroje",
|
"tools": "Nástroje",
|
||||||
"flag": "Flag",
|
"flag": "Flag",
|
||||||
"locked": "Locked",
|
|
||||||
"bookmark_instructions": "Click here to return to your last position or close to discard.",
|
"bookmark_instructions": "Click here to return to your last position or close to discard.",
|
||||||
"flag_title": "Flag this post for moderation",
|
"flag_title": "Flag this post for moderation",
|
||||||
"flag_confirm": "Are you sure you want to flag this post?",
|
"flag_confirm": "Are you sure you want to flag this post?",
|
||||||
"flag_success": "This post has been flagged for moderation.",
|
"flag_success": "This post has been flagged for moderation.",
|
||||||
"deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
|
"deleted_message": "This thread has been deleted. Only users with thread management privileges can see it.",
|
||||||
|
"following_topic.title": "Following Topic",
|
||||||
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
||||||
|
"not_following_topic.title": "Not Following Topic",
|
||||||
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
||||||
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
||||||
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
||||||
"watch": "Watch",
|
"watch": "Watch",
|
||||||
"unwatch": "Unwatch",
|
|
||||||
"watch.title": "Be notified of new replies in this topic",
|
"watch.title": "Be notified of new replies in this topic",
|
||||||
"unwatch.title": "Stop watching this topic",
|
|
||||||
"share_this_post": "Share this Post",
|
"share_this_post": "Share this Post",
|
||||||
"thread_tools.title": "Topic Tools",
|
"thread_tools.title": "Nástroje",
|
||||||
"thread_tools.markAsUnreadForAll": "Označit jako nepřečtené",
|
"thread_tools.markAsUnreadForAll": "Označit jako nepřečtené",
|
||||||
"thread_tools.pin": "Pin Topic",
|
"thread_tools.pin": "Pin Topic",
|
||||||
"thread_tools.unpin": "Unpin Topic",
|
"thread_tools.unpin": "Unpin Topic",
|
||||||
"thread_tools.lock": "Lock Topic",
|
"thread_tools.lock": "Lock Topic",
|
||||||
"thread_tools.unlock": "Unlock Topic",
|
"thread_tools.unlock": "Unlock Topic",
|
||||||
"thread_tools.move": "Move Topic",
|
"thread_tools.move": "Move Topic",
|
||||||
"thread_tools.move_all": "Move All",
|
|
||||||
"thread_tools.fork": "Fork Topic",
|
"thread_tools.fork": "Fork Topic",
|
||||||
"thread_tools.delete": "Delete Topic",
|
"thread_tools.delete": "Delete Topic",
|
||||||
"thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
|
|
||||||
"thread_tools.restore": "Restore Topic",
|
"thread_tools.restore": "Restore Topic",
|
||||||
"thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
|
|
||||||
"thread_tools.purge": "Purge Topic",
|
|
||||||
"thread_tools.purge_confirm": "Are you sure you want to purge this topic?",
|
|
||||||
"topic_move_success": "This topic has been successfully moved to %1",
|
|
||||||
"post_delete_confirm": "Are you sure you want to delete this post?",
|
|
||||||
"post_restore_confirm": "Are you sure you want to restore this post?",
|
|
||||||
"post_purge_confirm": "Are you sure you want to purge this post?",
|
|
||||||
"load_categories": "Načítání kategorií",
|
"load_categories": "Načítání kategorií",
|
||||||
"disabled_categories_note": "Vypnuté (disabled) kategorie jsou šedé.",
|
"disabled_categories_note": "Vypnuté (disabled) kategorie jsou šedé.",
|
||||||
"confirm_move": "Přesunout",
|
"confirm_move": "Přesunout",
|
||||||
"confirm_fork": "Rozdělit",
|
"confirm_fork": "Rozdělit",
|
||||||
"favourite": "Oblíbené",
|
"favourite": "Oblíbené",
|
||||||
"favourites": "Oblíbené",
|
"favourites": "Oblíbené",
|
||||||
|
"favourites.not_logged_in.title": "Přihlaste se!",
|
||||||
|
"favourites.not_logged_in.message": "Pro oblíbení příspěvku se musíte přihlásit.",
|
||||||
"favourites.has_no_favourites": "Nemáte žádné oblíbené příspěvky, přidejte některý příspěvek k oblíbeným a uvidíte ho zde!",
|
"favourites.has_no_favourites": "Nemáte žádné oblíbené příspěvky, přidejte některý příspěvek k oblíbeným a uvidíte ho zde!",
|
||||||
|
"vote.not_logged_in.title": "Not Logged In",
|
||||||
|
"vote.not_logged_in.message": "Please log in in order to vote",
|
||||||
|
"vote.cant_vote_self.title": "Invalid Vote",
|
||||||
|
"vote.cant_vote_self.message": "You cannot vote for your own post",
|
||||||
"loading_more_posts": "Načítání více příspěvků",
|
"loading_more_posts": "Načítání více příspěvků",
|
||||||
"move_topic": "Přesunout téma",
|
"move_topic": "Přesunout téma",
|
||||||
"move_topics": "Move Topics",
|
|
||||||
"move_post": "Přesunout příspěvek",
|
"move_post": "Přesunout příspěvek",
|
||||||
"post_moved": "Post moved!",
|
|
||||||
"fork_topic": "Rozdělit příspěvek",
|
"fork_topic": "Rozdělit příspěvek",
|
||||||
"topic_will_be_moved_to": "Toto téma bude přesunuto do kategorie",
|
"topic_will_be_moved_to": "Toto téma bude přesunuto do kategorie",
|
||||||
"fork_topic_instruction": "Vyber příspěvky, které chceš oddělit",
|
"fork_topic_instruction": "Vyber příspěvky, které chceš oddělit",
|
||||||
"fork_no_pids": "Žádné příspěvky nebyly vybrány!",
|
"fork_no_pids": "Žádné příspěvky nebyly vybrány!",
|
||||||
"fork_success": "Successfully forked topic! Click here to go to the forked topic.",
|
"fork_success": "Téma bylo úspěšně rozděleno!",
|
||||||
|
"reputation": "Reputace",
|
||||||
|
"posts": "Příspěvky",
|
||||||
"composer.title_placeholder": "Enter your topic title here...",
|
"composer.title_placeholder": "Enter your topic title here...",
|
||||||
"composer.handle_placeholder": "Name",
|
"composer.write": "Write",
|
||||||
|
"composer.preview": "Preview",
|
||||||
|
"composer.help": "Help",
|
||||||
"composer.discard": "Discard",
|
"composer.discard": "Discard",
|
||||||
"composer.submit": "Submit",
|
"composer.submit": "Submit",
|
||||||
"composer.replying_to": "Replying to %1",
|
"composer.replying_to": "Replying to",
|
||||||
"composer.new_topic": "New Topic",
|
"composer.new_topic": "New Topic",
|
||||||
"composer.uploading": "uploading...",
|
"composer.uploading": "uploading...",
|
||||||
"composer.thumb_url_label": "Paste a topic thumbnail URL",
|
"composer.thumb_url_label": "Paste a topic thumbnail URL",
|
||||||
@@ -86,13 +83,5 @@
|
|||||||
"composer.thumb_file_label": "Or upload a file",
|
"composer.thumb_file_label": "Or upload a file",
|
||||||
"composer.thumb_remove": "Clear fields",
|
"composer.thumb_remove": "Clear fields",
|
||||||
"composer.drag_and_drop_images": "Drag and Drop Images Here",
|
"composer.drag_and_drop_images": "Drag and Drop Images Here",
|
||||||
"more_users_and_guests": "%1 more user(s) and %2 guest(s)",
|
"composer.upload_instructions": "Upload images by dragging & dropping them."
|
||||||
"more_users": "%1 more user(s)",
|
|
||||||
"more_guests": "%1 more guest(s)",
|
|
||||||
"users_and_others": "%1 and %2 others",
|
|
||||||
"sort_by": "Sort by",
|
|
||||||
"oldest_to_newest": "Oldest to Newest",
|
|
||||||
"newest_to_oldest": "Newest to Oldest",
|
|
||||||
"most_votes": "Most votes",
|
|
||||||
"most_posts": "Most posts"
|
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
{
|
{
|
||||||
"title": "Nepřečtené",
|
"title": "Unread",
|
||||||
"no_unread_topics": "Nejsou zde žádné nepřečtené témata.",
|
"no_unread_topics": "Nejsou zde žádné nepřečtené témata.",
|
||||||
"load_more": "Načíst další",
|
"mark_all_read": "Označit vše jako přečtené",
|
||||||
"mark_as_read": "Označit jako přeštené",
|
"load_more": "Načíst další"
|
||||||
"selected": "Vybrané",
|
|
||||||
"all": "Vše",
|
|
||||||
"topics_marked_as_read.success": "Téma bylo označeno jako přečtené!"
|
|
||||||
}
|
}
|
||||||
@@ -2,79 +2,55 @@
|
|||||||
"banned": "Banned",
|
"banned": "Banned",
|
||||||
"offline": "Offline",
|
"offline": "Offline",
|
||||||
"username": "Uživatelské jméno",
|
"username": "Uživatelské jméno",
|
||||||
"joindate": "Join Date",
|
|
||||||
"postcount": "Post Count",
|
|
||||||
"email": "Email",
|
"email": "Email",
|
||||||
"confirm_email": "Potvrdit email",
|
|
||||||
"delete_account": "Vymazat účet",
|
|
||||||
"delete_account_confirm": "Are you sure you want to delete your account? <br /><strong>This action is irreversible and you will not be able to recover any of your data</strong><br /><br />Enter your username to confirm that you wish to destroy this account.",
|
|
||||||
"fullname": "Jméno a příjmení",
|
"fullname": "Jméno a příjmení",
|
||||||
"website": "Webové stránky",
|
"website": "Webové stránky",
|
||||||
|
"user:website_placeholder": "http://...",
|
||||||
"location": "Poloha",
|
"location": "Poloha",
|
||||||
"age": "Věk",
|
"age": "Věk",
|
||||||
"joined": "Registrován",
|
"joined": "Registrován",
|
||||||
"lastonline": "Naposledy online",
|
"lastonline": "Naposledy online",
|
||||||
"profile": "Profil",
|
"profile": "Profile",
|
||||||
"profile_views": "Zobrazení profilu",
|
"profile_views": "Zobrazení profilu",
|
||||||
"reputation": "Reputace",
|
"reputation": "Reputace",
|
||||||
|
"posts": "Příspěvky",
|
||||||
"favourites": "Oblíbené",
|
"favourites": "Oblíbené",
|
||||||
"watched": "Watched",
|
|
||||||
"followers": "Sledují ho",
|
"followers": "Sledují ho",
|
||||||
"following": "Sleduje",
|
"following": "Sleduje",
|
||||||
"signature": "Podpis",
|
"signature": "Podpis",
|
||||||
"gravatar": "Gravatar",
|
"gravatar": "Gravatar",
|
||||||
"birthday": "Datum narození",
|
"birthday": "Datum narození",
|
||||||
|
"birthday_placeholder": "mm/dd/yyyy",
|
||||||
"chat": "Chat",
|
"chat": "Chat",
|
||||||
"follow": "Follow",
|
"follow": "Follow",
|
||||||
"unfollow": "Unfollow",
|
"unfollow": "Unfollow",
|
||||||
"profile_update_success": "Profil byl úspěšně aktualizován!",
|
|
||||||
"change_picture": "Změnit obrázek",
|
"change_picture": "Změnit obrázek",
|
||||||
"edit": "Upravit",
|
"edit": "Upravit",
|
||||||
"uploaded_picture": "Nahraný obrázek",
|
"uploaded_picture": "Nahraný obrázek",
|
||||||
"upload_new_picture": "Nahrát nový obrázek",
|
"upload_new_picture": "Nahrát nový obrázek",
|
||||||
"upload_new_picture_from_url": "Upload New Picture From URL",
|
"current_password": "Current Password",
|
||||||
"current_password": "Současné heslo",
|
|
||||||
"change_password": "Změnit heslo",
|
"change_password": "Změnit heslo",
|
||||||
"change_password_error": "Neplatné heslo",
|
"change_password_error": "Invalid Password!",
|
||||||
"change_password_error_wrong_current": "Your current password is not correct!",
|
"change_password_error_wrong_current": "Your current password is not correct!",
|
||||||
"change_password_error_length": "Password too short!",
|
"change_password_error_length": "Password too short!",
|
||||||
"change_password_error_match": "Passwords must match!",
|
"change_password_error_match": "Passwords must match!",
|
||||||
"change_password_error_privileges": "You do not have the rights to change this password.",
|
"change_password_error_privileges": "You are not have the rights to change this password.",
|
||||||
"change_password_success": "Your password is updated!",
|
"change_password_success": "Your password is updated!",
|
||||||
"confirm_password": "Potvrzení hesla",
|
"confirm_password": "Potvrzení hesla",
|
||||||
"password": "Heslo",
|
"password": "Heslo",
|
||||||
"username_taken_workaround": "The username you requested was already taken, so we have altered it slightly. You are now known as <strong>%1</strong>",
|
|
||||||
"upload_picture": "Nahrát obrázek",
|
"upload_picture": "Nahrát obrázek",
|
||||||
"upload_a_picture": "Nahrát obrázek",
|
"upload_a_picture": "Nahrát obrázek",
|
||||||
"image_spec": "You may only upload PNG, JPG, or GIF files",
|
"image_spec": "You may only upload PNG, JPG, or GIF files",
|
||||||
"max": "max.",
|
"max": "max.",
|
||||||
"settings": "Nastavení",
|
"settings": "Nastavení",
|
||||||
"show_email": "Zobrazovat můj email v profilu",
|
"show_email": "Zobrazovat můj email v profilu",
|
||||||
"show_fullname": "Show My Full Name",
|
|
||||||
"restrict_chats": "Only allow chat messages from users I follow",
|
|
||||||
"digest_label": "Subscribe to Digest",
|
|
||||||
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
|
|
||||||
"digest_off": "Off",
|
|
||||||
"digest_daily": "Daily",
|
|
||||||
"digest_weekly": "Weekly",
|
|
||||||
"digest_monthly": "Monthly",
|
|
||||||
"send_chat_notifications": "Send an email if a new chat message arrives and I am not online",
|
|
||||||
"send_post_notifications": "Send an email when replies are made to topics I am subscribed to",
|
|
||||||
"has_no_follower": "Tohoto uživatele nikdo nesleduje :(",
|
"has_no_follower": "Tohoto uživatele nikdo nesleduje :(",
|
||||||
"follows_no_one": "Tento uživatel nikoho nesleduje :(",
|
"follows_no_one": "Tento uživatel nikoho nesleduje :(",
|
||||||
"has_no_posts": "This user didn't post anything yet.",
|
"has_no_posts": "This user didn't post anything yet.",
|
||||||
"has_no_topics": "This user didn't post any topics yet.",
|
|
||||||
"has_no_watched_topics": "This user didn't watch any topics yet.",
|
|
||||||
"email_hidden": "Skrytý email",
|
"email_hidden": "Skrytý email",
|
||||||
"hidden": "skrytý",
|
"hidden": "skrytý",
|
||||||
"paginate_description": "Paginate topics and posts instead of using infinite scroll.",
|
"paginate_description": "Paginate topics and posts instead of using infinite scroll.",
|
||||||
"topics_per_page": "Topics per Page",
|
"topics_per_page": "Topics per Page",
|
||||||
"posts_per_page": "Posts per Page",
|
"posts_per_page": "Posts per Page",
|
||||||
"notification_sounds": "Play a sound when you receive a notification.",
|
"notification_sounds": "Play a sound when you receive a notification."
|
||||||
"browsing": "Browsing Settings",
|
|
||||||
"open_links_in_new_tab": "Open outgoing links in new tab?",
|
|
||||||
"enable_topic_searching": "Enable In-Topic Searching",
|
|
||||||
"topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen.",
|
|
||||||
"follow_topics_you_reply_to": "Follow topics that you reply to.",
|
|
||||||
"follow_topics_you_create": "Follow topics you create."
|
|
||||||
}
|
}
|
||||||
@@ -2,11 +2,8 @@
|
|||||||
"latest_users": "Nejnovější uživatelé",
|
"latest_users": "Nejnovější uživatelé",
|
||||||
"top_posters": "Nejaktivnější",
|
"top_posters": "Nejaktivnější",
|
||||||
"most_reputation": "Nejváženější",
|
"most_reputation": "Nejváženější",
|
||||||
|
"online": "Online",
|
||||||
"search": "Vyhledávat",
|
"search": "Vyhledávat",
|
||||||
"enter_username": "Zadej uživatelské jméno k hledání",
|
"enter_username": "Zadej uživatelské jméno k hledání",
|
||||||
"load_more": "Načíst další",
|
"load_more": "Načíst další"
|
||||||
"users-found-search-took": "Nazelezeno: %1 uživetel(ů)! Vyhledání trvalo %2 ms.",
|
|
||||||
"filter-by": "Filter By",
|
|
||||||
"online-only": "Online only",
|
|
||||||
"picture-only": "Picture only"
|
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
{
|
{
|
||||||
"new_topic_button": "Neues Thema",
|
"new_topic_button": "Neues Thema",
|
||||||
"no_topics": "<strong>Es gibt noch keine Themen in dieser Kategorie.</strong><br />Warum beginnst du nicht das erste?",
|
"no_topics": "<strong>Es gibt noch keine Themen in dieser Kategorie.</strong><br />Warum beginnst du nicht das erste?",
|
||||||
|
"posts": "Beiträge",
|
||||||
|
"views": "Aufrufe",
|
||||||
|
"posted": "Geschrieben",
|
||||||
"browsing": "Aktiv",
|
"browsing": "Aktiv",
|
||||||
"no_replies": "Niemand hat geantwortet",
|
"no_replies": "Niemand hat geantwortet",
|
||||||
"share_this_category": "Teile diese Kategorie",
|
"replied": "geantwortet",
|
||||||
"ignore": "Ignorieren"
|
"last_edited_by": "zuletzt editiert durch",
|
||||||
|
"share_this_category": "Share this category"
|
||||||
}
|
}
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
"password-reset-requested": "Zurücksetzung des Passworts beantragt - %1!",
|
|
||||||
"welcome-to": "Willkommen zu %1",
|
|
||||||
"greeting_no_name": "Hallo",
|
|
||||||
"greeting_with_name": "Hallo %1",
|
|
||||||
"welcome.text1": "Vielen Dank für die Registrierung mit %1!",
|
|
||||||
"welcome.text2": "Um dein Konto vollständig zu aktivieren, müssen wir überprüfen, ob du Besitzer der E-Mail-Adresse bist, mit der du dich registriert hast.",
|
|
||||||
"welcome.cta": "Klicke hier, um deine E-Mail-Adresse zu bestätigen.",
|
|
||||||
"reset.text1": "Wir haben eine Anfrage auf Zurücksetzung deines Passworts erhalten, wahrscheinlich, weil du es vergessen hast. Falls dies nicht der Fall ist, ignoriere bitte diese E-Mail.",
|
|
||||||
"reset.text2": "Klicke bitte auf den folgenden Link, um mit der Zurücksetzung deines Passworts fortzufahren:",
|
|
||||||
"reset.cta": "Klicke hier, um dein Passwort zurückzusetzen",
|
|
||||||
"digest.notifications": "Du hast ungelesene Benachrichtigungen von %1:",
|
|
||||||
"digest.latest_topics": "Aktuellste Themen vom %1",
|
|
||||||
"digest.cta": "Klicke hier, um %1 zu besuchen",
|
|
||||||
"digest.unsub.info": "Diese Zusammenfassung wurde dir aufgrund deiner Abonnement-Einstellungen gesendet.",
|
|
||||||
"digest.no_topics": "Es gab keine aktiven Themen in den letzten %1",
|
|
||||||
"notif.chat.subject": "Neue Chatnachricht von %1 erhalten",
|
|
||||||
"notif.chat.cta": "Klicke hier, um die Unterhaltung fortzusetzen",
|
|
||||||
"notif.chat.unsub.info": "Diese Chat-Benachrichtigung wurde dir aufgrund deiner Abonnement-Einstellungen gesendet.",
|
|
||||||
"notif.post.cta": "Hier klicken, um das gesamte Thema zu lesen",
|
|
||||||
"notif.post.unsub.info": "Diese Mitteilung wurde wegen ihrer Abonnement-Einstellung gesendet.",
|
|
||||||
"test.text1": "Dies ist eine Test-E-Mail, um zu überprüfen, ob der E-Mailer deines NodeBB korrekt eingestellt wurde.",
|
|
||||||
"unsub.cta": "Klicke hier, um diese Einstellungen zu ändern.",
|
|
||||||
"closing": "Danke!"
|
|
||||||
}
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
{
|
|
||||||
"invalid-data": "Daten ungültig",
|
|
||||||
"not-logged-in": "Du bist nicht angemeldet.",
|
|
||||||
"account-locked": "Dein Account wurde vorübergehend gesperrt.",
|
|
||||||
"search-requires-login": "Die Suche erfordert ein Konto! Bitte log dich ein oder registrieren dich!",
|
|
||||||
"invalid-cid": "Ungültige Kategorie-ID",
|
|
||||||
"invalid-tid": "Ungültige Themen-ID",
|
|
||||||
"invalid-pid": "Ungültige Beitrags-ID",
|
|
||||||
"invalid-uid": "Ungültige Benutzer-ID",
|
|
||||||
"invalid-username": "Ungültiger Benutzername",
|
|
||||||
"invalid-email": "Ungültige E-Mail-Adresse",
|
|
||||||
"invalid-title": "Ungültiger Titel",
|
|
||||||
"invalid-user-data": "Ungültige Benutzerdaten",
|
|
||||||
"invalid-password": "Ungültiges Passwort",
|
|
||||||
"invalid-username-or-password": "Bitte gebe einen Benutzernamen und ein Passwort an",
|
|
||||||
"invalid-search-term": "Ungültige Suchanfrage",
|
|
||||||
"invalid-pagination-value": "Die Nummerierung ist ungültig",
|
|
||||||
"username-taken": "Der Benutzername ist bereits vergeben",
|
|
||||||
"email-taken": "Die E-Mail-Adresse ist bereits vergeben",
|
|
||||||
"email-not-confirmed": "Deine E-Mail wurde noch nicht bestätigt. Bitte klicke hier, um deine E-Mail zu bestätigen.",
|
|
||||||
"email-not-confirmed-chat": "Der Chat ist deaktiviert bis Du deine E-Mail bestätigt hast",
|
|
||||||
"username-too-short": "Benutzername ist zu kurz",
|
|
||||||
"username-too-long": "Der Benutzername ist zu lang",
|
|
||||||
"user-banned": "Der Benutzer ist gesperrt",
|
|
||||||
"user-too-new": "Entschuldigung, du musst %1 Sekunden warten, bevor du deinen ersten Beitrag verfassen kannst!",
|
|
||||||
"no-category": "Die Kategorie existiert nicht",
|
|
||||||
"no-topic": "Das Thema existiert nicht",
|
|
||||||
"no-post": "Der Beitrag existiert nicht",
|
|
||||||
"no-group": "Die Gruppe existiert nicht",
|
|
||||||
"no-user": "Der Benutzer existiert nicht",
|
|
||||||
"no-teaser": "Zusammenfassung existiert nicht",
|
|
||||||
"no-privileges": "Du verfügst nicht über ausreichende Berechtigungen, um die Aktion durchzuführen.",
|
|
||||||
"no-emailers-configured": "Es wurde keine E-Mail-Plugins geladen, weshalb eine Test-E-Mail nicht gesendet werden konnte.",
|
|
||||||
"category-disabled": "Kategorie ist deaktiviert",
|
|
||||||
"topic-locked": "Thema ist gesperrt",
|
|
||||||
"still-uploading": "Bitte warte bis der Vorgang abgeschlossen ist.",
|
|
||||||
"content-too-short": "Bitte gib einen längeren Beitrag ein. Beiträge sollten mindestens %1 Zeichen enthalten.",
|
|
||||||
"title-too-short": "Bitte gib einen längeren Titel ein. Titel sollten mindestens %1 Zeichen enthalten.",
|
|
||||||
"title-too-long": "Der Titel darf maximal %1 Zeichen enthalten.",
|
|
||||||
"too-many-posts": "Du kannst maximal alle %1 Sekunden einen Beitrag erstellen - bitte warte, bevor du einen neuen Beitrag erstellst",
|
|
||||||
"too-many-posts-newbie": "Als neuer Benutzer kannst du nur alle %1 Sekunden einen Beitrag verfassen, bis du %2 Reputationspunkte hast - Bitte warte etwas, bevor du erneut einen Beitrag verfasst",
|
|
||||||
"file-too-big": "Die maximale Dateigröße beträgt %1 kbs - bitte lade eine kleinere Datei hoch",
|
|
||||||
"cant-vote-self-post": "Du kannst deinen eigenen Beitrag nicht bewerten.",
|
|
||||||
"already-favourited": "Dieser Beitrag ist bereits in deinen Favoriten enthalten",
|
|
||||||
"already-unfavourited": "Du hast diesen Beitrag bereits aus deinen Favoriten entfernt",
|
|
||||||
"cant-ban-other-admins": "Du kannst andere Administratoren nicht sperren!",
|
|
||||||
"invalid-image-type": "Falsche Bildart. Erlaubte Arten sind: %1",
|
|
||||||
"invalid-image-extension": "Ungültige Dateinamenerweiterung",
|
|
||||||
"group-name-too-short": "Gruppenname zu kurz",
|
|
||||||
"group-already-exists": "Gruppe existiert bereits",
|
|
||||||
"group-name-change-not-allowed": "Du kannst den Namen der Gruppe nicht ändern",
|
|
||||||
"group-already-member": "Du bist bereits Teil dieser Gruppe",
|
|
||||||
"group-needs-owner": "Diese Gruppe muss mindestens einen Besitzer vorweisen",
|
|
||||||
"post-already-deleted": "Dieser Beitrag ist bereits gelöscht worden",
|
|
||||||
"post-already-restored": "Dieser Beitrag ist bereits wiederhergestellt worden",
|
|
||||||
"topic-already-deleted": "Dieses Thema ist bereits gelöscht worden",
|
|
||||||
"topic-already-restored": "Dieses Thema ist bereits wiederhergestellt worden",
|
|
||||||
"topic-thumbnails-are-disabled": "Vorschaubilder für Themen sind deaktiviert",
|
|
||||||
"invalid-file": "Datei ungültig",
|
|
||||||
"uploads-are-disabled": "Uploads sind deaktiviert",
|
|
||||||
"upload-error": "Upload-Fehler: %1",
|
|
||||||
"signature-too-long": "Entschuldigung, deine Signatur darf maximal %1 Zeichen enthalten.",
|
|
||||||
"cant-chat-with-yourself": "Du kannst nicht mit dir selber chatten!",
|
|
||||||
"chat-restricted": "Dieser Benutzer hat seine Chatfunktion eingeschränkt. Du kannst nur mit diesem Benutzer chatten, wenn er dir folgt.",
|
|
||||||
"too-many-messages": "Du hast zu viele Nachrichten versandt, bitte warte eine Weile.",
|
|
||||||
"reputation-system-disabled": "Das Reputationssystem ist deaktiviert.",
|
|
||||||
"downvoting-disabled": "Downvotes sind deaktiviert.",
|
|
||||||
"not-enough-reputation-to-downvote": "Deine Reputation ist zu niedrig, um diesen Beitrag negativ zu bewerten.",
|
|
||||||
"not-enough-reputation-to-flag": "Deine Reputation ist nicht gut genug, um diesen Beitrag zu melden",
|
|
||||||
"reload-failed": "Es ist ein Problem während des Reloads von NodeBB aufgetreten: \"%1\". NodeBB wird weiterhin clientseitige Assets bereitstellen, allerdings solltest du das, was du vor dem Reload gemacht hast, rückgängig machen.",
|
|
||||||
"registration-error": "Registrierungsfehler",
|
|
||||||
"parse-error": "Ein Fehler ist beim Parsen der Server-Antwort aufgetreten"
|
|
||||||
}
|
|
||||||
7
public/language/de/footer.json
Normal file
7
public/language/de/footer.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"stats.online": "Online",
|
||||||
|
"stats.users": "Benutzer",
|
||||||
|
"stats.topics": "Themen",
|
||||||
|
"stats.posts": "Beiträge",
|
||||||
|
"success": "erfolg"
|
||||||
|
}
|
||||||
@@ -2,14 +2,13 @@
|
|||||||
"home": "Übersicht",
|
"home": "Übersicht",
|
||||||
"search": "Suche",
|
"search": "Suche",
|
||||||
"buttons.close": "Schließen",
|
"buttons.close": "Schließen",
|
||||||
"403.title": "Zugriff verweigert",
|
"403.title": "Zugriff Verweigert",
|
||||||
"403.message": "Du hast keine Zugriffsberechtigung für diese Seite.",
|
"403.message": "Du bist nicht dazu berechtigt, diese Seite aufzurufen. <a href='/login'>Logge dich ein</a> und versuche es erneut.",
|
||||||
"403.login": "Du solltest Dich <a href='%1/login'>einloggen</a>.",
|
|
||||||
"404.title": " Nicht Gefunden",
|
"404.title": " Nicht Gefunden",
|
||||||
"404.message": "Diese Seite existiert nicht. Zur <a href='%1/'>Homepage</a> zurückkehren.",
|
"404.message": "Die abgefragte Seite wurde nicht gefunden. <a href='/''>Zurück zur Übersicht</a>.",
|
||||||
"500.title": "Interner Fehler.",
|
"500.title": "Internal error.",
|
||||||
"500.message": "Ups! Scheint als wäre etwas schief gelaufen!",
|
"500.message": "Ooops! Looks like something went wrong!",
|
||||||
"register": "Registrieren",
|
"register": "Registrierung",
|
||||||
"login": "Login",
|
"login": "Login",
|
||||||
"please_log_in": "Bitte einloggen",
|
"please_log_in": "Bitte einloggen",
|
||||||
"logout": "Logout",
|
"logout": "Logout",
|
||||||
@@ -19,20 +18,16 @@
|
|||||||
"save_changes": "Speichere Änderungen",
|
"save_changes": "Speichere Änderungen",
|
||||||
"close": "Schließen",
|
"close": "Schließen",
|
||||||
"pagination": "Seitennummerierung",
|
"pagination": "Seitennummerierung",
|
||||||
"pagination.out_of": "%1 von %2",
|
|
||||||
"pagination.enter_index": "Seitenzahl eingeben",
|
|
||||||
"header.admin": "Admin",
|
"header.admin": "Admin",
|
||||||
"header.recent": "Aktuell",
|
"header.recent": "Aktuell",
|
||||||
"header.unread": "Ungelesen",
|
"header.unread": "Ungelesen",
|
||||||
"header.tags": "Tags",
|
|
||||||
"header.popular": "Beliebt",
|
"header.popular": "Beliebt",
|
||||||
"header.users": "Benutzer",
|
"header.users": "Benutzer",
|
||||||
"header.groups": "Gruppen",
|
|
||||||
"header.chats": "Chats",
|
"header.chats": "Chats",
|
||||||
"header.notifications": "Benachrichtigungen",
|
"header.notifications": "Benachrichtigungen",
|
||||||
"header.search": "Suche",
|
"header.search": "Suche",
|
||||||
"header.profile": "Profil",
|
"header.profile": "Profil",
|
||||||
"notifications.loading": "Benachrichtigungen werden geladen",
|
"notifications.loading": "Benachrichtigungen laden",
|
||||||
"chats.loading": "Nachrichten werden geladen",
|
"chats.loading": "Nachrichten werden geladen",
|
||||||
"motd.welcome": "Willkommen auf NodeBB, der Diskussionsplattform der Zukunft.",
|
"motd.welcome": "Willkommen auf NodeBB, der Diskussionsplattform der Zukunft.",
|
||||||
"previouspage": "Vorherige Seite",
|
"previouspage": "Vorherige Seite",
|
||||||
@@ -43,39 +38,18 @@
|
|||||||
"alert.banned.message": "Du bist gebannt und wirst nun ausgeloggt.",
|
"alert.banned.message": "Du bist gebannt und wirst nun ausgeloggt.",
|
||||||
"alert.unfollow": "Du folgst %1 nicht länger!",
|
"alert.unfollow": "Du folgst %1 nicht länger!",
|
||||||
"alert.follow": "Du folgst nun %1!",
|
"alert.follow": "Du folgst nun %1!",
|
||||||
"online": "Online",
|
|
||||||
"users": "Benutzer",
|
|
||||||
"topics": "Themen",
|
|
||||||
"posts": "Beiträge",
|
"posts": "Beiträge",
|
||||||
"views": "Aufrufe",
|
"views": "Aufrufe",
|
||||||
"reputation": "Reputation",
|
"posted": "geposted",
|
||||||
"read_more": "weiterlesen",
|
"in": "in",
|
||||||
"posted_ago_by_guest": "%1 von einem Gast geschrieben",
|
|
||||||
"posted_ago_by": "%1 von %2 geschrieben",
|
|
||||||
"posted_ago": "%1 geschrieben",
|
|
||||||
"posted_in_ago_by_guest": "verfasst in %1 %2 von einem Gast",
|
|
||||||
"posted_in_ago_by": "Verfasst in %1 %2 von %3",
|
|
||||||
"posted_in_ago": "Verfasst in %1 %2",
|
|
||||||
"replied_ago": "antwortete %1",
|
|
||||||
"user_posted_ago": "%1 schrieb %2",
|
|
||||||
"guest_posted_ago": "Gast schrieb %1",
|
|
||||||
"last_edited_by_ago": "zuletzt editiert von %1 %2",
|
|
||||||
"norecentposts": "Keine aktuellen Beiträge",
|
"norecentposts": "Keine aktuellen Beiträge",
|
||||||
"norecenttopics": "Keine aktuellen Themen",
|
"norecenttopics": "Keine aktuellen Themen",
|
||||||
"recentposts": "Aktuelle Beiträge",
|
"recentposts": "Aktuelle Beiträge",
|
||||||
"recentips": "Zuletzt eingeloggte IPs",
|
"recentips": "Zuletzt eingeloggte IPs",
|
||||||
|
"online": "Online",
|
||||||
"away": "Abwesend",
|
"away": "Abwesend",
|
||||||
"dnd": "Nicht stören",
|
"dnd": "Nicht stören",
|
||||||
"invisible": "Unsichtbar",
|
"invisible": "Unsichtbar",
|
||||||
"offline": "Offline",
|
"offline": "Offline",
|
||||||
"email": "E-Mail",
|
"privacy": "Privatsphäre"
|
||||||
"language": "Sprache",
|
|
||||||
"guest": "Gast",
|
|
||||||
"guests": "Gäste",
|
|
||||||
"updated.title": "Forum aktualisiert",
|
|
||||||
"updated.message": "Dieses Forum wurde gerade auf die neueste Version aktualisiert. Klicke hier, um die Seite neuzuladen.",
|
|
||||||
"privacy": "Privatsphäre",
|
|
||||||
"follow": "Folgen",
|
|
||||||
"unfollow": "Entfolgen",
|
|
||||||
"delete_all": "Alles löschen"
|
|
||||||
}
|
}
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"groups": "Gruppen",
|
|
||||||
"view_group": "Gruppe betrachten",
|
|
||||||
"owner": "Gruppenbesitzer",
|
|
||||||
"new_group": "Neue Gruppe erstellen",
|
|
||||||
"no_groups_found": "Es sind keine Gruppen vorhanden",
|
|
||||||
"cover-instructions": "Drag and Drop ein Foto, bewege es in Position, dann drücke <strong>Speichern</strong>",
|
|
||||||
"cover-change": "Ändern",
|
|
||||||
"cover-save": "Speichern",
|
|
||||||
"cover-saving": "Am speichern",
|
|
||||||
"details.title": "Gruppendetails",
|
|
||||||
"details.members": "Mitgliederliste",
|
|
||||||
"details.pending": "Ausstehende Mitglieder",
|
|
||||||
"details.has_no_posts": "Die Mitglieder dieser Gruppe haben keine Beiträge verfasst.",
|
|
||||||
"details.latest_posts": "Aktuelle Beiträge",
|
|
||||||
"details.private": "Private Gruppe",
|
|
||||||
"details.public": "Öffentliche Gruppe",
|
|
||||||
"details.owner_options": "Gruppenadministration",
|
|
||||||
"event.updated": "Gruppendetails wurden aktualisiert",
|
|
||||||
"event.deleted": "Die Gruppe \"% 1\" wurde gelöscht"
|
|
||||||
}
|
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"login": "Einloggen",
|
||||||
"username": "Nutzername / E-Mail Adresse",
|
"username": "Nutzername / E-Mail Adresse",
|
||||||
|
"password": "Passwort",
|
||||||
"remember_me": "Eingeloggt bleiben?",
|
"remember_me": "Eingeloggt bleiben?",
|
||||||
"forgot_password": "Passwort vergessen?",
|
"forgot_password": "Passwort vergessen?",
|
||||||
"alternative_logins": "Login Alternativen",
|
"alternative_logins": "Login Alternativen",
|
||||||
"failed_login_attempt": " Anmeldeversuch fehlgeschlagen, versuche es erneut.",
|
"failed_login_attempt": " Anmeldeversuch fehlgeschlagen, versuche es erneut.",
|
||||||
"login_successful": "Du hast dich erfolgreich eingeloggt!",
|
"login_successful": "Du hast dich erfolgreich eingeloggt!"
|
||||||
"dont_have_account": "Sie haben noch kein Konto?"
|
|
||||||
}
|
}
|
||||||
@@ -1,21 +1,6 @@
|
|||||||
{
|
{
|
||||||
"chat.chatting_with": "Mit <span id='chat-with-name'></span> chatten",
|
"chat.chatting_with": "Chatten mit <span id='chat-with-name'></span>",
|
||||||
"chat.placeholder": "Schreibe hier etwas, und drücke Enter zum Absenden.",
|
"chat.placeholder": "schreibe hier etwas, und drücke Enter zum absenden",
|
||||||
"chat.send": "Senden",
|
"chat.send": "Senden",
|
||||||
"chat.no_active": "Du hast keine aktiven Chats.",
|
"chat.no_active": "Du hast keine aktiven Chats."
|
||||||
"chat.user_typing": "%1 tippt gerade ...",
|
|
||||||
"chat.user_has_messaged_you": "%1 hat dir geschrieben.",
|
|
||||||
"chat.see_all": "Alle Chats anzeigen",
|
|
||||||
"chat.no-messages": "Bitte wähle einen Empfänger, um den jeweiligen Nachrichtenverlauf anzuzeigen.",
|
|
||||||
"chat.recent-chats": "Aktuelle Chats",
|
|
||||||
"chat.contacts": "Kontakte",
|
|
||||||
"chat.message-history": "Nachrichtenverlauf",
|
|
||||||
"chat.pop-out": "Chat als Pop-out anzeigen",
|
|
||||||
"chat.maximize": "Maximieren",
|
|
||||||
"chat.seven_days": "7 Tage",
|
|
||||||
"chat.thirty_days": "30 Tage",
|
|
||||||
"chat.three_months": "3 Monate",
|
|
||||||
"composer.user_said_in": "%1 sagte in %2:",
|
|
||||||
"composer.user_said": "%1 sagte:",
|
|
||||||
"composer.discard": "Bist du sicher, dass du diesen Post verwerfen möchtest?"
|
|
||||||
}
|
}
|
||||||
@@ -2,26 +2,9 @@
|
|||||||
"title": "Benachrichtigungen",
|
"title": "Benachrichtigungen",
|
||||||
"no_notifs": "Du hast keine neuen Benachrichtigungen",
|
"no_notifs": "Du hast keine neuen Benachrichtigungen",
|
||||||
"see_all": "Alle Benachrichtigungen ansehen",
|
"see_all": "Alle Benachrichtigungen ansehen",
|
||||||
"back_to_home": "Zurück zu %1",
|
"back_to_home": "Zurück zur Startseite",
|
||||||
"outgoing_link": "Externer Link",
|
"outgoing_link": "Externer Link",
|
||||||
"outgoing_link_message": "Du verlässt nun %1.",
|
"outgoing_link_message": "Du verlässt nun",
|
||||||
"continue_to": "Fortfahren zu %1",
|
"continue_to": "Gehe weiter zu",
|
||||||
"return_to": "Kehre zurück zu %1",
|
"return_to": "Kehre zurück zu"
|
||||||
"new_notification": "Neue Benachrichtigung",
|
|
||||||
"you_have_unread_notifications": "Du hast ungelesene Benachrichtigungen.",
|
|
||||||
"new_message_from": "Neue Nachricht von <strong>%1</strong>",
|
|
||||||
"upvoted_your_post_in": "<strong>%1</strong> hat deinen Beitrag in <strong>%2</strong> positiv bewertet.",
|
|
||||||
"moved_your_post": "<strong>%1</strong> hat deinen Beitrag verschoben.",
|
|
||||||
"moved_your_topic": "<strong>%1</strong> hat dein Thema verschoben.",
|
|
||||||
"favourited_your_post_in": "<strong>%1</strong> hat deinen Beitrag in <strong>%2</strong> favorisiert.",
|
|
||||||
"user_flagged_post_in": "<strong>%1</strong> hat einen Beitrag in </strong>%2</strong> gemeldet",
|
|
||||||
"user_posted_to": "<strong>%1</strong> hat auf <strong>%2</strong> geantwortet.",
|
|
||||||
"user_posted_topic": "<strong>%1</strong> hat ein neues Thema erstellt: <strong>%2</strong>",
|
|
||||||
"user_mentioned_you_in": "<strong>%1</strong> erwähnte dich in <strong>%2</strong>",
|
|
||||||
"user_started_following_you": "<strong>%1</strong> folgt dir jetzt.",
|
|
||||||
"email-confirmed": "E-Mail bestätigt",
|
|
||||||
"email-confirmed-message": "Vielen Dank für Ihre E-Mail-Validierung. Ihr Konto ist nun vollständig aktiviert.",
|
|
||||||
"email-confirm-error": "Es ist ein Fehler aufgetreten ...",
|
|
||||||
"email-confirm-error-message": "Es gab ein Problem bei der Validierung Ihrer E-Mail-Adresse. Möglicherweise ist der Code ungültig oder abgelaufen.",
|
|
||||||
"email-confirm-sent": "Bestätigungs-E-Mail gesendet."
|
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,14 @@
|
|||||||
{
|
{
|
||||||
"home": "Home",
|
"home": "Home",
|
||||||
"unread": "Ungelesene Themen",
|
"unread": "Unread Topics",
|
||||||
"popular": "Beliebte Themen",
|
"popular": "Beliebte Themen",
|
||||||
"recent": "Neueste Themen",
|
"recent": "Recent Topics",
|
||||||
"users": "Registrierte User",
|
"users": "Registered Users",
|
||||||
"notifications": "Benachrichtigungen",
|
"notifications": "Notifications",
|
||||||
"tags": "Themen markiert unter \"%1\"",
|
"user.edit": "Editing \"%1\"",
|
||||||
"user.edit": "Bearbeite \"%1\"",
|
"user.following": "People %1 Follows",
|
||||||
"user.following": "Nutzer, die %1 folgt",
|
"user.followers": "People who Follow %1",
|
||||||
"user.followers": "Nutzer, die %1 folgen",
|
|
||||||
"user.posts": "Beiträge von %1",
|
"user.posts": "Beiträge von %1",
|
||||||
"user.topics": "Themen von %1",
|
"user.favourites": "%1's favorisierte Beiträge",
|
||||||
"user.favourites": "Von %1 favorisierte Beiträge",
|
"user.settings": "User Settings"
|
||||||
"user.settings": "Benutzer-Einstellungen",
|
|
||||||
"maintenance.text": "%1 befindet sich derzeit in der Wartung. Bitte komm später wieder.",
|
|
||||||
"maintenance.messageIntro": "Zusätzlich hat der Administrator diese Nachricht hinterlassen:"
|
|
||||||
}
|
}
|
||||||
@@ -3,16 +3,5 @@
|
|||||||
"day": "Tag",
|
"day": "Tag",
|
||||||
"week": "Woche",
|
"week": "Woche",
|
||||||
"month": "Monat",
|
"month": "Monat",
|
||||||
"year": "Jahr",
|
"no_recent_topics": "Es gibt keine aktuellen Themen."
|
||||||
"alltime": "Gesamter Zeitraum",
|
|
||||||
"no_recent_topics": "Es gibt keine aktuellen Themen.",
|
|
||||||
"there-is-a-new-topic": "Es gibt ein neues Thema.",
|
|
||||||
"there-is-a-new-topic-and-a-new-post": "Es gibt ein neues Thema und einen neuen Beitrag.",
|
|
||||||
"there-is-a-new-topic-and-new-posts": "Es gibt ein neues Thema und %1 neue Beiträge.",
|
|
||||||
"there-are-new-topics": "Es gibt %1 neue Themen.",
|
|
||||||
"there-are-new-topics-and-a-new-post": "Es gibt %1 neue Themen und einen neuen Beitrag.",
|
|
||||||
"there-are-new-topics-and-new-posts": "Es gibt %1 neue Themen und %2 neue Beiträge.",
|
|
||||||
"there-is-a-new-post": "Es gibt einen neuen Beitrag.",
|
|
||||||
"there-are-new-posts": "Es gibt %1 neue Beiträge.",
|
|
||||||
"click-here-to-reload": "Hier klicken um neu zu laden."
|
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"register": "Registrieren",
|
"register": "Registrieren",
|
||||||
"help.email": "Deine E-Mail Adresse ist standardmäßig nicht öffentlich sichtbar.",
|
"help.email": "Deine E-Mail Adresse ist standardmäßig nicht öffentlich sichtbar.",
|
||||||
"help.username_restrictions": "Einen einmaligen Benutzernamen. %1-%2 Zeichen. Andere Benutzer können dich mit @<span id='yourUsername'>Benutzername</span> anschreiben.",
|
"help.username_restrictions": "Einen einmaligen Benutzernamen. 3-16 Zeichen. Andere Benutzer können dich mit @<span id='yourUsername'>Benutzername</span> anschreiben.",
|
||||||
"help.minimum_password_length": "Dein Passwort muss mindestens %1 Zeichen lang sein.",
|
"help.minimum_password_length": "Dein Passwort muss mindestens sechs Zeichen lang sein.",
|
||||||
"email_address": "E-Mail",
|
"email_address": "E-Mail",
|
||||||
"email_address_placeholder": "E-Mail Adresse hier eingeben",
|
"email_address_placeholder": "E-Mail Adresse hier eingeben",
|
||||||
"username": "Benutzername",
|
"username": "Benutzername",
|
||||||
|
|||||||
@@ -9,6 +9,6 @@
|
|||||||
"repeat_password": "Wiederhole das Passwort",
|
"repeat_password": "Wiederhole das Passwort",
|
||||||
"enter_email": "Bitte gib Deine <strong>E-Mail Adresse</strong> ein und wir senden Dir eine Anleitung, wie Du Dein Passwort zurücksetzen kannst.",
|
"enter_email": "Bitte gib Deine <strong>E-Mail Adresse</strong> ein und wir senden Dir eine Anleitung, wie Du Dein Passwort zurücksetzen kannst.",
|
||||||
"enter_email_address": "E-Mail Adresse eingeben",
|
"enter_email_address": "E-Mail Adresse eingeben",
|
||||||
"password_reset_sent": "Passwortzurücksetzung beantragt.",
|
"password_reset_sent": "Passwortzrücksetzung beantragt.",
|
||||||
"invalid_email": "Ungültige E-Mail / Adresse existiert nicht!"
|
"invalid_email": "Ungültige E-Mail / Adresse existiert nicht!"
|
||||||
}
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"results_matching": "%1 Ergebniss(e) stimmen mit \"%2\" überein, (%3 Sekunden)",
|
|
||||||
"no-matches": "Keine Ergebnisse gefunden",
|
|
||||||
"in": "In",
|
|
||||||
"by": "Bei",
|
|
||||||
"posted-by": "Geschrieben von"
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"success": "Fertig",
|
|
||||||
"topic-post": "Beitrag erfolgreich erstellt.",
|
|
||||||
"authentication-successful": "Authentifizierung erfolgreich!",
|
|
||||||
"settings-saved": "Einstellungen gespeichert!"
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"no_tag_topics": "Es gibt keine Themen mit diesem Tag.",
|
|
||||||
"tags": "Tags",
|
|
||||||
"enter_tags_here": "Gib hier Tags ein und drück die Eingabetaste nach jedem Tag.",
|
|
||||||
"enter_tags_here_short": "Gib Tags ein...",
|
|
||||||
"no_tags": "Es gibt bisher keine Tags."
|
|
||||||
}
|
|
||||||
@@ -1,83 +1,80 @@
|
|||||||
{
|
{
|
||||||
"topic": "Thema",
|
"topic": "Thema",
|
||||||
|
"topics": "Themen",
|
||||||
"topic_id": "Topic ID",
|
"topic_id": "Topic ID",
|
||||||
"topic_id_placeholder": "Topic ID eingeben",
|
"topic_id_placeholder": "Enter topic ID",
|
||||||
"no_topics_found": "Keine passenden Themen gefunden.",
|
"no_topics_found": "Keine passende Themen gefunden.",
|
||||||
"no_posts_found": "Keine Beiträge gefunden!",
|
"no_posts_found": "Keine Beiträge gefunden!",
|
||||||
"post_is_deleted": "Dieser Beitrag wurde gelöscht!",
|
|
||||||
"profile": "Profil",
|
"profile": "Profil",
|
||||||
"posted_by": "Geschrieben von %1",
|
"posted_by": "Geposted von",
|
||||||
"posted_by_guest": "Verfasst von einem Gast",
|
|
||||||
"chat": "Chat",
|
"chat": "Chat",
|
||||||
"notify_me": "Erhalte eine Benachrichtigung bei neuen Antworten zu diesem Thema.",
|
"notify_me": "Werde bei neues Antworten auf dieses Thema benachrichtigt.",
|
||||||
"quote": "zitieren",
|
"quote": "zitieren",
|
||||||
"reply": "antworten",
|
"reply": "antworten",
|
||||||
"edit": "bearbeiten",
|
"edit": "bearbeiten",
|
||||||
"delete": "löschen",
|
"delete": "löschen",
|
||||||
"purge": "bereinigen",
|
|
||||||
"restore": "Wiederherstellen",
|
"restore": "Wiederherstellen",
|
||||||
"move": "verschieben",
|
"move": "Verschieben",
|
||||||
"fork": "Aufspalten",
|
"fork": "Aufspalten",
|
||||||
|
"banned": "gesperrt",
|
||||||
"link": "Link",
|
"link": "Link",
|
||||||
"share": "Teilen",
|
"share": "Teilen",
|
||||||
"tools": "Tools",
|
"tools": "Tools",
|
||||||
"flag": "Markieren",
|
"flag": "Markieren",
|
||||||
"locked": "Gesperrt",
|
|
||||||
"bookmark_instructions": "Klicke hier um zur letzten Position zurückzukehren oder schließe zum Abbrechen.",
|
"bookmark_instructions": "Klicke hier um zur letzten Position zurückzukehren oder schließe zum Abbrechen.",
|
||||||
"flag_title": "Diesen Beitrag zur Moderation markieren",
|
"flag_title": "Diesen Beitrag zur Moderation markieren",
|
||||||
"flag_confirm": "Sind Sie sicher, dass Sie diesen Post markieren möchten?",
|
"flag_confirm": "Are you sure you want to flag this post?",
|
||||||
"flag_success": "Dieser Beitrag wurde erfolgreich für die Moderation markiert.",
|
"flag_success": "This post has been flagged for moderation.",
|
||||||
"deleted_message": "Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.",
|
"deleted_message": "Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können ihn sehen.",
|
||||||
|
"following_topic.title": "Thema wird gefolgt",
|
||||||
"following_topic.message": "Du erhälst nun eine Benachrichtigung, wenn jemand einen Beitrag zu diesem Thema verfasst.",
|
"following_topic.message": "Du erhälst nun eine Benachrichtigung, wenn jemand einen Beitrag zu diesem Thema verfasst.",
|
||||||
|
"not_following_topic.title": "Thema nicht gefolgt",
|
||||||
"not_following_topic.message": "Du erhälst keine weiteren Benachrichtigungen zu diesem Thema.",
|
"not_following_topic.message": "Du erhälst keine weiteren Benachrichtigungen zu diesem Thema.",
|
||||||
"login_to_subscribe": "Bitte registrieren oder einloggen um dieses Thema zu abonnieren",
|
"login_to_subscribe": "Bitte registrieren oder einloggen um dieses Thema zu abonnieren",
|
||||||
"markAsUnreadForAll.success": "Thema für Alle als ungelesen markiert.",
|
"markAsUnreadForAll.success": "Thema für Alle als ungelesen markiert.",
|
||||||
"watch": "Beobachten",
|
"watch": "Beobachten",
|
||||||
"unwatch": "Nicht mehr beobachten",
|
|
||||||
"watch.title": "Bei neuen Antworten benachrichtigen",
|
"watch.title": "Bei neuen Antworten benachrichtigen",
|
||||||
"unwatch.title": "Dieses Thema nicht mehr beobachten",
|
|
||||||
"share_this_post": "Diesen Beitrag teilen",
|
"share_this_post": "Diesen Beitrag teilen",
|
||||||
"thread_tools.title": "Themen-Tools",
|
"thread_tools.title": "Tools",
|
||||||
"thread_tools.markAsUnreadForAll": "Als ungelesen markieren",
|
"thread_tools.markAsUnreadForAll": "Als ungelesen markieren",
|
||||||
"thread_tools.pin": "Thema anpinnen",
|
"thread_tools.pin": "Thema anpinnen",
|
||||||
"thread_tools.unpin": "Thema nicht mehr anpinnen",
|
"thread_tools.unpin": "Thema nicht mehr anpinnen",
|
||||||
"thread_tools.lock": "Thema schließen",
|
"thread_tools.lock": "Thema schließen",
|
||||||
"thread_tools.unlock": "Thema öffnen",
|
"thread_tools.unlock": "Thema öffnen",
|
||||||
"thread_tools.move": "Thema verschieben",
|
"thread_tools.move": "Thema verschieben",
|
||||||
"thread_tools.move_all": "Alle verschieben",
|
|
||||||
"thread_tools.fork": "Thema aufspalten",
|
"thread_tools.fork": "Thema aufspalten",
|
||||||
"thread_tools.delete": "Thema löschen",
|
"thread_tools.delete": "Thema löschen",
|
||||||
"thread_tools.delete_confirm": "Bist du sicher, dass du dieses Thema löschen möchtest?",
|
|
||||||
"thread_tools.restore": "Thema wiederherstellen",
|
"thread_tools.restore": "Thema wiederherstellen",
|
||||||
"thread_tools.restore_confirm": "Bist du sicher, dass du dieses Thema wiederherstellen möchtest?",
|
|
||||||
"thread_tools.purge": "Thema bereinigen",
|
|
||||||
"thread_tools.purge_confirm": "Bist du sicher, dass du dieses Thema bereinigen möchtest?",
|
|
||||||
"topic_move_success": "Thema wurde erfolgreich zu %1 verschoben.",
|
|
||||||
"post_delete_confirm": "Sind Sie sicher, dass Sie diesen Beitrag löschen möchten?",
|
|
||||||
"post_restore_confirm": "Sind Sie sicher, dass Sie diesen Beitrag wiederherstellen möchten?",
|
|
||||||
"post_purge_confirm": "Sind Sie sicher, das Sie diesen Beitrag bereinigen möchten?",
|
|
||||||
"load_categories": "Kategorien laden",
|
"load_categories": "Kategorien laden",
|
||||||
"disabled_categories_note": "Deaktivierte Kategorien sind ausgegraut.",
|
"disabled_categories_note": "Deaktivierte Kategorien sind ausgegraut.",
|
||||||
"confirm_move": "Verschieben",
|
"confirm_move": "verschieben",
|
||||||
"confirm_fork": "Aufspalten",
|
"confirm_fork": "Aufspalten",
|
||||||
"favourite": "Favorisieren",
|
"favourite": "Favorit",
|
||||||
"favourites": "Favoriten",
|
"favourites": "Favoriten",
|
||||||
|
"favourites.not_logged_in.title": "Nicht eingeloggt!",
|
||||||
|
"favourites.not_logged_in.message": "Bitte logge dich ein, um diesen Beitrag favorisieren zu können.",
|
||||||
"favourites.has_no_favourites": "Du hast noch keine Favoriten.",
|
"favourites.has_no_favourites": "Du hast noch keine Favoriten.",
|
||||||
"loading_more_posts": "Lade mehr Beiträge",
|
"vote.not_logged_in.title": "Nicht eingeloggt",
|
||||||
|
"vote.not_logged_in.message": "Zum Bewerten bitte einloggen",
|
||||||
|
"vote.cant_vote_self.title": "Ungültige Bewertung",
|
||||||
|
"vote.cant_vote_self.message": "Du kannst deinen eigenen Beitrag nicht bewerten",
|
||||||
|
"loading_more_posts": "Lade Mehr Posts",
|
||||||
"move_topic": "Thema verschieben",
|
"move_topic": "Thema verschieben",
|
||||||
"move_topics": "Themen verschieben",
|
|
||||||
"move_post": "Beitrag verschieben",
|
"move_post": "Beitrag verschieben",
|
||||||
"post_moved": "Beitrag wurde verschoben!",
|
|
||||||
"fork_topic": "Thema aufspalten",
|
"fork_topic": "Thema aufspalten",
|
||||||
"topic_will_be_moved_to": "Dieses Thema wird verschoben nach",
|
"topic_will_be_moved_to": "Dieses Thema wird verschoben nach",
|
||||||
"fork_topic_instruction": "Klicke auf die Beiträge, die du aufspalten willst",
|
"fork_topic_instruction": "Klicke auf die Posts, die du aufspalten willst",
|
||||||
"fork_no_pids": "Keine Beiträge ausgewählt!",
|
"fork_no_pids": "Keine Beiträge ausgewählt!",
|
||||||
"fork_success": "Thema erfolgreich abgespalten! Klicke hier, um zum abgespalteten Thema zu gelangen.",
|
"fork_success": "Thema erfolgreich aufgespalten!",
|
||||||
|
"reputation": "Reputation",
|
||||||
|
"posts": "Beiträge",
|
||||||
"composer.title_placeholder": "Hier den Titel des Themas eingeben...",
|
"composer.title_placeholder": "Hier den Titel des Themas eingeben...",
|
||||||
"composer.handle_placeholder": "Name",
|
"composer.write": "Schreiben",
|
||||||
|
"composer.preview": "Vorschau",
|
||||||
|
"composer.help": "Hilfe",
|
||||||
"composer.discard": "Verwerfen",
|
"composer.discard": "Verwerfen",
|
||||||
"composer.submit": "Absenden",
|
"composer.submit": "Absenden",
|
||||||
"composer.replying_to": "Antworte auf %1",
|
"composer.replying_to": "Als Antwort auf",
|
||||||
"composer.new_topic": "Neues Thema",
|
"composer.new_topic": "Neues Thema",
|
||||||
"composer.uploading": "Upload läuft...",
|
"composer.uploading": "Upload läuft...",
|
||||||
"composer.thumb_url_label": "Vorschaubild-URL hier einfügen",
|
"composer.thumb_url_label": "Vorschaubild-URL hier einfügen",
|
||||||
@@ -86,13 +83,5 @@
|
|||||||
"composer.thumb_file_label": "Oder eine Datei hochladen",
|
"composer.thumb_file_label": "Oder eine Datei hochladen",
|
||||||
"composer.thumb_remove": "Felder leeren",
|
"composer.thumb_remove": "Felder leeren",
|
||||||
"composer.drag_and_drop_images": "Bilder hier reinziehen",
|
"composer.drag_and_drop_images": "Bilder hier reinziehen",
|
||||||
"more_users_and_guests": "%1 weitere(r) Nutzer und %2 Gäste",
|
"composer.upload_instructions": "Zum Hochladen Bilder hier reinziehen."
|
||||||
"more_users": "%1 weitere(r) Nutzer",
|
|
||||||
"more_guests": "%1 weitere Gäste",
|
|
||||||
"users_and_others": "%1 und %2 andere",
|
|
||||||
"sort_by": "Sortieren nach",
|
|
||||||
"oldest_to_newest": "Älteste zuerst",
|
|
||||||
"newest_to_oldest": "Neuster zuerst",
|
|
||||||
"most_votes": "Die meisten Stimmen",
|
|
||||||
"most_posts": "Die meisten Beiträge"
|
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
{
|
{
|
||||||
"title": "Ungelesen",
|
"title": "Ungelesen",
|
||||||
"no_unread_topics": "Es gibt keine ungelesenen Themen.",
|
"no_unread_topics": "Es gibt keine ungelesenen Themen.",
|
||||||
"load_more": "mehr laden",
|
"mark_all_read": "alle als gelesen markieren",
|
||||||
"mark_as_read": "Als gelesen markieren",
|
"load_more": "mehr laden"
|
||||||
"selected": "Ausgewählte",
|
|
||||||
"all": "Alle",
|
|
||||||
"topics_marked_as_read.success": "Themen als gelesen markiert!"
|
|
||||||
}
|
}
|
||||||
@@ -2,14 +2,10 @@
|
|||||||
"banned": "Gebannt",
|
"banned": "Gebannt",
|
||||||
"offline": "offline",
|
"offline": "offline",
|
||||||
"username": "Nutzername",
|
"username": "Nutzername",
|
||||||
"joindate": "Registriert vor",
|
|
||||||
"postcount": "Beiträge",
|
|
||||||
"email": "E-Mail",
|
"email": "E-Mail",
|
||||||
"confirm_email": "E-Mail bestätigen",
|
|
||||||
"delete_account": "Konto löschen",
|
|
||||||
"delete_account_confirm": "Bist du sicher, dass du dein Konto löschen möchtest? <br /><strong>Diese Aktion kann nicht rückgängig gemacht werden und du kannst deine Daten nicht wiederherstellen</strong><br /><br />Gebe deinen Benutzernamen ein, um zu bestätigen, dass du dieses Konto löschen möchtest.",
|
|
||||||
"fullname": "Kompletter Name",
|
"fullname": "Kompletter Name",
|
||||||
"website": "Homepage",
|
"website": "Homepage",
|
||||||
|
"user:website_placeholder": "http://...",
|
||||||
"location": "Wohnort",
|
"location": "Wohnort",
|
||||||
"age": "Alter",
|
"age": "Alter",
|
||||||
"joined": "Beigetreten",
|
"joined": "Beigetreten",
|
||||||
@@ -17,64 +13,44 @@
|
|||||||
"profile": "Profil",
|
"profile": "Profil",
|
||||||
"profile_views": "Profilaufrufe",
|
"profile_views": "Profilaufrufe",
|
||||||
"reputation": "Reputation",
|
"reputation": "Reputation",
|
||||||
|
"posts": "Posts",
|
||||||
"favourites": "Favoriten",
|
"favourites": "Favoriten",
|
||||||
"watched": "Beobachtet",
|
"followers": "Follower",
|
||||||
"followers": "Folger",
|
|
||||||
"following": "Folgt",
|
"following": "Folgt",
|
||||||
"signature": "Signatur",
|
"signature": "Signatur",
|
||||||
"gravatar": "Gravatar",
|
"gravatar": "Gravatar",
|
||||||
"birthday": "Geburtstag",
|
"birthday": "Geburtstag",
|
||||||
|
"birthday_placeholder": "mm/dd/yyyy",
|
||||||
"chat": "Chat",
|
"chat": "Chat",
|
||||||
"follow": "Folgen",
|
"follow": "Folgen",
|
||||||
"unfollow": "Nicht mehr folgen",
|
"unfollow": "Nicht mehr folgen",
|
||||||
"profile_update_success": "Profil erfolgreich aktualisiert!",
|
"change_picture": "Ändere Profilbild",
|
||||||
"change_picture": "Profilbild ändern",
|
|
||||||
"edit": "Ändern",
|
"edit": "Ändern",
|
||||||
"uploaded_picture": "Hochgeladene Bilder",
|
"uploaded_picture": "Hochgeladene Bilder",
|
||||||
"upload_new_picture": "Neues Bild hochladen",
|
"upload_new_picture": "Neues Bild hochladen",
|
||||||
"upload_new_picture_from_url": "Neues Bild von URL hochladen",
|
|
||||||
"current_password": "Aktuelles Passwort",
|
"current_password": "Aktuelles Passwort",
|
||||||
"change_password": "Passwort ändern",
|
"change_password": "Ändere Passwort",
|
||||||
"change_password_error": "Ungültiges Passwort!",
|
"change_password_error": "Invalid Password!",
|
||||||
"change_password_error_wrong_current": "Ihr derzeitiges Passwort ist ungültig!",
|
"change_password_error_wrong_current": "Your current password is not correct!",
|
||||||
"change_password_error_length": "Passwort zu kurz!",
|
"change_password_error_length": "Password too short!",
|
||||||
"change_password_error_match": "Passwörter müssen übereinstimmen!",
|
"change_password_error_match": "Passwords must match!",
|
||||||
"change_password_error_privileges": "Deine Berechtigungen reichen nicht aus, um dieses Passwort zu ändern.",
|
"change_password_error_privileges": "You are not have the rights to change this password.",
|
||||||
"change_password_success": "Ihr Passwort wurde aktualisiert!",
|
"change_password_success": "Your password is updated!",
|
||||||
"confirm_password": "Passwort wiederholen",
|
"confirm_password": "Passwort wiederholen",
|
||||||
"password": "Passwort",
|
"password": "Passwort",
|
||||||
"username_taken_workaround": "Der gewünschte Benutzername ist bereits vergeben, deshalb haben wir ihn ein wenig verändert. Du bist jetzt unter dem Namen <strong>%1</strong> bekannt.",
|
|
||||||
"upload_picture": "Bild hochladen",
|
"upload_picture": "Bild hochladen",
|
||||||
"upload_a_picture": "Ein Bild hochladen",
|
"upload_a_picture": "Ein Bild hochladen",
|
||||||
"image_spec": "Sie dürfen nur Dateien vom Typ PNG, JPG oder GIF hochladen",
|
"image_spec": "Du darfst nur Dateien vom Typ PNG, JPG oder GIF hochladen",
|
||||||
"max": "max.",
|
"max": "max.",
|
||||||
"settings": "Einstellungen",
|
"settings": "Einstellungen",
|
||||||
"show_email": "Zeige meine E-Mail Adresse an.",
|
"show_email": "Zeige meine E-Mail Adresse an.",
|
||||||
"show_fullname": "Zeige meinen kompletten Namen an",
|
|
||||||
"restrict_chats": "Nur Chatnachrichten von Benutzern, denen ich folge, erlauben",
|
|
||||||
"digest_label": "Auszug abonnieren",
|
|
||||||
"digest_description": "Abonniere E-Mail-Benachrichtigungen für dieses Forum (neue Benachrichtigungen und Themen) nach einem festen Zeitplan.",
|
|
||||||
"digest_off": "Aus",
|
|
||||||
"digest_daily": "Täglich",
|
|
||||||
"digest_weekly": "Wöchentlich",
|
|
||||||
"digest_monthly": "Monatlich",
|
|
||||||
"send_chat_notifications": "Sende eine E-Mail, wenn eine neue Chat-Nachricht eingeht und ich nicht online bin",
|
|
||||||
"send_post_notifications": "Sende eine E-Mail wenn auf Themen die ich abonniert habe geantwortet wird",
|
|
||||||
"has_no_follower": "Dieser User hat noch keine Follower.",
|
"has_no_follower": "Dieser User hat noch keine Follower.",
|
||||||
"follows_no_one": "Dieser User folgt noch niemandem :(",
|
"follows_no_one": "Dieser User folgt noch niemanden.",
|
||||||
"has_no_posts": "Dieser Nutzer hat noch nichts gepostet.",
|
"has_no_posts": "Dieser Nutzer hat noch nichts gepostet.",
|
||||||
"has_no_topics": "Dieser Nutzer hat noch keine Themen gepostet.",
|
|
||||||
"has_no_watched_topics": "Diese Person beobachtet keine Themen",
|
|
||||||
"email_hidden": "E-Mail Adresse versteckt",
|
"email_hidden": "E-Mail Adresse versteckt",
|
||||||
"hidden": "versteckt",
|
"hidden": "versteckt",
|
||||||
"paginate_description": "Themen und Beiträge auf Seiten aufteilen statt unendliches Scrollen verwenden.",
|
"paginate_description": "Themen und Beiträge auf Seiten aufteilen statt unendliches Scrollen verweden",
|
||||||
"topics_per_page": "Themen pro Seite",
|
"topics_per_page": "Themen pro Seite",
|
||||||
"posts_per_page": "Beiträge pro Seite",
|
"posts_per_page": "Beiträge pro Seite",
|
||||||
"notification_sounds": "Ton abspielen, wenn ich eine Benachrichtigung erhalte.",
|
"notification_sounds": "Ton abspielen, wenn ich eine Benachrichtigung erhalte."
|
||||||
"browsing": "Browser Einstellungen",
|
|
||||||
"open_links_in_new_tab": "Externe Links in neuem Tab öffnen?",
|
|
||||||
"enable_topic_searching": "Suchen innerhalb von Themen aktivieren",
|
|
||||||
"topic_search_help": "Falls aktiviert, wird die Suche im Thema das Standardsuchverhalten des Browsers überschreiben und es Ihnen erlauben, das ganze Thema statt dessen, was sich auf dem Bildschirm befindet, zu durchsuchen.",
|
|
||||||
"follow_topics_you_reply_to": "Folge Themen, auf die du antwortest.",
|
|
||||||
"follow_topics_you_create": "Folge Themen, die du erstellst."
|
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user