mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-26 18:30:20 +01:00
Compare commits
29 Commits
v1.4.1
...
v1.0.4-aut
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc3fc8e90e | ||
|
|
70103b7ce9 | ||
|
|
5d49af2f2a | ||
|
|
ae76f3cb56 | ||
|
|
4cb1e07fed | ||
|
|
b2f37dcd93 | ||
|
|
5807c1d64f | ||
|
|
0fccacbb6e | ||
|
|
900fb07577 | ||
|
|
a23d927404 | ||
|
|
8a0c28a86f | ||
|
|
6c87bc0d38 | ||
|
|
5aa83d070b | ||
|
|
13e6244d7f | ||
|
|
6e27e9a0fc | ||
|
|
7b5bedaeb4 | ||
|
|
cb5fb11ad7 | ||
|
|
1e2a82733b | ||
|
|
dd585ee4eb | ||
|
|
83ddaa3381 | ||
|
|
646a287b5c | ||
|
|
f4bc2e9cbe | ||
|
|
052cff6578 | ||
|
|
0b11461f7b | ||
|
|
e910d87e7c | ||
|
|
70d0b28337 | ||
|
|
f7715e8f27 | ||
|
|
4a561fa7d2 | ||
|
|
70128d73c7 |
@@ -5,4 +5,4 @@ languages:
|
||||
PHP: true
|
||||
exclude_paths:
|
||||
- "public/vendor/*"
|
||||
- "test/*"
|
||||
- "tests/*"
|
||||
@@ -1,20 +0,0 @@
|
||||
node_modules/
|
||||
public/src/nodebb.min.js
|
||||
*.sublime-project
|
||||
*.sublime-workspace
|
||||
.project
|
||||
.vagrant
|
||||
.DS_Store
|
||||
logs/
|
||||
/public/templates
|
||||
/public/uploads
|
||||
/public/sounds
|
||||
/public/vendor
|
||||
/public/nodebb.min.js
|
||||
/public/acp.min.js
|
||||
/public/src/modules/string.js
|
||||
.idea/
|
||||
.vscode/
|
||||
*.ipr
|
||||
*.iws
|
||||
/coverage
|
||||
110
.eslintrc.json
110
.eslintrc.json
@@ -1,110 +0,0 @@
|
||||
{
|
||||
"extends": "airbnb",
|
||||
|
||||
"rules": {
|
||||
"handle-callback-err": [ "error","^(e$|(e|(.*(_e|E)))rr)" ],
|
||||
"linebreak-style": "off",
|
||||
"import/no-unresolved": "off",
|
||||
"import/no-extraneous-dependencies": "off",
|
||||
"one-var": "off",
|
||||
"no-undef": "off",
|
||||
"max-len": "off",
|
||||
"no-new": "off",
|
||||
"max-nested-callbacks": "off",
|
||||
"no-mixed-requires": "off",
|
||||
"brace-style": "off",
|
||||
"max-statements-per-line": "off",
|
||||
"no-unused-vars": "off",
|
||||
"no-mixed-spaces-and-tabs": "off",
|
||||
"no-useless-concat": "off",
|
||||
"require-jsdoc": "off",
|
||||
"eqeqeq": "off",
|
||||
"camelcase": "off",
|
||||
"no-negated-condition": "off",
|
||||
"one-var-declaration-per-line": "off",
|
||||
"new-cap": "off",
|
||||
"no-lonely-if": "off",
|
||||
"radix": "off",
|
||||
"no-else-return": "off",
|
||||
"no-useless-escape": "off",
|
||||
"block-scoped-var": "off",
|
||||
"operator-assignment": "off",
|
||||
"default-case": "off",
|
||||
"yoda": "off",
|
||||
"no-use-before-define": "off",
|
||||
"no-loop-func": "off",
|
||||
"no-void": "off",
|
||||
"valid-jsdoc": "off",
|
||||
"o-eq-null": "off",
|
||||
"no-cond-assign": "off",
|
||||
"no-eq-null": "off",
|
||||
"no-redeclare": "off",
|
||||
"no-unreachable": "off",
|
||||
"no-nested-ternary": "off",
|
||||
"operator-linebreak": "off",
|
||||
"guard-for-in": "off",
|
||||
"no-unneeded-ternary": "off",
|
||||
"no-sequences": "off",
|
||||
"no-extend-native": "off",
|
||||
"no-shadow-restricted-names": "off",
|
||||
"no-extra-boolean-cast": "off",
|
||||
"no-script-url": "off",
|
||||
"no-path-concat": "off",
|
||||
"no-unused-expressions": "off",
|
||||
"no-restricted-module": "off",
|
||||
"no-return-assign": "off",
|
||||
"no-restricted-modules": "off",
|
||||
"no-tabs": "off",
|
||||
"indent": "off",
|
||||
"func-names": "off",
|
||||
"prefer-arrow-callback": "off",
|
||||
"object-curly-spacing": "off",
|
||||
"no-var": "off",
|
||||
"no-shadow": "off",
|
||||
"prefer-template": "off",
|
||||
"padded-blocks": "off",
|
||||
"eol-last": "off",
|
||||
"lines-around-directive": "off",
|
||||
"no-restricted-syntax": "off",
|
||||
"vars-on-top": "off",
|
||||
"no-prototype-builtins": "off",
|
||||
"object-shorthand": "off",
|
||||
"no-param-reassign": "off",
|
||||
"consistent-return": "off",
|
||||
"strict": "off",
|
||||
"comma-dangle": "off",
|
||||
"no-multi-spaces": "off",
|
||||
"quotes": "off",
|
||||
"keyword-spacing": "off",
|
||||
"no-plusplus": "off",
|
||||
"no-mixed-operators": "off",
|
||||
"comma-spacing": "off",
|
||||
"global-require": "off",
|
||||
"no-trailing-spaces": "off",
|
||||
"key-spacing": "off",
|
||||
"import/newline-after-import": "off",
|
||||
"no-underscore-dangle": "off",
|
||||
"prefer-spread": "off",
|
||||
"no-multiple-empty-lines": "off",
|
||||
"spaced-comment": "off",
|
||||
"prefer-rest-params": "off",
|
||||
"space-in-parens": "off",
|
||||
"block-spacing": "off",
|
||||
"quote-props": "off",
|
||||
"no-console": "off",
|
||||
"space-unary-ops": "off",
|
||||
"import/no-dynamic-require": "off",
|
||||
"no-bitwise": "off",
|
||||
"no-empty": "off",
|
||||
"array-bracket-spacin": "off",
|
||||
"dot-notation": "off",
|
||||
"func-call-spacing": "off",
|
||||
"newline-per-chained-call": "off",
|
||||
"newline-per-chained-call": "off",
|
||||
"array-bracket-spacing": "off",
|
||||
"object-property-newline": "off",
|
||||
"no-continue": "off",
|
||||
"no-extra-semi": "off",
|
||||
"no-spaced-func": "off"
|
||||
}
|
||||
}
|
||||
13
.github/ISSUE_TEMPLATE.md
vendored
13
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,13 +0,0 @@
|
||||
Please include the following information when submitting a bug report/issue:
|
||||
|
||||
* NodeBB version and git hash (to find your git hash, execute `git rev-parse HEAD` from the main NodeBB directory)
|
||||
* Database (mongo or redis) and it's version.
|
||||
* Exact steps to cause this issue
|
||||
1. First I did this...
|
||||
2. Then, I clicked on this item...
|
||||
* What you expected
|
||||
* e.g. I expected *abc* to *xyz*
|
||||
* What happened instead
|
||||
* e.g. Instead, I got *zyx* and NodeBB set fire to my house
|
||||
|
||||
Thank you!
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -2,7 +2,6 @@ npm-debug.log
|
||||
node_modules/
|
||||
sftp-config.json
|
||||
config.json
|
||||
jsconfig.json
|
||||
public/src/nodebb.min.js
|
||||
!src/views/config.json
|
||||
public/css/*.css
|
||||
@@ -16,7 +15,6 @@ provision.sh
|
||||
*.komodoproject
|
||||
.DS_Store
|
||||
feeds/recent.rss
|
||||
.eslintcache
|
||||
|
||||
logs/
|
||||
|
||||
@@ -25,6 +23,7 @@ pidfile
|
||||
# templates
|
||||
/public/templates
|
||||
|
||||
/public/uploads
|
||||
/public/sounds
|
||||
|
||||
# compiled files
|
||||
@@ -51,4 +50,4 @@ tx.exe
|
||||
.transifexrc
|
||||
|
||||
##Coverage output
|
||||
coverage
|
||||
coverage
|
||||
@@ -74,7 +74,6 @@
|
||||
"worker" : false, // Web Workers
|
||||
"wsh" : false, // Windows Scripting Host
|
||||
"yui" : false, // Yahoo User Interface
|
||||
"mocha": true,
|
||||
|
||||
// Legacy
|
||||
"nomen" : false, // true: Prohibit dangling `_` in variables
|
||||
@@ -83,7 +82,5 @@
|
||||
"white" : false, // true: Check against strict whitespace and indentation rules
|
||||
|
||||
// Custom Globals
|
||||
"globals" : {
|
||||
"Promise": true
|
||||
} // additional predefined global variables
|
||||
"globals" : {} // additional predefined global variables
|
||||
}
|
||||
33
.travis.yml
33
.travis.yml
@@ -1,20 +1,17 @@
|
||||
services:
|
||||
- redis-server
|
||||
- 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"
|
||||
- "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:
|
||||
- sh -c "if [ '$DB' = 'mongodb' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"mongo\\\",\\\"mongo:host\\\":\\\"127.0.0.1\\\",\\\"mongo:port\\\":27017,\\\"mongo:username\\\":\\\"\\\",\\\"mongo:password\\\":\\\"\\\",\\\"mongo:database\\\":0,\\\"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}\"; fi"
|
||||
- sh -c "if [ '$DB' = 'redis' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"redis\\\",\\\"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\\\":6379,\\\"database\\\":0}\"; fi"
|
||||
- "until nc -z localhost 27017; do echo Waiting for MongoDB; sleep 1; done"
|
||||
after_success:
|
||||
- "npm run coveralls"
|
||||
- "until nc -z localhost 27017; do echo Waiting for MongoDB; sleep 1; done"
|
||||
language: node_js
|
||||
env:
|
||||
- CXX=g++-4.8 DB=mongodb
|
||||
- CXX=g++-4.8 DB=redis
|
||||
- CXX=g++-4.8
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
@@ -22,9 +19,11 @@ addons:
|
||||
packages:
|
||||
- g++-4.8
|
||||
node_js:
|
||||
- "6"
|
||||
- "4"
|
||||
- "4.2"
|
||||
- "4.1"
|
||||
- "4.0"
|
||||
- "0.11"
|
||||
- "0.10"
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- develop
|
||||
only:
|
||||
- master
|
||||
315
.tx/config
315
.tx/config
@@ -3,7 +3,7 @@ host = https://www.transifex.com
|
||||
|
||||
[nodebb.category]
|
||||
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
|
||||
trans.ar = public/language/ar/category.json
|
||||
trans.bn = public/language/bn/category.json
|
||||
@@ -12,11 +12,11 @@ trans.cs = public/language/cs/category.json
|
||||
trans.da = public/language/da/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-x-pirate/category.json
|
||||
trans.en_US = public/language/en_US/category.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/category.json
|
||||
trans.gl = public/language/gl/category.json
|
||||
@@ -31,8 +31,7 @@ trans.ms = public/language/ms/category.json
|
||||
trans.nb = public/language/nb/category.json
|
||||
trans.nl = public/language/nl/category.json
|
||||
trans.pl = public/language/pl/category.json
|
||||
trans.pt_BR = public/language/pt-BR/category.json
|
||||
trans.pt_PT = public/language/pt-PT/category.json
|
||||
trans.pt_BR = public/language/pt_BR/category.json
|
||||
trans.ru = public/language/ru/category.json
|
||||
trans.ro = public/language/ro/category.json
|
||||
trans.rw = public/language/rw/category.json
|
||||
@@ -44,13 +43,13 @@ trans.sv = public/language/sv/category.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/category.json
|
||||
trans.zh_CN = public/language/zh_CN/category.json
|
||||
trans.zh_TW = public/language/zh_TW/category.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.login]
|
||||
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
|
||||
trans.ar = public/language/ar/login.json
|
||||
trans.bn = public/language/bn/login.json
|
||||
@@ -59,11 +58,11 @@ trans.cs = public/language/cs/login.json
|
||||
trans.da = public/language/da/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-x-pirate/login.json
|
||||
trans.en_US = public/language/en_US/login.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/login.json
|
||||
trans.gl = public/language/gl/login.json
|
||||
@@ -78,8 +77,7 @@ trans.ms = public/language/ms/login.json
|
||||
trans.nb = public/language/nb/login.json
|
||||
trans.nl = public/language/nl/login.json
|
||||
trans.pl = public/language/pl/login.json
|
||||
trans.pt_BR = public/language/pt-BR/login.json
|
||||
trans.pt_PT = public/language/pt-PT/login.json
|
||||
trans.pt_BR = public/language/pt_BR/login.json
|
||||
trans.ru = public/language/ru/login.json
|
||||
trans.ro = public/language/ro/login.json
|
||||
trans.rw = public/language/rw/login.json
|
||||
@@ -91,13 +89,13 @@ trans.sv = public/language/sv/login.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/login.json
|
||||
trans.zh_CN = public/language/zh_CN/login.json
|
||||
trans.zh_TW = public/language/zh_TW/login.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.recent]
|
||||
file_filter = public/language/<lang>/recent.json
|
||||
source_file = public/language/en-GB/recent.json
|
||||
source_file = public/language/en_GB/recent.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/recent.json
|
||||
trans.bn = public/language/bn/recent.json
|
||||
@@ -106,11 +104,11 @@ trans.cs = public/language/cs/recent.json
|
||||
trans.da = public/language/da/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-x-pirate/recent.json
|
||||
trans.en_US = public/language/en_US/recent.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/recent.json
|
||||
trans.gl = public/language/gl/recent.json
|
||||
@@ -125,8 +123,7 @@ trans.ms = public/language/ms/recent.json
|
||||
trans.nb = public/language/nb/recent.json
|
||||
trans.nl = public/language/nl/recent.json
|
||||
trans.pl = public/language/pl/recent.json
|
||||
trans.pt_BR = public/language/pt-BR/recent.json
|
||||
trans.pt_PT = public/language/pt-PT/recent.json
|
||||
trans.pt_BR = public/language/pt_BR/recent.json
|
||||
trans.ru = public/language/ru/recent.json
|
||||
trans.ro = public/language/ro/recent.json
|
||||
trans.rw = public/language/rw/recent.json
|
||||
@@ -138,13 +135,13 @@ trans.sv = public/language/sv/recent.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/recent.json
|
||||
trans.zh_CN = public/language/zh_CN/recent.json
|
||||
trans.zh_TW = public/language/zh_TW/recent.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.unread]
|
||||
file_filter = public/language/<lang>/unread.json
|
||||
source_file = public/language/en-GB/unread.json
|
||||
source_file = public/language/en_GB/unread.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/unread.json
|
||||
trans.bn = public/language/bn/unread.json
|
||||
@@ -153,11 +150,11 @@ trans.cs = public/language/cs/unread.json
|
||||
trans.da = public/language/da/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-x-pirate/unread.json
|
||||
trans.en_US = public/language/en_US/unread.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/unread.json
|
||||
trans.gl = public/language/gl/unread.json
|
||||
@@ -172,8 +169,7 @@ trans.ms = public/language/ms/unread.json
|
||||
trans.nb = public/language/nb/unread.json
|
||||
trans.nl = public/language/nl/unread.json
|
||||
trans.pl = public/language/pl/unread.json
|
||||
trans.pt_BR = public/language/pt-BR/unread.json
|
||||
trans.pt_PT = public/language/pt-PT/unread.json
|
||||
trans.pt_BR = public/language/pt_BR/unread.json
|
||||
trans.ru = public/language/ru/unread.json
|
||||
trans.ro = public/language/ro/unread.json
|
||||
trans.rw = public/language/rw/unread.json
|
||||
@@ -185,13 +181,13 @@ trans.sv = public/language/sv/unread.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/unread.json
|
||||
trans.zh_CN = public/language/zh_CN/unread.json
|
||||
trans.zh_TW = public/language/zh_TW/unread.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.modules]
|
||||
file_filter = public/language/<lang>/modules.json
|
||||
source_file = public/language/en-GB/modules.json
|
||||
source_file = public/language/en_GB/modules.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/modules.json
|
||||
trans.bn = public/language/bn/modules.json
|
||||
@@ -200,11 +196,11 @@ trans.cs = public/language/cs/modules.json
|
||||
trans.da = public/language/da/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-x-pirate/modules.json
|
||||
trans.en_US = public/language/en_US/modules.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/modules.json
|
||||
trans.gl = public/language/gl/modules.json
|
||||
@@ -219,8 +215,7 @@ trans.ms = public/language/ms/modules.json
|
||||
trans.nb = public/language/nb/modules.json
|
||||
trans.nl = public/language/nl/modules.json
|
||||
trans.pl = public/language/pl/modules.json
|
||||
trans.pt_BR = public/language/pt-BR/modules.json
|
||||
trans.pt_PT = public/language/pt-PT/modules.json
|
||||
trans.pt_BR = public/language/pt_BR/modules.json
|
||||
trans.ru = public/language/ru/modules.json
|
||||
trans.ro = public/language/ro/modules.json
|
||||
trans.rw = public/language/rw/modules.json
|
||||
@@ -232,13 +227,13 @@ trans.sv = public/language/sv/modules.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/modules.json
|
||||
trans.zh_CN = public/language/zh_CN/modules.json
|
||||
trans.zh_TW = public/language/zh_TW/modules.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.register]
|
||||
file_filter = public/language/<lang>/register.json
|
||||
source_file = public/language/en-GB/register.json
|
||||
source_file = public/language/en_GB/register.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/register.json
|
||||
trans.bn = public/language/bn/register.json
|
||||
@@ -247,11 +242,11 @@ trans.cs = public/language/cs/register.json
|
||||
trans.da = public/language/da/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-x-pirate/register.json
|
||||
trans.en_US = public/language/en_US/register.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/register.json
|
||||
trans.gl = public/language/gl/register.json
|
||||
@@ -266,8 +261,7 @@ trans.ms = public/language/ms/register.json
|
||||
trans.nb = public/language/nb/register.json
|
||||
trans.nl = public/language/nl/register.json
|
||||
trans.pl = public/language/pl/register.json
|
||||
trans.pt_BR = public/language/pt-BR/register.json
|
||||
trans.pt_PT = public/language/pt-PT/register.json
|
||||
trans.pt_BR = public/language/pt_BR/register.json
|
||||
trans.ru = public/language/ru/register.json
|
||||
trans.ro = public/language/ro/register.json
|
||||
trans.rw = public/language/rw/register.json
|
||||
@@ -279,13 +273,13 @@ trans.sv = public/language/sv/register.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/register.json
|
||||
trans.zh_CN = public/language/zh_CN/register.json
|
||||
trans.zh_TW = public/language/zh_TW/register.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.user]
|
||||
file_filter = public/language/<lang>/user.json
|
||||
source_file = public/language/en-GB/user.json
|
||||
source_file = public/language/en_GB/user.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/user.json
|
||||
trans.bn = public/language/bn/user.json
|
||||
@@ -294,11 +288,11 @@ trans.cs = public/language/cs/user.json
|
||||
trans.da = public/language/da/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-x-pirate/user.json
|
||||
trans.en_US = public/language/en_US/user.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/user.json
|
||||
trans.gl = public/language/gl/user.json
|
||||
@@ -313,8 +307,7 @@ trans.ms = public/language/ms/user.json
|
||||
trans.nb = public/language/nb/user.json
|
||||
trans.nl = public/language/nl/user.json
|
||||
trans.pl = public/language/pl/user.json
|
||||
trans.pt_BR = public/language/pt-BR/user.json
|
||||
trans.pt_PT = public/language/pt-PT/user.json
|
||||
trans.pt_BR = public/language/pt_BR/user.json
|
||||
trans.ru = public/language/ru/user.json
|
||||
trans.ro = public/language/ro/user.json
|
||||
trans.rw = public/language/rw/user.json
|
||||
@@ -326,13 +319,13 @@ trans.sv = public/language/sv/user.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/user.json
|
||||
trans.zh_CN = public/language/zh_CN/user.json
|
||||
trans.zh_TW = public/language/zh_TW/user.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.global]
|
||||
file_filter = public/language/<lang>/global.json
|
||||
source_file = public/language/en-GB/global.json
|
||||
source_file = public/language/en_GB/global.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/global.json
|
||||
trans.bn = public/language/bn/global.json
|
||||
@@ -341,11 +334,11 @@ trans.cs = public/language/cs/global.json
|
||||
trans.da = public/language/da/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-x-pirate/global.json
|
||||
trans.en_US = public/language/en_US/global.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/global.json
|
||||
trans.gl = public/language/gl/global.json
|
||||
@@ -360,8 +353,7 @@ trans.ms = public/language/ms/global.json
|
||||
trans.nb = public/language/nb/global.json
|
||||
trans.nl = public/language/nl/global.json
|
||||
trans.pl = public/language/pl/global.json
|
||||
trans.pt_BR = public/language/pt-BR/global.json
|
||||
trans.pt_PT = public/language/pt-PT/global.json
|
||||
trans.pt_BR = public/language/pt_BR/global.json
|
||||
trans.ru = public/language/ru/global.json
|
||||
trans.ro = public/language/ro/global.json
|
||||
trans.rw = public/language/rw/global.json
|
||||
@@ -373,13 +365,13 @@ trans.sv = public/language/sv/global.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/global.json
|
||||
trans.zh_CN = public/language/zh_CN/global.json
|
||||
trans.zh_TW = public/language/zh_TW/global.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.notifications]
|
||||
file_filter = public/language/<lang>/notifications.json
|
||||
source_file = public/language/en-GB/notifications.json
|
||||
source_file = public/language/en_GB/notifications.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/notifications.json
|
||||
trans.bn = public/language/bn/notifications.json
|
||||
@@ -388,11 +380,11 @@ trans.cs = public/language/cs/notifications.json
|
||||
trans.da = public/language/da/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-x-pirate/notifications.json
|
||||
trans.en_US = public/language/en_US/notifications.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/notifications.json
|
||||
trans.gl = public/language/gl/notifications.json
|
||||
@@ -407,8 +399,7 @@ trans.ms = public/language/ms/notifications.json
|
||||
trans.nb = public/language/nb/notifications.json
|
||||
trans.nl = public/language/nl/notifications.json
|
||||
trans.pl = public/language/pl/notifications.json
|
||||
trans.pt_BR = public/language/pt-BR/notifications.json
|
||||
trans.pt_PT = public/language/pt-PT/notifications.json
|
||||
trans.pt_BR = public/language/pt_BR/notifications.json
|
||||
trans.ru = public/language/ru/notifications.json
|
||||
trans.ro = public/language/ro/notifications.json
|
||||
trans.rw = public/language/rw/notifications.json
|
||||
@@ -420,13 +411,13 @@ trans.sv = public/language/sv/notifications.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/notifications.json
|
||||
trans.zh_CN = public/language/zh_CN/notifications.json
|
||||
trans.zh_TW = public/language/zh_TW/notifications.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.reset_password]
|
||||
file_filter = public/language/<lang>/reset_password.json
|
||||
source_file = public/language/en-GB/reset_password.json
|
||||
source_file = public/language/en_GB/reset_password.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/reset_password.json
|
||||
trans.bn = public/language/bn/reset_password.json
|
||||
@@ -435,11 +426,11 @@ trans.cs = public/language/cs/reset_password.json
|
||||
trans.da = public/language/da/reset_password.json
|
||||
trans.de = public/language/de/reset_password.json
|
||||
trans.el = public/language/el/reset_password.json
|
||||
trans.en_US = public/language/en-US/reset_password.json
|
||||
trans.en@pirate = public/language/en-x-pirate/reset_password.json
|
||||
trans.en_US = public/language/en_US/reset_password.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/reset_password.json
|
||||
trans.gl = public/language/gl/reset_password.json
|
||||
@@ -454,8 +445,7 @@ trans.ms = public/language/ms/reset_password.json
|
||||
trans.nb = public/language/nb/reset_password.json
|
||||
trans.nl = public/language/nl/reset_password.json
|
||||
trans.pl = public/language/pl/reset_password.json
|
||||
trans.pt_BR = public/language/pt-BR/reset_password.json
|
||||
trans.pt_PT = public/language/pt-PT/reset_password.json
|
||||
trans.pt_BR = public/language/pt_BR/reset_password.json
|
||||
trans.ru = public/language/ru/reset_password.json
|
||||
trans.ro = public/language/ro/reset_password.json
|
||||
trans.rw = public/language/rw/reset_password.json
|
||||
@@ -467,13 +457,13 @@ trans.sv = public/language/sv/reset_password.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/reset_password.json
|
||||
trans.zh_CN = public/language/zh_CN/reset_password.json
|
||||
trans.zh_TW = public/language/zh_TW/reset_password.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.users]
|
||||
file_filter = public/language/<lang>/users.json
|
||||
source_file = public/language/en-GB/users.json
|
||||
source_file = public/language/en_GB/users.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/users.json
|
||||
trans.bn = public/language/bn/users.json
|
||||
@@ -482,11 +472,11 @@ trans.cs = public/language/cs/users.json
|
||||
trans.da = public/language/da/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-x-pirate/users.json
|
||||
trans.en_US = public/language/en_US/users.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/users.json
|
||||
trans.gl = public/language/gl/users.json
|
||||
@@ -501,8 +491,7 @@ trans.ms = public/language/ms/users.json
|
||||
trans.nb = public/language/nb/users.json
|
||||
trans.nl = public/language/nl/users.json
|
||||
trans.pl = public/language/pl/users.json
|
||||
trans.pt_BR = public/language/pt-BR/users.json
|
||||
trans.pt_PT = public/language/pt-PT/users.json
|
||||
trans.pt_BR = public/language/pt_BR/users.json
|
||||
trans.ru = public/language/ru/users.json
|
||||
trans.ro = public/language/ro/users.json
|
||||
trans.rw = public/language/rw/users.json
|
||||
@@ -514,13 +503,13 @@ trans.sv = public/language/sv/users.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/users.json
|
||||
trans.zh_CN = public/language/zh_CN/users.json
|
||||
trans.zh_TW = public/language/zh_TW/users.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.language-1]
|
||||
file_filter = public/language/<lang>/language.json
|
||||
source_file = public/language/en-GB/language.json
|
||||
source_file = public/language/en_GB/language.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/language.json
|
||||
trans.bn = public/language/bn/language.json
|
||||
@@ -529,11 +518,11 @@ trans.cs = public/language/cs/language.json
|
||||
trans.da = public/language/da/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-x-pirate/language.json
|
||||
trans.en_US = public/language/en_US/language.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/language.json
|
||||
trans.gl = public/language/gl/language.json
|
||||
@@ -548,8 +537,7 @@ trans.ms = public/language/ms/language.json
|
||||
trans.nb = public/language/nb/language.json
|
||||
trans.nl = public/language/nl/language.json
|
||||
trans.pl = public/language/pl/language.json
|
||||
trans.pt_BR = public/language/pt-BR/language.json
|
||||
trans.pt_PT = public/language/pt-PT/language.json
|
||||
trans.pt_BR = public/language/pt_BR/language.json
|
||||
trans.ru = public/language/ru/language.json
|
||||
trans.ro = public/language/ro/language.json
|
||||
trans.rw = public/language/rw/language.json
|
||||
@@ -561,13 +549,13 @@ trans.sv = public/language/sv/language.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/language.json
|
||||
trans.zh_CN = public/language/zh_CN/language.json
|
||||
trans.zh_TW = public/language/zh_TW/language.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.pages]
|
||||
file_filter = public/language/<lang>/pages.json
|
||||
source_file = public/language/en-GB/pages.json
|
||||
source_file = public/language/en_GB/pages.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/pages.json
|
||||
trans.bn = public/language/bn/pages.json
|
||||
@@ -576,11 +564,11 @@ trans.cs = public/language/cs/pages.json
|
||||
trans.da = public/language/da/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-x-pirate/pages.json
|
||||
trans.en_US = public/language/en_US/pages.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/pages.json
|
||||
trans.gl = public/language/gl/pages.json
|
||||
@@ -595,8 +583,7 @@ trans.ms = public/language/ms/pages.json
|
||||
trans.nb = public/language/nb/pages.json
|
||||
trans.nl = public/language/nl/pages.json
|
||||
trans.pl = public/language/pl/pages.json
|
||||
trans.pt_BR = public/language/pt-BR/pages.json
|
||||
trans.pt_PT = public/language/pt-PT/pages.json
|
||||
trans.pt_BR = public/language/pt_BR/pages.json
|
||||
trans.ru = public/language/ru/pages.json
|
||||
trans.ro = public/language/ro/pages.json
|
||||
trans.rw = public/language/rw/pages.json
|
||||
@@ -608,13 +595,13 @@ trans.sv = public/language/sv/pages.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/pages.json
|
||||
trans.zh_CN = public/language/zh_CN/pages.json
|
||||
trans.zh_TW = public/language/zh_TW/pages.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.topic]
|
||||
file_filter = public/language/<lang>/topic.json
|
||||
source_file = public/language/en-GB/topic.json
|
||||
source_file = public/language/en_GB/topic.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/topic.json
|
||||
trans.bn = public/language/bn/topic.json
|
||||
@@ -623,11 +610,11 @@ trans.cs = public/language/cs/topic.json
|
||||
trans.da = public/language/da/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-x-pirate/topic.json
|
||||
trans.en_US = public/language/en_US/topic.json
|
||||
trans.en@pirate = public/language/en@pirate/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.fr = public/language/fr/topic.json
|
||||
trans.gl = public/language/gl/topic.json
|
||||
@@ -642,8 +629,7 @@ trans.ms = public/language/ms/topic.json
|
||||
trans.nb = public/language/nb/topic.json
|
||||
trans.nl = public/language/nl/topic.json
|
||||
trans.pl = public/language/pl/topic.json
|
||||
trans.pt_BR = public/language/pt-BR/topic.json
|
||||
trans.pt_PT = public/language/pt-PT/topic.json
|
||||
trans.pt_BR = public/language/pt_BR/topic.json
|
||||
trans.ru = public/language/ru/topic.json
|
||||
trans.ro = public/language/ro/topic.json
|
||||
trans.rw = public/language/rw/topic.json
|
||||
@@ -655,13 +641,13 @@ trans.sv = public/language/sv/topic.json
|
||||
trans.th = public/language/th/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_TW = public/language/zh-TW/topic.json
|
||||
trans.zh_CN = public/language/zh_CN/topic.json
|
||||
trans.zh_TW = public/language/zh_TW/topic.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.success]
|
||||
file_filter = public/language/<lang>/success.json
|
||||
source_file = public/language/en-GB/success.json
|
||||
source_file = public/language/en_GB/success.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/success.json
|
||||
trans.bn = public/language/bn/success.json
|
||||
@@ -670,11 +656,11 @@ trans.cs = public/language/cs/success.json
|
||||
trans.da = public/language/da/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-x-pirate/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.fa_IR = public/language/fa_IR/success.json
|
||||
trans.fi = public/language/fi/success.json
|
||||
trans.fr = public/language/fr/success.json
|
||||
trans.gl = public/language/gl/success.json
|
||||
@@ -689,8 +675,7 @@ 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.pt_PT = public/language/pt-PT/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.rw = public/language/rw/success.json
|
||||
@@ -702,13 +687,13 @@ 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
|
||||
trans.zh_CN = public/language/zh_CN/success.json
|
||||
trans.zh_TW = public/language/zh_TW/success.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.error]
|
||||
file_filter = public/language/<lang>/error.json
|
||||
source_file = public/language/en-GB/error.json
|
||||
source_file = public/language/en_GB/error.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/error.json
|
||||
trans.bn = public/language/bn/error.json
|
||||
@@ -717,11 +702,11 @@ trans.cs = public/language/cs/error.json
|
||||
trans.da = public/language/da/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-x-pirate/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.fa_IR = public/language/fa_IR/error.json
|
||||
trans.fi = public/language/fi/error.json
|
||||
trans.fr = public/language/fr/error.json
|
||||
trans.gl = public/language/gl/error.json
|
||||
@@ -736,8 +721,7 @@ 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.pt_PT = public/language/pt-PT/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.rw = public/language/rw/error.json
|
||||
@@ -749,13 +733,13 @@ 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
|
||||
trans.zh_CN = public/language/zh_CN/error.json
|
||||
trans.zh_TW = public/language/zh_TW/error.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.tags]
|
||||
file_filter = public/language/<lang>/tags.json
|
||||
source_file = public/language/en-GB/tags.json
|
||||
source_file = public/language/en_GB/tags.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/tags.json
|
||||
trans.bn = public/language/bn/tags.json
|
||||
@@ -764,11 +748,11 @@ trans.cs = public/language/cs/tags.json
|
||||
trans.da = public/language/da/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-x-pirate/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.fa_IR = public/language/fa_IR/tags.json
|
||||
trans.fi = public/language/fi/tags.json
|
||||
trans.fr = public/language/fr/tags.json
|
||||
trans.gl = public/language/gl/tags.json
|
||||
@@ -783,8 +767,7 @@ 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.pt_PT = public/language/pt-PT/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.rw = public/language/rw/tags.json
|
||||
@@ -796,13 +779,13 @@ 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
|
||||
trans.zh_CN = public/language/zh_CN/tags.json
|
||||
trans.zh_TW = public/language/zh_TW/tags.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.email]
|
||||
file_filter = public/language/<lang>/email.json
|
||||
source_file = public/language/en-GB/email.json
|
||||
source_file = public/language/en_GB/email.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/email.json
|
||||
trans.bn = public/language/bn/email.json
|
||||
@@ -811,11 +794,11 @@ trans.cs = public/language/cs/email.json
|
||||
trans.da = public/language/da/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-x-pirate/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.fa_IR = public/language/fa_IR/email.json
|
||||
trans.fi = public/language/fi/email.json
|
||||
trans.fr = public/language/fr/email.json
|
||||
trans.gl = public/language/gl/email.json
|
||||
@@ -830,8 +813,7 @@ 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.pt_PT = public/language/pt-PT/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.rw = public/language/rw/email.json
|
||||
@@ -843,13 +825,13 @@ 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
|
||||
trans.zh_CN = public/language/zh_CN/email.json
|
||||
trans.zh_TW = public/language/zh_TW/email.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.search]
|
||||
file_filter = public/language/<lang>/search.json
|
||||
source_file = public/language/en-GB/search.json
|
||||
source_file = public/language/en_GB/search.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/search.json
|
||||
trans.bn = public/language/bn/search.json
|
||||
@@ -858,11 +840,11 @@ trans.cs = public/language/cs/search.json
|
||||
trans.da = public/language/da/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-x-pirate/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.fa_IR = public/language/fa_IR/search.json
|
||||
trans.fi = public/language/fi/search.json
|
||||
trans.fr = public/language/fr/search.json
|
||||
trans.gl = public/language/gl/search.json
|
||||
@@ -877,8 +859,7 @@ 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.pt_PT = public/language/pt-PT/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.rw = public/language/rw/search.json
|
||||
@@ -890,13 +871,13 @@ 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
|
||||
trans.zh_CN = public/language/zh_CN/search.json
|
||||
trans.zh_TW = public/language/zh_TW/search.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.groups]
|
||||
file_filter = public/language/<lang>/groups.json
|
||||
source_file = public/language/en-GB/groups.json
|
||||
source_file = public/language/en_GB/groups.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/groups.json
|
||||
trans.bn = public/language/bn/groups.json
|
||||
@@ -905,11 +886,11 @@ trans.cs = public/language/cs/groups.json
|
||||
trans.da = public/language/da/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-x-pirate/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.fa_IR = public/language/fa_IR/groups.json
|
||||
trans.fi = public/language/fi/groups.json
|
||||
trans.fr = public/language/fr/groups.json
|
||||
trans.gl = public/language/gl/groups.json
|
||||
@@ -924,8 +905,7 @@ 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.pt_PT = public/language/pt-PT/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.rw = public/language/rw/groups.json
|
||||
@@ -937,13 +917,13 @@ 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
|
||||
trans.zh_CN = public/language/zh_CN/groups.json
|
||||
trans.zh_TW = public/language/zh_TW/groups.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.uploads]
|
||||
file_filter = public/language/<lang>/uploads.json
|
||||
source_file = public/language/en-GB/uploads.json
|
||||
source_file = public/language/en_GB/uploads.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/uploads.json
|
||||
trans.bn = public/language/bn/uploads.json
|
||||
@@ -952,11 +932,11 @@ trans.cs = public/language/cs/uploads.json
|
||||
trans.da = public/language/da/uploads.json
|
||||
trans.de = public/language/de/uploads.json
|
||||
trans.el = public/language/el/uploads.json
|
||||
trans.en_US = public/language/en-US/uploads.json
|
||||
trans.en@pirate = public/language/en-x-pirate/uploads.json
|
||||
trans.en_US = public/language/en_US/uploads.json
|
||||
trans.en@pirate = public/language/en@pirate/uploads.json
|
||||
trans.es = public/language/es/uploads.json
|
||||
trans.et = public/language/et/uploads.json
|
||||
trans.fa_IR = public/language/fa-IR/uploads.json
|
||||
trans.fa_IR = public/language/fa_IR/uploads.json
|
||||
trans.fi = public/language/fi/uploads.json
|
||||
trans.fr = public/language/fr/uploads.json
|
||||
trans.gl = public/language/gl/uploads.json
|
||||
@@ -971,8 +951,7 @@ trans.ms = public/language/ms/uploads.json
|
||||
trans.nb = public/language/nb/uploads.json
|
||||
trans.nl = public/language/nl/uploads.json
|
||||
trans.pl = public/language/pl/uploads.json
|
||||
trans.pt_BR = public/language/pt-BR/uploads.json
|
||||
trans.pt_PT = public/language/pt-PT/uploads.json
|
||||
trans.pt_BR = public/language/pt_BR/uploads.json
|
||||
trans.ru = public/language/ru/uploads.json
|
||||
trans.ro = public/language/ro/uploads.json
|
||||
trans.rw = public/language/rw/uploads.json
|
||||
@@ -984,6 +963,6 @@ trans.sv = public/language/sv/uploads.json
|
||||
trans.th = public/language/th/uploads.json
|
||||
trans.tr = public/language/tr/uploads.json
|
||||
trans.vi = public/language/vi/uploads.json
|
||||
trans.zh_CN = public/language/zh-CN/uploads.json
|
||||
trans.zh_TW = public/language/zh-TW/uploads.json
|
||||
trans.zh_CN = public/language/zh_CN/uploads.json
|
||||
trans.zh_TW = public/language/zh_TW/uploads.json
|
||||
type = KEYVALUEJSON
|
||||
52
Gruntfile.js
52
Gruntfile.js
@@ -2,12 +2,11 @@
|
||||
|
||||
var fork = require('child_process').fork,
|
||||
env = process.env,
|
||||
worker, updateWorker,
|
||||
incomplete = [],
|
||||
running = 0;
|
||||
worker,
|
||||
incomplete = [];
|
||||
|
||||
|
||||
module.exports = function (grunt) {
|
||||
module.exports = function(grunt) {
|
||||
var args = [];
|
||||
if (!grunt.option('verbose')) {
|
||||
args.push('--log-level=info');
|
||||
@@ -20,43 +19,38 @@ module.exports = function (grunt) {
|
||||
time = Date.now();
|
||||
|
||||
if (target === 'lessUpdated_Client') {
|
||||
compiling = 'clientCSS';
|
||||
fromFile = ['js', 'tpl', 'acpLess'];
|
||||
compiling = 'clientLess';
|
||||
} else if (target === 'lessUpdated_Admin') {
|
||||
compiling = 'acpCSS';
|
||||
fromFile = ['js', 'tpl', 'clientLess'];
|
||||
compiling = 'acpLess';
|
||||
} else if (target === 'clientUpdated') {
|
||||
fromFile = ['clientLess', 'acpLess', 'tpl'];
|
||||
compiling = 'js';
|
||||
} else if (target === 'templatesUpdated') {
|
||||
fromFile = ['js', 'clientLess', 'acpLess'];
|
||||
compiling = 'tpl';
|
||||
} else if (target === 'serverUpdated') {
|
||||
// Do nothing, just restart
|
||||
fromFile = ['clientLess', 'acpLess', 'js', 'tpl'];
|
||||
}
|
||||
|
||||
if (incomplete.indexOf(compiling) === -1) {
|
||||
incomplete.push(compiling);
|
||||
}
|
||||
fromFile = fromFile.filter(function(ext) {
|
||||
return incomplete.indexOf(ext) === -1;
|
||||
});
|
||||
|
||||
updateArgs.push('--build');
|
||||
updateArgs.push(incomplete.join(','));
|
||||
updateArgs.push('--from-file=' + fromFile.join(','));
|
||||
incomplete.push(compiling);
|
||||
|
||||
worker.kill();
|
||||
if (updateWorker) {
|
||||
updateWorker.kill('SIGKILL');
|
||||
}
|
||||
updateWorker = fork('app.js', updateArgs, { env: env });
|
||||
++running;
|
||||
updateWorker.on('exit', function () {
|
||||
--running;
|
||||
if (running === 0) {
|
||||
worker = fork('app.js', args, { env: env });
|
||||
worker.on('message', function () {
|
||||
if (incomplete.length) {
|
||||
incomplete = [];
|
||||
worker = fork('app.js', updateArgs, { env: env });
|
||||
|
||||
if (grunt.option('verbose')) {
|
||||
grunt.log.writeln('NodeBB restarted in ' + (Date.now() - time) + ' ms');
|
||||
}
|
||||
}
|
||||
});
|
||||
worker.on('message', function() {
|
||||
if (incomplete.length) {
|
||||
incomplete = [];
|
||||
|
||||
if (grunt.option('verbose')) {
|
||||
grunt.log.writeln('NodeBB restarted in ' + (Date.now() - time) + ' ms');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
17
README.md
17
README.md
@@ -2,7 +2,6 @@
|
||||
|
||||
[](https://gitter.im/NodeBB/NodeBB?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[](https://travis-ci.org/NodeBB/NodeBB)
|
||||
[](https://coveralls.io/github/NodeBB/NodeBB?branch=master)
|
||||
[](https://david-dm.org/nodebb/nodebb)
|
||||
[](https://codeclimate.com/github/NodeBB/NodeBB)
|
||||
[](https://readthedocs.org/projects/nodebb/?badge=latest)
|
||||
@@ -11,18 +10,17 @@
|
||||
|
||||
Additional functionality is enabled through the use of third-party plugins.
|
||||
|
||||
* [Get NodeBB](http://www.nodebb.org/ "NodeBB")
|
||||
* [Demo & Meta Discussion](http://community.nodebb.org)
|
||||
* [Documentation & Installation Instructions](http://docs.nodebb.org)
|
||||
* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/)
|
||||
* [NodeBB Blog](http://blog.nodebb.org)
|
||||
* [Premium Hosting for NodeBB](http://www.nodebb.org/ "NodeBB")
|
||||
* [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")
|
||||
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")
|
||||
|
||||
## Screenshots
|
||||
|
||||
NodeBB's theming engine is highly flexible and does not restrict your design choices. Check out some themed installs in these screenshots below:
|
||||
|
||||
[](http://i.imgur.com/VCoOFyq.png)
|
||||
[](http://i.imgur.com/FLOUuIq.png)
|
||||
[](http://i.imgur.com/Ud1LrfI.png)
|
||||
@@ -32,15 +30,12 @@ NodeBB's theming engine is highly flexible and does not restrict your design cho
|
||||
[](http://i.imgur.com/LmHtPho.png)
|
||||
[](http://i.imgur.com/paiJPJk.jpg)
|
||||
|
||||
Our minimalist "Persona" theme gets you going right away, no coding experience required.
|
||||
|
||||
[](http://i.imgur.com/HwNEXGu.png)
|
||||
[](http://i.imgur.com/II1byYs.png)
|
||||
|
||||
|
||||
[](http://i.imgur.com/8OLssij.png)
|
||||
[](http://i.imgur.com/JKOc0LZ.png)
|
||||
|
||||
## 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)
|
||||
* 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 know languages other than English you can help us translate NodeBB. We use [Transifex](https://www.transifex.com/projects/p/nodebb/) for internationalization.
|
||||
@@ -50,7 +45,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
|
||||
|
||||
NodeBB requires the following software to be installed:
|
||||
|
||||
* A version of Node.js at least 4 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
|
||||
* A version of Node.js at least 0.10 or greater
|
||||
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
|
||||
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
|
||||
|
||||
|
||||
211
app.js
211
app.js
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
NodeBB - A better forum platform for the modern web
|
||||
https://github.com/NodeBB/NodeBB/
|
||||
Copyright (C) 2013-2016 NodeBB Inc.
|
||||
Copyright (C) 2013-2014 NodeBB Inc.
|
||||
|
||||
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
|
||||
@@ -23,25 +23,24 @@
|
||||
var nconf = require('nconf');
|
||||
nconf.argv().env('__');
|
||||
|
||||
var url = require('url');
|
||||
var async = require('async');
|
||||
var winston = require('winston');
|
||||
var path = require('path');
|
||||
var pkg = require('./package.json');
|
||||
var file = require('./src/file');
|
||||
var url = require('url'),
|
||||
async = require('async'),
|
||||
winston = require('winston'),
|
||||
colors = require('colors'),
|
||||
path = require('path'),
|
||||
pkg = require('./package.json'),
|
||||
file = require('./src/file');
|
||||
|
||||
global.env = process.env.NODE_ENV || 'production';
|
||||
|
||||
winston.remove(winston.transports.Console);
|
||||
winston.add(winston.transports.Console, {
|
||||
colorize: true,
|
||||
timestamp: function () {
|
||||
timestamp: function() {
|
||||
var date = new Date();
|
||||
return (!!nconf.get('json-logging')) ? date.toJSON() : date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0,8) + ' [' + global.process.pid + ']';
|
||||
return date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0,5) + ' [' + global.process.pid + ']';
|
||||
},
|
||||
level: nconf.get('log-level') || (global.env === 'production' ? 'info' : 'verbose'),
|
||||
json: (!!nconf.get('json-logging')),
|
||||
stringify: (!!nconf.get('json-logging'))
|
||||
level: nconf.get('log-level') || (global.env === 'production' ? 'info' : 'verbose')
|
||||
});
|
||||
|
||||
|
||||
@@ -52,14 +51,13 @@ if (nconf.get('config')) {
|
||||
configFile = path.resolve(__dirname, nconf.get('config'));
|
||||
}
|
||||
|
||||
var configExists = file.existsSync(configFile) || (nconf.get('url') && nconf.get('secret') && nconf.get('database'));
|
||||
var configExists = file.existsSync(configFile);
|
||||
|
||||
loadConfig();
|
||||
versionCheck();
|
||||
|
||||
if (!process.send) {
|
||||
// If run using `node app`, log GNU copyright info along with server info
|
||||
winston.info('NodeBB v' + nconf.get('version') + ' Copyright (C) 2013-' + (new Date()).getFullYear() + ' NodeBB Inc.');
|
||||
winston.info('NodeBB v' + nconf.get('version') + ' Copyright (C) 2013-2014 NodeBB Inc.');
|
||||
winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
|
||||
winston.info('This is free software, and you are welcome to redistribute it under certain conditions.');
|
||||
winston.info('');
|
||||
@@ -73,23 +71,16 @@ if (nconf.get('setup') || nconf.get('install')) {
|
||||
} else if (nconf.get('upgrade')) {
|
||||
upgrade();
|
||||
} else if (nconf.get('reset')) {
|
||||
async.waterfall([
|
||||
async.apply(require('./src/reset').reset),
|
||||
async.apply(require('./build').buildAll)
|
||||
], function (err) {
|
||||
process.exit(err ? 1 : 0);
|
||||
});
|
||||
require('./src/reset').reset();
|
||||
} else if (nconf.get('activate')) {
|
||||
activate();
|
||||
} else if (nconf.get('plugins')) {
|
||||
listPlugins();
|
||||
} else if (nconf.get('build')) {
|
||||
require('./build').build(nconf.get('build'));
|
||||
} else {
|
||||
start();
|
||||
}
|
||||
|
||||
function loadConfig(callback) {
|
||||
function loadConfig() {
|
||||
winston.verbose('* using configuration stored in: %s', configFile);
|
||||
|
||||
nconf.file({
|
||||
@@ -112,14 +103,6 @@ function loadConfig(callback) {
|
||||
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-persona/templates'));
|
||||
|
||||
if (nconf.get('url')) {
|
||||
nconf.set('url_parsed', url.parse(nconf.get('url')));
|
||||
}
|
||||
|
||||
if (typeof callback === 'function') {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -130,9 +113,6 @@ function start() {
|
||||
if (!nconf.get('upload_path')) {
|
||||
nconf.set('upload_path', '/public/uploads');
|
||||
}
|
||||
if (!nconf.get('sessionKey')) {
|
||||
nconf.set('sessionKey', 'express.sid');
|
||||
}
|
||||
// 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 : '';
|
||||
@@ -140,8 +120,8 @@ function start() {
|
||||
nconf.set('secure', urlObject.protocol === 'https:');
|
||||
nconf.set('use_port', !!urlObject.port);
|
||||
nconf.set('relative_path', relativePath);
|
||||
nconf.set('port', urlObject.port || nconf.get('port') || nconf.get('PORT') || (nconf.get('PORT_ENV_VAR') ? nconf.get(nconf.get('PORT_ENV_VAR')) : false) || 4567);
|
||||
nconf.set('upload_url', nconf.get('upload_path').replace(/^\/public/, ''));
|
||||
nconf.set('port', urlObject.port || nconf.get('port') || nconf.get('PORT') || 4567);
|
||||
nconf.set('upload_url', '/uploads/');
|
||||
|
||||
if (nconf.get('isPrimary') === 'true') {
|
||||
winston.info('Time: %s', (new Date()).toString());
|
||||
@@ -158,20 +138,34 @@ function start() {
|
||||
process.on('SIGTERM', shutdown);
|
||||
process.on('SIGINT', shutdown);
|
||||
process.on('SIGHUP', restart);
|
||||
process.on('message', function (message) {
|
||||
process.on('message', function(message) {
|
||||
if (typeof message !== 'object') {
|
||||
return;
|
||||
}
|
||||
var meta = require('./src/meta');
|
||||
|
||||
var emitter = require('./src/emitter');
|
||||
switch (message.action) {
|
||||
case 'reload':
|
||||
meta.reload();
|
||||
break;
|
||||
case 'js-propagate':
|
||||
meta.js.target = message.data;
|
||||
emitter.emit('meta:js.compiled');
|
||||
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;
|
||||
emitter.emit('meta:css.compiled');
|
||||
winston.verbose('[cluster] Stylesheets propagated to worker %s', process.pid);
|
||||
break;
|
||||
case 'templates:compiled':
|
||||
emitter.emit('templates:compiled');
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
process.on('uncaughtException', function (err) {
|
||||
process.on('uncaughtException', function(err) {
|
||||
winston.error(err.stack);
|
||||
console.log(err.stack);
|
||||
|
||||
@@ -181,27 +175,21 @@ function start() {
|
||||
|
||||
async.waterfall([
|
||||
async.apply(db.init),
|
||||
function (next) {
|
||||
var meta = require('./src/meta');
|
||||
async.parallel([
|
||||
async.apply(db.checkCompatibility),
|
||||
async.apply(meta.configs.init),
|
||||
function (next) {
|
||||
if (nconf.get('dep-check') === undefined || nconf.get('dep-check') !== false) {
|
||||
meta.dependencies.check(next);
|
||||
} else {
|
||||
winston.warn('[init] Dependency checking skipped!');
|
||||
setImmediate(next);
|
||||
}
|
||||
},
|
||||
function (next) {
|
||||
require('./src/upgrade').check(next);
|
||||
}
|
||||
], function (err) {
|
||||
next(err);
|
||||
});
|
||||
async.apply(db.checkCompatibility),
|
||||
function(next) {
|
||||
require('./src/meta').configs.init(next);
|
||||
},
|
||||
function (next) {
|
||||
function(next) {
|
||||
if (nconf.get('dep-check') === undefined || nconf.get('dep-check') !== false) {
|
||||
require('./src/meta').dependencies.check(next);
|
||||
} else {
|
||||
setImmediate(next);
|
||||
}
|
||||
},
|
||||
function(next) {
|
||||
require('./src/upgrade').check(next);
|
||||
},
|
||||
function(next) {
|
||||
var webserver = require('./src/webserver');
|
||||
require('./src/socket.io').init(webserver.server);
|
||||
|
||||
@@ -210,9 +198,9 @@ function start() {
|
||||
require('./src/user').startJobs();
|
||||
}
|
||||
|
||||
webserver.listen(next);
|
||||
webserver.listen();
|
||||
}
|
||||
], function (err) {
|
||||
], function(err) {
|
||||
if (err) {
|
||||
switch(err.message) {
|
||||
case 'schema-out-of-date':
|
||||
@@ -228,19 +216,17 @@ function start() {
|
||||
winston.warn(' ./nodebb upgrade');
|
||||
break;
|
||||
default:
|
||||
winston.error(err);
|
||||
if (err.stacktrace !== false) {
|
||||
winston.error(err.stack);
|
||||
} else {
|
||||
winston.error(err.message);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Either way, bad stuff happened. Abort start.
|
||||
process.exit();
|
||||
}
|
||||
|
||||
if (process.send) {
|
||||
process.send({
|
||||
action: 'listening'
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -248,23 +234,15 @@ function setup() {
|
||||
winston.info('NodeBB Setup Triggered via Command Line');
|
||||
|
||||
var install = require('./src/install');
|
||||
var build = require('./build');
|
||||
|
||||
process.stdout.write('\nWelcome to NodeBB!\n');
|
||||
process.stdout.write('\nThis looks like a new installation, so you\'ll have to answer a few questions about your environment before we can proceed.\n');
|
||||
process.stdout.write('Press enter to accept the default setting (shown in brackets).\n');
|
||||
|
||||
async.series([
|
||||
async.apply(install.setup),
|
||||
async.apply(loadConfig),
|
||||
async.apply(build.buildAll)
|
||||
], function (err, data) {
|
||||
// Disregard build step data
|
||||
data = data[0];
|
||||
|
||||
install.setup(function (err, data) {
|
||||
var separator = ' ';
|
||||
if (process.stdout.columns > 10) {
|
||||
for(var x = 0,cols = process.stdout.columns - 10; x < cols; x++) {
|
||||
for(var x=0,cols=process.stdout.columns-10;x<cols;x++) {
|
||||
separator += '=';
|
||||
}
|
||||
}
|
||||
@@ -293,62 +271,33 @@ function setup() {
|
||||
}
|
||||
|
||||
function upgrade() {
|
||||
var db = require('./src/database');
|
||||
var meta = require('./src/meta');
|
||||
var upgrade = require('./src/upgrade');
|
||||
var build = require('./build');
|
||||
|
||||
async.series([
|
||||
async.apply(db.init),
|
||||
async.apply(meta.configs.init),
|
||||
async.apply(upgrade.upgrade),
|
||||
async.apply(build.buildAll)
|
||||
], function (err) {
|
||||
require('./src/database').init(function(err) {
|
||||
if (err) {
|
||||
winston.error(err.stack);
|
||||
process.exit(1);
|
||||
} else {
|
||||
process.exit(0);
|
||||
process.exit();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function activate() {
|
||||
var db = require('./src/database');
|
||||
db.init(function (err) {
|
||||
if (err) {
|
||||
winston.error(err.stack);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
var plugin = nconf.get('activate');
|
||||
if (plugin.indexOf('nodebb-') !== 0) {
|
||||
// Allow omission of `nodebb-plugin-`
|
||||
plugin = 'nodebb-plugin-' + plugin;
|
||||
}
|
||||
|
||||
winston.info('Activating plugin `%s`', plugin);
|
||||
db.sortedSetAdd('plugins:active', 0, plugin, function (err) {
|
||||
process.exit(err ? 1 : 0);
|
||||
require('./src/meta').configs.init(function () {
|
||||
require('./src/upgrade').upgrade();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function listPlugins() {
|
||||
require('./src/database').init(function (err) {
|
||||
if (err) {
|
||||
winston.error(err.stack);
|
||||
process.exit(1);
|
||||
}
|
||||
function activate() {
|
||||
require('./src/database').init(function(err) {
|
||||
var plugin = nconf.get('_')[1] ? nconf.get('_')[1] : nconf.get('activate'),
|
||||
db = require('./src/database');
|
||||
|
||||
winston.info('Activating plugin %s', plugin);
|
||||
|
||||
db.sortedSetAdd('plugins:active', 0, plugin, start);
|
||||
});
|
||||
}
|
||||
|
||||
function listPlugins() {
|
||||
require('./src/database').init(function(err) {
|
||||
var db = require('./src/database');
|
||||
|
||||
db.getSortedSetRange('plugins:active', 0, -1, function (err, plugins) {
|
||||
if (err) {
|
||||
winston.error(err.stack);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
db.getSortedSetRange('plugins:active', 0, -1, function(err, plugins) {
|
||||
winston.info('Active plugins: \n\t - ' + plugins.join('\n\t - '));
|
||||
process.exit();
|
||||
});
|
||||
@@ -378,15 +327,3 @@ function restart() {
|
||||
shutdown(1);
|
||||
}
|
||||
}
|
||||
|
||||
function versionCheck() {
|
||||
var version = process.version.slice(1);
|
||||
var range = pkg.engines.node;
|
||||
var semver = require('semver');
|
||||
var compatible = semver.satisfies(version, range);
|
||||
|
||||
if (!compatible) {
|
||||
winston.warn('Your version of Node.js is too outdated for NodeBB. Please update your version of Node.js.');
|
||||
winston.warn('Recommended ' + range.green + ', '.reset + version.yellow + ' provided\n'.reset);
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ var bcrypt = require('bcryptjs'),
|
||||
async = require('async');
|
||||
|
||||
|
||||
process.on('message', function (msg) {
|
||||
process.on('message', function(msg) {
|
||||
if (msg.type === 'hash') {
|
||||
hashPassword(msg.password, msg.rounds);
|
||||
} else if (msg.type === 'compare') {
|
||||
@@ -15,10 +15,10 @@ process.on('message', function (msg) {
|
||||
|
||||
function hashPassword(password, rounds) {
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
function(next) {
|
||||
bcrypt.genSalt(parseInt(rounds, 10), next);
|
||||
},
|
||||
function (salt, next) {
|
||||
function(salt, next) {
|
||||
bcrypt.hash(password, salt, next);
|
||||
}
|
||||
], done);
|
||||
|
||||
115
build.js
115
build.js
@@ -1,115 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var async = require('async');
|
||||
var winston = require('winston');
|
||||
|
||||
var buildStart;
|
||||
|
||||
var valid = ['js', 'clientCSS', 'acpCSS', 'tpl'];
|
||||
|
||||
exports.buildAll = function (callback) {
|
||||
exports.build(valid.join(','), callback);
|
||||
};
|
||||
|
||||
exports.build = function build(targets, callback) {
|
||||
buildStart = Date.now();
|
||||
|
||||
var db = require('./src/database');
|
||||
var meta = require('./src/meta');
|
||||
var plugins = require('./src/plugins');
|
||||
|
||||
|
||||
targets = (targets === true ? valid : targets.split(',').filter(function (target) {
|
||||
return valid.indexOf(target) !== -1;
|
||||
}));
|
||||
|
||||
if (!targets) {
|
||||
winston.error('[build] No valid build targets found. Aborting.');
|
||||
return process.exit(0);
|
||||
}
|
||||
|
||||
async.series([
|
||||
async.apply(db.init),
|
||||
async.apply(meta.themes.setupPaths),
|
||||
async.apply(plugins.prepareForBuild)
|
||||
], function (err) {
|
||||
if (err) {
|
||||
winston.error('[build] Encountered error preparing for build: ' + err.message);
|
||||
return process.exit(1);
|
||||
}
|
||||
|
||||
exports.buildTargets(targets, callback);
|
||||
});
|
||||
};
|
||||
|
||||
exports.buildTargets = function (targets, callback) {
|
||||
var meta = require('./src/meta');
|
||||
buildStart = buildStart || Date.now();
|
||||
|
||||
var step = function (startTime, target, next) {
|
||||
winston.info('[build] ' + target + ' => Completed in ' + ((Date.now() - startTime) / 1000) + 's');
|
||||
next();
|
||||
};
|
||||
|
||||
async.parallel([
|
||||
function (next) {
|
||||
if (targets.indexOf('js') !== -1) {
|
||||
winston.info('[build] Building javascript');
|
||||
var startTime = Date.now();
|
||||
async.series([
|
||||
async.apply(meta.js.minify, 'nodebb.min.js'),
|
||||
async.apply(meta.js.minify, 'acp.min.js')
|
||||
], step.bind(this, startTime, 'js', next));
|
||||
} else {
|
||||
setImmediate(next);
|
||||
}
|
||||
},
|
||||
function (next) {
|
||||
async.eachSeries(targets, function (target, next) {
|
||||
var startTime;
|
||||
switch(target) {
|
||||
case 'js':
|
||||
setImmediate(next);
|
||||
break;
|
||||
case 'clientCSS':
|
||||
winston.info('[build] Building client-side CSS');
|
||||
startTime = Date.now();
|
||||
meta.css.minify('stylesheet.css', step.bind(this, startTime, target, next));
|
||||
break;
|
||||
|
||||
case 'acpCSS':
|
||||
winston.info('[build] Building admin control panel CSS');
|
||||
startTime = Date.now();
|
||||
meta.css.minify('admin.css', step.bind(this, startTime, target, next));
|
||||
break;
|
||||
|
||||
case 'tpl':
|
||||
winston.info('[build] Building templates');
|
||||
startTime = Date.now();
|
||||
meta.templates.compile(step.bind(this, startTime, target, next));
|
||||
break;
|
||||
|
||||
default:
|
||||
winston.warn('[build] Unknown build target: \'' + target + '\'');
|
||||
setImmediate(next);
|
||||
break;
|
||||
}
|
||||
}, next);
|
||||
}
|
||||
], function (err) {
|
||||
if (err) {
|
||||
winston.error('[build] Encountered error during build step: ' + err.message);
|
||||
return process.exit(1);
|
||||
}
|
||||
|
||||
var time = (Date.now() - buildStart) / 1000;
|
||||
|
||||
winston.info('[build] Asset compilation successful. Completed in ' + time + 's.');
|
||||
|
||||
if (typeof callback === 'function') {
|
||||
callback();
|
||||
} else {
|
||||
process.exit(0);
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -2,7 +2,6 @@
|
||||
{
|
||||
"name": "Announcements",
|
||||
"description": "Announcements regarding our community",
|
||||
"descriptionParsed": "<p>Announcements regarding our community</p>\n",
|
||||
"bgColor": "#fda34b",
|
||||
"color": "#fff",
|
||||
"icon" : "fa-bullhorn",
|
||||
@@ -11,7 +10,6 @@
|
||||
{
|
||||
"name": "General Discussion",
|
||||
"description": "A place to talk about whatever you want",
|
||||
"descriptionParsed": "<p>A place to talk about whatever you want</p>\n",
|
||||
"bgColor": "#59b3d0",
|
||||
"color": "#fff",
|
||||
"icon" : "fa-comments-o",
|
||||
@@ -20,7 +18,6 @@
|
||||
{
|
||||
"name": "Blogs",
|
||||
"description": "Blog posts from individual members",
|
||||
"descriptionParsed": "<p>Blog posts from individual members</p>\n",
|
||||
"bgColor": "#86ba4b",
|
||||
"color": "#fff",
|
||||
"icon" : "fa-newspaper-o",
|
||||
@@ -29,7 +26,6 @@
|
||||
{
|
||||
"name": "Comments & Feedback",
|
||||
"description": "Got a question? Ask away!",
|
||||
"descriptionParsed": "<p>Got a question? Ask away!</p>\n",
|
||||
"bgColor": "#e95c5a",
|
||||
"color": "#fff",
|
||||
"icon" : "fa-question",
|
||||
|
||||
@@ -9,7 +9,7 @@ var questions = {
|
||||
mongo: require('../src/database/mongo').questions
|
||||
};
|
||||
|
||||
module.exports = function (config, callback) {
|
||||
module.exports = function(config, callback) {
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
process.stdout.write('\n');
|
||||
@@ -74,7 +74,7 @@ function saveDatabaseConfig(config, databaseConfig, callback) {
|
||||
}
|
||||
|
||||
var allQuestions = questions.redis.concat(questions.mongo);
|
||||
for (var x = 0; x < allQuestions.length; x++) {
|
||||
for (var x=0; x<allQuestions.length; x++) {
|
||||
delete config[allQuestions[x].name];
|
||||
}
|
||||
|
||||
|
||||
@@ -1,36 +1,36 @@
|
||||
"use strict";
|
||||
|
||||
var winston = require('winston');
|
||||
var express = require('express');
|
||||
var bodyParser = require('body-parser');
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var less = require('less');
|
||||
var async = require('async');
|
||||
var uglify = require('uglify-js');
|
||||
var nconf = require('nconf');
|
||||
var app = express();
|
||||
var server;
|
||||
var winston = require('winston'),
|
||||
express = require('express'),
|
||||
bodyParser = require('body-parser'),
|
||||
fs = require('fs'),
|
||||
path = require('path'),
|
||||
less = require('less'),
|
||||
async = require('async'),
|
||||
uglify = require('uglify-js'),
|
||||
nconf = require('nconf'),
|
||||
app = express(),
|
||||
server;
|
||||
|
||||
winston.add(winston.transports.File, {
|
||||
filename: 'logs/webinstall.log',
|
||||
colorize: true,
|
||||
timestamp: function () {
|
||||
timestamp: function() {
|
||||
var date = new Date();
|
||||
return date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0,5) + ' [' + global.process.pid + ']';
|
||||
},
|
||||
level: 'verbose'
|
||||
});
|
||||
|
||||
var web = {};
|
||||
var scripts = [
|
||||
'public/vendor/xregexp/xregexp.js',
|
||||
'public/vendor/xregexp/unicode/unicode-base.js',
|
||||
'public/src/utils.js',
|
||||
'public/src/installer/install.js'
|
||||
];
|
||||
var web = {},
|
||||
scripts = [
|
||||
'public/vendor/xregexp/xregexp.js',
|
||||
'public/vendor/xregexp/unicode/unicode-base.js',
|
||||
'public/src/utils.js',
|
||||
'public/src/installer/install.js'
|
||||
];
|
||||
|
||||
web.install = function (port) {
|
||||
web.install = function(port) {
|
||||
port = port || 4567;
|
||||
winston.info('Launching web installer on port', port);
|
||||
|
||||
@@ -42,7 +42,7 @@ web.install = function (port) {
|
||||
extended: true
|
||||
}));
|
||||
|
||||
async.parallel([compileLess, compileJS], function () {
|
||||
async.parallel([compileLess, compileJS], function() {
|
||||
setupRoutes();
|
||||
launchExpress(port);
|
||||
});
|
||||
@@ -50,7 +50,7 @@ web.install = function (port) {
|
||||
|
||||
|
||||
function launchExpress(port) {
|
||||
server = app.listen(port, function () {
|
||||
server = app.listen(port, function() {
|
||||
winston.info('Web installer listening on http://%s:%s', '0.0.0.0', port);
|
||||
});
|
||||
}
|
||||
@@ -62,23 +62,22 @@ function setupRoutes() {
|
||||
}
|
||||
|
||||
function welcome(req, res) {
|
||||
var dbs = ['redis', 'mongo'];
|
||||
var databases = dbs.map(function (el) {
|
||||
return {
|
||||
var dbs = ['redis', 'mongo'],
|
||||
databases = [];
|
||||
|
||||
dbs.forEach(function(el) {
|
||||
databases.push({
|
||||
name: el,
|
||||
questions: require('../src/database/' + el).questions
|
||||
};
|
||||
});
|
||||
});
|
||||
|
||||
var defaults = require('./data/defaults');
|
||||
|
||||
res.render('install/index', {
|
||||
databases: databases,
|
||||
skipDatabaseSetup: !!nconf.get('database'),
|
||||
error: res.locals.error ? true : false,
|
||||
success: res.locals.success ? true : false,
|
||||
values: req.body,
|
||||
minimumPasswordLength: defaults.minimumPasswordLength
|
||||
values: req.body
|
||||
});
|
||||
}
|
||||
|
||||
@@ -93,7 +92,7 @@ function install(req, res) {
|
||||
env: process.env
|
||||
});
|
||||
|
||||
child.on('close', function (data) {
|
||||
child.on('close', function(data) {
|
||||
if (data === 0) {
|
||||
res.locals.success = true;
|
||||
} else {
|
||||
@@ -105,6 +104,7 @@ function install(req, res) {
|
||||
}
|
||||
|
||||
function launch(req, res) {
|
||||
var pidFilePath = __dirname + '../pidfile';
|
||||
res.json({});
|
||||
server.close();
|
||||
|
||||
@@ -124,12 +124,13 @@ function launch(req, res) {
|
||||
}
|
||||
|
||||
function compileLess(callback) {
|
||||
fs.readFile(path.join(__dirname, '../public/less/install.less'), function (err, style) {
|
||||
if (err) {
|
||||
return winston.error('Unable to read LESS install file: ', err);
|
||||
}
|
||||
if ((nconf.get('from-file') || '').indexOf('less') !== -1) {
|
||||
winston.info('LESS compilation skipped');
|
||||
return callback(false);
|
||||
}
|
||||
|
||||
less.render(style.toString(), function (err, css) {
|
||||
fs.readFile(path.join(__dirname, '../public/less/install.less'), function(err, style) {
|
||||
less.render(style.toString(), function(err, css) {
|
||||
if(err) {
|
||||
return winston.error('Unable to compile LESS: ', err);
|
||||
}
|
||||
@@ -140,10 +141,15 @@ function compileLess(callback) {
|
||||
}
|
||||
|
||||
function compileJS(callback) {
|
||||
var scriptPath = path.join(__dirname, '..');
|
||||
var result = uglify.minify(scripts.map(function (script) {
|
||||
return path.join(scriptPath, script);
|
||||
}));
|
||||
if ((nconf.get('from-file') || '').indexOf('js') !== -1) {
|
||||
winston.info('Client-side JS compilation skipped');
|
||||
return callback(false);
|
||||
}
|
||||
|
||||
var scriptPath = path.join(__dirname, '..'),
|
||||
result = uglify.minify(scripts.map(function(script) {
|
||||
return path.join(scriptPath, script);
|
||||
}));
|
||||
|
||||
|
||||
fs.writeFile(path.join(__dirname, '../public/nodebb.min.js'), result.code, callback);
|
||||
|
||||
109
loader.js
109
loader.js
@@ -22,12 +22,19 @@ var pidFilePath = __dirname + '/pidfile',
|
||||
workers = [],
|
||||
|
||||
Loader = {
|
||||
timesStarted: 0
|
||||
timesStarted: 0,
|
||||
js: {
|
||||
target: {}
|
||||
},
|
||||
css: {
|
||||
cache: undefined,
|
||||
acpCache: undefined
|
||||
}
|
||||
};
|
||||
|
||||
Loader.init = function (callback) {
|
||||
Loader.init = function(callback) {
|
||||
if (silent) {
|
||||
console.log = function () {
|
||||
console.log = function() {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
output.write(args.join(' ') + '\n');
|
||||
};
|
||||
@@ -39,7 +46,7 @@ Loader.init = function (callback) {
|
||||
callback();
|
||||
};
|
||||
|
||||
Loader.displayStartupMessages = function (callback) {
|
||||
Loader.displayStartupMessages = function(callback) {
|
||||
console.log('');
|
||||
console.log('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.');
|
||||
console.log('This program comes with ABSOLUTELY NO WARRANTY.');
|
||||
@@ -49,25 +56,25 @@ Loader.displayStartupMessages = function (callback) {
|
||||
callback();
|
||||
};
|
||||
|
||||
Loader.addWorkerEvents = function (worker) {
|
||||
Loader.addWorkerEvents = function(worker) {
|
||||
|
||||
worker.on('exit', function (code, signal) {
|
||||
worker.on('exit', function(code, signal) {
|
||||
if (code !== 0) {
|
||||
if (Loader.timesStarted < numProcs * 3) {
|
||||
if (Loader.timesStarted < numProcs*3) {
|
||||
Loader.timesStarted++;
|
||||
if (Loader.crashTimer) {
|
||||
clearTimeout(Loader.crashTimer);
|
||||
}
|
||||
Loader.crashTimer = setTimeout(function () {
|
||||
Loader.crashTimer = setTimeout(function() {
|
||||
Loader.timesStarted = 0;
|
||||
}, 10000);
|
||||
} else {
|
||||
console.log(numProcs * 3 + ' restarts in 10 seconds, most likely an error on startup. Halting.');
|
||||
console.log(numProcs*3 + ' restarts in 10 seconds, most likely an error on startup. Halting.');
|
||||
process.exit();
|
||||
}
|
||||
}
|
||||
|
||||
console.log('[cluster] Child Process (' + worker.pid + ') has exited (code: ' + code + ', signal: ' + signal + ')');
|
||||
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...');
|
||||
|
||||
@@ -75,9 +82,38 @@ Loader.addWorkerEvents = function (worker) {
|
||||
}
|
||||
});
|
||||
|
||||
worker.on('message', function (message) {
|
||||
worker.on('message', function(message) {
|
||||
if (message && typeof message === 'object' && message.action) {
|
||||
switch (message.action) {
|
||||
case 'ready':
|
||||
if (Loader.js.target['nodebb.min.js'] && Loader.js.target['nodebb.min.js'].cache && !worker.isPrimary) {
|
||||
worker.send({
|
||||
action: 'js-propagate',
|
||||
cache: Loader.js.target['nodebb.min.js'].cache,
|
||||
map: Loader.js.target['nodebb.min.js'].map,
|
||||
target: 'nodebb.min.js'
|
||||
});
|
||||
}
|
||||
|
||||
if (Loader.js.target['acp.min.js'] && Loader.js.target['acp.min.js'].cache && !worker.isPrimary) {
|
||||
worker.send({
|
||||
action: 'js-propagate',
|
||||
cache: Loader.js.target['acp.min.js'].cache,
|
||||
map: Loader.js.target['acp.min.js'].map,
|
||||
target: 'acp.min.js'
|
||||
});
|
||||
}
|
||||
|
||||
if (Loader.css.cache && !worker.isPrimary) {
|
||||
worker.send({
|
||||
action: 'css-propagate',
|
||||
cache: Loader.css.cache,
|
||||
acpCache: Loader.css.acpCache
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
case 'restart':
|
||||
console.log('[cluster] Restarting...');
|
||||
Loader.restart();
|
||||
@@ -86,16 +122,39 @@ Loader.addWorkerEvents = function (worker) {
|
||||
console.log('[cluster] Reloading...');
|
||||
Loader.reload();
|
||||
break;
|
||||
case 'js-propagate':
|
||||
Loader.js.target = message.data;
|
||||
|
||||
Loader.notifyWorkers({
|
||||
action: 'js-propagate',
|
||||
data: message.data
|
||||
}, worker.pid);
|
||||
break;
|
||||
case 'css-propagate':
|
||||
Loader.css.cache = message.cache;
|
||||
Loader.css.acpCache = message.acpCache;
|
||||
|
||||
Loader.notifyWorkers({
|
||||
action: 'css-propagate',
|
||||
cache: message.cache,
|
||||
acpCache: message.acpCache
|
||||
}, worker.pid);
|
||||
break;
|
||||
case 'templates:compiled':
|
||||
Loader.notifyWorkers({
|
||||
action: 'templates:compiled',
|
||||
}, worker.pid);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
Loader.start = function (callback) {
|
||||
Loader.start = function(callback) {
|
||||
numProcs = getPorts().length;
|
||||
console.log('Clustering enabled: Spinning up ' + numProcs + ' process(es).\n');
|
||||
|
||||
for (var x = 0; x < numProcs; ++x) {
|
||||
for (var x=0; x<numProcs; ++x) {
|
||||
forkWorker(x, x === 0);
|
||||
}
|
||||
|
||||
@@ -106,7 +165,6 @@ Loader.start = function (callback) {
|
||||
|
||||
function forkWorker(index, isPrimary) {
|
||||
var ports = getPorts();
|
||||
var args = [];
|
||||
|
||||
if(!ports[index]) {
|
||||
return console.log('[cluster] invalid port for worker : ' + index + ' ports: ' + ports.length);
|
||||
@@ -116,7 +174,7 @@ function forkWorker(index, isPrimary) {
|
||||
process.env.isCluster = ports.length > 1 ? true : false;
|
||||
process.env.port = ports[index];
|
||||
|
||||
var worker = fork('app.js', args, {
|
||||
var worker = fork('app.js', [], {
|
||||
silent: silent,
|
||||
env: process.env
|
||||
});
|
||||
@@ -149,22 +207,21 @@ function getPorts() {
|
||||
return port;
|
||||
}
|
||||
|
||||
Loader.restart = function () {
|
||||
Loader.restart = function() {
|
||||
killWorkers();
|
||||
nconf.remove('file');
|
||||
nconf.use('file', { file: path.join(__dirname, '/config.json') });
|
||||
|
||||
Loader.start();
|
||||
};
|
||||
|
||||
Loader.reload = function () {
|
||||
workers.forEach(function (worker) {
|
||||
Loader.reload = function() {
|
||||
workers.forEach(function(worker) {
|
||||
worker.send({
|
||||
action: 'reload'
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
Loader.stop = function () {
|
||||
Loader.stop = function() {
|
||||
killWorkers();
|
||||
|
||||
// Clean up the pidfile
|
||||
@@ -172,15 +229,15 @@ Loader.stop = function () {
|
||||
};
|
||||
|
||||
function killWorkers() {
|
||||
workers.forEach(function (worker) {
|
||||
workers.forEach(function(worker) {
|
||||
worker.suicide = true;
|
||||
worker.kill();
|
||||
});
|
||||
}
|
||||
|
||||
Loader.notifyWorkers = function (msg, worker_pid) {
|
||||
Loader.notifyWorkers = function(msg, worker_pid) {
|
||||
worker_pid = parseInt(worker_pid, 10);
|
||||
workers.forEach(function (worker) {
|
||||
workers.forEach(function(worker) {
|
||||
if (parseInt(worker.pid, 10) !== worker_pid) {
|
||||
try {
|
||||
worker.send(msg);
|
||||
@@ -191,7 +248,7 @@ Loader.notifyWorkers = function (msg, worker_pid) {
|
||||
});
|
||||
};
|
||||
|
||||
fs.open(path.join(__dirname, 'config.json'), 'r', function (err) {
|
||||
fs.open(path.join(__dirname, 'config.json'), 'r', function(err) {
|
||||
if (!err) {
|
||||
if (nconf.get('daemon') !== 'false' && nconf.get('daemon') !== false) {
|
||||
if (file.existsSync(pidFilePath)) {
|
||||
@@ -216,7 +273,7 @@ fs.open(path.join(__dirname, 'config.json'), 'r', function (err) {
|
||||
Loader.init,
|
||||
Loader.displayStartupMessages,
|
||||
Loader.start
|
||||
], function (err) {
|
||||
], function(err) {
|
||||
if (err) {
|
||||
console.log('[loader] Error during startup: ' + err.message);
|
||||
}
|
||||
|
||||
14
minifier.js
14
minifier.js
@@ -12,18 +12,18 @@ var Minifier = {
|
||||
/* Javascript */
|
||||
Minifier.js.minify = function (scripts, minify, callback) {
|
||||
|
||||
scripts = scripts.filter(function (file) {
|
||||
scripts = scripts.filter(function(file) {
|
||||
return file && file.endsWith('.js');
|
||||
});
|
||||
|
||||
async.filter(scripts, function (script, next) {
|
||||
file.exists(script, function (exists) {
|
||||
async.filter(scripts, function(script, next) {
|
||||
file.exists(script, function(exists) {
|
||||
if (!exists) {
|
||||
console.warn('[minifier] file not found, ' + script);
|
||||
}
|
||||
next(exists);
|
||||
});
|
||||
}, function (scripts) {
|
||||
}, function(scripts) {
|
||||
if (minify) {
|
||||
minifyScripts(scripts, callback);
|
||||
} else {
|
||||
@@ -32,10 +32,10 @@ Minifier.js.minify = function (scripts, minify, callback) {
|
||||
});
|
||||
};
|
||||
|
||||
process.on('message', function (payload) {
|
||||
process.on('message', function(payload) {
|
||||
switch(payload.action) {
|
||||
case 'js':
|
||||
Minifier.js.minify(payload.scripts, payload.minify, function (minified/*, sourceMap*/) {
|
||||
Minifier.js.minify(payload.scripts, payload.minify, function(minified/*, sourceMap*/) {
|
||||
process.send({
|
||||
type: 'end',
|
||||
// sourceMap: sourceMap,
|
||||
@@ -65,7 +65,7 @@ function minifyScripts(scripts, callback) {
|
||||
}
|
||||
|
||||
function concatenateScripts(scripts, callback) {
|
||||
async.map(scripts, fs.readFile, function (err, scripts) {
|
||||
async.map(scripts, fs.readFile, function(err, scripts) {
|
||||
if (err) {
|
||||
process.send({
|
||||
type: 'error',
|
||||
|
||||
146
nodebb
146
nodebb
@@ -21,10 +21,10 @@ try {
|
||||
}
|
||||
}
|
||||
|
||||
var getRunningPid = function (callback) {
|
||||
var getRunningPid = function(callback) {
|
||||
fs.readFile(__dirname + '/pidfile', {
|
||||
encoding: 'utf-8'
|
||||
}, function (err, pid) {
|
||||
}, function(err, pid) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
@@ -37,19 +37,15 @@ var getRunningPid = function (callback) {
|
||||
}
|
||||
});
|
||||
},
|
||||
getCurrentVersion = function (callback) {
|
||||
fs.readFile(path.join(__dirname, 'package.json'), { encoding: 'utf-8' }, function (err, pkg) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
getCurrentVersion = function(callback) {
|
||||
fs.readFile(path.join(__dirname, 'package.json'), { encoding: 'utf-8' }, function(err, pkg) {
|
||||
try {
|
||||
pkg = JSON.parse(pkg);
|
||||
return callback(null, pkg.version);
|
||||
} catch(err) {
|
||||
return callback(err);
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
fork = function (args) {
|
||||
cproc.fork('app.js', args, {
|
||||
@@ -57,19 +53,15 @@ var getRunningPid = function (callback) {
|
||||
silent: false
|
||||
});
|
||||
},
|
||||
getInstalledPlugins = function (callback) {
|
||||
getInstalledPlugins = function(callback) {
|
||||
async.parallel({
|
||||
files: async.apply(fs.readdir, path.join(__dirname, 'node_modules')),
|
||||
deps: async.apply(fs.readFile, path.join(__dirname, 'package.json'), { encoding: 'utf-8' })
|
||||
}, function (err, payload) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
}, function(err, payload) {
|
||||
var isNbbModule = /^nodebb-(?:plugin|theme|widget|rewards)-[\w\-]+$/,
|
||||
moduleName, isGitRepo;
|
||||
|
||||
payload.files = payload.files.filter(function (file) {
|
||||
payload.files = payload.files.filter(function(file) {
|
||||
return isNbbModule.test(file);
|
||||
});
|
||||
|
||||
@@ -88,7 +80,7 @@ var getRunningPid = function (callback) {
|
||||
}
|
||||
|
||||
// Whittle down deps to send back only extraneously installed plugins/themes/etc
|
||||
payload.files.forEach(function (moduleName) {
|
||||
payload.files.forEach(function(moduleName) {
|
||||
try {
|
||||
fs.accessSync(path.join(__dirname, 'node_modules/' + moduleName, '.git'));
|
||||
isGitRepo = true;
|
||||
@@ -109,15 +101,11 @@ var getRunningPid = function (callback) {
|
||||
getModuleVersions(payload.installed, callback);
|
||||
});
|
||||
},
|
||||
getModuleVersions = function (modules, callback) {
|
||||
getModuleVersions = function(modules, callback) {
|
||||
var versionHash = {};
|
||||
|
||||
async.eachLimit(modules, 50, function (module, next) {
|
||||
fs.readFile(path.join(__dirname, 'node_modules/' + module + '/package.json'), { encoding: 'utf-8' }, function (err, pkg) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
async.eachLimit(modules, 50, function(module, next) {
|
||||
fs.readFile(path.join(__dirname, 'node_modules/' + module + '/package.json'), { encoding: 'utf-8' }, function(err, pkg) {
|
||||
try {
|
||||
pkg = JSON.parse(pkg);
|
||||
versionHash[module] = pkg.version;
|
||||
@@ -126,11 +114,11 @@ var getRunningPid = function (callback) {
|
||||
next(err);
|
||||
}
|
||||
});
|
||||
}, function (err) {
|
||||
}, function(err) {
|
||||
callback(err, versionHash);
|
||||
});
|
||||
},
|
||||
checkPlugins = function (standalone, callback) {
|
||||
checkPlugins = function(standalone, callback) {
|
||||
if (standalone) {
|
||||
process.stdout.write('Checking installed plugins and themes for updates... ');
|
||||
}
|
||||
@@ -140,7 +128,7 @@ var getRunningPid = function (callback) {
|
||||
plugins: async.apply(getInstalledPlugins),
|
||||
version: async.apply(getCurrentVersion)
|
||||
}),
|
||||
function (payload, next) {
|
||||
function(payload, next) {
|
||||
var toCheck = Object.keys(payload.plugins);
|
||||
|
||||
if (!toCheck.length) {
|
||||
@@ -152,7 +140,7 @@ var getRunningPid = function (callback) {
|
||||
method: 'GET',
|
||||
url: 'https://packages.nodebb.org/api/v1/suggest?version=' + payload.version + '&package[]=' + toCheck.join('&package[]='),
|
||||
json: true
|
||||
}, function (err, res, body) {
|
||||
}, function(err, res, body) {
|
||||
if (err) {
|
||||
process.stdout.write('error'.red + '\n'.reset);
|
||||
return next(err);
|
||||
@@ -164,7 +152,7 @@ var getRunningPid = function (callback) {
|
||||
}
|
||||
|
||||
var current, suggested,
|
||||
upgradable = body.map(function (suggestObj) {
|
||||
upgradable = body.map(function(suggestObj) {
|
||||
current = payload.plugins[suggestObj.package];
|
||||
suggested = suggestObj.version;
|
||||
|
||||
@@ -173,33 +161,33 @@ var getRunningPid = function (callback) {
|
||||
name: suggestObj.package,
|
||||
current: current,
|
||||
suggested: suggested
|
||||
};
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}).filter(Boolean);
|
||||
|
||||
next(null, upgradable);
|
||||
});
|
||||
})
|
||||
}
|
||||
], callback);
|
||||
},
|
||||
upgradePlugins = function (callback) {
|
||||
upgradePlugins = function(callback) {
|
||||
var standalone = false;
|
||||
if (typeof callback !== 'function') {
|
||||
callback = function () {};
|
||||
callback = function() {};
|
||||
standalone = true;
|
||||
};
|
||||
|
||||
checkPlugins(standalone, function (err, found) {
|
||||
checkPlugins(standalone, function(err, found) {
|
||||
if (err) {
|
||||
process.stdout.write('\Warning'.yellow + ': An unexpected error occured when attempting to verify plugin upgradability\n'.reset);
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
if (found && found.length) {
|
||||
process.stdout.write('\nA total of ' + String(found.length).bold + ' package(s) can be upgraded:\n');
|
||||
found.forEach(function (suggestObj) {
|
||||
process.stdout.write('\nA total of ' + new String(found.length).bold + ' package(s) can be upgraded:\n');
|
||||
found.forEach(function(suggestObj) {
|
||||
process.stdout.write(' * '.yellow + suggestObj.name.reset + ' (' + suggestObj.current.yellow + ' -> '.reset + suggestObj.suggested.green + ')\n'.reset);
|
||||
});
|
||||
process.stdout.write('\n');
|
||||
@@ -218,19 +206,15 @@ var getRunningPid = function (callback) {
|
||||
name: 'upgrade',
|
||||
description: 'Proceed with upgrade (y|n)?'.reset,
|
||||
type: 'string'
|
||||
}, function (err, result) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
}, function(err, result) {
|
||||
if (['y', 'Y', 'yes', 'YES'].indexOf(result.upgrade) !== -1) {
|
||||
process.stdout.write('\nUpgrading packages...');
|
||||
var args = ['npm', 'i'];
|
||||
found.forEach(function (suggestObj) {
|
||||
found.forEach(function(suggestObj) {
|
||||
args.push(suggestObj.name + '@' + suggestObj.suggested);
|
||||
});
|
||||
|
||||
require('child_process').execFile('/usr/bin/env', args, { stdio: 'ignore' }, function (err) {
|
||||
require('child_process').execFile('/usr/bin/env', args, { stdio: 'ignore' }, function(err) {
|
||||
if (!err) {
|
||||
process.stdout.write(' OK\n'.green);
|
||||
}
|
||||
@@ -241,13 +225,13 @@ var getRunningPid = function (callback) {
|
||||
process.stdout.write('\nPackage upgrades skipped'.yellow + '. Check for upgrades at any time by running "'.reset + './nodebb upgrade-plugins'.green + '".\n'.reset);
|
||||
callback();
|
||||
}
|
||||
});
|
||||
})
|
||||
});
|
||||
};
|
||||
|
||||
switch(process.argv[2]) {
|
||||
case 'status':
|
||||
getRunningPid(function (err, pid) {
|
||||
getRunningPid(function(err, pid) {
|
||||
if (!err) {
|
||||
process.stdout.write('\nNodeBB Running '.bold + '(pid '.cyan + pid.toString().cyan + ')\n'.cyan);
|
||||
process.stdout.write('\t"' + './nodebb stop'.yellow + '" to stop the NodeBB server\n');
|
||||
@@ -257,7 +241,7 @@ switch(process.argv[2]) {
|
||||
process.stdout.write('\nNodeBB is not running\n'.bold);
|
||||
process.stdout.write('\t"' + './nodebb start'.yellow + '" to launch the NodeBB server\n\n'.reset);
|
||||
}
|
||||
});
|
||||
})
|
||||
break;
|
||||
|
||||
case 'start':
|
||||
@@ -271,27 +255,12 @@ switch(process.argv[2]) {
|
||||
env: process.env
|
||||
});
|
||||
break;
|
||||
|
||||
case 'slog':
|
||||
process.stdout.write('\nStarting NodeBB with logging output\n'.bold);
|
||||
process.stdout.write('\nHit '.red + 'Ctrl-C '.bold + 'to exit'.red);
|
||||
process.stdout.write('\n\n'.reset);
|
||||
|
||||
// Spawn a new NodeBB process
|
||||
cproc.fork(__dirname + '/loader.js', {
|
||||
env: process.env
|
||||
});
|
||||
cproc.spawn('tail', ['-F', './logs/output.log'], {
|
||||
cwd: __dirname,
|
||||
stdio: 'inherit'
|
||||
});
|
||||
break;
|
||||
|
||||
case 'stop':
|
||||
getRunningPid(function (err, pid) {
|
||||
getRunningPid(function(err, pid) {
|
||||
if (!err) {
|
||||
process.kill(pid, 'SIGTERM');
|
||||
process.stdout.write('Stopping NodeBB. Goodbye!\n');
|
||||
process.stdout.write('Stopping NodeBB. Goodbye!\n')
|
||||
} else {
|
||||
process.stdout.write('NodeBB is already stopped.\n');
|
||||
}
|
||||
@@ -299,7 +268,7 @@ switch(process.argv[2]) {
|
||||
break;
|
||||
|
||||
case 'restart':
|
||||
getRunningPid(function (err, pid) {
|
||||
getRunningPid(function(err, pid) {
|
||||
if (!err) {
|
||||
process.kill(pid, 'SIGHUP');
|
||||
process.stdout.write('\nRestarting NodeBB\n'.bold);
|
||||
@@ -310,7 +279,7 @@ switch(process.argv[2]) {
|
||||
break;
|
||||
|
||||
case 'reload':
|
||||
getRunningPid(function (err, pid) {
|
||||
getRunningPid(function(err, pid) {
|
||||
if (!err) {
|
||||
process.kill(pid, 'SIGUSR2');
|
||||
} else {
|
||||
@@ -327,7 +296,7 @@ switch(process.argv[2]) {
|
||||
break;
|
||||
|
||||
case 'log':
|
||||
process.stdout.write('\nHit '.red + 'Ctrl-C '.bold + 'to exit'.red);
|
||||
process.stdout.write('\nType '.red + 'Ctrl-C '.bold + 'to exit'.red);
|
||||
process.stdout.write('\n\n'.reset);
|
||||
cproc.spawn('tail', ['-F', './logs/output.log'], {
|
||||
cwd: __dirname,
|
||||
@@ -335,13 +304,6 @@ switch(process.argv[2]) {
|
||||
});
|
||||
break;
|
||||
|
||||
case 'build':
|
||||
var args = process.argv.slice(0);
|
||||
args[2] = '--' + args[2];
|
||||
|
||||
fork(args);
|
||||
break;
|
||||
|
||||
case 'setup':
|
||||
cproc.fork('app.js', ['--setup'], {
|
||||
cwd: __dirname,
|
||||
@@ -357,7 +319,7 @@ switch(process.argv[2]) {
|
||||
|
||||
case 'activate':
|
||||
var args = process.argv.slice(0);
|
||||
args.unshift('--activate=' + process.argv[3]);
|
||||
args.unshift('--activate');
|
||||
fork(args);
|
||||
break;
|
||||
|
||||
@@ -373,25 +335,25 @@ switch(process.argv[2]) {
|
||||
|
||||
case 'upgrade':
|
||||
async.series([
|
||||
function (next) {
|
||||
function(next) {
|
||||
process.stdout.write('1. '.bold + 'Bringing base dependencies up to date... '.yellow);
|
||||
require('child_process').execFile('/usr/bin/env', ['npm', 'i', '--production'], { stdio: 'ignore' }, next);
|
||||
},
|
||||
function (next) {
|
||||
function(next) {
|
||||
process.stdout.write('OK\n'.green);
|
||||
process.stdout.write('2. '.bold + 'Checking installed plugins for updates... '.yellow);
|
||||
upgradePlugins(next);
|
||||
},
|
||||
function (next) {
|
||||
function(next) {
|
||||
process.stdout.write('3. '.bold + 'Updating NodeBB data store schema...\n'.yellow);
|
||||
var upgradeProc = cproc.fork('app.js', ['--upgrade'], {
|
||||
cwd: __dirname,
|
||||
silent: false
|
||||
});
|
||||
|
||||
upgradeProc.on('close', next);
|
||||
upgradeProc.on('close', next)
|
||||
}
|
||||
], function (err) {
|
||||
], function(err) {
|
||||
if (err) {
|
||||
process.stdout.write('\nError'.red + ': ' + err.message + '\n');
|
||||
} else {
|
||||
@@ -408,20 +370,18 @@ switch(process.argv[2]) {
|
||||
|
||||
default:
|
||||
process.stdout.write('\nWelcome to NodeBB\n\n'.bold);
|
||||
process.stdout.write('Usage: ./nodebb {start|slog|stop|reload|restart|log|build|setup|reset|upgrade|dev}\n\n');
|
||||
process.stdout.write('\t' + 'start'.yellow + '\t\tStart the NodeBB server\n');
|
||||
process.stdout.write('\t' + 'slog'.yellow + '\t\tStarts the NodeBB server and displays the live output log\n');
|
||||
process.stdout.write('\t' + 'stop'.yellow + '\t\tStops the NodeBB server\n');
|
||||
process.stdout.write('\t' + 'reload'.yellow + '\t\tRestarts NodeBB\n');
|
||||
process.stdout.write('\t' + 'restart'.yellow + '\t\tRestarts NodeBB\n');
|
||||
process.stdout.write('\t' + 'log'.yellow + '\t\tOpens the logging interface (useful for debugging)\n');
|
||||
process.stdout.write('\t' + 'build'.yellow + '\t\tCompiles javascript, css stylesheets, and templates\n');
|
||||
process.stdout.write('\t' + 'setup'.yellow + '\t\tRuns the NodeBB setup script\n');
|
||||
process.stdout.write('\t' + 'reset'.yellow + '\t\tDisables all plugins, restores the default theme.\n');
|
||||
process.stdout.write('\t' + 'activate'.yellow + '\tActivates a plugin for the next startup of NodeBB.\n');
|
||||
process.stdout.write('\t' + 'plugins'.yellow + '\t\tList all plugins that have been installed.\n');
|
||||
process.stdout.write('\t' + 'upgrade'.yellow + '\t\tRun NodeBB upgrade scripts, ensure packages are up-to-date\n');
|
||||
process.stdout.write('\t' + 'dev'.yellow + '\t\tStart NodeBB in interactive development mode\n');
|
||||
process.stdout.write('Usage: ./nodebb {start|stop|reload|restart|log|setup|reset|upgrade|dev}\n\n');
|
||||
process.stdout.write('\t' + 'start'.yellow + '\tStart the NodeBB server\n');
|
||||
process.stdout.write('\t' + 'stop'.yellow + '\tStops the NodeBB server\n');
|
||||
process.stdout.write('\t' + 'reload'.yellow + '\tRestarts NodeBB\n');
|
||||
process.stdout.write('\t' + 'restart'.yellow + '\tRestarts NodeBB\n');
|
||||
process.stdout.write('\t' + 'log'.yellow + '\tOpens the logging interface (useful for debugging)\n');
|
||||
process.stdout.write('\t' + 'setup'.yellow + '\tRuns the NodeBB setup script\n');
|
||||
process.stdout.write('\t' + 'reset'.yellow + '\tDisables all plugins, restores the default theme.\n');
|
||||
process.stdout.write('\t' + 'activate'.yellow + '\tActivate a plugin on start up.\n');
|
||||
process.stdout.write('\t' + 'plugins'.yellow + '\tList all plugins that have been installed.\n');
|
||||
process.stdout.write('\t' + 'upgrade'.yellow + '\tRun NodeBB upgrade scripts, ensure packages are up-to-date\n');
|
||||
process.stdout.write('\t' + 'dev'.yellow + '\tStart NodeBB in interactive development mode\n');
|
||||
process.stdout.write('\n'.reset);
|
||||
break;
|
||||
}
|
||||
|
||||
123
nodebb.bat
123
nodebb.bat
@@ -1 +1,122 @@
|
||||
node ./nodebb %*
|
||||
@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
|
||||
)
|
||||
82
package.json
82
package.json
@@ -2,7 +2,7 @@
|
||||
"name": "nodebb",
|
||||
"license": "GPL-3.0",
|
||||
"description": "NodeBB Forum",
|
||||
"version": "1.4.1",
|
||||
"version": "1.0.4-auto.10",
|
||||
"homepage": "http://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -11,110 +11,94 @@
|
||||
"main": "app.js",
|
||||
"scripts": {
|
||||
"start": "node loader.js",
|
||||
"lint": "eslint --cache .",
|
||||
"pretest": "npm run lint",
|
||||
"test": "istanbul cover node_modules/mocha/bin/_mocha -- -R dot",
|
||||
"coveralls": "istanbul cover _mocha --report lcovonly -- -R dot && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"
|
||||
"test": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- ./tests -t 10000"
|
||||
},
|
||||
"dependencies": {
|
||||
"async": "~1.5.0",
|
||||
"autoprefixer": "^6.2.3",
|
||||
"bcryptjs": "~2.3.0",
|
||||
"body-parser": "^1.9.0",
|
||||
"chart.js": "^2.1.0",
|
||||
"chart.js": "^1.0.2",
|
||||
"colors": "^1.1.0",
|
||||
"compression": "^1.1.0",
|
||||
"connect-ensure-login": "^0.1.1",
|
||||
"connect-flash": "^0.1.1",
|
||||
"connect-mongo": "1.3.2",
|
||||
"connect-mongo": "~1.1.0",
|
||||
"connect-multiparty": "^2.0.0",
|
||||
"connect-redis": "~3.1.0",
|
||||
"connect-redis": "~3.0.2",
|
||||
"cookie-parser": "^1.3.3",
|
||||
"cron": "^1.0.5",
|
||||
"csurf": "^1.6.1",
|
||||
"daemon": "~1.1.0",
|
||||
"express": "^4.14.0",
|
||||
"express": "^4.9.5",
|
||||
"express-session": "^1.8.2",
|
||||
"express-useragent": "1.0.4",
|
||||
"html-to-text": "2.1.3",
|
||||
"ip": "1.1.3",
|
||||
"jimp": "0.2.27",
|
||||
"jquery": "^3.1.0",
|
||||
"express-useragent": "0.2.4",
|
||||
"html-to-text": "2.0.0",
|
||||
"ip": "1.1.2",
|
||||
"jimp": "0.2.21",
|
||||
"json-2-csv": "^2.0.22",
|
||||
"less": "^2.0.0",
|
||||
"logrotate-stream": "^0.2.3",
|
||||
"lru-cache": "4.0.1",
|
||||
"lru-cache": "4.0.0",
|
||||
"mime": "^1.3.4",
|
||||
"minimist": "^1.1.1",
|
||||
"mkdirp": "~0.5.0",
|
||||
"mongodb": "2.2.16",
|
||||
"mongodb": "~2.1.3",
|
||||
"morgan": "^1.3.2",
|
||||
"mousetrap": "^1.5.3",
|
||||
"nconf": "~0.8.2",
|
||||
"nodebb-plugin-composer-default": "4.3.4",
|
||||
"nodebb-plugin-dbsearch": "1.0.4",
|
||||
"nodebb-plugin-emoji-extended": "1.1.1",
|
||||
"nodebb-plugin-composer-default": "4.0.5",
|
||||
"nodebb-plugin-dbsearch": "1.0.2",
|
||||
"nodebb-plugin-emoji-extended": "1.1.0",
|
||||
"nodebb-plugin-emoji-one": "1.1.5",
|
||||
"nodebb-plugin-markdown": "7.0.1",
|
||||
"nodebb-plugin-mentions": "1.1.3",
|
||||
"nodebb-plugin-markdown": "6.0.0",
|
||||
"nodebb-plugin-mentions": "1.1.2",
|
||||
"nodebb-plugin-soundpack-default": "0.1.6",
|
||||
"nodebb-plugin-spam-be-gone": "0.4.10",
|
||||
"nodebb-rewards-essentials": "0.0.9",
|
||||
"nodebb-theme-lavender": "3.0.15",
|
||||
"nodebb-theme-persona": "4.1.89",
|
||||
"nodebb-theme-vanilla": "5.1.57",
|
||||
"nodebb-widget-essentials": "2.0.13",
|
||||
"nodemailer": "2.6.4",
|
||||
"nodebb-plugin-spam-be-gone": "0.4.8",
|
||||
"nodebb-rewards-essentials": "0.0.8",
|
||||
"nodebb-theme-lavender": "3.0.13",
|
||||
"nodebb-theme-persona": "4.1.3",
|
||||
"nodebb-theme-vanilla": "5.1.0",
|
||||
"nodebb-widget-essentials": "2.0.9",
|
||||
"nodemailer": "2.0.0",
|
||||
"nodemailer-sendmail-transport": "1.0.0",
|
||||
"nodemailer-smtp-transport": "^2.4.1",
|
||||
"passport": "^0.3.0",
|
||||
"passport-local": "1.0.0",
|
||||
"postcss": "^5.0.13",
|
||||
"postcss-clean": "^1.0.0",
|
||||
"promise-polyfill": "^6.0.2",
|
||||
"prompt": "^1.0.0",
|
||||
"redis": "~2.6.2",
|
||||
"redis": "~2.4.2",
|
||||
"request": "^2.44.0",
|
||||
"rimraf": "~2.5.0",
|
||||
"rss": "^1.0.0",
|
||||
"sanitize-html": "^1.13.0",
|
||||
"semver": "^5.1.0",
|
||||
"serve-favicon": "^2.1.5",
|
||||
"sitemap": "^1.4.0",
|
||||
"socket.io": "1.7.1",
|
||||
"socket.io-client": "1.7.1",
|
||||
"socket.io-redis": "2.0.0",
|
||||
"socket.io": "^1.4.0",
|
||||
"socket.io-client": "^1.4.0",
|
||||
"socket.io-redis": "^1.0.0",
|
||||
"socketio-wildcard": "~0.3.0",
|
||||
"string": "^3.0.0",
|
||||
"templates.js": "0.3.5",
|
||||
"toobusy-js": "^0.5.1",
|
||||
"templates.js": "0.3.4",
|
||||
"toobusy-js": "^0.4.2",
|
||||
"uglify-js": "^2.6.0",
|
||||
"underscore": "^1.8.3",
|
||||
"underscore.deep": "^0.5.1",
|
||||
"validator": "^6.1.0",
|
||||
"validator": "^5.0.0",
|
||||
"winston": "^2.1.0",
|
||||
"xregexp": "~3.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"coveralls": "^2.11.14",
|
||||
"eslint": "^3.7.1",
|
||||
"eslint-config-airbnb": "^12.0.0",
|
||||
"eslint-plugin-import": "^1.16.0",
|
||||
"eslint-plugin-jsx-a11y": "^2.2.3",
|
||||
"eslint-plugin-react": "^6.4.1",
|
||||
"grunt": "~0.4.5",
|
||||
"grunt-contrib-watch": "^1.0.0",
|
||||
"istanbul": "^0.4.2",
|
||||
"mocha": "~3.1.0",
|
||||
"mocha-lcov-reporter": "^1.2.0",
|
||||
"xmlhttprequest": "1.8.0",
|
||||
"xmlhttprequest-ssl": "1.5.3"
|
||||
"mocha": "~1.13.0"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/NodeBB/NodeBB/issues"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
"node": ">=0.10"
|
||||
},
|
||||
"maintainers": [
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Excessive Load Warning</title>
|
||||
<link href='https://fonts.googleapis.com/css?family=Ubuntu:400,500,700' rel='stylesheet' type='text/css'>
|
||||
<link href='http://fonts.googleapis.com/css?family=Ubuntu:400,500,700' rel='stylesheet' type='text/css'>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<style type="text/css">
|
||||
body {
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
The following stylesheet is only included on pages that can execute javascript
|
||||
*/
|
||||
|
||||
.page-topic [component="post/content"] img:not(.not-responsive):not([data-state]) {
|
||||
[component="post/content"] img:not(.not-responsive):not([data-state]) {
|
||||
display: none !important;
|
||||
}
|
||||
@@ -2,19 +2,15 @@
|
||||
"category": "فئة",
|
||||
"subcategories": "فئة فرعية",
|
||||
"new_topic_button": "موضوع جديد",
|
||||
"guest-login-post": "سجل بالدخول للرد",
|
||||
"guest-login-post": "يجب عليك تسجيل الدخول للرد",
|
||||
"no_topics": "<strong>لا توجد مواضيع في هذه الفئة</strong>لم لا تحاول إنشاء موضوع؟<br />",
|
||||
"browsing": "تصفح",
|
||||
"no_replies": "لم يرد أحد",
|
||||
"no_new_posts": "لا توجد مشاركات جديدة.",
|
||||
"no_new_posts": "لا يوجد مشاركات جديدة.",
|
||||
"share_this_category": "انشر هذه الفئة",
|
||||
"watch": "تابع",
|
||||
"watch": "متابعة",
|
||||
"ignore": "تجاهل",
|
||||
"watching": "متابع",
|
||||
"ignoring": "متجاهل",
|
||||
"watching.description": "أظهر المواضيع في غير مقروء",
|
||||
"ignoring.description": "لا تظهر المواضيع في غير مقروء",
|
||||
"watch.message": "You are now watching updates from this category and all subcategories",
|
||||
"ignore.message": "You are now ignoring updates from this category and all subcategories",
|
||||
"watched-categories": "الفئات المتابعة"
|
||||
"watch.message": "أنت اﻷن متابع لتحديثات هذه الفئة",
|
||||
"ignore.message": "أنت اﻷن تتجاهل تحديثات هذه الفئة",
|
||||
"watched-categories": "الفئات المراقبه"
|
||||
}
|
||||
@@ -14,25 +14,22 @@
|
||||
"invalid-password": "كلمة السر غير مقبولة",
|
||||
"invalid-username-or-password": "المرجود تحديد اسم مستخدم و كلمة مرور",
|
||||
"invalid-search-term": "كلمة البحث غير صحيحة",
|
||||
"csrf-invalid": "لم تتمكن من تسجيل الدخول. هنالك أحتمال ان جلستك انتهت. رجاءًا حاول مرة اخرى.",
|
||||
"invalid-pagination-value": "رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
|
||||
"csrf-invalid": "We were unable to log you in, likely due to an expired session. Please try again",
|
||||
"invalid-pagination-value": "Invalid pagination value, must be at least %1 and at most %2",
|
||||
"username-taken": "اسم المستخدم مأخوذ",
|
||||
"email-taken": "البريد الالكتروني مأخوذ",
|
||||
"email-not-confirmed": "عنوان بريدك الإلكتروني غير مفعل بعد. انقر هنا لتفعيله من فضلك.",
|
||||
"email-not-confirmed-chat": "لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
|
||||
"email-not-confirmed-email-sent": "بريدك الإلكتروني غير مفعل. رجاءًا تفحص صندوق البريد عن رسالة التفعيل.",
|
||||
"no-email-to-confirm": "هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.",
|
||||
"email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.",
|
||||
"confirm-email-already-sent": "لقد تم ارسال بريد التأكيد، الرجاء اﻹنتظار 1% دقائق لإعادة اﻹرسال",
|
||||
"sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
|
||||
"username-too-short": "اسم المستخدم قصير.",
|
||||
"username-too-long": "اسم المستخدم طويل",
|
||||
"password-too-long": "كلمة السر طويلة ",
|
||||
"password-too-long": "Password too long",
|
||||
"user-banned": "المستخدم محظور",
|
||||
"user-banned-reason": "Sorry, this account has been banned (Reason: %1)",
|
||||
"user-too-new": "عذرا, يجب أن تنتظر 1% ثواني قبل قيامك بأول مشاركة",
|
||||
"blacklisted-ip": "نأسف، لقد تم حظرك من استخدام وتصفح المنتدى. إذا كنت تعتقد أن هذا خطأ رجاءًا اتصل بالإدارة. ",
|
||||
"ban-expiry-missing": "رجاءًا ضع تاريخ نهاية الحظر. ",
|
||||
"blacklisted-ip": "Sorry, your IP address has been banned from this community. If you feel this is in error, please contact an administrator.",
|
||||
"no-category": "قائمة غير موجودة",
|
||||
"no-topic": "موضوع غير موجود",
|
||||
"no-post": "رد غير موجود",
|
||||
@@ -42,90 +39,75 @@
|
||||
"no-privileges": "لاتملك الصلاحيات اللازمة للقيام بهذه العملية",
|
||||
"category-disabled": "قائمة معطلة",
|
||||
"topic-locked": "الموضوع مقفول",
|
||||
"post-edit-duration-expired": "يسمح لك بتعديل مشاركتك حتى %1 ثانية من نشرها",
|
||||
"post-edit-duration-expired-minutes": "يسمح لك بتعديل مشاركتك حتى %1 دقيقة من نشرها",
|
||||
"post-edit-duration-expired-minutes-seconds": "يسمح لك بتعديل مشاركتك حتى %1 دقيقة و %2 ثوان من نشرها",
|
||||
"post-edit-duration-expired-hours": "يسمح لك بتعديل مشاركتك حتى %1 ساعة من نشرها",
|
||||
"post-edit-duration-expired-hours-minutes": "يسمح لك بتعديل مشاركتك حتى %1 ساعة و %2 دقيقة من نشرها",
|
||||
"post-edit-duration-expired-days": "يسمح لك بتعديل مشاركتك حتى %1 يوم من نشرها",
|
||||
"post-edit-duration-expired-days-hours": "يسمح لك بتعديل مشاركتك حتى %1 يوم و %2 ساعة من نشرها",
|
||||
"post-delete-duration-expired": "يسمح لك بحذف مشاركتك حتى %1 ثانية من نشرها",
|
||||
"post-delete-duration-expired-minutes": "يسمح لك بحذف مشاركتك حتى %1 دقيقة من نشرها",
|
||||
"post-delete-duration-expired-minutes-seconds": "يسمح لك بحذف مشاركتك حتى %1 دقيقة و %2 ثوان من نشرها",
|
||||
"post-delete-duration-expired-hours": "يسمح لك بحذف مشاركتك حتى %1 ساعة من نشرها",
|
||||
"post-delete-duration-expired-hours-minutes": "يسمح لك بحذف مشاركتك حتى %1 ساعة و %2 دقيقة من نشرها",
|
||||
"post-delete-duration-expired-days": "يسمح لك بحذف مشاركتك حتى %1 يوم من نشرها",
|
||||
"post-delete-duration-expired-days-hours": "يسمح لك بحذف مشاركتك حتى %1 يوم و %2 ساعة من نشرها",
|
||||
"cant-delete-topic-has-reply": "لا يمكنك حذف مشاركة تم الرد عليها",
|
||||
"cant-delete-topic-has-replies": "لا يمكنك حذف مشاركة حصدت %1 ردود",
|
||||
"content-too-short": "يرجى ادخال موضوع أطول. على المواضيع أن تحتوي على %1 حرف على الأقل.",
|
||||
"content-too-long": "يرجى ادخال موضوع أقصر. على المواضيع أن لا تتخطى %1 حرف.",
|
||||
"title-too-short": "يرجى إدخال عنوان أطول. على العناوين أن تحتوي على %1 حرف على الأقل.",
|
||||
"title-too-long": "يرجى ادخال عنوان أقصر. على العناوين أن لا تتخطى %1 حرف.",
|
||||
"category-not-selected": "Category not selected.",
|
||||
"too-many-posts": "يسمح لك بالنشر مرة كل %1 ثانية - يرجى الإنتظار قبل النشر مجدداً",
|
||||
"post-edit-duration-expired": "You are only allowed to edit posts for %1 second(s) after posting",
|
||||
"post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting",
|
||||
"post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting",
|
||||
"post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting",
|
||||
"post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting",
|
||||
"post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting",
|
||||
"post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting",
|
||||
"content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).",
|
||||
"content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).",
|
||||
"title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).",
|
||||
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 character(s).",
|
||||
"too-many-posts": "You can only post once every %1 second(s) - please wait before posting again",
|
||||
"too-many-posts-newbie": "As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
|
||||
"tag-too-short": "Please enter a longer tag. Tags should contain at least %1 character(s)",
|
||||
"tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 character(s)",
|
||||
"not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)",
|
||||
"too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)",
|
||||
"still-uploading": "الرجاء الانتظار حتى يكتمل الرفع.",
|
||||
"file-too-big": "الحد الأقصى لرفع الملفات %1 كيلو بت. رجاءًا ارفع ملف أصغر",
|
||||
"guest-upload-disabled": "خاصية رفع الملفات غير مفعلة للزوار.",
|
||||
"already-bookmarked": "You have already bookmarked this post",
|
||||
"already-unbookmarked": "You have already unbookmarked this post",
|
||||
"still-uploading": "الرجاء انتظار الرفع",
|
||||
"file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file",
|
||||
"guest-upload-disabled": "Guest uploading has been disabled",
|
||||
"already-favourited": "You have already bookmarked this post",
|
||||
"already-unfavourited": "You have already unbookmarked this post",
|
||||
"cant-ban-other-admins": "لايمكن حظر مدبر نظام آخر.",
|
||||
"cant-remove-last-admin": "رجاءًا ، أضف مدير أخر قبل حذف صلاحيات الإدارة من حسابك.",
|
||||
"cant-delete-admin": "رجاءًا أزل صلاحيات الإدارة قبل حذف الحساب. ",
|
||||
"invalid-image-type": "نوع الصورة غير مدعوم. الأنواع المدعومة هي : %1",
|
||||
"invalid-image-extension": "امتداد الصورة غير مدعوم.",
|
||||
"invalid-file-type": "صيغة الملف غير مدعومة. الأنواع المدعومة هي: %1",
|
||||
"cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin",
|
||||
"cant-delete-admin": "Remove administrator privileges from this account before attempting to delete it.",
|
||||
"invalid-image-type": "Invalid image type. Allowed types are: %1",
|
||||
"invalid-image-extension": "Invalid image extension",
|
||||
"invalid-file-type": "Invalid file type. Allowed types are: %1",
|
||||
"group-name-too-short": "اسم المجموعة قصير",
|
||||
"group-name-too-long": "اسم المجموعة طويل.",
|
||||
"group-already-exists": "المجموعة موجودة مسبقا",
|
||||
"group-name-change-not-allowed": "لايسمح بتغيير أسماء المجموعات",
|
||||
"group-already-member": "أنت عضو في هذه المجموعة.",
|
||||
"group-not-member": "أنت لست عضو في هذه المجموعة.",
|
||||
"group-already-member": "Already part of this group",
|
||||
"group-not-member": "Not a member of this group",
|
||||
"group-needs-owner": "هذه المجموعة تتطلب مالك واحد على اﻷقل",
|
||||
"group-already-invited": "المستخدم سبق وأن تمت دعوته",
|
||||
"group-already-requested": "سبق وتم تسجيل طلب العضوية",
|
||||
"group-already-invited": "This user has already been invited",
|
||||
"group-already-requested": "Your membership request has already been submitted",
|
||||
"post-already-deleted": "سبق وتم حذف هذا الرد",
|
||||
"post-already-restored": "سبق وتم إلغاء حذف هذا الرد",
|
||||
"topic-already-deleted": "سبق وتم حذف هذا الموضوع",
|
||||
"topic-already-restored": "سبق وتم إلغاء حذف هذا الرد",
|
||||
"cant-purge-main-post": "لا يمكنك محو المشاركة الأساسية، يرجى حذف الموضوع بدلاً عن ذلك",
|
||||
"cant-purge-main-post": "You can't purge the main post, please delete the topic instead",
|
||||
"topic-thumbnails-are-disabled": "الصور المصغرة غير مفعلة.",
|
||||
"invalid-file": "ملف غير مقبول",
|
||||
"uploads-are-disabled": "رفع الملفات غير مفعل",
|
||||
"signature-too-long": "عذرا، توقيعك يجب ألا يتجاوز %1 حرفًا.",
|
||||
"about-me-too-long": "نأسف، ( عني ) لا يمكن أن يكون أكثر من %1 حرف. ",
|
||||
"about-me-too-long": "Sorry, your about me cannot be longer than %1 character(s).",
|
||||
"cant-chat-with-yourself": "لايمكنك فتح محادثة مع نفسك",
|
||||
"chat-restricted": "هذا المستخدم عطل المحادثات الواردة عليه. يجب أن يتبعك حتى تتمكن من فتح محادثة معه.",
|
||||
"chat-disabled": "نظام المحادثة معطل.",
|
||||
"chat-disabled": "Chat system disabled",
|
||||
"too-many-messages": "لقد أرسلت الكثير من الرسائل، الرجاء اﻹنتظار قليلاً",
|
||||
"invalid-chat-message": "الرسالة غير صالحة.",
|
||||
"chat-message-too-long": "الرسالة طويلة.",
|
||||
"cant-edit-chat-message": "غير مصرح لك بتعديل الرسالة.",
|
||||
"cant-remove-last-user": "لأيمكنك إزالت اخر مستخدم.",
|
||||
"cant-delete-chat-message": "غير مصرح لك بحذف الرسالة.",
|
||||
"already-voting-for-this-post": "لقد شاركت بالتصويت ، ألا تذكر؟",
|
||||
"invalid-chat-message": "Invalid chat message",
|
||||
"chat-message-too-long": "Chat message is too long",
|
||||
"cant-edit-chat-message": "You are not allowed to edit this message",
|
||||
"cant-remove-last-user": "You can't remove the last user",
|
||||
"cant-delete-chat-message": "You are not allowed to delete this message",
|
||||
"already-voting-for-this-post": "You have already voted for this post.",
|
||||
"reputation-system-disabled": "نظام السمعة معطل",
|
||||
"downvoting-disabled": "التصويتات السلبية معطلة",
|
||||
"not-enough-reputation-to-downvote": "ليس لديك سمعة تكفي لإضافة صوت سلبي لهذا الموضوع",
|
||||
"not-enough-reputation-to-flag": "ليس لديك سمعة تكفي للإشعار بموضوع مخل",
|
||||
"already-flagged": "لقد بلغت عن هذه المشاركة من قبل.",
|
||||
"already-flagged": "You have already flagged this post",
|
||||
"reload-failed": "المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
|
||||
"registration-error": "حدث خطأ أثناء التسجيل",
|
||||
"parse-error": "حدث خطأ ما أثناء تحليل استجابة الخادم",
|
||||
"wrong-login-type-email": "الرجاء استعمال بريدك اﻹلكتروني للدخول",
|
||||
"wrong-login-type-username": "الرجاء استعمال اسم المستخدم الخاص بك للدخول",
|
||||
"invite-maximum-met": "لقد قمت بدعوة الحد الأقصى من الأشخاص (%1 من %2)",
|
||||
"no-session-found": "لم دخول مسجل!",
|
||||
"not-in-room": "المستخدم غير موجود في الغرفة.",
|
||||
"no-users-in-room": "لا يوجد مستخدمين في الغرفة.",
|
||||
"cant-kick-self": "لا يمكنك طرد نفسك من المجموعة.",
|
||||
"no-users-selected": "لا يوجد مستخدم محدد.",
|
||||
"invalid-home-page-route": "Invalid home page route",
|
||||
"invalid-session": "Session Mismatch",
|
||||
"invalid-session-text": "يبدو أن فترة التسجيل لم تعد قائمة او هي غير مطابقة مع الخادم. يرجى إعادة تحميل هذه الصفحة."
|
||||
"invite-maximum-met": "You have invited the maximum amount of people (%1 out of %2).",
|
||||
"no-session-found": "No login session found!",
|
||||
"not-in-room": "User not in room",
|
||||
"no-users-in-room": "No users in this room",
|
||||
"cant-kick-self": "You can't kick yourself from the group"
|
||||
}
|
||||
@@ -4,13 +4,11 @@
|
||||
"buttons.close": "أغلق",
|
||||
"403.title": "غير مسموح بالدخول",
|
||||
"403.message": "يبدو أنك قد تعثرت على صفحة لا تمتلك الصلاحية للدخول إليها",
|
||||
"403.login": "حاول أن <a href='%1/login'>تسجل دخولك</a>.",
|
||||
"403.login": "Perhaps you should <a href='%1/login'>try logging in</a>?",
|
||||
"404.title": "لم يتم العثور",
|
||||
"404.message": "الصفحة غير موجودة. العودة لـ <a href='%1/'>الرئيسية</a>",
|
||||
"500.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": "عفوا! يبدو وكأنه شيء ذهب على نحو خاطئ!",
|
||||
"400.title": "طلب سيئ",
|
||||
"400.message": "الرابط غير صحيح. رجاءًا تأكد من الرابط أو ارجع لـ <a href='%1/'>الرئيسية</a>",
|
||||
"register": "تسجيل",
|
||||
"login": "دخول",
|
||||
"please_log_in": "المرجو تسجيل الدخول",
|
||||
@@ -19,7 +17,6 @@
|
||||
"welcome_back": "مرحبًا بعودتك",
|
||||
"you_have_successfully_logged_in": "تم سجيل الدخول بنجاح",
|
||||
"save_changes": "حفظ التغييرات",
|
||||
"save": "Save",
|
||||
"close": "أغلق",
|
||||
"pagination": "الصفحات",
|
||||
"pagination.out_of": "%1 من %2",
|
||||
@@ -36,7 +33,7 @@
|
||||
"header.notifications": "التنبيهات",
|
||||
"header.search": "بحث",
|
||||
"header.profile": "ملف",
|
||||
"header.navigation": "الاستكشاف",
|
||||
"header.navigation": "Navigation",
|
||||
"notifications.loading": "تحميل التبليغات",
|
||||
"chats.loading": "تحميل الدردشات",
|
||||
"motd.welcome": "مرحبا بكم NodeBB، منصة مناقشة المستقبل",
|
||||
@@ -52,32 +49,29 @@
|
||||
"users": "الأعضاء",
|
||||
"topics": "المواضيع",
|
||||
"posts": "المشاركات",
|
||||
"best": "الأفضل",
|
||||
"upvoters": "الموافقين",
|
||||
"upvoted": "مصوت بالموجب",
|
||||
"downvoters": "مصوتين بالسالب",
|
||||
"downvoted": "مصوت بالسالب",
|
||||
"best": "Best",
|
||||
"upvoted": "Upvoted",
|
||||
"downvoted": "Downvoted",
|
||||
"views": "المشاهدات",
|
||||
"reputation": "السمعة",
|
||||
"read_more": "اقرأ المزيد",
|
||||
"more": "المزيد",
|
||||
"posted_ago_by_guest": "كتب %1 بواسطة زائر",
|
||||
"posted_ago_by": "كتب %1 بواسطة %2",
|
||||
"posted_ago_by_guest": "كتب %1 من طرف زائر",
|
||||
"posted_ago_by": "كتب %1 من طرف %2",
|
||||
"posted_ago": "كتب %1",
|
||||
"posted_in": "كتب في %1",
|
||||
"posted_in_by": "كتب في 1% بواسطة %2",
|
||||
"posted_in": "posted in %1",
|
||||
"posted_in_by": "posted in %1 by %2",
|
||||
"posted_in_ago": "كتب في %1 %2",
|
||||
"posted_in_ago_by": "كتب في %1 %2 من طرف %3",
|
||||
"user_posted_ago": "%1 كتب %2",
|
||||
"guest_posted_ago": "كتب زائر %1",
|
||||
"last_edited_by": "اخر تحرير بواسطة 1%",
|
||||
"last_edited_by": "last edited by %1",
|
||||
"norecentposts": "لاوجود لمشاركات جديدة",
|
||||
"norecenttopics": "لاوجود لمواضيع جديدة",
|
||||
"recentposts": "آخر المشاركات",
|
||||
"recentips": "آخر عناوين ال IP التي سجلت الدخول",
|
||||
"moderator_tools": "Moderator Tools",
|
||||
"away": "غير متواجد",
|
||||
"dnd": "عدم الإزعاج",
|
||||
"dnd": "Do not disturb",
|
||||
"invisible": "مخفي",
|
||||
"offline": "غير متصل",
|
||||
"email": "عنوان البريد الإلكتروني",
|
||||
@@ -90,17 +84,11 @@
|
||||
"follow": "متابعة",
|
||||
"unfollow": "إلغاء المتابعة",
|
||||
"delete_all": "حذف الكل",
|
||||
"map": "خريطة",
|
||||
"sessions": "الجلسة",
|
||||
"ip_address": "عنوان الآي بي",
|
||||
"enter_page_number": "ادخل رقم الصفحة",
|
||||
"upload_file": "ارفع ملف",
|
||||
"upload": "ارفع",
|
||||
"allowed-file-types": "صيغ الملفات المدعومة هي 1%",
|
||||
"unsaved-changes": "لديك تغييرات لم تحفظ. هل أنت متأكد من تغيير الصفحة؟",
|
||||
"reconnecting-message": "يبدو أن اتصالك لـ %1 قد فقد. رجاءًا أنتظر ثم حاول الإتصال مرة اخرى.",
|
||||
"play": "Play",
|
||||
"cookies.message": "This website uses cookies to ensure you get the best experience on our website.",
|
||||
"cookies.accept": "Got it!",
|
||||
"cookies.learn_more": "Learn More"
|
||||
"map": "Map",
|
||||
"sessions": "Login Sessions",
|
||||
"ip_address": "IP Address",
|
||||
"enter_page_number": "Enter page number",
|
||||
"upload_file": "Upload file",
|
||||
"upload": "Upload",
|
||||
"allowed-file-types": "Allowed file types are %1"
|
||||
}
|
||||
@@ -50,7 +50,5 @@
|
||||
"membership.leave-group": "غادر المجموعة",
|
||||
"membership.reject": "رفض",
|
||||
"new-group.group_name": "اسم المجموعة",
|
||||
"upload-group-cover": "Upload group cover",
|
||||
"bulk-invite-instructions": "Enter a list of comma separated usernames to invite to this group",
|
||||
"bulk-invite": "Bulk Invite"
|
||||
"upload-group-cover": "Upload group cover"
|
||||
}
|
||||
@@ -7,6 +7,5 @@
|
||||
"alternative_logins": "تسجيلات الدخول البديلة",
|
||||
"failed_login_attempt": "Login Unsuccessful",
|
||||
"login_successful": "قمت بتسجيل الدخول بنجاح!",
|
||||
"dont_have_account": "لا تملك حساب؟",
|
||||
"logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity"
|
||||
"dont_have_account": "لا تملك حساب؟"
|
||||
}
|
||||
@@ -18,6 +18,7 @@
|
||||
"chat.thirty_days": "30 يومًا",
|
||||
"chat.three_months": "3 أشهر",
|
||||
"chat.delete_message_confirm": "هل أنت متأكد من أنك تريد حذف هذه الرسالة؟",
|
||||
"chat.roomname": "Chat Room %1",
|
||||
"chat.add-users-to-room": "Add users to room",
|
||||
"composer.compose": "اكتب",
|
||||
"composer.show_preview": "عرض المعاينة",
|
||||
@@ -36,8 +37,6 @@
|
||||
"composer.formatting.picture": "Picture",
|
||||
"composer.upload-picture": "Upload Image",
|
||||
"composer.upload-file": "Upload File",
|
||||
"composer.zen_mode": "Zen Mode",
|
||||
"composer.select_category": "Select a category",
|
||||
"bootbox.ok": "OK",
|
||||
"bootbox.cancel": "إلغاء",
|
||||
"bootbox.confirm": "تأكيد",
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
"upvoted_your_post_in_multiple": "<strong>%1</strong> and %2 others have upvoted your post in <strong>%3</strong>.",
|
||||
"moved_your_post": "<strong>%1</strong> has moved your post to <strong>%2</strong>",
|
||||
"moved_your_topic": "<strong>%1</strong> has moved <strong>%2</strong>",
|
||||
"favourited_your_post_in": "<strong>%1</strong> has bookmarked your post in <strong>%2</strong>.",
|
||||
"favourited_your_post_in_dual": "<strong>%1</strong> and <strong>%2</strong> have bookmarked your post in <strong>%3</strong>.",
|
||||
"favourited_your_post_in_multiple": "<strong>%1</strong> and %2 others have bookmarked your post in <strong>%3</strong>.",
|
||||
"user_flagged_post_in": "<strong>%1</strong> أشعَرَ بمشاركة مخلة في <strong>%2</strong>",
|
||||
"user_flagged_post_in_dual": "<strong>%1</strong> and <strong>%2</strong> flagged a post in <strong>%3</strong>",
|
||||
"user_flagged_post_in_multiple": "<strong>%1</strong> and %2 others flagged a post in <strong>%3</strong>",
|
||||
|
||||
@@ -1,44 +1,40 @@
|
||||
{
|
||||
"home": "الصفحة الرئيسية",
|
||||
"unread": "المواضيع الغير مقروءة",
|
||||
"popular-day": "المواضيع الشائعة اليوم",
|
||||
"popular-week": "المواضيع الشائعة هذا الأسبوع",
|
||||
"popular-month": "المواضيع الشائعة هذا الشهر",
|
||||
"popular-alltime": "المواضيع الشائعة منذ القدم",
|
||||
"popular-day": "Popular topics today",
|
||||
"popular-week": "Popular topics this week",
|
||||
"popular-month": "Popular topics this month",
|
||||
"popular-alltime": "All time popular topics",
|
||||
"recent": "المواضيع الحديثة",
|
||||
"flagged-posts": "Flagged Posts",
|
||||
"ip-blacklist": "IP Blacklist",
|
||||
"users/online": "اﻷعضاء المتصلون",
|
||||
"users/latest": "أحدث اﻷعضاء",
|
||||
"users/sort-posts": "الأعضاء الأكثر نشاطاً",
|
||||
"users/sort-reputation": "الأعضاء الأفضل سمعة",
|
||||
"users/banned": "الأعضاء المحظورون",
|
||||
"users/most-flags": "Most flagged users",
|
||||
"users/search": "بحث عن مستخدم",
|
||||
"users/sort-posts": "Users with the most posts",
|
||||
"users/sort-reputation": "Users with the most reputation",
|
||||
"users/banned": "Banned Users",
|
||||
"users/search": "User Search",
|
||||
"notifications": "التنبيهات",
|
||||
"tags": "الكلمات الدلالية",
|
||||
"tag": "المواضيع المرتبطة بالوسم %1",
|
||||
"tag": "Topics tagged under \"%1\"",
|
||||
"register": "تسجيل حساب",
|
||||
"registration-complete": "Registration complete",
|
||||
"login": "سجل الدخول الى حسابك",
|
||||
"login": "Login to your account",
|
||||
"reset": "إعادة تعيين كلمة مرور حسابك",
|
||||
"categories": "الفئات",
|
||||
"groups": "المجموعات",
|
||||
"group": "%1 مجموعة",
|
||||
"chats": "محادثات",
|
||||
"group": "%1 group",
|
||||
"chats": "Chats",
|
||||
"chat": "Chatting with %1",
|
||||
"account/edit": "Editing \"%1\"",
|
||||
"account/edit/password": "Editing password of \"%1\"",
|
||||
"account/edit/username": "Editing username of \"%1\"",
|
||||
"account/edit/email": "Editing email of \"%1\"",
|
||||
"account/info": "معلومات الحساب",
|
||||
"account/following": "People %1 follows",
|
||||
"account/followers": "People who follow %1",
|
||||
"account/posts": "Posts made by %1",
|
||||
"account/topics": "Topics created by %1",
|
||||
"account/groups": "%1's Groups",
|
||||
"account/bookmarks": "%1's Bookmarked Posts",
|
||||
"account/settings": "خيارات المستخدم",
|
||||
"account/favourites": "%1's Bookmarked Posts",
|
||||
"account/settings": "User Settings",
|
||||
"account/watched": "Topics watched by %1",
|
||||
"account/upvoted": "Posts upvoted by %1",
|
||||
"account/downvoted": "Posts downvoted by %1",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"year": "سنة",
|
||||
"alltime": "دائمًا",
|
||||
"no_recent_topics": "لايوجد مواضيع جديدة",
|
||||
"no_popular_topics": "لا يوجد مواضيع شائعة",
|
||||
"no_popular_topics": "There are no popular topics.",
|
||||
"there-is-a-new-topic": "يوجد موضوع جديد",
|
||||
"there-is-a-new-topic-and-a-new-post": "يوجد موضوع جديد و رد جديد",
|
||||
"there-is-a-new-topic-and-new-posts": "يوجد موضوع جديد و %1 ردود جديدة ",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"register": "تسجيل",
|
||||
"cancel_registration": "إلغاء التسجيل",
|
||||
"help.email": "افتراضيا، سيتم إخفاء بريدك الإلكتروني من العامة.",
|
||||
"help.username_restrictions": "اسم مستخدم فريدة من نوعها بين1% و2% حرفا. يمكن للآخرين ذكرك @ <'span id='your-username> اسم المستخدم </span>.",
|
||||
"help.minimum_password_length": "كلمة المرور يجب أن تكون على الأقل بها 1% أحرف",
|
||||
@@ -16,8 +15,5 @@
|
||||
"alternative_registration": "طريقة تسجيل بديلة",
|
||||
"terms_of_use": "شروط الاستخدام",
|
||||
"agree_to_terms_of_use": "أوافق على شروط الاستخدام",
|
||||
"terms_of_use_error": "You must agree to the Terms of Use",
|
||||
"registration-added-to-queue": "Your registration has been added to the approval queue. You will receive an email when it is accepted by an administrator.",
|
||||
"interstitial.intro": "We require some additional information before we can create your account.",
|
||||
"interstitial.errors-found": "We could not complete your registration:"
|
||||
"registration-added-to-queue": "Your registration has been added to the approval queue. You will receive an email when it is accepted by an administrator."
|
||||
}
|
||||
@@ -13,8 +13,7 @@
|
||||
"notify_me": "تلق تنبيهات بالردود الجديدة في هذا الموضوع",
|
||||
"quote": "اقتبس",
|
||||
"reply": "رد",
|
||||
"replies_to_this_post": "Replies: %1",
|
||||
"reply-as-topic": "رد بموضوع",
|
||||
"reply-as-topic": "Reply as topic",
|
||||
"guest-login-reply": "يجب عليك تسجيل الدخول للرد",
|
||||
"edit": "تعديل",
|
||||
"delete": "حذف",
|
||||
@@ -27,47 +26,30 @@
|
||||
"tools": "أدوات",
|
||||
"flag": "تبليغ",
|
||||
"locked": "مقفل",
|
||||
"pinned": "مثبت",
|
||||
"moved": "منقول",
|
||||
"bookmark_instructions": "اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
|
||||
"bookmark_instructions": "Click here to return to the last read post in this thread.",
|
||||
"flag_title": "إشعار بمشاركة مخلة.",
|
||||
"flag_success": "تم الإشعار بهذه المشاركة على أنها مخلة",
|
||||
"flag_manage_title": "Flagged post in %1",
|
||||
"flag_manage_history": "Action History",
|
||||
"flag_manage_no_history": "No event history to report",
|
||||
"flag_manage_assignee": "Assignee",
|
||||
"flag_manage_state": "State",
|
||||
"flag_manage_state_open": "New/Open",
|
||||
"flag_manage_state_wip": "Work in Progress",
|
||||
"flag_manage_state_resolved": "Resolved",
|
||||
"flag_manage_state_rejected": "Rejected",
|
||||
"flag_manage_notes": "Shared Notes",
|
||||
"flag_manage_update": "Update Flag Status",
|
||||
"flag_manage_history_assignee": "Assigned to %1",
|
||||
"flag_manage_history_state": "Updated state to %1",
|
||||
"flag_manage_history_notes": "Updated flag notes",
|
||||
"flag_manage_saved": "Flag Details Updated",
|
||||
"deleted_message": "هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
|
||||
"following_topic.message": "ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
|
||||
"not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.",
|
||||
"not_following_topic.message": "لن تستلم أي تنبيه بخصوص عذا الموضوع بعد الآن.",
|
||||
"ignoring_topic.message": "You will no longer see this topic in the unread topics list. You will be notified when you are mentioned or your post is up voted.",
|
||||
"login_to_subscribe": "المرجو إنشاء حساب أو تسجيل الدخول حتى يمكنك متابعة هذا الموضوع.",
|
||||
"markAsUnreadForAll.success": "تم تحديد الموضوع على أنه غير مقروء.",
|
||||
"mark_unread": "حدده كغير مقروء",
|
||||
"mark_unread.success": "الموضوع حدد على أنه غير مقروء",
|
||||
"mark_unread": "Mark unread",
|
||||
"mark_unread.success": "Topic marked as unread.",
|
||||
"watch": "مراقبة",
|
||||
"unwatch": "الغاء المراقبة",
|
||||
"watch.title": "استلم تنبيها بالردود الجديدة في هذا الموضوع",
|
||||
"unwatch.title": "ألغ مراقبة هذا الموضوع",
|
||||
"share_this_post": "انشر هذا الموضوع",
|
||||
"watching": "مراقبة",
|
||||
"not-watching": "غير مراقب",
|
||||
"ignoring": "تجاهل",
|
||||
"watching.description": "بلغني بالردود الجديدة<br/>\nاظهر الموضوع في غير مقروء",
|
||||
"watching": "Watching",
|
||||
"not-watching": "Not Watching",
|
||||
"ignoring": "Ignoring",
|
||||
"watching.description": "Notify me of new replies.<br/>Show topic in unread.",
|
||||
"not-watching.description": "Do not notify me of new replies.<br/>Show topic in unread if category is not ignored.",
|
||||
"ignoring.description": "Do not notify me of new replies.<br/>Do not show topic in unread.",
|
||||
"thread_tools.title": "أدوات الموضوع",
|
||||
"thread_tools.markAsUnreadForAll": "Mark unread for all",
|
||||
"thread_tools.markAsUnreadForAll": "علم غير مقروء",
|
||||
"thread_tools.pin": "علق الموضوع",
|
||||
"thread_tools.unpin": "إلغاء تعليق الموضوع",
|
||||
"thread_tools.lock": "أقفل الموضوع",
|
||||
@@ -76,7 +58,7 @@
|
||||
"thread_tools.move_all": "نقل الكل",
|
||||
"thread_tools.fork": "إنشاء فرع الموضوع",
|
||||
"thread_tools.delete": "حذف الموضوع",
|
||||
"thread_tools.delete-posts": "مشاركات محذوفة",
|
||||
"thread_tools.delete-posts": "Delete Posts",
|
||||
"thread_tools.delete_confirm": "هل أنت متأكد أنك تريد حذف هذا الموضوع؟",
|
||||
"thread_tools.restore": "استعادة الموضوع",
|
||||
"thread_tools.restore_confirm": "هل أنت متأكد أنك تريد استعادة هذا الموضوع؟",
|
||||
@@ -90,9 +72,9 @@
|
||||
"disabled_categories_note": "الفئات المعطلة رمادية",
|
||||
"confirm_move": "انقل",
|
||||
"confirm_fork": "فرع",
|
||||
"bookmark": "Bookmark",
|
||||
"bookmarks": "Bookmarks",
|
||||
"bookmarks.has_no_bookmarks": "You haven't bookmarked any posts yet.",
|
||||
"favourite": "Bookmark",
|
||||
"favourites": "Bookmarks",
|
||||
"favourites.has_no_favourites": "You haven't bookmarked any posts yet.",
|
||||
"loading_more_posts": "تحميل المزيد من المشاركات",
|
||||
"move_topic": "نقل الموضوع",
|
||||
"move_topics": "نقل المواضيع",
|
||||
@@ -102,7 +84,6 @@
|
||||
"topic_will_be_moved_to": "هذا الموضوع سوف ينقل إلى فئة",
|
||||
"fork_topic_instruction": "إضغط على المشاركات التي تريد تفريعها",
|
||||
"fork_no_pids": "لم تختر أي مشاركة",
|
||||
"fork_pid_count": "1% مشاركة محددة",
|
||||
"fork_success": "تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
|
||||
"delete_posts_instruction": "Click the posts you want to delete/purge",
|
||||
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
|
||||
@@ -129,10 +110,10 @@
|
||||
"most_posts": "اﻷكثر رداً",
|
||||
"stale.title": "Create new topic instead?",
|
||||
"stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?",
|
||||
"stale.create": "موضوع جديد",
|
||||
"stale.reply_anyway": "الرد على هذا الموضوع ",
|
||||
"link_back": "رد: [%1](%2)",
|
||||
"spam": "سبام",
|
||||
"offensive": "مسيئ",
|
||||
"custom-flag-reason": "أدخل سبب التبليغ"
|
||||
"stale.create": "Create a new topic",
|
||||
"stale.reply_anyway": "Reply to this topic anyway",
|
||||
"link_back": "Re: [%1](%2)",
|
||||
"spam": "Spam",
|
||||
"offensive": "Offensive",
|
||||
"custom-flag-reason": "Enter a flagging reason"
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"uploading-file": "جاري رفع الملف...",
|
||||
"select-file-to-upload": "إختر ملف لرفعه!",
|
||||
"select-file-to-upload": "Select a file to upload!",
|
||||
"upload-success": "تم رفع الملف بنجاح!",
|
||||
"maximum-file-size": "الحجم الأقصى %1 كيلوبت"
|
||||
"maximum-file-size": "Maximum %1 kb"
|
||||
}
|
||||
@@ -6,7 +6,6 @@
|
||||
"postcount": "عدد المشاركات",
|
||||
"email": "البريد الإلكتروني",
|
||||
"confirm_email": "تأكيد عنوان البريد الإلكتروني",
|
||||
"account_info": "معلومات الحساب",
|
||||
"ban_account": "Ban Account",
|
||||
"ban_account_confirm": "هل تريد حقاً حظر هاذا العضو؟",
|
||||
"unban_account": "Unban Account",
|
||||
@@ -23,7 +22,7 @@
|
||||
"profile": "الملف الشخصي",
|
||||
"profile_views": "عدد المشاهدات",
|
||||
"reputation": "السمعة",
|
||||
"bookmarks": "Bookmarks",
|
||||
"favourites": "Bookmarks",
|
||||
"watched": "متابع",
|
||||
"followers": "المتابعون",
|
||||
"following": "يتابع",
|
||||
@@ -31,8 +30,7 @@
|
||||
"signature": "توقيع",
|
||||
"birthday": "عيد ميلاد",
|
||||
"chat": "محادثة",
|
||||
"chat_with": "Continue chat with %1",
|
||||
"new_chat_with": "Start new chat with %1",
|
||||
"chat_with": "Chat with %1",
|
||||
"follow": "تابع",
|
||||
"unfollow": "إلغاء المتابعة",
|
||||
"more": "المزيد",
|
||||
@@ -90,11 +88,6 @@
|
||||
"topics_per_page": "المواضيع في كل صفحة",
|
||||
"posts_per_page": "الردود في كل صفحة",
|
||||
"notification_sounds": "تشغيل صوت عند تلقي تنبيه",
|
||||
"notifications_and_sounds": "Notifications & Sounds",
|
||||
"incoming-message-sound": "Incoming message sound",
|
||||
"outgoing-message-sound": "Outgoing message sound",
|
||||
"notification-sound": "Notification sound",
|
||||
"no-sound": "No sound",
|
||||
"browsing": "خيارات التصفح",
|
||||
"open_links_in_new_tab": "فتح الروابط الخارجية في نافدة جديدة",
|
||||
"enable_topic_searching": "تفعيل خاصية البحث داخل المواضيع",
|
||||
@@ -102,8 +95,8 @@
|
||||
"delay_image_loading": "Delay Image Loading",
|
||||
"image_load_delay_help": "If enabled, images in topics will not load until they are scrolled into view",
|
||||
"scroll_to_my_post": "After posting a reply, show the new post",
|
||||
"follow_topics_you_reply_to": "Watch topics that you reply to",
|
||||
"follow_topics_you_create": "Watch topics you create",
|
||||
"follow_topics_you_reply_to": "متابعة المواضيع التي تقوم بالرد فيها",
|
||||
"follow_topics_you_create": "متابعة المواضيع التي تنشئها",
|
||||
"grouptitle": "عنوان المجموعة",
|
||||
"no-group-title": "لا يوجد عنوان للمجموعة",
|
||||
"select-skin": "Select a Skin",
|
||||
@@ -114,17 +107,5 @@
|
||||
"custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")",
|
||||
"sso.title": "Single Sign-on Services",
|
||||
"sso.associated": "Associated with",
|
||||
"sso.not-associated": "Click here to associate with",
|
||||
"info.latest-flags": "Latest Flags",
|
||||
"info.no-flags": "No Flagged Posts Found",
|
||||
"info.ban-history": "Recent Ban History",
|
||||
"info.no-ban-history": "This user has never been banned",
|
||||
"info.banned-until": "Banned until %1",
|
||||
"info.banned-permanently": "Banned permanently",
|
||||
"info.banned-reason-label": "Reason",
|
||||
"info.banned-no-reason": "No reason given.",
|
||||
"info.username-history": "Username History",
|
||||
"info.email-history": "Email History",
|
||||
"info.moderation-note": "Moderation Note",
|
||||
"info.moderation-note.success": "Moderation note saved"
|
||||
"sso.not-associated": "Click here to associate with"
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
"latest_users": "أحدث الأعضاء",
|
||||
"top_posters": "اﻷكثر مشاركة",
|
||||
"most_reputation": "أعلى سمعة",
|
||||
"most_flags": "Most Flags",
|
||||
"search": "بحث",
|
||||
"enter_username": "أدخل اسم مستخدم للبحث",
|
||||
"load_more": "حمل المزيد",
|
||||
|
||||
@@ -10,11 +10,7 @@
|
||||
"share_this_category": "Споделяне на тази категория",
|
||||
"watch": "Следене",
|
||||
"ignore": "Игнориране",
|
||||
"watching": "Наблюдавате",
|
||||
"ignoring": "Пренебрегвате",
|
||||
"watching.description": "Темите ще се показват в непрочетените",
|
||||
"ignoring.description": "Темите няма да се показват в непрочетените",
|
||||
"watch.message": "Вече наблюдавате новите неща в тази категория и всички под-категории",
|
||||
"ignore.message": "Вече не следите новите неща в тази категория и всички под-категории",
|
||||
"watched-categories": "Наблюдавани категории"
|
||||
"watch.message": "Вече следите обновленията в тази категория",
|
||||
"ignore.message": "Вече не следите обновленията в тази категория",
|
||||
"watched-categories": "Следени категории"
|
||||
}
|
||||
@@ -20,7 +20,6 @@
|
||||
"email-taken": "Е-пощата е заета",
|
||||
"email-not-confirmed": "Вашата е-поща все още не е потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
||||
"email-not-confirmed-chat": "Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
||||
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение.",
|
||||
"no-email-to-confirm": "Този форум изисква потвърдена е-поща. Моля, натиснете тук, за да въведете е-поща",
|
||||
"email-confirm-failed": "Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
|
||||
"confirm-email-already-sent": "Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
|
||||
@@ -29,10 +28,8 @@
|
||||
"username-too-long": "Потребителското име е твърде дълго",
|
||||
"password-too-long": "Паролата е твърде дълга",
|
||||
"user-banned": "Потребителят е блокиран",
|
||||
"user-banned-reason": "Съжаляваме, на този акаунт е блокиран (Причина: %1)",
|
||||
"user-too-new": "Съжаляваме, но трябва да изчакате поне %1 секунда/и, преди да направите първата си публикация",
|
||||
"blacklisted-ip": "Съжаляваме, но Вашият IP адрес е забранен за ползване в тази общност. Ако смятате, че това е грешка, моля, свържете се с администратор.",
|
||||
"ban-expiry-missing": "Моля, задайте крайна дата за това блокиране",
|
||||
"no-category": "Категорията не съществува",
|
||||
"no-topic": "Темата не съществува",
|
||||
"no-post": "Публикацията не съществува",
|
||||
@@ -49,20 +46,10 @@
|
||||
"post-edit-duration-expired-hours-minutes": "Можете да редактирате публикациите си до %1 час(а) и %2 минута/и, след като ги пуснете",
|
||||
"post-edit-duration-expired-days": "Можете да редактирате публикациите си до %1 ден(а), след като ги пуснете",
|
||||
"post-edit-duration-expired-days-hours": "Можете да редактирате публикациите си до %1 ден(а) и %2 час(а), след като ги пуснете",
|
||||
"post-delete-duration-expired": "Можете да изтривате публикациите си до %1 секунда/и, след като ги пуснете",
|
||||
"post-delete-duration-expired-minutes": "Можете да изтривате публикациите си до %1 минута/и, след като ги пуснете",
|
||||
"post-delete-duration-expired-minutes-seconds": "Можете да изтривате публикациите си до %1 минута/и и %2 секунда/и, след като ги пуснете",
|
||||
"post-delete-duration-expired-hours": "Можете да изтривате публикациите си до %1 час(а), след като ги пуснете",
|
||||
"post-delete-duration-expired-hours-minutes": "Можете да изтривате публикациите си до %1 час(а) и %2 минута/и, след като ги пуснете",
|
||||
"post-delete-duration-expired-days": "Можете да изтривате публикациите си до %1 ден(а), след като ги пуснете",
|
||||
"post-delete-duration-expired-days-hours": "Можете да изтривате публикациите си до %1 ден(а) и %2 час(а), след като ги пуснете",
|
||||
"cant-delete-topic-has-reply": "Не можете да изтриете темата си, след като в нея вече има един отговор",
|
||||
"cant-delete-topic-has-replies": "Не можете да изтриете темата си, след като в нея вече има %1 отговора",
|
||||
"content-too-short": "Моля, въведете по-дълъг текст на публикацията. Публикациите трябва да съдържат поне %1 символ(а).",
|
||||
"content-too-long": "Моля, въведете по-кратък текст на публикацията. Публикациите трябва да съдържат не повече от %1 символ(а).",
|
||||
"title-too-short": "Моля, въведете по-дълго заглавие. Заглавията трябва да съдържат поне %1 символ(а).",
|
||||
"title-too-long": "Моля, въведете по-кратко заглавие. Заглавията трябва да съдържат не повече от %1 символ(а).",
|
||||
"category-not-selected": "Не е избрана категория.",
|
||||
"too-many-posts": "Можете да публикувате веднъж на %1 секунда/и – моля, изчакайте малко, преди да опитате да публикувате отново",
|
||||
"too-many-posts-newbie": "Като нов потребител, Вие можете да публикувате веднъж на %1 секунда/и, докато не натрупате %2 репутация – моля, изчакайте малко, преди да опитате да публикувате отново",
|
||||
"tag-too-short": "Моля, въведете по-дълъг етикет. Етикетите трябва да съдържат поне %1 символ(а)",
|
||||
@@ -72,8 +59,8 @@
|
||||
"still-uploading": "Моля, изчакайте качването да приключи.",
|
||||
"file-too-big": "Максималният разрешен размер на файл е %1 КБ – моля, качете по-малък файл",
|
||||
"guest-upload-disabled": "Качването не е разрешено за гости",
|
||||
"already-bookmarked": "Вече имате отметка към тази публикация",
|
||||
"already-unbookmarked": "Вече сте премахнали отметката си от тази публикация",
|
||||
"already-favourited": "Вече имате отметка към тази публикация",
|
||||
"already-unfavourited": "Вече сте премахнали отметката си към тази публикация",
|
||||
"cant-ban-other-admins": "Не можете да блокирате другите администратори!",
|
||||
"cant-remove-last-admin": "Вие сте единственият администратор. Добавете друг потребител като администратор, преди да премахнете себе си като администратор",
|
||||
"cant-delete-admin": "Премахнете администраторските права от този акаунт, преди да го изтриете.",
|
||||
@@ -81,7 +68,6 @@
|
||||
"invalid-image-extension": "Грешно разширение на изображението",
|
||||
"invalid-file-type": "Грешен тип на файл. Позволените типове са: %1",
|
||||
"group-name-too-short": "Името на групата е твърде кратко",
|
||||
"group-name-too-long": "Името на групата е твърде дълго",
|
||||
"group-already-exists": "Вече съществува такава група",
|
||||
"group-name-change-not-allowed": "Промяната на името на групата не е разрешено",
|
||||
"group-already-member": "Потребителят вече членува в тази група",
|
||||
@@ -103,7 +89,7 @@
|
||||
"chat-restricted": "Този потребител е ограничил съобщенията до себе си. Той трябва първо да Ви последва, преди да можете да си пишете с него.",
|
||||
"chat-disabled": "Системата за разговори е изключена",
|
||||
"too-many-messages": "Изпратили сте твърде много съобщения. Моля, изчакайте малко.",
|
||||
"invalid-chat-message": "Неправилно съобщение",
|
||||
"invalid-chat-message": "Невалидно съобщение",
|
||||
"chat-message-too-long": "Съобщението е твърде дълго",
|
||||
"cant-edit-chat-message": "Нямате право да редактирате това съобщение",
|
||||
"cant-remove-last-user": "Не можете да премахнете последния потребител",
|
||||
@@ -123,9 +109,5 @@
|
||||
"no-session-found": "Не е открита сесия за вход!",
|
||||
"not-in-room": "Потребителят не е в стаята",
|
||||
"no-users-in-room": "Няма потребители в тази стая",
|
||||
"cant-kick-self": "Не можете да изритате себе си от групата",
|
||||
"no-users-selected": "Няма избран(и) потребител(и)",
|
||||
"invalid-home-page-route": "Грешен път към началната страница",
|
||||
"invalid-session": "Несъответствие в сесията",
|
||||
"invalid-session-text": "Изглежда сесията Ви за вход вече е изтекла, или не съответства на сървъра. Моля, презаредете страницата."
|
||||
"cant-kick-self": "Не можете да изритате себе си от групата"
|
||||
}
|
||||
@@ -9,8 +9,6 @@
|
||||
"404.message": "Изглежда сте се опитали да посетите страница, която не съществува. Върнете се към <a href='%1/'>началната страница</a>.",
|
||||
"500.title": "Вътрешна грешка.",
|
||||
"500.message": "Опа! Изглежда нещо се обърка!",
|
||||
"400.title": "Грешна заявка.",
|
||||
"400.message": "Тази връзка изглежда повредена. Моля, проверете я и опитайте отново. В противен случай се върнете на <a href='%1/'>началната страница</a>.",
|
||||
"register": "Регистрация",
|
||||
"login": "Вход",
|
||||
"please_log_in": "Моля, влезте",
|
||||
@@ -19,7 +17,6 @@
|
||||
"welcome_back": "Добре дошли отново",
|
||||
"you_have_successfully_logged_in": "Вие влязохте успешно",
|
||||
"save_changes": "Запазване на промените",
|
||||
"save": "Запазване",
|
||||
"close": "Затваряне",
|
||||
"pagination": "Страници",
|
||||
"pagination.out_of": "%1 от %2",
|
||||
@@ -53,9 +50,7 @@
|
||||
"topics": "Теми",
|
||||
"posts": "Публ.",
|
||||
"best": "Най-добри",
|
||||
"upvoters": "Гласували положително",
|
||||
"upvoted": "С положителни гласове",
|
||||
"downvoters": "Гласували отрицателно",
|
||||
"downvoted": "С отрицателни гласове",
|
||||
"views": "Прегл.",
|
||||
"reputation": "Репутация",
|
||||
@@ -75,7 +70,6 @@
|
||||
"norecenttopics": "Няма скорошни теми",
|
||||
"recentposts": "Скорошни публикации",
|
||||
"recentips": "Наскоро ползвани IP адреси",
|
||||
"moderator_tools": "Модераторски инструменти",
|
||||
"away": "Отсъстващ",
|
||||
"dnd": "Отпочиващ",
|
||||
"invisible": "Невидим",
|
||||
@@ -96,11 +90,5 @@
|
||||
"enter_page_number": "Въведете номер на страница",
|
||||
"upload_file": "Качване на файл",
|
||||
"upload": "Качване",
|
||||
"allowed-file-types": "Разрешените файлови типове са: %1",
|
||||
"unsaved-changes": "Имате незапазени промени. Наистина ли искате да напуснете тази страница?",
|
||||
"reconnecting-message": "Изглежда връзката Ви към %1 беше прекъсната. Моля, изчакайте докато се опитаме да Ви свържем отново.",
|
||||
"play": "Пускане",
|
||||
"cookies.message": "Този уеб сайт използва бисквитки, за да предостави услугите си по възможно най-добрия начин.",
|
||||
"cookies.accept": "Разбрано!",
|
||||
"cookies.learn_more": "Научете повече"
|
||||
"allowed-file-types": "Разрешените файлови типове са: %1"
|
||||
}
|
||||
@@ -50,7 +50,5 @@
|
||||
"membership.leave-group": "Напускане на групата",
|
||||
"membership.reject": "Отхвърляне",
|
||||
"new-group.group_name": "Име на групата:",
|
||||
"upload-group-cover": "Качване на снимка за показване на групата",
|
||||
"bulk-invite-instructions": "Въведете списък от потребителски имена, разделени със запетаи",
|
||||
"bulk-invite": "Масова покана"
|
||||
"upload-group-cover": "Качване на снимка за показване на групата"
|
||||
}
|
||||
@@ -7,6 +7,5 @@
|
||||
"alternative_logins": "Други начини за влизане",
|
||||
"failed_login_attempt": "Влизането беше неуспешно",
|
||||
"login_successful": "Вие влязохте успешно!",
|
||||
"dont_have_account": "Нямате акаунт?",
|
||||
"logged-out-due-to-inactivity": "Вие излязохте автоматично от администраторския контролен панел, поради бездействие."
|
||||
"dont_have_account": "Нямате акаунт?"
|
||||
}
|
||||
@@ -17,14 +17,15 @@
|
||||
"chat.seven_days": "7 дни",
|
||||
"chat.thirty_days": "30 дни",
|
||||
"chat.three_months": "3 месеца",
|
||||
"chat.delete_message_confirm": "Наистина ли искате да изтриете това съобщение?",
|
||||
"chat.delete_message_confirm": "Сигурен/а ли сте, че искате да изтриете това съобщение?",
|
||||
"chat.roomname": "Стая за разговори %1",
|
||||
"chat.add-users-to-room": "Добавяне на потребители към стаята",
|
||||
"composer.compose": "Писане",
|
||||
"composer.show_preview": "Показване на прегледа",
|
||||
"composer.hide_preview": "Скриване на прегледа",
|
||||
"composer.user_said_in": "%1 каза в %2:",
|
||||
"composer.user_said": "%1 каза:",
|
||||
"composer.discard": "Наистина ли искате да отхвърлите тази публикация?",
|
||||
"composer.discard": "Сигурен/а ли сте, че искате да отхвърлите тази публикация?",
|
||||
"composer.submit_and_lock": "Публикуване и заключване",
|
||||
"composer.toggle_dropdown": "Превключване на падащото меню",
|
||||
"composer.uploading": "Качване на %1",
|
||||
@@ -36,8 +37,6 @@
|
||||
"composer.formatting.picture": "Снимка",
|
||||
"composer.upload-picture": "Качване на изображение",
|
||||
"composer.upload-file": "Качване на файл",
|
||||
"composer.zen_mode": "Режим Дзен",
|
||||
"composer.select_category": "Изберете категория",
|
||||
"bootbox.ok": "Добре",
|
||||
"bootbox.cancel": "Отказ",
|
||||
"bootbox.confirm": "Потвърждаване",
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
"upvoted_your_post_in_multiple": "<strong>%1</strong> и %2 други гласуваха положително за Ваша публикация в <strong>%3</strong>.",
|
||||
"moved_your_post": "<strong>%1</strong> премести публикацията Ви в <strong>%2</strong>",
|
||||
"moved_your_topic": "<strong>%1</strong> премести <strong>%2</strong>",
|
||||
"favourited_your_post_in": "<strong>%1</strong> си запази отметка към Ваша публикация в <strong>%2</strong>.",
|
||||
"favourited_your_post_in_dual": "<strong>%1</strong> и <strong>%2</strong> си запазиха отметки към Ваша публикация в <strong>%3</strong>.",
|
||||
"favourited_your_post_in_multiple": "<strong>%1</strong> и %2 други си запазиха отметки към Ваша публикация в <strong>%3</strong>.",
|
||||
"user_flagged_post_in": "<strong>%1</strong> докладва Ваша публикация в <strong>%2</strong>",
|
||||
"user_flagged_post_in_dual": "<strong>%1</strong> и <strong>%2</strong> докладваха Ваша публикация в <strong>%3</strong>",
|
||||
"user_flagged_post_in_multiple": "<strong>%1</strong> и %2 други докладваха Ваша публикация в <strong>%3</strong>",
|
||||
|
||||
@@ -7,19 +7,16 @@
|
||||
"popular-alltime": "Популярните теми за всички времена",
|
||||
"recent": "Скорошни теми",
|
||||
"flagged-posts": "Докладвани публикации",
|
||||
"ip-blacklist": "Черен списък за IP адреси",
|
||||
"users/online": "Потребители на линия",
|
||||
"users/latest": "Последни потребители",
|
||||
"users/sort-posts": "Потребители с най-много публикации",
|
||||
"users/sort-reputation": "Потребители с най-висока репутация",
|
||||
"users/banned": "Блокирани потребители",
|
||||
"users/most-flags": "Най-докладвани потребители",
|
||||
"users/search": "Търсене на потребители",
|
||||
"notifications": "Известия",
|
||||
"tags": "Етикети",
|
||||
"tag": "Теми, отбелязани като „%1“",
|
||||
"register": "Регистрирайте акаунт",
|
||||
"registration-complete": "Регистрацията е завършена",
|
||||
"login": "Влезте в акаунта си",
|
||||
"reset": "Подновете паролата за акаунта си",
|
||||
"categories": "Категории",
|
||||
@@ -31,15 +28,14 @@
|
||||
"account/edit/password": "Редактиране на паролата на „%1“",
|
||||
"account/edit/username": "Редактиране на потребителското име на „%1“",
|
||||
"account/edit/email": "Редактиране на е-пощата на „%1“",
|
||||
"account/info": "Информация за акаунта",
|
||||
"account/following": "Хора, които %1 следва",
|
||||
"account/followers": "Хора, които следват %1",
|
||||
"account/posts": "Публикации от %1",
|
||||
"account/topics": "Теми, създадени от %1",
|
||||
"account/groups": "Групите на %1",
|
||||
"account/bookmarks": "Отметнатите публикации на %1",
|
||||
"account/favourites": "Отметнатите публикации на %1",
|
||||
"account/settings": "Потребителски настройки",
|
||||
"account/watched": "Теми, наблюдавани от %1",
|
||||
"account/watched": "Теми, следени от %1",
|
||||
"account/upvoted": "Публикации, получили положителен глас от %1",
|
||||
"account/downvoted": "Публикации, получили отрицателен глас от %1",
|
||||
"account/best": "Най-добрите публикации от %1",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"register": "Регистрация",
|
||||
"cancel_registration": "Отказване на регистрацията",
|
||||
"help.email": "По подразбиране, Вашата е-поща ще бъде скрита за останалите.",
|
||||
"help.username_restrictions": "Уникално потребителско име с дължина между %1 и %2 символа. Другите ще могат да Ви споменават чрез @<span id='yourUsername'>потребител</span>.",
|
||||
"help.minimum_password_length": "Дължината на паролата Ви трябва да е поне %1 символа.",
|
||||
@@ -16,8 +15,5 @@
|
||||
"alternative_registration": "Друг начин за регистриране",
|
||||
"terms_of_use": "Условия за ползване",
|
||||
"agree_to_terms_of_use": "Съгласен съм с условията за ползване",
|
||||
"terms_of_use_error": "Трябва да се съгласите с условията за ползване",
|
||||
"registration-added-to-queue": "Вашата регистрация беше добавена в опашката за одобрение. Ще получите е-писмо, когато тя бъде одобрена от администратор.",
|
||||
"interstitial.intro": "Нуждаем се от малко допълнителна информация, преди да можем да създадем акаунта Ви.",
|
||||
"interstitial.errors-found": "Не можем да завършим Вашата регистрация:"
|
||||
"registration-added-to-queue": "Вашата регистрация беше добавена в опашката за одобрение. Ще получите е-писмо, когато тя бъде одобрена от администратор."
|
||||
}
|
||||
@@ -13,7 +13,6 @@
|
||||
"notify_me": "Получавайте известия за новите отговори в тази тема",
|
||||
"quote": "Цитат",
|
||||
"reply": "Отговор",
|
||||
"replies_to_this_post": "Отговори: %1",
|
||||
"reply-as-topic": "Отговор в нова тема",
|
||||
"guest-login-reply": "Влезте, за да отговорите",
|
||||
"edit": "Редактиране",
|
||||
@@ -27,29 +26,12 @@
|
||||
"tools": "Инструменти",
|
||||
"flag": "Докладване",
|
||||
"locked": "Заключена",
|
||||
"pinned": "Закачена",
|
||||
"moved": "Преместена",
|
||||
"bookmark_instructions": "Щракнете тук, за да се върнете към последно прочетената публикация в тази тема.",
|
||||
"flag_title": "Докладване на тази публикация до модератор",
|
||||
"flag_success": "Тази публикация е била докладвана до модератор.",
|
||||
"flag_manage_title": "Докладвана публикация в %1",
|
||||
"flag_manage_history": "История на дейността",
|
||||
"flag_manage_no_history": "Няма история на събитията",
|
||||
"flag_manage_assignee": "Назначен",
|
||||
"flag_manage_state": "Състояние",
|
||||
"flag_manage_state_open": "Нов/отворен",
|
||||
"flag_manage_state_wip": "В процес на работа",
|
||||
"flag_manage_state_resolved": "Разрешен",
|
||||
"flag_manage_state_rejected": "Отхвърлен",
|
||||
"flag_manage_notes": "Споделени бележки",
|
||||
"flag_manage_update": "Обновяване на състоянието на доклада",
|
||||
"flag_manage_history_assignee": "Разпределен на %1",
|
||||
"flag_manage_history_state": "Състоянието е променено на „%1“",
|
||||
"flag_manage_history_notes": "Бележките към доклада са обновени",
|
||||
"flag_manage_saved": "Подробностите за доклада са обновени",
|
||||
"deleted_message": "Тази тема е била изтрита. Само потребители с права за управление на темите могат да я видят.",
|
||||
"following_topic.message": "Вече ще получавате известия когато някой публикува коментар в тази тема.",
|
||||
"not_following_topic.message": "Ще виждате тази тема в списъка с непрочетени теми, но няма да получавате известия, когато хората публикуват нещо в нея.",
|
||||
"not_following_topic.message": "Вече няма да получавате известия за тази тема.",
|
||||
"ignoring_topic.message": "Вече няма да виждате тази тема в списъка с непрочетени теми. Ще получите известие, когато някой Ви спомене или гласува положително за Ваша публикация.",
|
||||
"login_to_subscribe": "Моля, регистрирайте се или влезте, за да се абонирате за тази тема.",
|
||||
"markAsUnreadForAll.success": "Темата е отбелязана като непрочетена за всички.",
|
||||
@@ -67,7 +49,7 @@
|
||||
"not-watching.description": "Няма да получавате известия за новите отговори.<br/>Темата ще се показва в списъка с непрочетени, само ако категорията не се пренебрегва.",
|
||||
"ignoring.description": "Няма да получавате известия за новите отговори.<br/>Темата няма да се показва в списъка с непрочетени.",
|
||||
"thread_tools.title": "Инструменти за темата",
|
||||
"thread_tools.markAsUnreadForAll": "Отбелязване като непрочетена за всички",
|
||||
"thread_tools.markAsUnreadForAll": "Отбелязване като непрочетена",
|
||||
"thread_tools.pin": "Закачане на темата",
|
||||
"thread_tools.unpin": "Откачане на темата",
|
||||
"thread_tools.lock": "Заключване на темата",
|
||||
@@ -77,22 +59,22 @@
|
||||
"thread_tools.fork": "Разделяне на темата",
|
||||
"thread_tools.delete": "Изтриване на темата",
|
||||
"thread_tools.delete-posts": "Изтриване на публикациите",
|
||||
"thread_tools.delete_confirm": "Наистина ли искате да изтриете тази тема?",
|
||||
"thread_tools.delete_confirm": "Сигурен/а ли сте, че искате да изтриете тази тема?",
|
||||
"thread_tools.restore": "Възстановяване на темата",
|
||||
"thread_tools.restore_confirm": "Наистина ли искате да възстановите тази тема?",
|
||||
"thread_tools.restore_confirm": "Сигурен/а ли сте, че искате да възстановите тази тема?",
|
||||
"thread_tools.purge": "Изчистване на темата",
|
||||
"thread_tools.purge_confirm": "Наистина ли искате да изчистите тази тема?",
|
||||
"thread_tools.purge_confirm": "Сигурен/а ли сте, че искате да изчистите тази тема?",
|
||||
"topic_move_success": "Темата беше преместена успешно в %1",
|
||||
"post_delete_confirm": "Наистина ли искате да изтриете тази публикация?",
|
||||
"post_restore_confirm": "Наистина ли искате да възстановите тази публикация?",
|
||||
"post_purge_confirm": "Наистина ли искате да изчистите тази публикация?",
|
||||
"post_delete_confirm": "Сигурен/а ли сте, че искате да изтриете тази публикация?",
|
||||
"post_restore_confirm": "Сигурен/а ли сте, че искате да възстановите тази публикация?",
|
||||
"post_purge_confirm": "Сигурен/а ли сте, че искате да изчистите тази публикация?",
|
||||
"load_categories": "Зареждане на категориите",
|
||||
"disabled_categories_note": "Изключените категории са засивени",
|
||||
"confirm_move": "Преместване",
|
||||
"confirm_fork": "Разделяне",
|
||||
"bookmark": "Отметка",
|
||||
"bookmarks": "Отметки",
|
||||
"bookmarks.has_no_bookmarks": "Все още не сте си запазвали отметки към никакви публикации.",
|
||||
"favourite": "Отметка",
|
||||
"favourites": "Отметки",
|
||||
"favourites.has_no_favourites": "Все още не сте си запазвали отметки към никакви публикации.",
|
||||
"loading_more_posts": "Зареждане на още публикации",
|
||||
"move_topic": "Преместване на темата",
|
||||
"move_topics": "Преместване на темите",
|
||||
@@ -102,7 +84,6 @@
|
||||
"topic_will_be_moved_to": "Тази тема ще бъде преместена в категорията",
|
||||
"fork_topic_instruction": "Натиснете публикациите, които искате да отделите",
|
||||
"fork_no_pids": "Няма избрани публикации!",
|
||||
"fork_pid_count": "Избрани публикации: %1",
|
||||
"fork_success": "Темата е разделена успешно! Натиснете тук, за да преминете към отделената тема.",
|
||||
"delete_posts_instruction": "Натиснете публикациите, които искате да изтриете/изчистите",
|
||||
"composer.title_placeholder": "Въведете заглавието на темата си тук...",
|
||||
|
||||
@@ -6,13 +6,12 @@
|
||||
"postcount": "Брой публикации",
|
||||
"email": "Е-поща",
|
||||
"confirm_email": "Потвърдете е-пощата",
|
||||
"account_info": "Информация за акаунта",
|
||||
"ban_account": "Блокиране на акаунта",
|
||||
"ban_account_confirm": "Наистина ли искате да блокирате този потребител?",
|
||||
"unban_account": "Отблокиране на акаунта",
|
||||
"delete_account": "Изтриване на акаунта",
|
||||
"delete_account_confirm": "Наистина ли искате да изтриете акаунта си? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните си</strong><br /><br />Въведете потребителското си име, за да потвърдите, че искате да унищожите този акаунт.",
|
||||
"delete_this_account_confirm": "Наистина ли искате да изтриете този акаунт? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните</strong><br /><br />",
|
||||
"delete_account_confirm": "Сигурен/а ли сте, че искате да изтриете акаунта си? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните си</strong><br /><br />Въведете потребителското си име, за да потвърдите, че искате да унищожите този акаунт.",
|
||||
"delete_this_account_confirm": "Сигурен/а ли сте, че искате да изтриете този акаунт? <br /><strong>Това действие е необратимо и няма да можете да възстановите нищо от данните</strong><br /><br />",
|
||||
"account-deleted": "Акаунтът е изтрит",
|
||||
"fullname": "Цяло име",
|
||||
"website": "Уеб сайт",
|
||||
@@ -23,7 +22,7 @@
|
||||
"profile": "Профил",
|
||||
"profile_views": "Преглеждания на профила",
|
||||
"reputation": "Репутация",
|
||||
"bookmarks": "Отметки",
|
||||
"favourites": "Отметки",
|
||||
"watched": "Наблюдавани",
|
||||
"followers": "Последователи",
|
||||
"following": "Следва",
|
||||
@@ -31,8 +30,7 @@
|
||||
"signature": "Подпис",
|
||||
"birthday": "Рождена дата",
|
||||
"chat": "Разговор",
|
||||
"chat_with": "Продължаване на разговора с %1",
|
||||
"new_chat_with": "Започване на нов разговор с %1",
|
||||
"chat_with": "Разговор с %1",
|
||||
"follow": "Следване",
|
||||
"unfollow": "Спиране на следването",
|
||||
"more": "Още",
|
||||
@@ -80,7 +78,7 @@
|
||||
"follows_no_one": "Този потребител не следва никого :(",
|
||||
"has_no_posts": "Този потребител не е публикувал нищо досега.",
|
||||
"has_no_topics": "Този потребител не е създавал теми досега.",
|
||||
"has_no_watched_topics": "Този потребител не е наблюдавал нито една тема досега.",
|
||||
"has_no_watched_topics": "Този потребител не е следил нито една тема досега.",
|
||||
"has_no_upvoted_posts": "Този потребител не е гласувал положително досега.",
|
||||
"has_no_downvoted_posts": "Този потребител не е гласувал отрицателно досега.",
|
||||
"has_no_voted_posts": "Този потребител не е гласувал досега.",
|
||||
@@ -90,11 +88,6 @@
|
||||
"topics_per_page": "Теми на страница",
|
||||
"posts_per_page": "Публикации на страница",
|
||||
"notification_sounds": "Изпълняване на звук, когато получите известие",
|
||||
"notifications_and_sounds": "Известия и звуци",
|
||||
"incoming-message-sound": "Звук за входящо съобщение",
|
||||
"outgoing-message-sound": "Звук за изходящо съобщение",
|
||||
"notification-sound": "Звук за известие",
|
||||
"no-sound": "Без звук",
|
||||
"browsing": "Настройки за страниците",
|
||||
"open_links_in_new_tab": "Отваряне на външните връзки в нов подпрозорец",
|
||||
"enable_topic_searching": "Включване на търсенето в темите",
|
||||
@@ -102,8 +95,8 @@
|
||||
"delay_image_loading": "Отлагане на зареждането на изображения",
|
||||
"image_load_delay_help": "Ако е включено, изображенията в темите няма да бъдат зареждани, докато не превъртите страницата до тях",
|
||||
"scroll_to_my_post": "След публикуване на отговор, да се показва новата публикация",
|
||||
"follow_topics_you_reply_to": "Наблюдаване на темите, в които отговаряте",
|
||||
"follow_topics_you_create": "Наблюдаване на темите, които създавате",
|
||||
"follow_topics_you_reply_to": "Следване на темите, на които отговаряте",
|
||||
"follow_topics_you_create": "Следване на темите, които създавате",
|
||||
"grouptitle": "Заглавие на групата",
|
||||
"no-group-title": "Няма заглавие на група",
|
||||
"select-skin": "Изберете облик",
|
||||
@@ -114,17 +107,5 @@
|
||||
"custom_route_help": "Въведете името на пътя тук, без наклонена черта пред него (пример: „recent“ или „popular“)",
|
||||
"sso.title": "Услуги за еднократно вписване",
|
||||
"sso.associated": "Свързан с",
|
||||
"sso.not-associated": "Натиснете тук, за да свържете с",
|
||||
"info.latest-flags": "Последни доклади",
|
||||
"info.no-flags": "Не са открити докладвани публикации",
|
||||
"info.ban-history": "Скорошна история на блокиранията",
|
||||
"info.no-ban-history": "Този потребител никога не е бил блокиран",
|
||||
"info.banned-until": "Блокиран до %1",
|
||||
"info.banned-permanently": "Блокиран за постоянно",
|
||||
"info.banned-reason-label": "Причина",
|
||||
"info.banned-no-reason": "Няма посочена причина.",
|
||||
"info.username-history": "История на потребителските имена",
|
||||
"info.email-history": "Историята на е-пощите",
|
||||
"info.moderation-note": "Модераторска бележка",
|
||||
"info.moderation-note.success": "Модераторската бележка е запазена"
|
||||
"sso.not-associated": "Натиснете тук, за да свържете с"
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
"latest_users": "Последни потребители",
|
||||
"top_posters": "С най-много публикации",
|
||||
"most_reputation": "С най-много репутация",
|
||||
"most_flags": "С най-много доклади",
|
||||
"search": "Търсене",
|
||||
"enter_username": "Въведете потребителско име, което да потърсите",
|
||||
"load_more": "Зареждане на още",
|
||||
|
||||
@@ -10,11 +10,7 @@
|
||||
"share_this_category": "এই বিভাগটি অন্যের সাথে ভাগাভাগি করুন",
|
||||
"watch": "নজর রাখুন",
|
||||
"ignore": "উপেক্ষা করুন",
|
||||
"watching": "Watching",
|
||||
"ignoring": "Ignoring",
|
||||
"watching.description": "Show topics in unread",
|
||||
"ignoring.description": "Do not show topics in unread",
|
||||
"watch.message": "You are now watching updates from this category and all subcategories",
|
||||
"ignore.message": "You are now ignoring updates from this category and all subcategories",
|
||||
"watch.message": "আপনি এই বিভাগটিতে নজর রাখছেন",
|
||||
"ignore.message": "আপনি এই বিভাগটির উপেক্ষা করছেন ",
|
||||
"watched-categories": "প্রেক্ষিত বিভাগসমূহ"
|
||||
}
|
||||
@@ -20,7 +20,6 @@
|
||||
"email-taken": "ইমেইল আগেই ব্যবহৃত",
|
||||
"email-not-confirmed": "আপনার ইমেইল এড্রেস নিশ্চিত করা হয় নি, নিশ্চিত করতে এখানে ক্লিক করুন।",
|
||||
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
|
||||
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email.",
|
||||
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
|
||||
"email-confirm-failed": "We could not confirm your email, please try again later.",
|
||||
"confirm-email-already-sent": "Confirmation email already sent, please wait %1 minute(s) to send another one.",
|
||||
@@ -29,10 +28,8 @@
|
||||
"username-too-long": "ইউজারনেম বড় হয়ে গিয়েছে",
|
||||
"password-too-long": "Password too long",
|
||||
"user-banned": "ব্যবহারকারী নিষিদ্ধ",
|
||||
"user-banned-reason": "Sorry, this account has been banned (Reason: %1)",
|
||||
"user-too-new": "Sorry, you are required to wait %1 second(s) before making your first post",
|
||||
"blacklisted-ip": "Sorry, your IP address has been banned from this community. If you feel this is in error, please contact an administrator.",
|
||||
"ban-expiry-missing": "Please provide an end date for this ban",
|
||||
"no-category": "বিভাগটি খুজে পাওয়া যায় নি",
|
||||
"no-topic": "এই টপিক নেই",
|
||||
"no-post": "এই পোষ্ট নেই",
|
||||
@@ -49,20 +46,10 @@
|
||||
"post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting",
|
||||
"post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting",
|
||||
"post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting",
|
||||
"post-delete-duration-expired": "You are only allowed to delete posts for %1 second(s) after posting",
|
||||
"post-delete-duration-expired-minutes": "You are only allowed to delete posts for %1 minute(s) after posting",
|
||||
"post-delete-duration-expired-minutes-seconds": "You are only allowed to delete posts for %1 minute(s) %2 second(s) after posting",
|
||||
"post-delete-duration-expired-hours": "You are only allowed to delete posts for %1 hour(s) after posting",
|
||||
"post-delete-duration-expired-hours-minutes": "You are only allowed to delete posts for %1 hour(s) %2 minute(s) after posting",
|
||||
"post-delete-duration-expired-days": "You are only allowed to delete posts for %1 day(s) after posting",
|
||||
"post-delete-duration-expired-days-hours": "You are only allowed to delete posts for %1 day(s) %2 hour(s) after posting",
|
||||
"cant-delete-topic-has-reply": "You can't delete your topic after it has a reply",
|
||||
"cant-delete-topic-has-replies": "You can't delete your topic after it has %1 replies",
|
||||
"content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).",
|
||||
"content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).",
|
||||
"title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).",
|
||||
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 character(s).",
|
||||
"category-not-selected": "Category not selected.",
|
||||
"too-many-posts": "You can only post once every %1 second(s) - please wait before posting again",
|
||||
"too-many-posts-newbie": "As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
|
||||
"tag-too-short": "Please enter a longer tag. Tags should contain at least %1 character(s)",
|
||||
@@ -72,8 +59,8 @@
|
||||
"still-uploading": "আপলোড সম্পূর্ণ জন্য অনুগ্রহ করে অপেক্ষা করুন",
|
||||
"file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file",
|
||||
"guest-upload-disabled": "Guest uploading has been disabled",
|
||||
"already-bookmarked": "You have already bookmarked this post",
|
||||
"already-unbookmarked": "You have already unbookmarked this post",
|
||||
"already-favourited": "You have already bookmarked this post",
|
||||
"already-unfavourited": "You have already unbookmarked this post",
|
||||
"cant-ban-other-admins": "আপনি অন্য এ্যাডমিনদের নিষিদ্ধ করতে পারেন না!",
|
||||
"cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin",
|
||||
"cant-delete-admin": "Remove administrator privileges from this account before attempting to delete it.",
|
||||
@@ -81,7 +68,6 @@
|
||||
"invalid-image-extension": "Invalid image extension",
|
||||
"invalid-file-type": "Invalid file type. Allowed types are: %1",
|
||||
"group-name-too-short": "গ্রুপের নাম খুব ছোট",
|
||||
"group-name-too-long": "Group name too long",
|
||||
"group-already-exists": "গ্রুপ ইতিমধ্যেই বিদ্যমান",
|
||||
"group-name-change-not-allowed": "গ্রুপের নাম পরিবর্তনের অনুমতি নেই",
|
||||
"group-already-member": "Already part of this group",
|
||||
@@ -123,9 +109,5 @@
|
||||
"no-session-found": "No login session found!",
|
||||
"not-in-room": "User not in room",
|
||||
"no-users-in-room": "No users in this room",
|
||||
"cant-kick-self": "You can't kick yourself from the group",
|
||||
"no-users-selected": "No user(s) selected",
|
||||
"invalid-home-page-route": "Invalid home page route",
|
||||
"invalid-session": "Session Mismatch",
|
||||
"invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page."
|
||||
"cant-kick-self": "You can't kick yourself from the group"
|
||||
}
|
||||
@@ -7,10 +7,8 @@
|
||||
"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": "Internal Error.",
|
||||
"500.title": "অভ্যন্তরীণ ত্রুটি।",
|
||||
"500.message": "ওহো! কিছু ভুল হয়েছে মনে হচ্ছে!",
|
||||
"400.title": "Bad Request.",
|
||||
"400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
|
||||
"register": "নিবন্ধন",
|
||||
"login": "প্রবেশ",
|
||||
"please_log_in": "অনুগ্রহ করে প্রবেশ করুন",
|
||||
@@ -19,7 +17,6 @@
|
||||
"welcome_back": "আপনাকে স্বাগতম",
|
||||
"you_have_successfully_logged_in": "আপনি সফলভাবে প্রবেশ করেছেন",
|
||||
"save_changes": "পরিবর্তনগুলি সঞ্চয় করুন",
|
||||
"save": "Save",
|
||||
"close": "বন্ধ",
|
||||
"pagination": "পাতা নং",
|
||||
"pagination.out_of": "%2 এর মাঝে %1",
|
||||
@@ -53,9 +50,7 @@
|
||||
"topics": "টপিক",
|
||||
"posts": "পোস্টগুলি",
|
||||
"best": "Best",
|
||||
"upvoters": "Upvoters",
|
||||
"upvoted": "Upvoted",
|
||||
"downvoters": "Downvoters",
|
||||
"downvoted": "Downvoted",
|
||||
"views": "দেখেছেন",
|
||||
"reputation": "সন্মাননা",
|
||||
@@ -75,7 +70,6 @@
|
||||
"norecenttopics": "কোনও সাম্প্রতিক টপিক নেই",
|
||||
"recentposts": "সাম্প্রতিক পোস্ট",
|
||||
"recentips": "সাম্প্রতিক প্রবেশকৃত আইপি সমুহ",
|
||||
"moderator_tools": "Moderator Tools",
|
||||
"away": "দূরে",
|
||||
"dnd": "Do not disturb",
|
||||
"invisible": "অদৃশ্য",
|
||||
@@ -96,11 +90,5 @@
|
||||
"enter_page_number": "Enter page number",
|
||||
"upload_file": "Upload file",
|
||||
"upload": "Upload",
|
||||
"allowed-file-types": "Allowed file types are %1",
|
||||
"unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?",
|
||||
"reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect.",
|
||||
"play": "Play",
|
||||
"cookies.message": "This website uses cookies to ensure you get the best experience on our website.",
|
||||
"cookies.accept": "Got it!",
|
||||
"cookies.learn_more": "Learn More"
|
||||
"allowed-file-types": "Allowed file types are %1"
|
||||
}
|
||||
@@ -50,7 +50,5 @@
|
||||
"membership.leave-group": "Leave Group",
|
||||
"membership.reject": "Reject",
|
||||
"new-group.group_name": "Group Name:",
|
||||
"upload-group-cover": "Upload group cover",
|
||||
"bulk-invite-instructions": "Enter a list of comma separated usernames to invite to this group",
|
||||
"bulk-invite": "Bulk Invite"
|
||||
"upload-group-cover": "Upload group cover"
|
||||
}
|
||||
@@ -7,6 +7,5 @@
|
||||
"alternative_logins": "বিকল্প প্রবেশ",
|
||||
"failed_login_attempt": "Login Unsuccessful",
|
||||
"login_successful": "আপনি সফলভাবে প্রবেশ করেছেন!",
|
||||
"dont_have_account": "কোন একাউন্ট নেই?",
|
||||
"logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity"
|
||||
"dont_have_account": "কোন একাউন্ট নেই?"
|
||||
}
|
||||
@@ -18,6 +18,7 @@
|
||||
"chat.thirty_days": "৩০ দিন",
|
||||
"chat.three_months": "৩ মাস",
|
||||
"chat.delete_message_confirm": "Are you sure you wish to delete this message?",
|
||||
"chat.roomname": "Chat Room %1",
|
||||
"chat.add-users-to-room": "Add users to room",
|
||||
"composer.compose": "Compose",
|
||||
"composer.show_preview": "Show Preview",
|
||||
@@ -36,8 +37,6 @@
|
||||
"composer.formatting.picture": "Picture",
|
||||
"composer.upload-picture": "Upload Image",
|
||||
"composer.upload-file": "Upload File",
|
||||
"composer.zen_mode": "Zen Mode",
|
||||
"composer.select_category": "Select a category",
|
||||
"bootbox.ok": "OK",
|
||||
"bootbox.cancel": "Cancel",
|
||||
"bootbox.confirm": "Confirm",
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
"upvoted_your_post_in_multiple": "<strong>%1</strong> and %2 others have upvoted your post in <strong>%3</strong>.",
|
||||
"moved_your_post": "<strong>%1</strong> has moved your post to <strong>%2</strong>",
|
||||
"moved_your_topic": "<strong>%1</strong> has moved <strong>%2</strong>",
|
||||
"favourited_your_post_in": "<strong>%1</strong> has bookmarked your post in <strong>%2</strong>.",
|
||||
"favourited_your_post_in_dual": "<strong>%1</strong> and <strong>%2</strong> have bookmarked your post in <strong>%3</strong>.",
|
||||
"favourited_your_post_in_multiple": "<strong>%1</strong> and %2 others have bookmarked your post in <strong>%3</strong>.",
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_flagged_post_in_dual": "<strong>%1</strong> and <strong>%2</strong> flagged a post in <strong>%3</strong>",
|
||||
"user_flagged_post_in_multiple": "<strong>%1</strong> and %2 others flagged a post in <strong>%3</strong>",
|
||||
|
||||
@@ -7,19 +7,16 @@
|
||||
"popular-alltime": "All time popular topics",
|
||||
"recent": "সাম্প্রতিক টপিক",
|
||||
"flagged-posts": "Flagged Posts",
|
||||
"ip-blacklist": "IP Blacklist",
|
||||
"users/online": "Online Users",
|
||||
"users/latest": "Latest Users",
|
||||
"users/sort-posts": "Users with the most posts",
|
||||
"users/sort-reputation": "Users with the most reputation",
|
||||
"users/banned": "Banned Users",
|
||||
"users/most-flags": "Most flagged users",
|
||||
"users/search": "User Search",
|
||||
"notifications": "বিজ্ঞপ্তি",
|
||||
"tags": "ট্যাগসমূহ",
|
||||
"tag": "Topics tagged under \"%1\"",
|
||||
"register": "Register an account",
|
||||
"registration-complete": "Registration complete",
|
||||
"login": "Login to your account",
|
||||
"reset": "Reset your account password",
|
||||
"categories": "বিভাগ",
|
||||
@@ -31,13 +28,12 @@
|
||||
"account/edit/password": "Editing password of \"%1\"",
|
||||
"account/edit/username": "Editing username of \"%1\"",
|
||||
"account/edit/email": "Editing email of \"%1\"",
|
||||
"account/info": "Account Info",
|
||||
"account/following": "People %1 follows",
|
||||
"account/followers": "People who follow %1",
|
||||
"account/posts": "Posts made by %1",
|
||||
"account/topics": "Topics created by %1",
|
||||
"account/groups": "%1's Groups",
|
||||
"account/bookmarks": "%1's Bookmarked Posts",
|
||||
"account/favourites": "%1's Bookmarked Posts",
|
||||
"account/settings": "User Settings",
|
||||
"account/watched": "Topics watched by %1",
|
||||
"account/upvoted": "Posts upvoted by %1",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"register": "নিবন্ধন",
|
||||
"cancel_registration": "Cancel Registration",
|
||||
"help.email": "ডিফল্টভাবে, আপনার ইমেইল সর্বসাধারণ থেকে লুকানো থাকবে।",
|
||||
"help.username_restrictions": "%1 এবং %2 অক্ষরের মাঝে একটি অনন্য সদস্য নাম। বাকিরা আপনাকে @<span id='yourUsername'>নাম</span> দিয়ে উল্লেখ করতে পারবেন।",
|
||||
"help.minimum_password_length": "আপনার পাসওয়ার্ড এর দৈর্ঘ্য অন্তত %1 অক্ষরের হতে হবে।",
|
||||
@@ -16,8 +15,5 @@
|
||||
"alternative_registration": "বিকল্প নিবন্ধন",
|
||||
"terms_of_use": "নিয়মাবলী",
|
||||
"agree_to_terms_of_use": "আমি নিয়মাবলী মেনে চলতে সম্মতি জানালাম",
|
||||
"terms_of_use_error": "You must agree to the Terms of Use",
|
||||
"registration-added-to-queue": "আপনার নিবন্ধনটি এ্যাপ্লুভাল তালিকায় যুক্ত হয়েছে। একজন এডমিনিস্ট্রেটর কর্তৃক নিবন্ধন গৃহীত হলে আপনি একটি মেইল পাবেন। ",
|
||||
"interstitial.intro": "We require some additional information before we can create your account.",
|
||||
"interstitial.errors-found": "We could not complete your registration:"
|
||||
"registration-added-to-queue": "আপনার নিবন্ধনটি এ্যাপ্লুভাল তালিকায় যুক্ত হয়েছে। একজন এডমিনিস্ট্রেটর কর্তৃক নিবন্ধন গৃহীত হলে আপনি একটি মেইল পাবেন। "
|
||||
}
|
||||
@@ -13,7 +13,6 @@
|
||||
"notify_me": "এই টপিকে নতুন উত্তর আসলে জানুন",
|
||||
"quote": "উদ্ধৃতি",
|
||||
"reply": "উত্তর",
|
||||
"replies_to_this_post": "Replies: %1",
|
||||
"reply-as-topic": "Reply as topic",
|
||||
"guest-login-reply": "Log in to reply",
|
||||
"edit": "সম্পাদণা",
|
||||
@@ -27,29 +26,12 @@
|
||||
"tools": "টুলস",
|
||||
"flag": "ফ্ল্যাগ",
|
||||
"locked": "বন্ধ",
|
||||
"pinned": "Pinned",
|
||||
"moved": "Moved",
|
||||
"bookmark_instructions": "Click here to return to the last read post in this thread.",
|
||||
"flag_title": "মডারেশনের জন্য এই পোস্টটি ফ্ল্যাগ করুন",
|
||||
"flag_success": "এই পোস্টটি মডারেশনের জন্য ফ্ল্যাগ করা হয়েছে।",
|
||||
"flag_manage_title": "Flagged post in %1",
|
||||
"flag_manage_history": "Action History",
|
||||
"flag_manage_no_history": "No event history to report",
|
||||
"flag_manage_assignee": "Assignee",
|
||||
"flag_manage_state": "State",
|
||||
"flag_manage_state_open": "New/Open",
|
||||
"flag_manage_state_wip": "Work in Progress",
|
||||
"flag_manage_state_resolved": "Resolved",
|
||||
"flag_manage_state_rejected": "Rejected",
|
||||
"flag_manage_notes": "Shared Notes",
|
||||
"flag_manage_update": "Update Flag Status",
|
||||
"flag_manage_history_assignee": "Assigned to %1",
|
||||
"flag_manage_history_state": "Updated state to %1",
|
||||
"flag_manage_history_notes": "Updated flag notes",
|
||||
"flag_manage_saved": "Flag Details Updated",
|
||||
"deleted_message": "এই টপিকটি মুছে ফেলা হয়েছে। শুধুমাত্র টপিক ব্যবস্থাপনার ক্ষমতাপ্রাপ্ত সদস্যগণ এটি দেখতে পারবেন।",
|
||||
"following_topic.message": "এখন থেকে এই টপিকে অন্যকেউ পোস্ট করলে আপনি নোটিফিকেশন পাবেন।",
|
||||
"not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.",
|
||||
"not_following_topic.message": "এই টপিক থেকে আপনি আর নোটিফিকেশন পাবেন না।",
|
||||
"ignoring_topic.message": "You will no longer see this topic in the unread topics list. You will be notified when you are mentioned or your post is up voted.",
|
||||
"login_to_subscribe": "এই টপিকে সাবস্ক্রাইব করতে চাইলে অনুগ্রহ করে নিবন্ধণ করুন অথবা প্রবেশ করুন।",
|
||||
"markAsUnreadForAll.success": "টপিকটি সবার জন্য অপঠিত হিসাবে মার্ক করুন।",
|
||||
@@ -67,7 +49,7 @@
|
||||
"not-watching.description": "Do not notify me of new replies.<br/>Show topic in unread if category is not ignored.",
|
||||
"ignoring.description": "Do not notify me of new replies.<br/>Do not show topic in unread.",
|
||||
"thread_tools.title": "টপিক সম্পর্কিত টুলস",
|
||||
"thread_tools.markAsUnreadForAll": "Mark unread for all",
|
||||
"thread_tools.markAsUnreadForAll": "\"অপঠিত\" হিসেবে চিহ্নিত করুন",
|
||||
"thread_tools.pin": "টপিক পিন করুন",
|
||||
"thread_tools.unpin": "টপিক আনপিন করুন",
|
||||
"thread_tools.lock": "টপিক বন্ধ করুন",
|
||||
@@ -90,9 +72,9 @@
|
||||
"disabled_categories_note": "নিস্ক্রীয় ক্যাটাগরীসমূহ ধূসর কালিতে লেখা রয়েছে। ",
|
||||
"confirm_move": "সরান",
|
||||
"confirm_fork": "ফর্ক",
|
||||
"bookmark": "Bookmark",
|
||||
"bookmarks": "Bookmarks",
|
||||
"bookmarks.has_no_bookmarks": "You haven't bookmarked any posts yet.",
|
||||
"favourite": "Bookmark",
|
||||
"favourites": "Bookmarks",
|
||||
"favourites.has_no_favourites": "You haven't bookmarked any posts yet.",
|
||||
"loading_more_posts": "আরো পোষ্ট লোড করা হচ্ছে",
|
||||
"move_topic": "টপিক সরান",
|
||||
"move_topics": "টপিক সমূহ সরান",
|
||||
@@ -102,7 +84,6 @@
|
||||
"topic_will_be_moved_to": "এই টপিকটি ক্যাটাগরীতে সরানো হবে",
|
||||
"fork_topic_instruction": "যে পোষ্টটি ফর্ক করতে চান সেটি ক্লিক করুন",
|
||||
"fork_no_pids": "কোন পোষ্ট সিলেক্ট করা হয় নি",
|
||||
"fork_pid_count": "%1 post(s) selected",
|
||||
"fork_success": "টপিক ফর্ক করা হয়েছে। ফর্ক করা টপিকে যেতে এখানে ক্লিক করুন",
|
||||
"delete_posts_instruction": "Click the posts you want to delete/purge",
|
||||
"composer.title_placeholder": "আপনার টপিকের শিরোনাম দিন",
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
"postcount": "সর্বমোট পোষ্ট",
|
||||
"email": "ইমেইল",
|
||||
"confirm_email": "ইমেইল নিশ্চিত করুন",
|
||||
"account_info": "Account Info",
|
||||
"ban_account": "একাউন্ট নিষিদ্ধ করুন",
|
||||
"ban_account_confirm": "আপনি কি নিশ্চিত যে এই সদস্যকে নিষিদ্ধ করতে চান ?",
|
||||
"unban_account": "নিষেদ্ধাজ্ঞা তুলে নিন",
|
||||
@@ -23,7 +22,7 @@
|
||||
"profile": "প্রোফাইল",
|
||||
"profile_views": "প্রোফাইল দেখেছেন",
|
||||
"reputation": "সন্মাননা",
|
||||
"bookmarks": "Bookmarks",
|
||||
"favourites": "Bookmarks",
|
||||
"watched": "দেখা হয়েছে",
|
||||
"followers": "যাদের অনুসরণ করছেন",
|
||||
"following": "যারা আপনাকে অনুসরণ করছে",
|
||||
@@ -31,8 +30,7 @@
|
||||
"signature": "স্বাক্ষর",
|
||||
"birthday": "জন্মদিন",
|
||||
"chat": "বার্তালাপ",
|
||||
"chat_with": "Continue chat with %1",
|
||||
"new_chat_with": "Start new chat with %1",
|
||||
"chat_with": "চ্যাট উইথ %1",
|
||||
"follow": "অনুসরন করুন",
|
||||
"unfollow": "অনুসরন করা থেকে বিরত থাকুন",
|
||||
"more": "আরো...",
|
||||
@@ -90,11 +88,6 @@
|
||||
"topics_per_page": "প্রতি পেজে কতগুলো টপিক থাকবে",
|
||||
"posts_per_page": "প্রতি পেইজে কতগুলো পোষ্ট থাকবে",
|
||||
"notification_sounds": "নোটিফিকেশনের জন্য নোটিফিকেশন সাউন্ড এনাবল করুন",
|
||||
"notifications_and_sounds": "Notifications & Sounds",
|
||||
"incoming-message-sound": "Incoming message sound",
|
||||
"outgoing-message-sound": "Outgoing message sound",
|
||||
"notification-sound": "Notification sound",
|
||||
"no-sound": "No sound",
|
||||
"browsing": "Browsing সেটিংস",
|
||||
"open_links_in_new_tab": "আউটগোয়িং লিংকগুলো নতুন ট্যাবে খুলুন",
|
||||
"enable_topic_searching": "In-Topic সার্চ সক্রীয় করো",
|
||||
@@ -102,8 +95,8 @@
|
||||
"delay_image_loading": "Delay Image Loading",
|
||||
"image_load_delay_help": "If enabled, images in topics will not load until they are scrolled into view",
|
||||
"scroll_to_my_post": "After posting a reply, show the new post",
|
||||
"follow_topics_you_reply_to": "Watch topics that you reply to",
|
||||
"follow_topics_you_create": "Watch topics you create",
|
||||
"follow_topics_you_reply_to": "Follow topics that you reply to",
|
||||
"follow_topics_you_create": "Follow topics you create",
|
||||
"grouptitle": "Group Title",
|
||||
"no-group-title": "No group title",
|
||||
"select-skin": "Select a Skin",
|
||||
@@ -114,17 +107,5 @@
|
||||
"custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")",
|
||||
"sso.title": "Single Sign-on Services",
|
||||
"sso.associated": "Associated with",
|
||||
"sso.not-associated": "Click here to associate with",
|
||||
"info.latest-flags": "Latest Flags",
|
||||
"info.no-flags": "No Flagged Posts Found",
|
||||
"info.ban-history": "Recent Ban History",
|
||||
"info.no-ban-history": "This user has never been banned",
|
||||
"info.banned-until": "Banned until %1",
|
||||
"info.banned-permanently": "Banned permanently",
|
||||
"info.banned-reason-label": "Reason",
|
||||
"info.banned-no-reason": "No reason given.",
|
||||
"info.username-history": "Username History",
|
||||
"info.email-history": "Email History",
|
||||
"info.moderation-note": "Moderation Note",
|
||||
"info.moderation-note.success": "Moderation note saved"
|
||||
"sso.not-associated": "Click here to associate with"
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
"latest_users": "সর্বশেষ নিবন্ধিত সদস্যরা:",
|
||||
"top_posters": "সর্বোচ্চ পোষ্টকারী",
|
||||
"most_reputation": "সর্বোচ্চ সম্মাননাধারী",
|
||||
"most_flags": "Most Flags",
|
||||
"search": "খুঁজুন",
|
||||
"enter_username": "ইউজারনেম এর ভিত্তিতে সার্চ করুন",
|
||||
"load_more": "আরো লোড করুন",
|
||||
|
||||
@@ -10,11 +10,7 @@
|
||||
"share_this_category": "Share this category",
|
||||
"watch": "Sledovat",
|
||||
"ignore": "Ignorovat",
|
||||
"watching": "Watching",
|
||||
"ignoring": "Ignoring",
|
||||
"watching.description": "Show topics in unread",
|
||||
"ignoring.description": "Do not show topics in unread",
|
||||
"watch.message": "You are now watching updates from this category and all subcategories",
|
||||
"ignore.message": "You are now ignoring updates from this category and all subcategories",
|
||||
"watch.message": "Nyní sledujete aktualizace ve skupině",
|
||||
"ignore.message": "Nyní ignorujete aktualizace ve skupině ",
|
||||
"watched-categories": "Sledované kategorie"
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
"invite": "Pozvánka od %1",
|
||||
"greeting_no_name": "Dobrý den",
|
||||
"greeting_with_name": "Dobrý den %1",
|
||||
"welcome.text1": "Děkujeme vám za registraci na %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.text3": "Administrátor právě potvrdil vaší registraci. Nyní se můžete přihlásit jménem a heslem.",
|
||||
"welcome.cta": "Klikněte zde pro potvrzení vaší emailové adresy",
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
"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, please click here to confirm your email.",
|
||||
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email.",
|
||||
"no-email-to-confirm": "This forum requires email confirmation, please click here to enter an email",
|
||||
"email-confirm-failed": "We could not confirm your email, please try again later.",
|
||||
"confirm-email-already-sent": "Potvrzovací email již byl odeslán. Vyčkejte %1 minut pokud chcete odeslat další.",
|
||||
@@ -29,10 +28,8 @@
|
||||
"username-too-long": "Uživatelské jméno je příliš dlouhé",
|
||||
"password-too-long": "Heslo je příliš dlouhé",
|
||||
"user-banned": "Uživatel byl zakázán",
|
||||
"user-banned-reason": "Sorry, this account has been banned (Reason: %1)",
|
||||
"user-too-new": "Sorry, you are required to wait %1 second(s) before making your first post",
|
||||
"blacklisted-ip": "Sorry, your IP address has been banned from this community. If you feel this is in error, please contact an administrator.",
|
||||
"ban-expiry-missing": "Please provide an end date for this ban",
|
||||
"no-category": "Kategorie neexistuje",
|
||||
"no-topic": "Téma neexistuje",
|
||||
"no-post": "Příspěvek neexistuje",
|
||||
@@ -49,20 +46,10 @@
|
||||
"post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting",
|
||||
"post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting",
|
||||
"post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting",
|
||||
"post-delete-duration-expired": "You are only allowed to delete posts for %1 second(s) after posting",
|
||||
"post-delete-duration-expired-minutes": "You are only allowed to delete posts for %1 minute(s) after posting",
|
||||
"post-delete-duration-expired-minutes-seconds": "You are only allowed to delete posts for %1 minute(s) %2 second(s) after posting",
|
||||
"post-delete-duration-expired-hours": "You are only allowed to delete posts for %1 hour(s) after posting",
|
||||
"post-delete-duration-expired-hours-minutes": "You are only allowed to delete posts for %1 hour(s) %2 minute(s) after posting",
|
||||
"post-delete-duration-expired-days": "You are only allowed to delete posts for %1 day(s) after posting",
|
||||
"post-delete-duration-expired-days-hours": "You are only allowed to delete posts for %1 day(s) %2 hour(s) after posting",
|
||||
"cant-delete-topic-has-reply": "You can't delete your topic after it has a reply",
|
||||
"cant-delete-topic-has-replies": "You can't delete your topic after it has %1 replies",
|
||||
"content-too-short": "Please enter a longer post. Posts should contain at least %1 character(s).",
|
||||
"content-too-long": "Please enter a shorter post. Posts can't be longer than %1 character(s).",
|
||||
"title-too-short": "Please enter a longer title. Titles should contain at least %1 character(s).",
|
||||
"title-too-long": "Please enter a shorter title. Titles can't be longer than %1 character(s).",
|
||||
"category-not-selected": "Category not selected.",
|
||||
"too-many-posts": "You can only post once every %1 second(s) - please wait before posting again",
|
||||
"too-many-posts-newbie": "As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
|
||||
"tag-too-short": "Please enter a longer tag. Tags should contain at least %1 character(s)",
|
||||
@@ -72,8 +59,8 @@
|
||||
"still-uploading": "Vyčkejte, prosím, nežli se vše kompletně nahraje.",
|
||||
"file-too-big": "Maximum allowed file size is %1 kB - please upload a smaller file",
|
||||
"guest-upload-disabled": "Guest uploading has been disabled",
|
||||
"already-bookmarked": "You have already bookmarked this post",
|
||||
"already-unbookmarked": "You have already unbookmarked this post",
|
||||
"already-favourited": "You have already bookmarked this post",
|
||||
"already-unfavourited": "You have already unbookmarked this post",
|
||||
"cant-ban-other-admins": "Nemůžete zakazovat ostatní administrátory!",
|
||||
"cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin",
|
||||
"cant-delete-admin": "Remove administrator privileges from this account before attempting to delete it.",
|
||||
@@ -81,7 +68,6 @@
|
||||
"invalid-image-extension": "Invalid image extension",
|
||||
"invalid-file-type": "Invalid file type. Allowed types are: %1",
|
||||
"group-name-too-short": "Název skupiny je příliš krátký",
|
||||
"group-name-too-long": "Group name too long",
|
||||
"group-already-exists": "Skupina už exstuje",
|
||||
"group-name-change-not-allowed": "Změna názvu skupiny není povolena",
|
||||
"group-already-member": "Already part of this group",
|
||||
@@ -123,9 +109,5 @@
|
||||
"no-session-found": "No login session found!",
|
||||
"not-in-room": "User not in room",
|
||||
"no-users-in-room": "No users in this room",
|
||||
"cant-kick-self": "Nemůžete vyhodit sami sebe ze kupiny",
|
||||
"no-users-selected": "No user(s) selected",
|
||||
"invalid-home-page-route": "Invalid home page route",
|
||||
"invalid-session": "Session Mismatch",
|
||||
"invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page."
|
||||
"cant-kick-self": "Nemůžete vyhodit sami sebe ze kupiny"
|
||||
}
|
||||
@@ -7,10 +7,8 @@
|
||||
"403.login": "Možná byste měli se <a href='%1/login'>zkusit přihlásit</a>?",
|
||||
"404.title": "Stránka nenalezena",
|
||||
"404.message": "Zdá se, že jste narazil/a na stránku která neexistuje. Vrátit se zpět na <a href='%1/'>domovskou stránku</a>.",
|
||||
"500.title": "Internal Error.",
|
||||
"500.title": "Neznámá chyba",
|
||||
"500.message": "Jejda, vypadá to, že se něco pokazilo.",
|
||||
"400.title": "Bad Request.",
|
||||
"400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
|
||||
"register": "Registrovat",
|
||||
"login": "Přihlásit se",
|
||||
"please_log_in": "Přihlašte se, prosím",
|
||||
@@ -19,7 +17,6 @@
|
||||
"welcome_back": "Vítejte zpět",
|
||||
"you_have_successfully_logged_in": "Vaše přihlášení proběhlo úspěšně",
|
||||
"save_changes": "Uložit změny",
|
||||
"save": "Save",
|
||||
"close": "Zrušit",
|
||||
"pagination": "Stránkování",
|
||||
"pagination.out_of": "%1 z %2",
|
||||
@@ -32,13 +29,13 @@
|
||||
"header.popular": "Populární",
|
||||
"header.users": "Uživatelé",
|
||||
"header.groups": "Skupiny",
|
||||
"header.chats": "Chaty",
|
||||
"header.chats": "Chats",
|
||||
"header.notifications": "Oznámení",
|
||||
"header.search": "Hledat",
|
||||
"header.profile": "Můj profil",
|
||||
"header.navigation": "Navigace",
|
||||
"notifications.loading": "Načítání upozornění",
|
||||
"chats.loading": "Načítání chatů",
|
||||
"chats.loading": "Načítání grafů",
|
||||
"motd.welcome": "Vítejte na NodeBB, diskusní platforma buducnosti.",
|
||||
"previouspage": "Předchozí stránka",
|
||||
"nextpage": "Další stránka",
|
||||
@@ -53,9 +50,7 @@
|
||||
"topics": "Témata",
|
||||
"posts": "Příspěvky",
|
||||
"best": "Nejlepší",
|
||||
"upvoters": "Upvoters",
|
||||
"upvoted": "Upvoted",
|
||||
"downvoters": "Downvoters",
|
||||
"downvoted": "Downvoted",
|
||||
"views": "Zobrazení",
|
||||
"reputation": "Reputace",
|
||||
@@ -75,7 +70,6 @@
|
||||
"norecenttopics": "Žádné nedávné témata",
|
||||
"recentposts": "Nedávné příspěvky",
|
||||
"recentips": "Naposledy zaznamenané IP adresy",
|
||||
"moderator_tools": "Moderator Tools",
|
||||
"away": "Pryč",
|
||||
"dnd": "Nevyrušovat",
|
||||
"invisible": "Neviditelný",
|
||||
@@ -96,11 +90,5 @@
|
||||
"enter_page_number": "Zadejte číslo stránky",
|
||||
"upload_file": "Nahrár soubor",
|
||||
"upload": "Nahrát",
|
||||
"allowed-file-types": "Povolené typy souborů jsou %1",
|
||||
"unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?",
|
||||
"reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect.",
|
||||
"play": "Play",
|
||||
"cookies.message": "This website uses cookies to ensure you get the best experience on our website.",
|
||||
"cookies.accept": "Got it!",
|
||||
"cookies.learn_more": "Learn More"
|
||||
"allowed-file-types": "Povolené typy souborů jsou %1"
|
||||
}
|
||||
@@ -50,7 +50,5 @@
|
||||
"membership.leave-group": "Opustit skupinu",
|
||||
"membership.reject": "Odmítnout",
|
||||
"new-group.group_name": "Název skupiny:",
|
||||
"upload-group-cover": "Nahrát titulní obrázek skupiny",
|
||||
"bulk-invite-instructions": "Enter a list of comma separated usernames to invite to this group",
|
||||
"bulk-invite": "Bulk Invite"
|
||||
"upload-group-cover": "Nahrát titulní obrázek skupiny"
|
||||
}
|
||||
@@ -1,12 +1,11 @@
|
||||
{
|
||||
"username-email": "Uživatel / Email",
|
||||
"username": "Uživatel",
|
||||
"username-email": "Username / Email",
|
||||
"username": "Username",
|
||||
"email": "Email",
|
||||
"remember_me": "Zapamatovat si mě?",
|
||||
"forgot_password": "Zapomněli jste heslo?",
|
||||
"alternative_logins": "Další způsoby přihlášení",
|
||||
"failed_login_attempt": "Přihlášení neúspěšné",
|
||||
"login_successful": "Přihlášení proběhlo úspěšně!",
|
||||
"dont_have_account": "Nemáte účet?",
|
||||
"logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity"
|
||||
"dont_have_account": "Nemáte účet?"
|
||||
}
|
||||
@@ -4,42 +4,41 @@
|
||||
"chat.send": "Odeslat",
|
||||
"chat.no_active": "Nemáte žádné aktivní konverzace.",
|
||||
"chat.user_typing": "%1 píše ...",
|
||||
"chat.user_has_messaged_you": "%1 Vám napsal.",
|
||||
"chat.see_all": "Prohlédnout všechny chaty",
|
||||
"chat.mark_all_read": "Označit vše jako přečtené",
|
||||
"chat.no-messages": "Prosím vyberte příjemce k prohlédnutí historie zpráv.",
|
||||
"chat.no-users-in-room": "Žádní uživatelé v místnosti.",
|
||||
"chat.recent-chats": "Aktuální chaty",
|
||||
"chat.user_has_messaged_you": "%1 has messaged you.",
|
||||
"chat.see_all": "See all chats",
|
||||
"chat.mark_all_read": "Mark all chats read",
|
||||
"chat.no-messages": "Please select a recipient to view chat message history",
|
||||
"chat.no-users-in-room": "No users in this room",
|
||||
"chat.recent-chats": "Recent Chats",
|
||||
"chat.contacts": "Kontakty",
|
||||
"chat.message-history": "Historie zpráv",
|
||||
"chat.pop-out": "Skrýt chat",
|
||||
"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",
|
||||
"chat.delete_message_confirm": "Jste si jisti že chcete odstranit tuto zprávu?",
|
||||
"chat.add-users-to-room": "Přidat uživatele do místnosti",
|
||||
"composer.compose": "Napsat",
|
||||
"composer.show_preview": "Ukázat náhled",
|
||||
"composer.hide_preview": "Skrýt náhled",
|
||||
"composer.user_said_in": "%1 řekl v %2:",
|
||||
"composer.user_said": "%1 řekl:",
|
||||
"composer.discard": "Jste si jisti, že chcete zrušit tento příspěvek?",
|
||||
"composer.submit_and_lock": "Potvrdit a uzamknout",
|
||||
"chat.roomname": "Chat Room %1",
|
||||
"chat.add-users-to-room": "Add users to room",
|
||||
"composer.compose": "Compose",
|
||||
"composer.show_preview": "Show Preview",
|
||||
"composer.hide_preview": "Hide Preview",
|
||||
"composer.user_said_in": "%1 said in %2:",
|
||||
"composer.user_said": "%1 said:",
|
||||
"composer.discard": "Are you sure you wish to discard this post?",
|
||||
"composer.submit_and_lock": "Submit and Lock",
|
||||
"composer.toggle_dropdown": "Toggle Dropdown",
|
||||
"composer.uploading": "Odesílám %1",
|
||||
"composer.formatting.bold": "Tučné",
|
||||
"composer.formatting.italic": "Kurzíva",
|
||||
"composer.formatting.list": "Seznam",
|
||||
"composer.formatting.strikethrough": "Přeškrtnutí",
|
||||
"composer.uploading": "Uploading %1",
|
||||
"composer.formatting.bold": "Bold",
|
||||
"composer.formatting.italic": "Italic",
|
||||
"composer.formatting.list": "List",
|
||||
"composer.formatting.strikethrough": "Strikethrough",
|
||||
"composer.formatting.link": "Odkaz",
|
||||
"composer.formatting.picture": "Obrázek",
|
||||
"composer.upload-picture": "Nahrát obrázek",
|
||||
"composer.upload-file": "Nahrát soubor",
|
||||
"composer.zen_mode": "Zen Mode",
|
||||
"composer.select_category": "Select a category",
|
||||
"bootbox.ok": "OK",
|
||||
"bootbox.cancel": "Zrušit",
|
||||
"bootbox.cancel": "Cancel",
|
||||
"bootbox.confirm": "Potvrdit",
|
||||
"cover.dragging_title": "Cover Photo Positioning",
|
||||
"cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"",
|
||||
|
||||
@@ -1,21 +1,24 @@
|
||||
{
|
||||
"title": "Upozornění",
|
||||
"no_notifs": "Nemáte žádná nová upozornění.",
|
||||
"see_all": "Zobrazit všechna upozornění",
|
||||
"mark_all_read": "Označit všechna upozornění jako přečtená",
|
||||
"back_to_home": "Zpět na %1",
|
||||
"no_notifs": "You have no new notifications",
|
||||
"see_all": "See all notifications",
|
||||
"mark_all_read": "Mark all notifications read",
|
||||
"back_to_home": "Back to %1",
|
||||
"outgoing_link": "Odkaz mimo fórum",
|
||||
"outgoing_link_message": "Opouštíte %1",
|
||||
"continue_to": "Pokračovat na %1",
|
||||
"return_to": "Vrátit na %1",
|
||||
"new_notification": "Nové upozornění",
|
||||
"you_have_unread_notifications": "Máte nepřečtená upozornění.",
|
||||
"new_message_from": "Nová zpráva od <strong>%1</strong>",
|
||||
"outgoing_link_message": "You are now leaving %1",
|
||||
"continue_to": "Continue to %1",
|
||||
"return_to": "Return to %1",
|
||||
"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>.",
|
||||
"upvoted_your_post_in_dual": "<strong>%1</strong> and <strong>%2</strong> have upvoted your post in <strong>%3</strong>.",
|
||||
"upvoted_your_post_in_multiple": "<strong>%1</strong> and %2 others have upvoted your post in <strong>%3</strong>.",
|
||||
"moved_your_post": "<strong>%1</strong> has moved your post to <strong>%2</strong>",
|
||||
"moved_your_topic": "<strong>%1</strong> has moved <strong>%2</strong>",
|
||||
"favourited_your_post_in": "<strong>%1</strong> has bookmarked your post in <strong>%2</strong>.",
|
||||
"favourited_your_post_in_dual": "<strong>%1</strong> and <strong>%2</strong> have bookmarked your post in <strong>%3</strong>.",
|
||||
"favourited_your_post_in_multiple": "<strong>%1</strong> and %2 others have bookmarked your post in <strong>%3</strong>.",
|
||||
"user_flagged_post_in": "<strong>%1</strong> flagged a post in <strong>%2</strong>",
|
||||
"user_flagged_post_in_dual": "<strong>%1</strong> and <strong>%2</strong> flagged a post in <strong>%3</strong>",
|
||||
"user_flagged_post_in_multiple": "<strong>%1</strong> and %2 others flagged a post in <strong>%3</strong>",
|
||||
@@ -28,8 +31,8 @@
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"new_register_multiple": "There are <strong>%1</strong> registration requests awaiting review.",
|
||||
"email-confirmed": "Email potvrzen",
|
||||
"email-confirmed-message": "Děkujeme za ověření Vaší emailové adresy. Váš účet je nyní aktivován.",
|
||||
"email-confirm-error-message": "Nastal problém s ověřením Vaší emailové adresy. Pravděpodobně neplatný nebo expirovaný kód.",
|
||||
"email-confirm-sent": "Ověřovací email odeslán."
|
||||
"email-confirmed": "Email Confirmed",
|
||||
"email-confirmed-message": "Thank you for validating your email. Your account is now fully activated.",
|
||||
"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."
|
||||
}
|
||||
@@ -1,43 +1,39 @@
|
||||
{
|
||||
"home": "Domů",
|
||||
"unread": "Nepřečtená témata",
|
||||
"home": "Home",
|
||||
"unread": "Unread Topics",
|
||||
"popular-day": "Dnešní oblíbená témata",
|
||||
"popular-week": "Oblíbená témata pro tento týden",
|
||||
"popular-month": "Oblíbená témata pro tento měsíc",
|
||||
"popular-alltime": "Oblíbená témata za celou dobu",
|
||||
"recent": "Aktuální témata",
|
||||
"recent": "Recent Topics",
|
||||
"flagged-posts": "Označené příspěvky",
|
||||
"ip-blacklist": "IP Blacklist",
|
||||
"users/online": "Uživatelé online",
|
||||
"users/latest": "Nejnovější uživatelé",
|
||||
"users/sort-posts": "Uživatelé s nejvíce příspěvky",
|
||||
"users/sort-reputation": "Uživatelé s nejlepší reputací",
|
||||
"users/banned": "Zabanovaní uživatelé",
|
||||
"users/most-flags": "Most flagged users",
|
||||
"users/banned": "Banned Users",
|
||||
"users/search": "Hledání uživatele",
|
||||
"notifications": "Oznámení",
|
||||
"notifications": "Notifications",
|
||||
"tags": "Tagy",
|
||||
"tag": "Téma označeno pod \"%1\"",
|
||||
"register": "Zaregistrovat účet",
|
||||
"registration-complete": "Registration complete",
|
||||
"login": "Přihlásit se ke svému účtu",
|
||||
"reset": "Obnovit heslo k účtu",
|
||||
"categories": "Kategorie",
|
||||
"groups": "Skupiny",
|
||||
"group": "%1 skupina",
|
||||
"chats": "Chaty",
|
||||
"chat": "Chatovat s %1",
|
||||
"chats": "Chats",
|
||||
"chat": "Chatting with %1",
|
||||
"account/edit": "Editing \"%1\"",
|
||||
"account/edit/password": "Editing password of \"%1\"",
|
||||
"account/edit/username": "Editing username of \"%1\"",
|
||||
"account/edit/email": "Editing email of \"%1\"",
|
||||
"account/info": "Account Info",
|
||||
"account/following": "People %1 follows",
|
||||
"account/followers": "Lidé kteří sledují %1",
|
||||
"account/posts": "Příspěvky od %1",
|
||||
"account/topics": "Příspěvky vytvořeny uživatelem %1",
|
||||
"account/groups": "%1's skupiny",
|
||||
"account/bookmarks": "%1's Bookmarked Posts",
|
||||
"account/favourites": "%1's Bookmarked Posts",
|
||||
"account/settings": "Uživatelské nastavení",
|
||||
"account/watched": "Topics watched by %1",
|
||||
"account/upvoted": "Posts upvoted by %1",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"register": "Registrace",
|
||||
"cancel_registration": "Cancel Registration",
|
||||
"help.email": "Váš email nebude bez vašeho svolení zveřejněn.",
|
||||
"help.username_restrictions": "Jedinečné uživatelské jméno dlouhé %1 až %2 znaků. Ostatní uživatelé Vás mohou zmínit jako @<span id='yourUsername'>uživatelské-jméno</span>.",
|
||||
"help.minimum_password_length": "Délka vašeho hesla musí být alespoň %1 znaků.",
|
||||
@@ -16,8 +15,5 @@
|
||||
"alternative_registration": "Jiný způsob registrace",
|
||||
"terms_of_use": "Podmínky",
|
||||
"agree_to_terms_of_use": "Souhlasím s Podmínkami",
|
||||
"terms_of_use_error": "You must agree to the Terms of Use",
|
||||
"registration-added-to-queue": "Vaše registrace byla přidána do fronty. Obdržíte e-mail až ji správce schválí.",
|
||||
"interstitial.intro": "We require some additional information before we can create your account.",
|
||||
"interstitial.errors-found": "We could not complete your registration:"
|
||||
"registration-added-to-queue": "Vaše registrace byla přidána do fronty. Obdržíte e-mail až ji správce schválí."
|
||||
}
|
||||
@@ -11,7 +11,7 @@
|
||||
"enter_email_address": "Zadejte emailovou adresu",
|
||||
"password_reset_sent": "Obnova hesla odeslána",
|
||||
"invalid_email": "Špatný email / Email neexistuje!",
|
||||
"password_too_short": "Zadané heslo je příliš krátké, zvolte si prosím jiné.",
|
||||
"passwords_do_not_match": "Vámi zadaná hesla se neshodují.",
|
||||
"password_expired": "Platnost Vašeho hesla vypršela, zvolte si prosím nové."
|
||||
"password_too_short": "The password entered is too short, please pick a different password.",
|
||||
"passwords_do_not_match": "The two passwords you've entered do not match.",
|
||||
"password_expired": "Your password has expired, please choose a new password"
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"no_tag_topics": "Není zde žádné téma s tímto tagem.",
|
||||
"tags": "Tagy",
|
||||
"enter_tags_here": "Zde vložte tagy, každý o délce %1 až %2 znaků.",
|
||||
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
|
||||
"enter_tags_here_short": "Vložte tagy ...",
|
||||
"no_tags": "Zatím tu není žádný tag."
|
||||
}
|
||||
@@ -13,7 +13,6 @@
|
||||
"notify_me": "Sledovat toto téma",
|
||||
"quote": "Citovat",
|
||||
"reply": "Odpovědět",
|
||||
"replies_to_this_post": "Replies: %1",
|
||||
"reply-as-topic": "Odpovědět jako Téma",
|
||||
"guest-login-reply": "Přihlásit se pro odpověď",
|
||||
"edit": "Upravit",
|
||||
@@ -27,34 +26,17 @@
|
||||
"tools": "Nástroje",
|
||||
"flag": "Flag",
|
||||
"locked": "Uzamčeno",
|
||||
"pinned": "Pinned",
|
||||
"moved": "Moved",
|
||||
"bookmark_instructions": "Click here to return to the last read post in this thread.",
|
||||
"flag_title": "Flag this post for moderation",
|
||||
"flag_success": "This post has been flagged for moderation.",
|
||||
"flag_manage_title": "Flagged post in %1",
|
||||
"flag_manage_history": "Action History",
|
||||
"flag_manage_no_history": "No event history to report",
|
||||
"flag_manage_assignee": "Assignee",
|
||||
"flag_manage_state": "State",
|
||||
"flag_manage_state_open": "New/Open",
|
||||
"flag_manage_state_wip": "Work in Progress",
|
||||
"flag_manage_state_resolved": "Resolved",
|
||||
"flag_manage_state_rejected": "Rejected",
|
||||
"flag_manage_notes": "Shared Notes",
|
||||
"flag_manage_update": "Update Flag Status",
|
||||
"flag_manage_history_assignee": "Assigned to %1",
|
||||
"flag_manage_history_state": "Updated state to %1",
|
||||
"flag_manage_history_notes": "Updated flag notes",
|
||||
"flag_manage_saved": "Flag Details Updated",
|
||||
"deleted_message": "This topic has been deleted. Only users with topic management privileges can see it.",
|
||||
"following_topic.message": "You will now be receiving notifications when somebody posts to this topic.",
|
||||
"not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.",
|
||||
"not_following_topic.message": "You will no longer receive notifications from this topic.",
|
||||
"ignoring_topic.message": "You will no longer see this topic in the unread topics list. You will be notified when you are mentioned or your post is up voted.",
|
||||
"login_to_subscribe": "Please register or log in in order to subscribe to this topic.",
|
||||
"markAsUnreadForAll.success": "Topic marked as unread for all.",
|
||||
"mark_unread": "Označ za nepřečtené",
|
||||
"mark_unread.success": "Téma označeno jako nepřečtené",
|
||||
"mark_unread": "Mark unread",
|
||||
"mark_unread.success": "Topic marked as unread.",
|
||||
"watch": "Sledovat",
|
||||
"unwatch": "Unwatch",
|
||||
"watch.title": "Be notified of new replies in this topic",
|
||||
@@ -66,18 +48,18 @@
|
||||
"watching.description": "Notify me of new replies.<br/>Show topic in unread.",
|
||||
"not-watching.description": "Do not notify me of new replies.<br/>Show topic in unread if category is not ignored.",
|
||||
"ignoring.description": "Do not notify me of new replies.<br/>Do not show topic in unread.",
|
||||
"thread_tools.title": "Správa tématu",
|
||||
"thread_tools.markAsUnreadForAll": "Mark unread for all",
|
||||
"thread_tools.pin": "Připnout téma",
|
||||
"thread_tools.unpin": "Odepnout téma",
|
||||
"thread_tools.lock": "Zamknout téma",
|
||||
"thread_tools.title": "Topic Tools",
|
||||
"thread_tools.markAsUnreadForAll": "Označit jako nepřečtené",
|
||||
"thread_tools.pin": "Pin Topic",
|
||||
"thread_tools.unpin": "Unpin Topic",
|
||||
"thread_tools.lock": "Lock Topic",
|
||||
"thread_tools.unlock": "Odemknout téma",
|
||||
"thread_tools.move": "Přesunout téma",
|
||||
"thread_tools.move_all": "Přesunout vše",
|
||||
"thread_tools.fork": "Větvit téma",
|
||||
"thread_tools.fork": "Fork Topic",
|
||||
"thread_tools.delete": "Odstranit téma",
|
||||
"thread_tools.delete-posts": "Odstranit přispěvky",
|
||||
"thread_tools.delete_confirm": "Opravdu chcete smazat toto téma.",
|
||||
"thread_tools.delete_confirm": "Are you sure you want to delete this topic?",
|
||||
"thread_tools.restore": "Obnovit téma",
|
||||
"thread_tools.restore_confirm": "Are you sure you want to restore this topic?",
|
||||
"thread_tools.purge": "Purge Topic",
|
||||
@@ -90,9 +72,9 @@
|
||||
"disabled_categories_note": "Vypnuté (disabled) kategorie jsou šedé.",
|
||||
"confirm_move": "Přesunout",
|
||||
"confirm_fork": "Rozdělit",
|
||||
"bookmark": "Bookmark",
|
||||
"bookmarks": "Bookmarks",
|
||||
"bookmarks.has_no_bookmarks": "You haven't bookmarked any posts yet.",
|
||||
"favourite": "Záložka",
|
||||
"favourites": "Záložky",
|
||||
"favourites.has_no_favourites": "You haven't bookmarked any posts yet.",
|
||||
"loading_more_posts": "Načítání více příspěvků",
|
||||
"move_topic": "Přesunout téma",
|
||||
"move_topics": "Přesunout témata",
|
||||
@@ -102,21 +84,20 @@
|
||||
"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_no_pids": "Žádné příspěvky nebyly vybrány!",
|
||||
"fork_pid_count": "%1 post(s) selected",
|
||||
"fork_success": "Successfully forked topic! Click here to go to the forked topic.",
|
||||
"delete_posts_instruction": "Click the posts you want to delete/purge",
|
||||
"composer.title_placeholder": "Zadejte název tématu...",
|
||||
"composer.handle_placeholder": "Jméno",
|
||||
"composer.discard": "Zrušit",
|
||||
"composer.discard": "Discard",
|
||||
"composer.submit": "Odeslat",
|
||||
"composer.replying_to": "Replying to %1",
|
||||
"composer.new_topic": "Nové téma",
|
||||
"composer.uploading": "nahrávání...",
|
||||
"composer.thumb_url_label": "Vložit URL náhled tématu",
|
||||
"composer.thumb_title": "Přidat k tématu náhled",
|
||||
"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_file_label": "Nebo nahrajte soubor",
|
||||
"composer.thumb_remove": "Vymazat pole",
|
||||
"composer.thumb_remove": "Clear fields",
|
||||
"composer.drag_and_drop_images": "Drag and Drop Images Here",
|
||||
"more_users_and_guests": "%1 more user(s) and %2 guest(s)",
|
||||
"more_users": "%1 more user(s)",
|
||||
@@ -126,13 +107,13 @@
|
||||
"oldest_to_newest": "Od nejstarších po nejnovější",
|
||||
"newest_to_oldest": "Od nejnovějších po nejstarší",
|
||||
"most_votes": "Nejvíce hlasů",
|
||||
"most_posts": "Nejvíce příspěvků",
|
||||
"stale.title": "Přesto vytvořit nové téma",
|
||||
"stale.warning": "Reagujete na starší téma. Nechcete raději vytvořit téma nové a na původní v něm odkázat?",
|
||||
"stale.create": "Vytvořit nové téma",
|
||||
"stale.reply_anyway": "Přesto reagovat na toto téma",
|
||||
"most_posts": "Most posts",
|
||||
"stale.title": "Create new topic instead?",
|
||||
"stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?",
|
||||
"stale.create": "Create a new topic",
|
||||
"stale.reply_anyway": "Reply to this topic anyway",
|
||||
"link_back": "Re: [%1](%2)",
|
||||
"spam": "Spam",
|
||||
"offensive": "Urážlivé",
|
||||
"custom-flag-reason": "Vložte důvod oznámení"
|
||||
"offensive": "Offensive",
|
||||
"custom-flag-reason": "Enter a flagging reason"
|
||||
}
|
||||
@@ -2,10 +2,10 @@
|
||||
"title": "Nepřečtené",
|
||||
"no_unread_topics": "Nejsou zde žádné nepřečtené témata.",
|
||||
"load_more": "Načíst další",
|
||||
"mark_as_read": "Označit jako přečtené",
|
||||
"mark_as_read": "Označit jako přeštené",
|
||||
"selected": "Vybrané",
|
||||
"all": "Vše",
|
||||
"all_categories": "Všechny kategorie",
|
||||
"all_categories": "All categories",
|
||||
"topics_marked_as_read.success": "Téma bylo označeno jako přečtené!",
|
||||
"all-topics": "Všechna témata",
|
||||
"new-topics": "Nová témata",
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
"postcount": "Počet příspěvků",
|
||||
"email": "Email",
|
||||
"confirm_email": "Potvrdit email",
|
||||
"account_info": "Account Info",
|
||||
"ban_account": "Zablokovat účet",
|
||||
"ban_account_confirm": "Opravdu chcete zablokovat tohoto uživatele?",
|
||||
"unban_account": "Odblokovat účet",
|
||||
@@ -23,7 +22,7 @@
|
||||
"profile": "Profil",
|
||||
"profile_views": "Zobrazení profilu",
|
||||
"reputation": "Reputace",
|
||||
"bookmarks": "Bookmarks",
|
||||
"favourites": "Záložky",
|
||||
"watched": "Sledován",
|
||||
"followers": "Sledují ho",
|
||||
"following": "Sleduje",
|
||||
@@ -31,8 +30,7 @@
|
||||
"signature": "Podpis",
|
||||
"birthday": "Datum narození",
|
||||
"chat": "Chat",
|
||||
"chat_with": "Continue chat with %1",
|
||||
"new_chat_with": "Start new chat with %1",
|
||||
"chat_with": "Chat with %1",
|
||||
"follow": "Sledovat",
|
||||
"unfollow": "Nesledovat",
|
||||
"more": "Více",
|
||||
@@ -66,7 +64,7 @@
|
||||
"settings": "Nastavení",
|
||||
"show_email": "Zobrazovat můj email v profilu",
|
||||
"show_fullname": "Zobrazovat celé jméno",
|
||||
"restrict_chats": "Povolit chatovací zprávy pouze od uživatelů, které sleduji.",
|
||||
"restrict_chats": "Only allow chat messages from users I follow",
|
||||
"digest_label": "Odebírat přehled",
|
||||
"digest_description": "Subscribe to email updates for this forum (new notifications and topics) according to a set schedule",
|
||||
"digest_off": "Vypnuto",
|
||||
@@ -90,11 +88,6 @@
|
||||
"topics_per_page": "Témat na stránce",
|
||||
"posts_per_page": "Příspěvků na stránce",
|
||||
"notification_sounds": "Přehrát zvuk když dostanete notifikaci",
|
||||
"notifications_and_sounds": "Notifications & Sounds",
|
||||
"incoming-message-sound": "Incoming message sound",
|
||||
"outgoing-message-sound": "Outgoing message sound",
|
||||
"notification-sound": "Notification sound",
|
||||
"no-sound": "No sound",
|
||||
"browsing": "Browsing Settings",
|
||||
"open_links_in_new_tab": "Open outgoing links in new tab",
|
||||
"enable_topic_searching": "Enable In-Topic Searching",
|
||||
@@ -102,8 +95,8 @@
|
||||
"delay_image_loading": "Delay Image Loading",
|
||||
"image_load_delay_help": "If enabled, images in topics will not load until they are scrolled into view",
|
||||
"scroll_to_my_post": "After posting a reply, show the new post",
|
||||
"follow_topics_you_reply_to": "Watch topics that you reply to",
|
||||
"follow_topics_you_create": "Watch topics you create",
|
||||
"follow_topics_you_reply_to": "Follow topics that you reply to",
|
||||
"follow_topics_you_create": "Follow topics you create",
|
||||
"grouptitle": "Nadpis skupiny",
|
||||
"no-group-title": "Žádný nadpis skupiny",
|
||||
"select-skin": "Vybrat skin",
|
||||
@@ -114,17 +107,5 @@
|
||||
"custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\", or \"popular\")",
|
||||
"sso.title": "Single Sign-on Services",
|
||||
"sso.associated": "Associated with",
|
||||
"sso.not-associated": "Click here to associate with",
|
||||
"info.latest-flags": "Latest Flags",
|
||||
"info.no-flags": "No Flagged Posts Found",
|
||||
"info.ban-history": "Recent Ban History",
|
||||
"info.no-ban-history": "This user has never been banned",
|
||||
"info.banned-until": "Banned until %1",
|
||||
"info.banned-permanently": "Banned permanently",
|
||||
"info.banned-reason-label": "Reason",
|
||||
"info.banned-no-reason": "No reason given.",
|
||||
"info.username-history": "Username History",
|
||||
"info.email-history": "Email History",
|
||||
"info.moderation-note": "Moderation Note",
|
||||
"info.moderation-note.success": "Moderation note saved"
|
||||
"sso.not-associated": "Click here to associate with"
|
||||
}
|
||||
@@ -2,11 +2,10 @@
|
||||
"latest_users": "Nejnovější uživatelé",
|
||||
"top_posters": "Nejaktivnější",
|
||||
"most_reputation": "Nejváženější",
|
||||
"most_flags": "Most Flags",
|
||||
"search": "Vyhledávat",
|
||||
"enter_username": "Zadej uživatelské jméno k hledání",
|
||||
"load_more": "Načíst další",
|
||||
"users-found-search-took": "Nalezeno %1 uživatel(ů) za %2 vteřiny.",
|
||||
"users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
|
||||
"filter-by": "Filtrovat dle",
|
||||
"online-only": "Pouze online",
|
||||
"invite": "Pozvat",
|
||||
|
||||
@@ -10,11 +10,7 @@
|
||||
"share_this_category": "Del denne kategori",
|
||||
"watch": "Overvåg",
|
||||
"ignore": "Ignorer",
|
||||
"watching": "Watching",
|
||||
"ignoring": "Ignoring",
|
||||
"watching.description": "Show topics in unread",
|
||||
"ignoring.description": "Do not show topics in unread",
|
||||
"watch.message": "You are now watching updates from this category and all subcategories",
|
||||
"ignore.message": "You are now ignoring updates from this category and all subcategories",
|
||||
"watch.message": "Du overvåger nu opdateringer fra denne kategori",
|
||||
"ignore.message": "Du ignorere nu opdateringer fra denne kategori",
|
||||
"watched-categories": "Fulgte kategorier"
|
||||
}
|
||||
@@ -20,7 +20,6 @@
|
||||
"email-taken": "Emailadresse allerede i brug",
|
||||
"email-not-confirmed": "Din email adresse er ikke blevet bekræftet endnu, venligst klik her for at bekrætige den.",
|
||||
"email-not-confirmed-chat": "Du kan ikke chatte før din email er bekræftet, klik her for at bekræfte din email.",
|
||||
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email.",
|
||||
"no-email-to-confirm": "Dette forum kræver bekræftelse af din email, klik her for at indtaste en email",
|
||||
"email-confirm-failed": "Vi kunne ikke bekræfte din email, prøv igen senere.",
|
||||
"confirm-email-already-sent": "Bekræftelses email er allerede afsendt, vent venligt %1 minut(ter) for at sende endnu en.",
|
||||
@@ -29,10 +28,8 @@
|
||||
"username-too-long": "Brugernavn er for langt",
|
||||
"password-too-long": "Kodeord er for langt",
|
||||
"user-banned": "Bruger er bortvist",
|
||||
"user-banned-reason": "Sorry, this account has been banned (Reason: %1)",
|
||||
"user-too-new": "Beklager, du er nødt til at vente %1 sekund(er) før du opretter dit indlæg",
|
||||
"blacklisted-ip": "Sorry, your IP address has been banned from this community. If you feel this is in error, please contact an administrator.",
|
||||
"ban-expiry-missing": "Please provide an end date for this ban",
|
||||
"no-category": "Kategorien eksisterer ikke",
|
||||
"no-topic": "Tråden eksisterer ikke",
|
||||
"no-post": "Indlægget eksisterer ikke",
|
||||
@@ -49,20 +46,10 @@
|
||||
"post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting",
|
||||
"post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting",
|
||||
"post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting",
|
||||
"post-delete-duration-expired": "You are only allowed to delete posts for %1 second(s) after posting",
|
||||
"post-delete-duration-expired-minutes": "You are only allowed to delete posts for %1 minute(s) after posting",
|
||||
"post-delete-duration-expired-minutes-seconds": "You are only allowed to delete posts for %1 minute(s) %2 second(s) after posting",
|
||||
"post-delete-duration-expired-hours": "You are only allowed to delete posts for %1 hour(s) after posting",
|
||||
"post-delete-duration-expired-hours-minutes": "You are only allowed to delete posts for %1 hour(s) %2 minute(s) after posting",
|
||||
"post-delete-duration-expired-days": "You are only allowed to delete posts for %1 day(s) after posting",
|
||||
"post-delete-duration-expired-days-hours": "You are only allowed to delete posts for %1 day(s) %2 hour(s) after posting",
|
||||
"cant-delete-topic-has-reply": "You can't delete your topic after it has a reply",
|
||||
"cant-delete-topic-has-replies": "You can't delete your topic after it has %1 replies",
|
||||
"content-too-short": "Venligst indtast et længere indlæg. Indlægget skal mindst indeholde %1 karakter(er).",
|
||||
"content-too-long": "Venligt indtast et kortere indlæg. Indlæg kan ikke være længere end %1 karakter(er).",
|
||||
"title-too-short": "Venligst indtast en længere titel. Titlen skal mindst indeholde %1 karakter(er).",
|
||||
"title-too-long": "Venligst indtast en kortere titel. Titlen kan ikke indeholde flere end %1 karakter(er).",
|
||||
"category-not-selected": "Category not selected.",
|
||||
"too-many-posts": "Du kan højest skrive et indlæg hver %1 sekund(er) - venligst vent et øjeblik før næste indlæg",
|
||||
"too-many-posts-newbie": "Som ny bruger kan du kun skrive et indlæg engang hvert %1. sekund() indtil du har optjent %2 omdømme point - venligst vent et øjeblik før næste indlæg.",
|
||||
"tag-too-short": "Indtast et længere tag. Tags skal indeholde mindst %1 karakter(er).",
|
||||
@@ -72,8 +59,8 @@
|
||||
"still-uploading": "Venligst vent til overførslen er færdig",
|
||||
"file-too-big": "Maksimum filstørrelse er %1 kB - venligst overfør en mindre fil",
|
||||
"guest-upload-disabled": "Gæsteupload er deaktiveret",
|
||||
"already-bookmarked": "You have already bookmarked this post",
|
||||
"already-unbookmarked": "You have already unbookmarked this post",
|
||||
"already-favourited": "Du har allerede bogmærket dette indlæg",
|
||||
"already-unfavourited": "Du har allerede fjernet dette indlæg fra bogmærker",
|
||||
"cant-ban-other-admins": "Du kan ikke udlukke andre administatrorer!",
|
||||
"cant-remove-last-admin": "Du er den eneste administrator. Tilføj en anden bruger som administrator før du fjerner dig selv som administrator",
|
||||
"cant-delete-admin": "Remove administrator privileges from this account before attempting to delete it.",
|
||||
@@ -81,7 +68,6 @@
|
||||
"invalid-image-extension": "Forkert billede filnavnsendelse",
|
||||
"invalid-file-type": "Invalid fil type. Tilladte typer er: %1",
|
||||
"group-name-too-short": "Gruppe navn for kort",
|
||||
"group-name-too-long": "Group name too long",
|
||||
"group-already-exists": "Gruppen eksisterer allerede",
|
||||
"group-name-change-not-allowed": "Ændring af gruppe navn er ikke tilladt",
|
||||
"group-already-member": "Allerede medlem af denne gruppe",
|
||||
@@ -123,9 +109,5 @@
|
||||
"no-session-found": "Ingen login session kan findes!",
|
||||
"not-in-room": "Bruger er ikke i rummet",
|
||||
"no-users-in-room": "Ingen brugere i rummet",
|
||||
"cant-kick-self": "You can't kick yourself from the group",
|
||||
"no-users-selected": "No user(s) selected",
|
||||
"invalid-home-page-route": "Invalid home page route",
|
||||
"invalid-session": "Session Mismatch",
|
||||
"invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page."
|
||||
"cant-kick-self": "You can't kick yourself from the group"
|
||||
}
|
||||
@@ -7,10 +7,8 @@
|
||||
"403.login": "Måske du skulle <a href='%1/login'>prøve og logge ind</a>?",
|
||||
"404.title": "Ikke fundet",
|
||||
"404.message": "Det ser ud til du er stødt på en side der ikke finder. Retuner til <a href='%1/'> forsiden</a>.",
|
||||
"500.title": "Internal Error.",
|
||||
"500.title": "Intern fejl.",
|
||||
"500.message": "Ups! Ser ud til at noget gik galt!",
|
||||
"400.title": "Bad Request.",
|
||||
"400.message": "It looks like this link is malformed, please double-check and try again. Otherwise, return to the <a href='%1/'>home page</a>.",
|
||||
"register": "Tilmeld",
|
||||
"login": "Log ind",
|
||||
"please_log_in": "Venligst log ind",
|
||||
@@ -19,7 +17,6 @@
|
||||
"welcome_back": "Velkommen tilbage",
|
||||
"you_have_successfully_logged_in": "Du er nu logget ind",
|
||||
"save_changes": "Gem ændringer",
|
||||
"save": "Save",
|
||||
"close": "Luk",
|
||||
"pagination": "Sidetal",
|
||||
"pagination.out_of": "%1 ud af %2",
|
||||
@@ -53,9 +50,7 @@
|
||||
"topics": "Emner",
|
||||
"posts": "Indlæg",
|
||||
"best": "Bedste",
|
||||
"upvoters": "Upvoters",
|
||||
"upvoted": "Syntes godt om",
|
||||
"downvoters": "Downvoters",
|
||||
"downvoted": "Syntes ikke godt om",
|
||||
"views": "Visninger",
|
||||
"reputation": "Omdømme",
|
||||
@@ -75,7 +70,6 @@
|
||||
"norecenttopics": "Ingen seneste tråde",
|
||||
"recentposts": "Seneste indlæg",
|
||||
"recentips": "Seneste loggede ind IPer",
|
||||
"moderator_tools": "Moderator Tools",
|
||||
"away": "Væk",
|
||||
"dnd": "Vil ikke forstyres",
|
||||
"invisible": "Usynlig",
|
||||
@@ -96,11 +90,5 @@
|
||||
"enter_page_number": "Indsæt sideantal",
|
||||
"upload_file": "Upload fil",
|
||||
"upload": "Upload",
|
||||
"allowed-file-types": "Tilladte filtyper er %1",
|
||||
"unsaved-changes": "You have unsaved changes. Are you sure you wish to navigate away?",
|
||||
"reconnecting-message": "Looks like your connection to %1 was lost, please wait while we try to reconnect.",
|
||||
"play": "Play",
|
||||
"cookies.message": "This website uses cookies to ensure you get the best experience on our website.",
|
||||
"cookies.accept": "Got it!",
|
||||
"cookies.learn_more": "Learn More"
|
||||
"allowed-file-types": "Tilladte filtyper er %1"
|
||||
}
|
||||
@@ -50,7 +50,5 @@
|
||||
"membership.leave-group": "Forlad Gruppe",
|
||||
"membership.reject": "Afvis",
|
||||
"new-group.group_name": "Gruppe Navn:",
|
||||
"upload-group-cover": "Upload Gruppe coverbillede",
|
||||
"bulk-invite-instructions": "Enter a list of comma separated usernames to invite to this group",
|
||||
"bulk-invite": "Bulk Invite"
|
||||
"upload-group-cover": "Upload Gruppe coverbillede"
|
||||
}
|
||||
@@ -7,6 +7,5 @@
|
||||
"alternative_logins": "alternative logins",
|
||||
"failed_login_attempt": "Login Unsuccessful",
|
||||
"login_successful": "Du har successfuldt logged in!",
|
||||
"dont_have_account": "Har du ikke en konto?",
|
||||
"logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity"
|
||||
"dont_have_account": "Har du ikke en konto?"
|
||||
}
|
||||
@@ -18,6 +18,7 @@
|
||||
"chat.thirty_days": "30 dage",
|
||||
"chat.three_months": "3 måneder",
|
||||
"chat.delete_message_confirm": "Er du sikker på at du vil slette denne besked?",
|
||||
"chat.roomname": "Chatrum %1",
|
||||
"chat.add-users-to-room": "Tilføj brugere til chatrum",
|
||||
"composer.compose": "Skriv",
|
||||
"composer.show_preview": "Vis forhåndsvisning",
|
||||
@@ -36,8 +37,6 @@
|
||||
"composer.formatting.picture": "Picture",
|
||||
"composer.upload-picture": "Upload Image",
|
||||
"composer.upload-file": "Upload File",
|
||||
"composer.zen_mode": "Zen Mode",
|
||||
"composer.select_category": "Select a category",
|
||||
"bootbox.ok": "OK",
|
||||
"bootbox.cancel": "Annuller",
|
||||
"bootbox.confirm": "Bekræft",
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
"upvoted_your_post_in_multiple": "<strong>%1</strong> og %2 andre har syntes godt om dit indlæg i<strong>%3</strong>.",
|
||||
"moved_your_post": "<strong>%1</strong> har flyttet dit indlæg til <strong>%2</strong>",
|
||||
"moved_your_topic": "<strong>%1</strong> har flyttet <strong>%2</strong>",
|
||||
"favourited_your_post_in": "<strong>%1</strong> har bogmærket dit indlæg i <strong>%2</strong>.",
|
||||
"favourited_your_post_in_dual": "<strong>%1</strong> og <strong>%2</strong> har bogmærket dit indlæg i <strong>%3</strong>.",
|
||||
"favourited_your_post_in_multiple": "<strong>%1</strong> og %2 andre har bogmærket dit indlæg i <strong>%3</strong>.",
|
||||
"user_flagged_post_in": "<strong>%1</strong> har anmeldt et indlæg i <strong>%2</strong>",
|
||||
"user_flagged_post_in_dual": "<strong>%1</strong> og <strong>%2</strong> har anmeldt et indlæg i <strong>%3</strong>",
|
||||
"user_flagged_post_in_multiple": "<strong>%1</strong> og %2 andre har anmeldt et indlæg i <strong>%3</strong>",
|
||||
|
||||
@@ -7,19 +7,16 @@
|
||||
"popular-alltime": "Top populære tråde",
|
||||
"recent": "Seneste tråde",
|
||||
"flagged-posts": "Anmeldte Indlæg",
|
||||
"ip-blacklist": "IP Blacklist",
|
||||
"users/online": "Online brugere",
|
||||
"users/latest": "Seneste brugere",
|
||||
"users/sort-posts": "Brugere med de fleste indlæg",
|
||||
"users/sort-reputation": "Brugere med mest omdømme",
|
||||
"users/banned": "Banlyste Brugere",
|
||||
"users/most-flags": "Most flagged users",
|
||||
"users/search": "Bruger søgning",
|
||||
"notifications": "Notifikationer",
|
||||
"tags": "Tags",
|
||||
"tag": "Tråde tagget under \"%1\"",
|
||||
"register": "Registre en konto",
|
||||
"registration-complete": "Registration complete",
|
||||
"login": "Login til din konto",
|
||||
"reset": "Nulstil din adgangskode",
|
||||
"categories": "Kategorier",
|
||||
@@ -31,13 +28,12 @@
|
||||
"account/edit/password": "Redigerer adgangskode for \"%1\"",
|
||||
"account/edit/username": "Redigerer brugernavn for \"%1\"",
|
||||
"account/edit/email": "Redigerer email for \"%1\"",
|
||||
"account/info": "Account Info",
|
||||
"account/following": "Personer som %1 følger",
|
||||
"account/followers": "Personer som følger %1",
|
||||
"account/posts": "Indlæg oprettet af %1",
|
||||
"account/topics": "Tråde lavet af %1",
|
||||
"account/groups": "%1s grupper",
|
||||
"account/bookmarks": "%1's Bookmarked Posts",
|
||||
"account/favourites": "%1's Bogmærkede Indlæg",
|
||||
"account/settings": "Bruger instillinger",
|
||||
"account/watched": "Tråde fulgt af %1",
|
||||
"account/upvoted": "Indlæg syntes godt om af %1",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"register": "Tilmeld",
|
||||
"cancel_registration": "Cancel Registration",
|
||||
"help.email": "Den email er skjult som standard.",
|
||||
"help.username_restrictions": "Et unikt brugernavn mellem %1 og %2 karakterer. Andre kan nævne dig med @<span id='yourUsername'>brugernavn</span>.",
|
||||
"help.minimum_password_length": "Din adgangskode skal være på mindst %1 karakterer.",
|
||||
@@ -16,8 +15,5 @@
|
||||
"alternative_registration": "Alternativ registrering",
|
||||
"terms_of_use": "Betingelser for brug",
|
||||
"agree_to_terms_of_use": "Jeg acceptere betingelserne for brug",
|
||||
"terms_of_use_error": "You must agree to the Terms of Use",
|
||||
"registration-added-to-queue": "Din registrering er blevet tilføjet til godkendelses køen. Du vil mostage en email når du er blevet accepteret af en administrator.",
|
||||
"interstitial.intro": "We require some additional information before we can create your account.",
|
||||
"interstitial.errors-found": "We could not complete your registration:"
|
||||
"registration-added-to-queue": "Din registrering er blevet tilføjet til godkendelses køen. Du vil mostage en email når du er blevet accepteret af en administrator."
|
||||
}
|
||||
@@ -13,7 +13,6 @@
|
||||
"notify_me": "Bliv notificeret ved nye svar i dette emne",
|
||||
"quote": "Citer",
|
||||
"reply": "Svar",
|
||||
"replies_to_this_post": "Replies: %1",
|
||||
"reply-as-topic": "Svar som emne",
|
||||
"guest-login-reply": "Login for at svare",
|
||||
"edit": "Rediger",
|
||||
@@ -27,29 +26,12 @@
|
||||
"tools": "Værktøjer",
|
||||
"flag": "Marker",
|
||||
"locked": "Låst",
|
||||
"pinned": "Pinned",
|
||||
"moved": "Moved",
|
||||
"bookmark_instructions": "Click here to return to the last read post in this thread.",
|
||||
"flag_title": "Meld dette indlæg til moderation",
|
||||
"flag_success": "Dette indlæg er blevet meldt til moderation.",
|
||||
"flag_manage_title": "Flagged post in %1",
|
||||
"flag_manage_history": "Action History",
|
||||
"flag_manage_no_history": "No event history to report",
|
||||
"flag_manage_assignee": "Assignee",
|
||||
"flag_manage_state": "State",
|
||||
"flag_manage_state_open": "New/Open",
|
||||
"flag_manage_state_wip": "Work in Progress",
|
||||
"flag_manage_state_resolved": "Resolved",
|
||||
"flag_manage_state_rejected": "Rejected",
|
||||
"flag_manage_notes": "Shared Notes",
|
||||
"flag_manage_update": "Update Flag Status",
|
||||
"flag_manage_history_assignee": "Assigned to %1",
|
||||
"flag_manage_history_state": "Updated state to %1",
|
||||
"flag_manage_history_notes": "Updated flag notes",
|
||||
"flag_manage_saved": "Flag Details Updated",
|
||||
"deleted_message": "Denne tråd er blevet slettet. Kun brugere med emne behandlings privilegier kan se den.",
|
||||
"following_topic.message": "Du vil nu modtage notifikationer når nogle skriver et indlæg i dette emne.",
|
||||
"not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.",
|
||||
"not_following_topic.message": "Du vil ikke længere modtage notifikationer fra dette emne.",
|
||||
"ignoring_topic.message": "You will no longer see this topic in the unread topics list. You will be notified when you are mentioned or your post is up voted.",
|
||||
"login_to_subscribe": "Venligt registrer eller login for at abbonere på dette emne.",
|
||||
"markAsUnreadForAll.success": "Emnet er market ulæst for alle.",
|
||||
@@ -67,7 +49,7 @@
|
||||
"not-watching.description": "Do not notify me of new replies.<br/>Show topic in unread if category is not ignored.",
|
||||
"ignoring.description": "Do not notify me of new replies.<br/>Do not show topic in unread.",
|
||||
"thread_tools.title": "Emne værktøjer",
|
||||
"thread_tools.markAsUnreadForAll": "Mark unread for all",
|
||||
"thread_tools.markAsUnreadForAll": "Marker som ulæst",
|
||||
"thread_tools.pin": "Fastgør tråd",
|
||||
"thread_tools.unpin": "Frigør tråd",
|
||||
"thread_tools.lock": "Lås tråd",
|
||||
@@ -90,9 +72,9 @@
|
||||
"disabled_categories_note": "Deaktiverede kategorier er nedtonede",
|
||||
"confirm_move": "Flyt",
|
||||
"confirm_fork": "Fraskil",
|
||||
"bookmark": "Bookmark",
|
||||
"bookmarks": "Bookmarks",
|
||||
"bookmarks.has_no_bookmarks": "You haven't bookmarked any posts yet.",
|
||||
"favourite": "Bogmærke",
|
||||
"favourites": "Bogmærker",
|
||||
"favourites.has_no_favourites": "Du har ikke tilføjet nogle indlæg til dine bogmærker endnu.",
|
||||
"loading_more_posts": "Indlæser flere indlæg",
|
||||
"move_topic": "Flyt tråd",
|
||||
"move_topics": "Flyt tråde",
|
||||
@@ -102,7 +84,6 @@
|
||||
"topic_will_be_moved_to": "Denne tråd vil blive flyttet til katagorien",
|
||||
"fork_topic_instruction": "Klik på indlæg du ønsker at fraskille",
|
||||
"fork_no_pids": "Ingen indlæg valgt",
|
||||
"fork_pid_count": "%1 post(s) selected",
|
||||
"fork_success": "Tråden blev fraskilt! Klik her for at gå til den fraskilte tråd.",
|
||||
"delete_posts_instruction": "Klik på de indlæg du vil slette/rense",
|
||||
"composer.title_placeholder": "Angiv din trådtittel her ...",
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
"postcount": "Antal indlæg",
|
||||
"email": "Email",
|
||||
"confirm_email": "Bekræft email",
|
||||
"account_info": "Account Info",
|
||||
"ban_account": "Ban Konto",
|
||||
"ban_account_confirm": "Ønsker du virkelig at banne denne konto?",
|
||||
"unban_account": "Afban Konto",
|
||||
@@ -23,7 +22,7 @@
|
||||
"profile": "Profil",
|
||||
"profile_views": "Profil visninger",
|
||||
"reputation": "Omdømme",
|
||||
"bookmarks": "Bookmarks",
|
||||
"favourites": "Bogmærker",
|
||||
"watched": "Set",
|
||||
"followers": "Followers",
|
||||
"following": "Følger",
|
||||
@@ -31,8 +30,7 @@
|
||||
"signature": "Signatur",
|
||||
"birthday": "Fødselsdag",
|
||||
"chat": "Chat",
|
||||
"chat_with": "Continue chat with %1",
|
||||
"new_chat_with": "Start new chat with %1",
|
||||
"chat_with": "Chat med %1",
|
||||
"follow": "Følg",
|
||||
"unfollow": "Følg ikke",
|
||||
"more": "Mere",
|
||||
@@ -90,11 +88,6 @@
|
||||
"topics_per_page": "Emner per side",
|
||||
"posts_per_page": "Indlæg per side",
|
||||
"notification_sounds": "Afspil en lyd når du modtager en notifikation",
|
||||
"notifications_and_sounds": "Notifications & Sounds",
|
||||
"incoming-message-sound": "Incoming message sound",
|
||||
"outgoing-message-sound": "Outgoing message sound",
|
||||
"notification-sound": "Notification sound",
|
||||
"no-sound": "No sound",
|
||||
"browsing": "Gennemsenings indstillinger",
|
||||
"open_links_in_new_tab": "Åben udgående link i en ny tab",
|
||||
"enable_topic_searching": "Slå In-Topic søgning til",
|
||||
@@ -102,8 +95,8 @@
|
||||
"delay_image_loading": "Delay Image Loading",
|
||||
"image_load_delay_help": "If enabled, images in topics will not load until they are scrolled into view",
|
||||
"scroll_to_my_post": "After posting a reply, show the new post",
|
||||
"follow_topics_you_reply_to": "Watch topics that you reply to",
|
||||
"follow_topics_you_create": "Watch topics you create",
|
||||
"follow_topics_you_reply_to": "Følg emner du har skrevet indlæg i",
|
||||
"follow_topics_you_create": "Følg emner du opretter",
|
||||
"grouptitle": "Group Title",
|
||||
"no-group-title": "Ingen gruppe titel",
|
||||
"select-skin": "Vælg et skin",
|
||||
@@ -114,17 +107,5 @@
|
||||
"custom_route_help": "Indtast et rute navn her, uden nogle foregående skråstreg (f.eks. \"nyligt\" eller \"populært\")",
|
||||
"sso.title": "Enkeltgangs Sign-on Servicer",
|
||||
"sso.associated": "Forbundet med",
|
||||
"sso.not-associated": "Klik her for at forbinde med",
|
||||
"info.latest-flags": "Latest Flags",
|
||||
"info.no-flags": "No Flagged Posts Found",
|
||||
"info.ban-history": "Recent Ban History",
|
||||
"info.no-ban-history": "This user has never been banned",
|
||||
"info.banned-until": "Banned until %1",
|
||||
"info.banned-permanently": "Banned permanently",
|
||||
"info.banned-reason-label": "Reason",
|
||||
"info.banned-no-reason": "No reason given.",
|
||||
"info.username-history": "Username History",
|
||||
"info.email-history": "Email History",
|
||||
"info.moderation-note": "Moderation Note",
|
||||
"info.moderation-note.success": "Moderation note saved"
|
||||
"sso.not-associated": "Klik her for at forbinde med"
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
"latest_users": "Seneste brugere",
|
||||
"top_posters": "Top Postere",
|
||||
"most_reputation": "Mest Omdømme",
|
||||
"most_flags": "Most Flags",
|
||||
"search": "Søg",
|
||||
"enter_username": "Indtast brugernavn for at søge",
|
||||
"load_more": "Indlæs mere",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"category": "Kategorie",
|
||||
"subcategories": "Unterkategorien",
|
||||
"new_topic_button": "Neues Thema",
|
||||
"guest-login-post": "Melde dich an, um einen Beitrag zu erstellen",
|
||||
"guest-login-post": "Anmelden, um einen Beitrag zu erstellen",
|
||||
"no_topics": "<strong>Es gibt noch keine Themen in dieser Kategorie.</strong><br />Warum beginnst du nicht eins?",
|
||||
"browsing": "Aktiv",
|
||||
"no_replies": "Niemand hat geantwortet",
|
||||
@@ -10,11 +10,7 @@
|
||||
"share_this_category": "Teile diese Kategorie",
|
||||
"watch": "Beobachten",
|
||||
"ignore": "Ignorieren",
|
||||
"watching": "Beobachte",
|
||||
"ignoring": "Ignoriere",
|
||||
"watching.description": "Zeige Themen in",
|
||||
"ignoring.description": "Zeige keine Themen in Ungelesen",
|
||||
"watch.message": "Du beobachtest jetzt Änderungen in dieser Kategorie und allen Subkategorien",
|
||||
"ignore.message": "Du ignorierst jetzt Änderungen in dieser Kategorie und allen Subkategorien",
|
||||
"watch.message": "Du beobachtest jetzt Änderungen in dieser Kategorie",
|
||||
"ignore.message": "Du ignorierst jetzt Änderungen in dieser Kategorie",
|
||||
"watched-categories": "Zuletzt angesehen Kategorien"
|
||||
}
|
||||
@@ -20,7 +20,6 @@
|
||||
"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": "Du kannst denn Chat erst nutzen wenn deine E-Mail bestätigt wurde, bitte klicke hier, um deine E-Mail zu bestätigen.",
|
||||
"email-not-confirmed-email-sent": "Deine E-Mail wurde noch nicht bestätigt, bitte schaue in deinem Posteingang nach der Bestätigungsmail.",
|
||||
"no-email-to-confirm": "Dieses Forum setzt eine E-Mail-Bestätigung voraus, bitte klicke hier um eine E-Mail-Adresse einzugeben.",
|
||||
"email-confirm-failed": "Wir konnten deine E-Mail-Adresse nicht bestätigen, bitte versuch es später noch einmal",
|
||||
"confirm-email-already-sent": "Die Bestätigungsmail wurde verschickt, bitte warte %1 Minute(n) um eine Weitere zu verschicken.",
|
||||
@@ -29,10 +28,8 @@
|
||||
"username-too-long": "Benutzername ist zu lang",
|
||||
"password-too-long": "Passwort ist zu lang",
|
||||
"user-banned": "Benutzer ist gesperrt",
|
||||
"user-banned-reason": "Sorry, this account has been banned (Reason: %1)",
|
||||
"user-too-new": "Entschuldigung, du musst %1 Sekunde(n) warten, bevor du deinen ersten Beitrag schreiben kannst.",
|
||||
"blacklisted-ip": "Deine IP-Adresse ist für diese Plattform gesperrt. Sollte dies ein Irrtum sein, dann kontaktiere bitte einen Administrator.",
|
||||
"ban-expiry-missing": "Bitte gebe ein Enddatum für diesen Ban an",
|
||||
"no-category": "Die Kategorie existiert nicht",
|
||||
"no-topic": "Das Thema existiert nicht",
|
||||
"no-post": "Der Beitrag existiert nicht",
|
||||
@@ -49,20 +46,10 @@
|
||||
"post-edit-duration-expired-hours-minutes": "Du darfst Beiträge lediglich innerhalb von %1 Stunde/n und %2 Minute/n nach dem Erstellen editieren",
|
||||
"post-edit-duration-expired-days": "Du darfst Beiträge lediglich innerhalb von %1 Tag/en nach dem Erstellen editieren",
|
||||
"post-edit-duration-expired-days-hours": "Du darfst Beiträge lediglich innerhalb von %1 Tag/en und %2 Stunde/n nach dem Erstellen editieren",
|
||||
"post-delete-duration-expired": "Du darfst Beiträge lediglich innerhalb von %1 Sekunden nach dem Erstellen löschen",
|
||||
"post-delete-duration-expired-minutes": "Du darfst Beiträge lediglich innerhalb von %1 Minute(n) nach dem Erstellen löschen",
|
||||
"post-delete-duration-expired-minutes-seconds": "Du darfst Beiträge lediglich innerhalb von %1 Minute(n) und %2 Sekunde(n) nach dem Erstellen löschen",
|
||||
"post-delete-duration-expired-hours": "Du darfst Beiträge lediglich innerhalb von %1 Stunde/n nach dem Erstellen löschen",
|
||||
"post-delete-duration-expired-hours-minutes": "Du darfst Beiträge lediglich innerhalb von %1 Stunde(n) und %2 Minute(n) nach dem Erstellen löschen",
|
||||
"post-delete-duration-expired-days": "Du darfst Beiträge lediglich innerhalb von %1 Tag(en) nach dem Erstellen löschen",
|
||||
"post-delete-duration-expired-days-hours": "Du darfst Beiträge lediglich innerhalb von %1 Tag/en und %2 Stunde/n nach dem Erstellen löschen",
|
||||
"cant-delete-topic-has-reply": "Du kannst ein Thema nicht löschen, wenn es bereits eine Antwort gibt",
|
||||
"cant-delete-topic-has-replies": "Du kannst ein Thema nicht löschen, wenn es bereits %1 Antworten gibt",
|
||||
"content-too-short": "Bitte schreibe einen längeren Beitrag. Beiträge sollten mindestens %1 Zeichen enthalten.",
|
||||
"content-too-long": "Bitte schreibe einen kürzeren Beitrag. Beiträge können nicht länger als %1 Zeichen sein.",
|
||||
"title-too-short": "Bitte gebe einen längeren Titel ein. Ein Titel muss mindestens %1 Zeichen enthalten.",
|
||||
"title-too-long": "Bitten gebe einen kürzeren Titel ein. Ein Titel darf nicht mehr als %1 Zeichen enthalten.",
|
||||
"category-not-selected": "Kategorie nicht ausgewählt",
|
||||
"too-many-posts": "Du kannst nur einen Beitrag innerhalb von %1 Sekunden erstellen - Bitte warte bevor Du erneut einen Beitrag erstellst.",
|
||||
"too-many-posts-newbie": "Als neuer Benutzer kannst du nur einen Beitrag innerhalb von %1 Sekunden erstellen bis dein Ansehen %2 erreicht hat - Bitte warte bevor du erneut einen Beitrag erstellst.",
|
||||
"tag-too-short": "Bitte gebe ein längeres Schlagwort ein. Tags sollten mindestens %1 Zeichen enthalten.",
|
||||
@@ -72,16 +59,15 @@
|
||||
"still-uploading": "Bitte warte bis der Vorgang abgeschlossen ist.",
|
||||
"file-too-big": "Die maximale Dateigröße ist %1 kB, bitte lade eine kleinere Datei hoch.",
|
||||
"guest-upload-disabled": "Uploads für Gäste wurden deaktiviert.",
|
||||
"already-bookmarked": "Du hast diesen Beitrag bereits als Lesezeichen gespeichert",
|
||||
"already-unbookmarked": "Du hast diesen Beitrag bereits aus deinen Lesezeichen entfernt",
|
||||
"already-favourited": "Du hast diesen Beitrag bereits als Lesezeichen gespeichert",
|
||||
"already-unfavourited": "Du hast diesen Beitrag bereits aus deinen Lesezeichen entfernt",
|
||||
"cant-ban-other-admins": "Du kannst andere Administratoren nicht sperren!",
|
||||
"cant-remove-last-admin": "Du bist der einzige Administrator. Füge zuerst einen anderen Administrator hinzu, bevor du dich selbst als Administrator entfernst",
|
||||
"cant-delete-admin": "Bevor du versuchst dieses Konto zu löschen, entferne die zugehörigen Administratorrechte.",
|
||||
"cant-delete-admin": "Remove administrator privileges from this account before attempting to delete it.",
|
||||
"invalid-image-type": "Falsche Bildart. Erlaubte Arten sind: %1",
|
||||
"invalid-image-extension": "Ungültige Dateinamenerweiterung",
|
||||
"invalid-file-type": "Ungültiger Dateityp. Erlaubte Typen sind: %1",
|
||||
"group-name-too-short": "Gruppenname zu kurz",
|
||||
"group-name-too-long": "Gruppenname zu lang",
|
||||
"group-already-exists": "Gruppe existiert bereits",
|
||||
"group-name-change-not-allowed": "Du kannst den Namen der Gruppe nicht ändern",
|
||||
"group-already-member": "Bereits Teil dieser Gruppe",
|
||||
@@ -123,9 +109,5 @@
|
||||
"no-session-found": "Keine Login-Sitzung gefunden!",
|
||||
"not-in-room": "Benutzer nicht im Raum",
|
||||
"no-users-in-room": "In diesem Raum befinden sich keine Benutzer.",
|
||||
"cant-kick-self": "Du kannst dich nicht selber aus der Gruppe entfernen.",
|
||||
"no-users-selected": "Keine Benutzer ausgewählt",
|
||||
"invalid-home-page-route": "Ungültiger Startseitenpfad",
|
||||
"invalid-session": "Sitzungsdiskrepanz",
|
||||
"invalid-session-text": "Es scheint als wäre deine Login-Sitzung nicht mehr aktiv oder sie passt nicht mehr mit der des Servers. Bitte aktualisiere diese Seite."
|
||||
"cant-kick-self": "Du kannst dich nicht selber aus der Gruppe entfernen."
|
||||
}
|
||||
@@ -9,8 +9,6 @@
|
||||
"404.message": "Diese Seite existiert nicht. Zur <a href='%1/'>Homepage</a> zurückkehren.",
|
||||
"500.title": "Interner Fehler.",
|
||||
"500.message": "Ups! Scheint als wäre etwas schief gelaufen!",
|
||||
"400.title": "Ungültige Anforderung",
|
||||
"400.message": "Es scheint als wäre dieser Link fehlerhaft, bitte überprüfe ihn und versuche es erneut oder gehe zurück zur <a href='%1/'>Startseite</a>.",
|
||||
"register": "Registrieren",
|
||||
"login": "Anmelden",
|
||||
"please_log_in": "Bitte anmelden",
|
||||
@@ -19,7 +17,6 @@
|
||||
"welcome_back": "Willkommen zurück",
|
||||
"you_have_successfully_logged_in": "Du hast dich erfolgreich angemeldet",
|
||||
"save_changes": "Speichere Änderungen",
|
||||
"save": "Speichern",
|
||||
"close": "Schließen",
|
||||
"pagination": "Seitennummerierung",
|
||||
"pagination.out_of": "%1 von %2",
|
||||
@@ -53,9 +50,7 @@
|
||||
"topics": "Themen",
|
||||
"posts": "Beiträge",
|
||||
"best": "Bestbewertet",
|
||||
"upvoters": "Upvoter",
|
||||
"upvoted": "Positiv bewertet",
|
||||
"downvoters": "Downvoter",
|
||||
"downvoted": "Negativ bewertet",
|
||||
"views": "Aufrufe",
|
||||
"reputation": "Ansehen",
|
||||
@@ -75,7 +70,6 @@
|
||||
"norecenttopics": "Keine aktuellen Themen",
|
||||
"recentposts": "Aktuelle Beiträge",
|
||||
"recentips": "Zuletzt angemeldete IPs",
|
||||
"moderator_tools": "Moderatorenwerkzeuge",
|
||||
"away": "Abwesend",
|
||||
"dnd": "Nicht stören",
|
||||
"invisible": "Unsichtbar",
|
||||
@@ -96,11 +90,5 @@
|
||||
"enter_page_number": "Seitennummer eingeben",
|
||||
"upload_file": "Datei hochladen",
|
||||
"upload": "Hochladen",
|
||||
"allowed-file-types": "Erlaubte Dateitypen sind %1",
|
||||
"unsaved-changes": "Es gibt ungespeicherte Änderungen. Bist du dir sicher, dass du die Seite verlassen willst?",
|
||||
"reconnecting-message": "Es scheint als hättest du die Verbindung zu %1 verloren, bitte warte während wir versuchen sie wieder aufzubauen.",
|
||||
"play": "Play",
|
||||
"cookies.message": "This website uses cookies to ensure you get the best experience on our website.",
|
||||
"cookies.accept": "Got it!",
|
||||
"cookies.learn_more": "Learn More"
|
||||
"allowed-file-types": "Erlaubte Dateitypen sind %1"
|
||||
}
|
||||
@@ -50,7 +50,5 @@
|
||||
"membership.leave-group": "Gruppe verlassen",
|
||||
"membership.reject": "Ablehnen",
|
||||
"new-group.group_name": "Gruppenname:",
|
||||
"upload-group-cover": "Gruppentitelbild hochladen",
|
||||
"bulk-invite-instructions": "Gib eine mit Kommata getrennte Liste von Benutzernamen ein, um sie in diese Gruppe aufzunehmen",
|
||||
"bulk-invite": "Mehrere einladen"
|
||||
"upload-group-cover": "Gruppentitelbild hochladen"
|
||||
}
|
||||
@@ -7,6 +7,5 @@
|
||||
"alternative_logins": "Alternative Logins",
|
||||
"failed_login_attempt": "Login fehlgeschlagen",
|
||||
"login_successful": "Du hast dich erfolgreich eingeloggt!",
|
||||
"dont_have_account": "Du hast noch kein Konto?",
|
||||
"logged-out-due-to-inactivity": "Du wurdest aufgrund von Inaktivität aus dem Adminbereich ausgeloggt"
|
||||
"dont_have_account": "Du hast noch kein Konto?"
|
||||
}
|
||||
@@ -18,6 +18,7 @@
|
||||
"chat.thirty_days": "30 Tage",
|
||||
"chat.three_months": "3 Monate",
|
||||
"chat.delete_message_confirm": "Bist du sicher, dass du diese Nachricht löschen möchtest?",
|
||||
"chat.roomname": "Raum %1",
|
||||
"chat.add-users-to-room": "Benutzer zum Raum hinzufügen",
|
||||
"composer.compose": "Verfassen",
|
||||
"composer.show_preview": "Vorschau zeigen",
|
||||
@@ -36,8 +37,6 @@
|
||||
"composer.formatting.picture": "Bild",
|
||||
"composer.upload-picture": "Bild hochladen",
|
||||
"composer.upload-file": "Datei hochladen",
|
||||
"composer.zen_mode": "Zen Modus",
|
||||
"composer.select_category": "Wähle eine Kategorie",
|
||||
"bootbox.ok": "OK",
|
||||
"bootbox.cancel": "Abbrechen",
|
||||
"bootbox.confirm": "Bestätigen",
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
"upvoted_your_post_in_multiple": "<strong>%1</strong> und %2 andere Nutzer haben deinen Beitrag in <strong>%3</strong> positiv bewertet.",
|
||||
"moved_your_post": "<strong>%1</strong> hat deinen Beitrag nach <strong>%2</strong> verschoben.",
|
||||
"moved_your_topic": "<strong>%1</strong> hat <strong>%2</strong> verschoben.",
|
||||
"favourited_your_post_in": "<strong>%1</strong> hat deinen Beitrag in <strong>%2</strong> als Lesezeichen gespeichert.",
|
||||
"favourited_your_post_in_dual": "<strong>%1</strong> und <strong>%2</strong> haben deinen Beitrag in <strong>%3</strong> als Lesezeichen gespeichert.",
|
||||
"favourited_your_post_in_multiple": "<strong>%1</strong> und %2 andere Nutzer haben deinen Beitrag in <strong>%3</strong> als Lesezeichen gespeichert.",
|
||||
"user_flagged_post_in": "<strong>%1</strong> hat einen Beitrag in </strong>%2</strong> gemeldet",
|
||||
"user_flagged_post_in_dual": "<strong>%1</strong> und <strong>%2</strong> haben einen Beitrag in <strong>%3</strong> gemeldet",
|
||||
"user_flagged_post_in_multiple": "<strong>%1</strong> und %2 andere Nutzer haben einen Beitrag in <strong>%3</strong> gemeldet",
|
||||
|
||||
@@ -7,19 +7,16 @@
|
||||
"popular-alltime": "Beliebteste Themen",
|
||||
"recent": "Neueste Themen",
|
||||
"flagged-posts": "Gemeldete Beiträge",
|
||||
"ip-blacklist": "IP Blacklist",
|
||||
"users/online": "Benutzer online",
|
||||
"users/latest": "Neuste Benutzer",
|
||||
"users/sort-posts": "Benutzer mit den meisten Beiträgen",
|
||||
"users/sort-reputation": "Benutzer mit dem höchsten Ansehen",
|
||||
"users/banned": "Gesperrte Benutzer",
|
||||
"users/most-flags": "Am meisten gemeldete Benutzer",
|
||||
"users/search": "Benutzer Suche",
|
||||
"notifications": "Benachrichtigungen",
|
||||
"tags": "Markierungen",
|
||||
"tag": "Themen markiert unter \"%1\"",
|
||||
"register": "Einen Benutzer erstellen",
|
||||
"registration-complete": "Registration abgeschlossen",
|
||||
"login": "Einloggen",
|
||||
"reset": "Passwort zurücksetzen",
|
||||
"categories": "Kategorien",
|
||||
@@ -31,13 +28,12 @@
|
||||
"account/edit/password": "Bearbeite Passwort von \"%1\"",
|
||||
"account/edit/username": "Bearbeite Benutzernamen von \"%1\"",
|
||||
"account/edit/email": "Bearbeite E-Mail von \"%1\"",
|
||||
"account/info": "Kontoinformationen",
|
||||
"account/following": "Nutzer, denen %1 folgt",
|
||||
"account/followers": "Nutzer, die %1 folgen",
|
||||
"account/posts": "Beiträge von %1",
|
||||
"account/topics": "Von %1 verfasste Themen",
|
||||
"account/groups": "Gruppen von %1",
|
||||
"account/bookmarks": "Lesezeichen von %1",
|
||||
"account/favourites": "Lesezeichen von %1",
|
||||
"account/settings": "Benutzer-Einstellungen",
|
||||
"account/watched": "Von %1 beobachtete Themen",
|
||||
"account/upvoted": "Von %1 positiv bewertete Beiträge",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"register": "Registrieren",
|
||||
"cancel_registration": "Registrierungsvorgang abbrechen",
|
||||
"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.minimum_password_length": "Dein Passwort muss mindestens %1 Zeichen lang sein.",
|
||||
@@ -16,8 +15,5 @@
|
||||
"alternative_registration": "Alternative Registrierung",
|
||||
"terms_of_use": "Nutzungsbedingungen",
|
||||
"agree_to_terms_of_use": "Ich stimme den Nutzungsbedingungen zu",
|
||||
"terms_of_use_error": "Du musst den Nutzungsbedingungen zustimmen",
|
||||
"registration-added-to-queue": "Deine Registration wurde abgeschickt. Du wirst eine E-Mail erhalten, sobald sie von einem Administrator akzeptiert wird.",
|
||||
"interstitial.intro": "Wir benötigen ein wenig mehr Informationen bevor wir deinen Account erstellen können.",
|
||||
"interstitial.errors-found": "Wir konnten deinen Registrierungsvorgang nicht abschließen:"
|
||||
"registration-added-to-queue": "Deine Registration wurde abgeschickt. Du wirst eine E-Mail erhalten, sobald sie von einem Administrator akzeptiert wird."
|
||||
}
|
||||
@@ -13,7 +13,6 @@
|
||||
"notify_me": "Erhalte eine Benachrichtigung bei neuen Antworten zu diesem Thema.",
|
||||
"quote": "Zitieren",
|
||||
"reply": "Antworten",
|
||||
"replies_to_this_post": "Replies: %1",
|
||||
"reply-as-topic": "In einem neuen Thema antworten",
|
||||
"guest-login-reply": "Anmelden zum Antworten",
|
||||
"edit": "Bearbeiten",
|
||||
@@ -27,29 +26,12 @@
|
||||
"tools": "Werkzeuge",
|
||||
"flag": "Markieren",
|
||||
"locked": "Gesperrt",
|
||||
"pinned": "Angepinnt",
|
||||
"moved": "Verschoben",
|
||||
"bookmark_instructions": "Klicke hier, um zum letzten gelesenen Beitrag des Themas zurückzukehren.",
|
||||
"flag_title": "Diesen Beitrag zur Moderation markieren",
|
||||
"flag_success": "Dieser Beitrag wurde erfolgreich für die Moderation markiert.",
|
||||
"flag_manage_title": "Gemeldeter Beitrag in %1",
|
||||
"flag_manage_history": "Aktions-Verlauf",
|
||||
"flag_manage_no_history": "Kein Ereignisverlauf zum Bericht",
|
||||
"flag_manage_assignee": "Zugeordnete Person",
|
||||
"flag_manage_state": "Zustand",
|
||||
"flag_manage_state_open": "Neu/Offen",
|
||||
"flag_manage_state_wip": "In Arbeit",
|
||||
"flag_manage_state_resolved": "Gelöst",
|
||||
"flag_manage_state_rejected": "Abgelehnt",
|
||||
"flag_manage_notes": "Geteilte Notizen",
|
||||
"flag_manage_update": "Meldungsstatus aktualisieren",
|
||||
"flag_manage_history_assignee": "%1 zugewiesen",
|
||||
"flag_manage_history_state": "Status zu %1 aktualisiert",
|
||||
"flag_manage_history_notes": "Meldungsnotizen aktualisiert",
|
||||
"flag_manage_saved": "Meldungsdetails aktualisiert",
|
||||
"deleted_message": "Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.",
|
||||
"following_topic.message": "Du erhälst nun eine Benachrichtigung, wenn jemand einen Beitrag zu diesem Thema verfasst.",
|
||||
"not_following_topic.message": "Ungelesene Beiträge in diesem Thema werden angezeigt, aber du erhältst keine Benachrichtigung wenn jemand einen Beitrag zu diesem Thema verfasst.",
|
||||
"not_following_topic.message": "Du erhälst keine weiteren Benachrichtigungen zu diesem Thema mehr.",
|
||||
"ignoring_topic.message": "Ungelesene Beiträge in diesem Thema werden nicht mehr angezeigt. Du erhältst eine Benachrichtigung wenn du in diesem Thema erwähnt wirst oder deine Beiträge positiv bewertet werden.",
|
||||
"login_to_subscribe": "Bitte registrieren oder einloggen um dieses Thema zu abonnieren",
|
||||
"markAsUnreadForAll.success": "Thema für Alle als ungelesen markiert.",
|
||||
@@ -67,7 +49,7 @@
|
||||
"not-watching.description": "Keine Benachrichtigung bei neuen Beiträgen.<br/>Ungelesen Beiträge anzeigen wenn die Kategorie nicht ignoriert wird.",
|
||||
"ignoring.description": "Keine Benachrichtigung bei neuen Beiträgen.<br/>Ungelesene Beiträge nicht anzeigen.",
|
||||
"thread_tools.title": "Themen-Werkzeuge",
|
||||
"thread_tools.markAsUnreadForAll": "Für alle als ungelesen markiert.",
|
||||
"thread_tools.markAsUnreadForAll": "Als ungelesen markieren",
|
||||
"thread_tools.pin": "Thema anheften",
|
||||
"thread_tools.unpin": "Thema nicht mehr anheften",
|
||||
"thread_tools.lock": "Thema schließen",
|
||||
@@ -90,9 +72,9 @@
|
||||
"disabled_categories_note": "Deaktivierte Kategorien sind ausgegraut.",
|
||||
"confirm_move": "Verschieben",
|
||||
"confirm_fork": "Aufspalten",
|
||||
"bookmark": "Lesezeichen",
|
||||
"bookmarks": "Lesezeichen",
|
||||
"bookmarks.has_no_bookmarks": "Du hast noch keine Beiträge als Lesezeichen gespeichert.",
|
||||
"favourite": "Lesezeichen",
|
||||
"favourites": "Lesezeichen",
|
||||
"favourites.has_no_favourites": "Du hast noch keine Beiträge als Lesezeichen gespeichert.",
|
||||
"loading_more_posts": "Lade mehr Beiträge",
|
||||
"move_topic": "Thema verschieben",
|
||||
"move_topics": "Themen verschieben",
|
||||
@@ -102,7 +84,6 @@
|
||||
"topic_will_be_moved_to": "Dieses Thema wird verschoben nach",
|
||||
"fork_topic_instruction": "Klicke auf die Beiträge, die aufgespaltet werden sollen",
|
||||
"fork_no_pids": "Keine Beiträge ausgewählt!",
|
||||
"fork_pid_count": "%1 Beiträge ausgewählt",
|
||||
"fork_success": "Thema erfolgreich aufgespalten! Klicke hier, um zum aufgespalteten Thema zu gelangen.",
|
||||
"delete_posts_instruction": "Wähle die zu löschenden Beiträge aus",
|
||||
"composer.title_placeholder": "Hier den Titel des Themas eingeben...",
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
"postcount": "Beiträge",
|
||||
"email": "E-Mail",
|
||||
"confirm_email": "E-Mail bestätigen",
|
||||
"account_info": "Kontoinformationen",
|
||||
"ban_account": "Konto sperren",
|
||||
"ban_account_confirm": "Bist du sicher, dass du diesen Benutzer sperren möchtest?",
|
||||
"unban_account": "Konto entsperren",
|
||||
@@ -23,7 +22,7 @@
|
||||
"profile": "Profil",
|
||||
"profile_views": "Profilaufrufe",
|
||||
"reputation": "Ansehen",
|
||||
"bookmarks": "Lesezeichen",
|
||||
"favourites": "Lesezeichen",
|
||||
"watched": "Beobachtet",
|
||||
"followers": "Follower",
|
||||
"following": "Folge ich",
|
||||
@@ -31,8 +30,7 @@
|
||||
"signature": "Signatur",
|
||||
"birthday": "Geburtstag",
|
||||
"chat": "Chat",
|
||||
"chat_with": "Continue chat with %1",
|
||||
"new_chat_with": "Start new chat with %1",
|
||||
"chat_with": "Chat mit %1",
|
||||
"follow": "Folgen",
|
||||
"unfollow": "Nicht mehr folgen",
|
||||
"more": "Mehr",
|
||||
@@ -90,11 +88,6 @@
|
||||
"topics_per_page": "Themen pro Seite",
|
||||
"posts_per_page": "Beiträge pro Seite",
|
||||
"notification_sounds": "Ton abspielen, wenn du eine Benachrichtigung erhältst",
|
||||
"notifications_and_sounds": "Benachrichtigungen & Klänge",
|
||||
"incoming-message-sound": "Ton bei empfangener Nachricht",
|
||||
"outgoing-message-sound": "Ton bei versendeter Nachricht",
|
||||
"notification-sound": "Benachrichtigungston ",
|
||||
"no-sound": "Kein Ton",
|
||||
"browsing": "Browsing",
|
||||
"open_links_in_new_tab": "Ausgehende Links in neuem Tab öffnen",
|
||||
"enable_topic_searching": "Suchen innerhalb von Themen aktivieren",
|
||||
@@ -102,7 +95,7 @@
|
||||
"delay_image_loading": "Bilder nachladen",
|
||||
"image_load_delay_help": "Wenn aktiviert, werden Bilder in Themen erst dann geladen, wenn sie in den sichtbaren Bereich gescrollt werden",
|
||||
"scroll_to_my_post": "Zeige eigene Antwort nach dem Erstellen im Thema an",
|
||||
"follow_topics_you_reply_to": "Themen folgen, in denen du geantwortet hast",
|
||||
"follow_topics_you_reply_to": "Themen folgen, auf die du antwortest",
|
||||
"follow_topics_you_create": "Themen folgen, die du erstellst",
|
||||
"grouptitle": "Gruppentitel",
|
||||
"no-group-title": "Kein Gruppentitel",
|
||||
@@ -114,17 +107,5 @@
|
||||
"custom_route_help": "Gib hier einen Pfadnamen ohne vorangehenden Slash ein (z.B. \"recent\" oder \"popular\")",
|
||||
"sso.title": "Single Sign-on Dienste",
|
||||
"sso.associated": "Verbunden mit",
|
||||
"sso.not-associated": "Verbinde dich mit",
|
||||
"info.latest-flags": "Neuste Meldungen",
|
||||
"info.no-flags": "Keine gemeldeten Beiträge gefunden",
|
||||
"info.ban-history": "Sperrungsverlauf",
|
||||
"info.no-ban-history": "Dieser Benutzer wurde noch nie gesperrt",
|
||||
"info.banned-until": "Gesperrt bis zum %1",
|
||||
"info.banned-permanently": "Permanent gesperrt",
|
||||
"info.banned-reason-label": "Grund",
|
||||
"info.banned-no-reason": "Kein Grund angegeben.",
|
||||
"info.username-history": "Benutzernamen Verlauf",
|
||||
"info.email-history": "E-Mail Verlauf",
|
||||
"info.moderation-note": "Moderationsnotiz",
|
||||
"info.moderation-note.success": "Moderationsnotiz gespeichert"
|
||||
"sso.not-associated": "Verbinde dich mit"
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user