Compare commits

..

17 Commits

Author SHA1 Message Date
Misty (Bot)
592b880b1c chore: incrementing version number - v1.14.0-8 2020-06-16 20:29:58 +00:00
Misty (Bot)
553dbd73ba Merge commit 'b459592a4ece4400ae6c4d1ae0378557b6f39fdb' into v1.14.x 2020-06-16 20:29:58 +00:00
Misty (Bot)
6721d4151e chore: incrementing version number - v1.14.0-7 2020-06-15 23:54:33 +00:00
Misty (Bot)
64c0e1433b Merge commit '5a367ecbb4a46b576f85590f24a9cf4ffea41bcd' into v1.14.x 2020-06-15 23:54:33 +00:00
Misty (Bot)
d142e7c86a chore: incrementing version number - v1.14.0-6 2020-06-15 13:22:29 +00:00
Misty (Bot)
5acf5acb3a Merge commit '7ed1a0140aba3a1f80fe242fa5ae2e360cef009d' into v1.14.x 2020-06-15 13:22:28 +00:00
Misty (Bot)
830c59eb4f chore: incrementing version number - v1.14.0-5 2020-06-11 00:32:05 +00:00
Misty (Bot)
60ba66c0a3 Merge commit '6349fa03e172ce710a5aeabd753953d7f33a53e0' into v1.14.x 2020-06-11 00:32:05 +00:00
Misty (Bot)
470835e6f7 chore: incrementing version number - v1.14.0-4 2020-06-09 15:41:59 +00:00
Misty (Bot)
7b4d726c5d Merge commit 'cf0f8f64a933ac7576f201ad8ab2c1795766646f' into v1.14.x 2020-06-09 15:41:59 +00:00
Misty (Bot)
a49b774800 chore: incrementing version number - v1.14.0-3 2020-06-08 19:23:09 +00:00
Misty (Bot)
0569c27c88 Merge commit 'd92032dad1bd9b47de33b6377efb67b9b4d7d49d' into v1.14.x 2020-06-08 19:23:09 +00:00
Misty (Bot)
4e1c26becb chore: incrementing version number - v1.14.0-2 2020-06-04 18:25:35 +00:00
Misty (Bot)
5aea87ade2 Merge commit 'c1d8b9bb5a9697c8d86ac518456ab1ae6fe45234' into v1.14.x 2020-06-04 18:25:34 +00:00
Misty (Bot)
d93eba9f3b chore: incrementing version number - v1.14.0-1 2020-06-03 17:40:15 +00:00
Misty (Bot)
626def8b31 Merge commit 'f6ad9605c609607c45397cb43ad97e11dd4ab93b' into v1.14.x 2020-06-03 17:40:14 +00:00
Misty (Bot)
a10b5eade8 chore: incrementing version number - v1.14.0-0 2020-05-28 13:21:44 +00:00
1810 changed files with 15413 additions and 25865 deletions

View File

@@ -7,6 +7,7 @@ node_modules/
logs/
/public/templates
/public/uploads
/public/sounds
/public/vendor
/public/src/modules/string.js
.idea/

View File

@@ -121,7 +121,7 @@
// "comma-spacing": "off",
// "no-trailing-spaces": "off",
// "key-spacing": "off",
"no-multiple-empty-lines": "off"
// "no-multiple-empty-lines": "off",
// "spaced-comment": "off",
// "space-in-parens": "off",
// "block-spacing": "off",

9
.github/SECURITY.md vendored
View File

@@ -1,9 +0,0 @@
# Reporting a security vulnerability
NodeBB's security policy is based around a private bug bounty program. Users are invited to explore NodeBB for vulnerabilities, and report them to the NodeBB team so that they can be patched.
If you have found a security vulnerability, **do not post it onto our GitHub tracker**. Some security vulnerabilities are quite severe and discretion is recommended. Email the NodeBB Security Team at security@nodebb.org, instead.
# Bug Bounty Program
Security vulnerability reports may be eligible for a bounty based on severity and confirmation from NodeBB team members. For full details regarding our bug bounty program, including the bounty amounts, please consult the following page: https://blog.nodebb.org/bounty

4
.gitignore vendored
View File

@@ -28,6 +28,7 @@ pidfile
# templates
/public/templates
/public/sounds
/public/uploads
/test/uploads
@@ -66,5 +67,4 @@ test/files/normalise.jpg.png
test/files/normalise-resized.jpg
package-lock.json
/package.json
*.mongodb
link-plugins.sh
*.mongodb

View File

@@ -39,8 +39,8 @@ addons:
- g++-4.8
- mongodb-org-server
node_js:
- "14"
- "12"
- "10"
branches:
only:
- master

View File

@@ -251,106 +251,6 @@ trans.zh_CN = public/language/zh-CN/modules.json
trans.zh_TW = public/language/zh-TW/modules.json
type = KEYVALUEJSON
[nodebb.post-queue]
file_filter = public/language/<lang>/post-queue.json
source_file = public/language/en-GB/post-queue.json
source_lang = en_GB
trans.ar = public/language/ar/post-queue.json
trans.bg = public/language/bg/post-queue.json
trans.bn = public/language/bn/post-queue.json
trans.cs = public/language/cs/post-queue.json
trans.da = public/language/da/post-queue.json
trans.de = public/language/de/post-queue.json
trans.el = public/language/el/post-queue.json
trans.en@pirate = public/language/en-x-pirate/post-queue.json
trans.en_US = public/language/en-US/post-queue.json
trans.es = public/language/es/post-queue.json
trans.et = public/language/et/post-queue.json
trans.fa_IR = public/language/fa-IR/post-queue.json
trans.fi = public/language/fi/post-queue.json
trans.fr = public/language/fr/post-queue.json
trans.gl = public/language/gl/post-queue.json
trans.he = public/language/he/post-queue.json
trans.hr = public/language/hr/post-queue.json
trans.hu = public/language/hu/post-queue.json
trans.id = public/language/id/post-queue.json
trans.it = public/language/it/post-queue.json
trans.ja = public/language/ja/post-queue.json
trans.ko = public/language/ko/post-queue.json
trans.lt = public/language/lt/post-queue.json
trans.lv = public/language/lv/post-queue.json
trans.ms = public/language/ms/post-queue.json
trans.nb = public/language/nb/post-queue.json
trans.nl = public/language/nl/post-queue.json
trans.pl = public/language/pl/post-queue.json
trans.pt_BR = public/language/pt-BR/post-queue.json
trans.pt_PT = public/language/pt-PT/post-queue.json
trans.ro = public/language/ro/post-queue.json
trans.ru = public/language/ru/post-queue.json
trans.rw = public/language/rw/post-queue.json
trans.sc = public/language/sc/post-queue.json
trans.sk = public/language/sk/post-queue.json
trans.sl = public/language/sl/post-queue.json
trans.sr = public/language/sr/post-queue.json
trans.sv = public/language/sv/post-queue.json
trans.th = public/language/th/post-queue.json
trans.tr = public/language/tr/post-queue.json
trans.uk = public/language/uk/post-queue.json
trans.vi = public/language/vi/post-queue.json
trans.zh_CN = public/language/zh-CN/post-queue.json
trans.zh_TW = public/language/zh-TW/post-queue.json
type = KEYVALUEJSON
[nodebb.ip-blacklist]
file_filter = public/language/<lang>/ip-blacklist.json
source_file = public/language/en-GB/ip-blacklist.json
source_lang = en_GB
trans.ar = public/language/ar/ip-blacklist.json
trans.bg = public/language/bg/ip-blacklist.json
trans.bn = public/language/bn/ip-blacklist.json
trans.cs = public/language/cs/ip-blacklist.json
trans.da = public/language/da/ip-blacklist.json
trans.de = public/language/de/ip-blacklist.json
trans.el = public/language/el/ip-blacklist.json
trans.en@pirate = public/language/en-x-pirate/ip-blacklist.json
trans.en_US = public/language/en-US/ip-blacklist.json
trans.es = public/language/es/ip-blacklist.json
trans.et = public/language/et/ip-blacklist.json
trans.fa_IR = public/language/fa-IR/ip-blacklist.json
trans.fi = public/language/fi/ip-blacklist.json
trans.fr = public/language/fr/ip-blacklist.json
trans.gl = public/language/gl/ip-blacklist.json
trans.he = public/language/he/ip-blacklist.json
trans.hr = public/language/hr/ip-blacklist.json
trans.hu = public/language/hu/ip-blacklist.json
trans.id = public/language/id/ip-blacklist.json
trans.it = public/language/it/ip-blacklist.json
trans.ja = public/language/ja/ip-blacklist.json
trans.ko = public/language/ko/ip-blacklist.json
trans.lt = public/language/lt/ip-blacklist.json
trans.lv = public/language/lv/ip-blacklist.json
trans.ms = public/language/ms/ip-blacklist.json
trans.nb = public/language/nb/ip-blacklist.json
trans.nl = public/language/nl/ip-blacklist.json
trans.pl = public/language/pl/ip-blacklist.json
trans.pt_BR = public/language/pt-BR/ip-blacklist.json
trans.pt_PT = public/language/pt-PT/ip-blacklist.json
trans.ro = public/language/ro/ip-blacklist.json
trans.ru = public/language/ru/ip-blacklist.json
trans.rw = public/language/rw/ip-blacklist.json
trans.sc = public/language/sc/ip-blacklist.json
trans.sk = public/language/sk/ip-blacklist.json
trans.sl = public/language/sl/ip-blacklist.json
trans.sr = public/language/sr/ip-blacklist.json
trans.sv = public/language/sv/ip-blacklist.json
trans.th = public/language/th/ip-blacklist.json
trans.tr = public/language/tr/ip-blacklist.json
trans.uk = public/language/uk/ip-blacklist.json
trans.vi = public/language/vi/ip-blacklist.json
trans.zh_CN = public/language/zh-CN/ip-blacklist.json
trans.zh_TW = public/language/zh-TW/ip-blacklist.json
type = KEYVALUEJSON
[nodebb.register]
file_filter = public/language/<lang>/register.json
source_file = public/language/en-GB/register.json
@@ -2400,6 +2300,56 @@ trans.zh_CN = public/language/zh-CN/admin/manage/groups.json
trans.zh_TW = public/language/zh-TW/admin/manage/groups.json
type = KEYVALUEJSON
[nodebb.admin-manage-ip-blacklist]
file_filter = public/language/<lang>/admin/manage/ip-blacklist.json
source_file = public/language/en-GB/admin/manage/ip-blacklist.json
source_lang = en_GB
trans.ar = public/language/ar/admin/manage/ip-blacklist.json
trans.bg = public/language/bg/admin/manage/ip-blacklist.json
trans.bn = public/language/bn/admin/manage/ip-blacklist.json
trans.cs = public/language/cs/admin/manage/ip-blacklist.json
trans.da = public/language/da/admin/manage/ip-blacklist.json
trans.de = public/language/de/admin/manage/ip-blacklist.json
trans.el = public/language/el/admin/manage/ip-blacklist.json
trans.en@pirate = public/language/en-x-pirate/admin/manage/ip-blacklist.json
trans.en_US = public/language/en-US/admin/manage/ip-blacklist.json
trans.es = public/language/es/admin/manage/ip-blacklist.json
trans.et = public/language/et/admin/manage/ip-blacklist.json
trans.fa_IR = public/language/fa-IR/admin/manage/ip-blacklist.json
trans.fi = public/language/fi/admin/manage/ip-blacklist.json
trans.fr = public/language/fr/admin/manage/ip-blacklist.json
trans.gl = public/language/gl/admin/manage/ip-blacklist.json
trans.he = public/language/he/admin/manage/ip-blacklist.json
trans.hr = public/language/hr/admin/manage/ip-blacklist.json
trans.hu = public/language/hu/admin/manage/ip-blacklist.json
trans.id = public/language/id/admin/manage/ip-blacklist.json
trans.it = public/language/it/admin/manage/ip-blacklist.json
trans.ja = public/language/ja/admin/manage/ip-blacklist.json
trans.ko = public/language/ko/admin/manage/ip-blacklist.json
trans.lt = public/language/lt/admin/manage/ip-blacklist.json
trans.lv = public/language/lv/admin/manage/ip-blacklist.json
trans.ms = public/language/ms/admin/manage/ip-blacklist.json
trans.nb = public/language/nb/admin/manage/ip-blacklist.json
trans.nl = public/language/nl/admin/manage/ip-blacklist.json
trans.pl = public/language/pl/admin/manage/ip-blacklist.json
trans.pt_BR = public/language/pt-BR/admin/manage/ip-blacklist.json
trans.pt_PT = public/language/pt-PT/admin/manage/ip-blacklist.json
trans.ro = public/language/ro/admin/manage/ip-blacklist.json
trans.ru = public/language/ru/admin/manage/ip-blacklist.json
trans.rw = public/language/rw/admin/manage/ip-blacklist.json
trans.sc = public/language/sc/admin/manage/ip-blacklist.json
trans.sk = public/language/sk/admin/manage/ip-blacklist.json
trans.sl = public/language/sl/admin/manage/ip-blacklist.json
trans.sr = public/language/sr/admin/manage/ip-blacklist.json
trans.sv = public/language/sv/admin/manage/ip-blacklist.json
trans.th = public/language/th/admin/manage/ip-blacklist.json
trans.tr = public/language/tr/admin/manage/ip-blacklist.json
trans.uk = public/language/uk/admin/manage/ip-blacklist.json
trans.vi = public/language/vi/admin/manage/ip-blacklist.json
trans.zh_CN = public/language/zh-CN/admin/manage/ip-blacklist.json
trans.zh_TW = public/language/zh-TW/admin/manage/ip-blacklist.json
type = KEYVALUEJSON
[nodebb.admin-manage-privileges]
file_filter = public/language/<lang>/admin/manage/privileges.json
source_file = public/language/en-GB/admin/manage/privileges.json
@@ -2450,6 +2400,56 @@ trans.zh_CN = public/language/zh-CN/admin/manage/privileges.json
trans.zh_TW = public/language/zh-TW/admin/manage/privileges.json
type = KEYVALUEJSON
[nodebb.admin-manage-post-queue]
file_filter = public/language/<lang>/admin/manage/post-queue.json
source_file = public/language/en-GB/admin/manage/post-queue.json
source_lang = en_GB
trans.ar = public/language/ar/admin/manage/post-queue.json
trans.bg = public/language/bg/admin/manage/post-queue.json
trans.bn = public/language/bn/admin/manage/post-queue.json
trans.cs = public/language/cs/admin/manage/post-queue.json
trans.da = public/language/da/admin/manage/post-queue.json
trans.de = public/language/de/admin/manage/post-queue.json
trans.el = public/language/el/admin/manage/post-queue.json
trans.en@pirate = public/language/en-x-pirate/admin/manage/post-queue.json
trans.en_US = public/language/en-US/admin/manage/post-queue.json
trans.es = public/language/es/admin/manage/post-queue.json
trans.et = public/language/et/admin/manage/post-queue.json
trans.fa_IR = public/language/fa-IR/admin/manage/post-queue.json
trans.fi = public/language/fi/admin/manage/post-queue.json
trans.fr = public/language/fr/admin/manage/post-queue.json
trans.gl = public/language/gl/admin/manage/post-queue.json
trans.he = public/language/he/admin/manage/post-queue.json
trans.hr = public/language/hr/admin/manage/post-queue.json
trans.hu = public/language/hu/admin/manage/post-queue.json
trans.id = public/language/id/admin/manage/post-queue.json
trans.it = public/language/it/admin/manage/post-queue.json
trans.ja = public/language/ja/admin/manage/post-queue.json
trans.ko = public/language/ko/admin/manage/post-queue.json
trans.lt = public/language/lt/admin/manage/post-queue.json
trans.lv = public/language/lv/admin/manage/post-queue.json
trans.ms = public/language/ms/admin/manage/post-queue.json
trans.nb = public/language/nb/admin/manage/post-queue.json
trans.nl = public/language/nl/admin/manage/post-queue.json
trans.pl = public/language/pl/admin/manage/post-queue.json
trans.pt_BR = public/language/pt-BR/admin/manage/post-queue.json
trans.pt_PT = public/language/pt-PT/admin/manage/post-queue.json
trans.ro = public/language/ro/admin/manage/post-queue.json
trans.ru = public/language/ru/admin/manage/post-queue.json
trans.rw = public/language/rw/admin/manage/post-queue.json
trans.sc = public/language/sc/admin/manage/post-queue.json
trans.sk = public/language/sk/admin/manage/post-queue.json
trans.sl = public/language/sl/admin/manage/post-queue.json
trans.sr = public/language/sr/admin/manage/post-queue.json
trans.sv = public/language/sv/admin/manage/post-queue.json
trans.th = public/language/th/admin/manage/post-queue.json
trans.tr = public/language/tr/admin/manage/post-queue.json
trans.uk = public/language/uk/admin/manage/post-queue.json
trans.vi = public/language/vi/admin/manage/post-queue.json
trans.zh_CN = public/language/zh-CN/admin/manage/post-queue.json
trans.zh_TW = public/language/zh-TW/admin/manage/post-queue.json
type = KEYVALUEJSON
[nodebb.admin-manage-registration]
file_filter = public/language/<lang>/admin/manage/registration.json
source_file = public/language/en-GB/admin/manage/registration.json

File diff suppressed because it is too large Load Diff

View File

@@ -48,8 +48,8 @@ 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 12 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* MongoDB, version 2.6 or greater **or** Redis, version 2.8.9 or greater
* A version of Node.js at least 8 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
## Installation

2
app.js
View File

@@ -35,7 +35,7 @@ process.env.NODE_ENV = process.env.NODE_ENV || 'production';
global.env = process.env.NODE_ENV || 'production';
// Alternate configuration file support
const configFile = path.resolve(__dirname, nconf.any(['config', 'CONFIG']) || 'config.json');
const configFile = path.resolve(__dirname, nconf.any(['config', 'CONFIG']) || 'config.json');
const configExists = file.existsSync(configFile) || (nconf.get('url') && nconf.get('secret') && nconf.get('database'));

View File

@@ -1,25 +1,3 @@
'use strict';
module.exports = {
extends: ['@commitlint/config-angular'],
rules: {
'type-enum': [
2,
'always',
[
'breaking',
'build',
'chore',
'ci',
'docs',
'feat',
'fix',
'perf',
'refactor',
'revert',
'style',
'test',
],
],
},
};
module.exports = { extends: ['@commitlint/config-angular'] };

View File

@@ -70,8 +70,6 @@
"reputation:disabled": 0,
"downvote:disabled": 0,
"disableSignatures": 0,
"downvotesPerDay": 10,
"downvotesPerUserPerDay": 3,
"min:rep:downvote": 0,
"min:rep:flag": 0,
"min:rep:profile-picture": 0,
@@ -79,7 +77,6 @@
"min:rep:website": 0,
"min:rep:aboutme": 0,
"min:rep:signature": 0,
"flags:limitPerTarget": 0,
"notificationType_upvote": "notification",
"notificationType_new-topic": "notification",
"notificationType_new-reply": "notification",
@@ -110,11 +107,11 @@
"maximumInvites": 0,
"username:disableEdit": 0,
"email:disableEdit": 0,
"email:smtpTransport:pool": false,
"email:sendmail:rateLimit": 2,
"email:sendmail:rateDelta": 1000,
"hideFullname": 0,
"hideEmail": 0,
"allowGuestHandles": 0,
"recentMaxTopics": 200,
"disableRecentCategoryFilter": 0,
"maximumRelatedTopics": 0,
"disableEmailSubscriptions": 0,

View File

@@ -1,51 +1,58 @@
'use strict';
const prompt = require('prompt');
const winston = require('winston');
var async = require('async');
var prompt = require('prompt');
var winston = require('winston');
const util = require('util');
const promptGet = util.promisify((schema, callback) => prompt.get(schema, callback));
const questions = {
var questions = {
redis: require('../src/database/redis').questions,
mongo: require('../src/database/mongo').questions,
postgres: require('../src/database/postgres').questions,
};
module.exports = async function (config) {
winston.info('\nNow configuring ' + config.database + ' database:');
const databaseConfig = await getDatabaseConfig(config);
return saveDatabaseConfig(config, databaseConfig);
module.exports = function (config, callback) {
async.waterfall([
function (next) {
winston.info('\nNow configuring ' + config.database + ' database:');
getDatabaseConfig(config, next);
},
function (databaseConfig, next) {
saveDatabaseConfig(config, databaseConfig, next);
},
], callback);
};
async function getDatabaseConfig(config) {
function getDatabaseConfig(config, callback) {
if (!config) {
throw new Error('invalid config, aborted');
return callback(new Error('aborted'));
}
if (config.database === 'redis') {
if (config['redis:host'] && config['redis:port']) {
return config;
callback(null, config);
} else {
prompt.get(questions.redis, callback);
}
return await promptGet(questions.redis);
} else if (config.database === 'mongo') {
if ((config['mongo:host'] && config['mongo:port']) || config['mongo:uri']) {
return config;
callback(null, config);
} else {
prompt.get(questions.mongo, callback);
}
return await promptGet(questions.mongo);
} else if (config.database === 'postgres') {
if (config['postgres:host'] && config['postgres:port']) {
return config;
callback(null, config);
} else {
prompt.get(questions.postgres, callback);
}
return await promptGet(questions.postgres);
} else {
return callback(new Error('unknown database : ' + config.database));
}
throw new Error('unknown database : ' + config.database);
}
function saveDatabaseConfig(config, databaseConfig) {
function saveDatabaseConfig(config, databaseConfig, callback) {
if (!databaseConfig) {
throw new Error('invalid config, aborted');
return callback(new Error('aborted'));
}
// Translate redis properties into redis object
@@ -79,13 +86,13 @@ function saveDatabaseConfig(config, databaseConfig) {
ssl: databaseConfig['postgres:ssl'],
};
} else {
throw new Error('unknown database : ' + config.database);
return callback(new Error('unknown database : ' + config.database));
}
const allQuestions = questions.redis.concat(questions.mongo).concat(questions.postgres);
var allQuestions = questions.redis.concat(questions.mongo).concat(questions.postgres);
for (var x = 0; x < allQuestions.length; x += 1) {
delete config[allQuestions[x].name];
}
return config;
callback(null, config);
}

View File

@@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
"version": "1.15.0-beta.29",
"version": "1.14.0-8",
"homepage": "http://www.nodebb.org",
"repository": {
"type": "git",
@@ -11,15 +11,15 @@
"main": "app.js",
"scripts": {
"start": "node loader.js",
"lint": "npx eslint --cache ./nodebb .",
"lint": "eslint --cache ./nodebb .",
"pretest": "npm run lint",
"test": "npx nyc --reporter=html --reporter=text-summary npx mocha",
"test": "nyc --reporter=html --reporter=text-summary mocha",
"coveralls": "nyc report --reporter=text-lcov | coveralls && rm -r coverage"
},
"husky": {
"hooks": {
"pre-commit": "npx lint-staged",
"commit-msg": "npx commitlint -E HUSKY_GIT_PARAMS"
"pre-commit": "lint-staged",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
"lint-staged": {
@@ -30,25 +30,26 @@
},
"dependencies": {
"ace-builds": "^1.4.9",
"archiver": "^5.0.0",
"archiver": "^4.0.0",
"async": "^3.2.0",
"autoprefixer": "^10.0.0",
"autoprefixer": "^9.7.6",
"bcryptjs": "2.4.3",
"benchpressjs": "2.0.4",
"benchpressjs": "^2.0.2",
"body-parser": "^1.19.0",
"bootstrap": "^3.4.1",
"bootswatch": "git://github.com/thomaspark/bootswatch.git#c41a8f066feb8950c6f9c6bcf5a3c37d1085404e",
"chart.js": "^2.9.3",
"cli-graph": "^3.2.2",
"clipboard": "^2.0.6",
"colors": "^1.4.0",
"commander": "^6.0.0",
"commander": "^5.0.0",
"compression": "^1.7.4",
"connect-ensure-login": "^0.1.1",
"connect-flash": "^0.1.1",
"connect-mongo": "3.2.0",
"connect-multiparty": "^2.2.0",
"connect-pg-simple": "^6.1.0",
"connect-redis": "5.0.0",
"connect-redis": "4.0.4",
"cookie-parser": "^1.4.5",
"cron": "^1.8.2",
"cropperjs": "^1.5.6",
@@ -59,48 +60,46 @@
"express-session": "^1.17.0",
"express-useragent": "^1.0.13",
"graceful-fs": "^4.2.3",
"helmet": "^4.0.0",
"helmet": "^3.22.0",
"html-to-text": "^5.1.1",
"ipaddr.js": "^2.0.0",
"ipaddr.js": "^1.9.1",
"jquery": "3.5.1",
"jsesc": "3.0.1",
"json2csv": "5.0.3",
"json2csv": "5.0.1",
"jsonwebtoken": "^8.5.1",
"less": "^3.11.1",
"lodash": "^4.17.15",
"logrotate-stream": "^0.2.6",
"lru-cache": "6.0.0",
"lru-cache": "5.1.1",
"material-design-lite": "^1.3.0",
"mime": "^2.4.4",
"mkdirp": "^1.0.4",
"mongodb": "3.6.2",
"mongodb": "3.5.9",
"morgan": "^1.10.0",
"mousetrap": "^1.6.5",
"@nodebb/bootswatch": "3.4.2",
"@nodebb/mubsub": "1.7.0",
"@nodebb/socket.io-adapter-mongo": "3.1.0",
"@nodebb/mubsub": "^1.6.0",
"@nodebb/socket.io-adapter-mongo": "3.0.0",
"nconf": "^0.10.0",
"nodebb-plugin-composer-default": "6.4.2",
"nodebb-plugin-dbsearch": "4.1.2",
"nodebb-plugin-composer-default": "6.3.43",
"nodebb-plugin-dbsearch": "4.0.7",
"nodebb-plugin-emoji": "^3.3.0",
"nodebb-plugin-emoji-android": "2.0.0",
"nodebb-plugin-markdown": "8.12.1",
"nodebb-plugin-mentions": "2.11.0",
"nodebb-plugin-markdown": "8.11.2",
"nodebb-plugin-mentions": "2.7.4",
"nodebb-plugin-soundpack-default": "1.0.0",
"nodebb-plugin-spam-be-gone": "0.7.2",
"nodebb-plugin-spam-be-gone": "0.7.1",
"nodebb-rewards-essentials": "0.1.3",
"nodebb-theme-lavender": "5.0.13",
"nodebb-theme-persona": "10.2.51",
"nodebb-theme-slick": "1.2.36",
"nodebb-theme-vanilla": "11.2.20",
"nodebb-widget-essentials": "4.1.2",
"nodebb-theme-lavender": "5.0.11",
"nodebb-theme-persona": "10.1.53",
"nodebb-theme-slick": "1.2.29",
"nodebb-theme-vanilla": "11.1.28",
"nodebb-widget-essentials": "4.1.0",
"nodemailer": "^6.4.6",
"passport": "^0.4.1",
"passport-http-bearer": "^1.0.1",
"passport-local": "1.0.0",
"pg": "^8.0.2",
"pg-cursor": "^2.1.9",
"postcss": "8.0.6",
"postcss": "7.0.32",
"postcss-clean": "1.1.0",
"promise-polyfill": "^8.1.3",
"prompt": "^1.0.0",
@@ -109,16 +108,16 @@
"request-promise-native": "^1.0.8",
"rimraf": "3.0.2",
"rss": "^1.2.2",
"sanitize-html": "^2.0.0",
"sanitize-html": "^1.23.0",
"semver": "^7.2.1",
"serve-favicon": "^2.5.0",
"sharp": "0.26.1",
"sharp": "0.25.4",
"sitemap": "^6.1.0",
"socket.io": "2.3.0",
"socket.io-adapter-cluster": "^1.0.1",
"socket.io-adapter-postgres": "^1.2.1",
"socket.io-client": "2.3.0",
"socket.io-redis": "5.4.0",
"socket.io-redis": "5.3.0",
"socketio-wildcard": "2.0.0",
"spdx-license-list": "^6.1.0",
"spider-detector": "2.0.0",
@@ -126,35 +125,35 @@
"textcomplete.contenteditable": "^0.1.1",
"toobusy-js": "^0.5.1",
"uglify-es": "^3.3.9",
"validator": "13.1.17",
"winston": "3.3.3",
"validator": "13.1.1",
"winston": "3.2.1",
"xml": "^1.0.1",
"xregexp": "^4.3.0",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
"@apidevtools/swagger-parser": "10.0.2",
"@commitlint/cli": "9.1.2",
"@commitlint/config-angular": "9.1.2",
"@apidevtools/swagger-parser": "9.0.1",
"@commitlint/cli": "8.3.5",
"@commitlint/config-angular": "8.3.4",
"coveralls": "3.1.0",
"eslint": "7.10.0",
"eslint-config-airbnb-base": "14.2.0",
"eslint-plugin-import": "2.22.1",
"grunt": "1.3.0",
"eslint": "7.2.0",
"eslint-config-airbnb-base": "14.1.0",
"eslint-plugin-import": "2.21.1",
"grunt": "1.1.0",
"grunt-contrib-watch": "1.1.0",
"husky": "4.3.0",
"jsdom": "16.4.0",
"lint-staged": "10.4.0",
"mocha": "8.1.3",
"husky": "4.2.5",
"jsdom": "16.2.2",
"lint-staged": "10.2.10",
"mocha": "8.0.1",
"mocha-lcov-reporter": "1.3.0",
"nyc": "15.1.0",
"smtp-server": "3.7.0"
"nyc": "15.0.1",
"smtp-server": "3.6.0"
},
"bugs": {
"url": "https://github.com/NodeBB/NodeBB/issues"
},
"engines": {
"node": ">=10"
"node": ">=8"
},
"maintainers": [
{

View File

@@ -81,7 +81,7 @@ web.install = function (port) {
async.parallel([compileLess, compileJS, copyCSS, loadDefaults], function (err) {
if (err) {
winston.error(err.stack);
winston.error(err);
}
setupRoutes();
launchExpress(port);
@@ -223,17 +223,14 @@ function launch(req, res) {
}
function compileLess(callback) {
var installSrc = path.join(__dirname, '../public/less/install.less');
fs.readFile(installSrc, function (err, style) {
fs.readFile(path.join(__dirname, '../public/less/install.less'), function (err, style) {
if (err) {
return winston.error('Unable to read LESS install file: ', err.stack);
return winston.error('Unable to read LESS install file: ', err);
}
less.render(style.toString(), {
filename: path.resolve(installSrc),
}, function (err, css) {
less.render(style.toString(), function (err, css) {
if (err) {
return winston.error('Unable to compile LESS: ', err.stack);
return winston.error('Unable to compile LESS: ', err);
}
fs.writeFile(path.join(__dirname, '../public/installer.css'), css.css, callback);

View File

@@ -5,6 +5,7 @@
"socket": true,
"ajaxify": true,
"config": true,
"RELATIVE_PATH": true,
"utils": true,
"overrides": true,
"componentHandler": true,
@@ -17,24 +18,24 @@
"jquery": true,
"amd": true,
"browser": true,
"es6": true
"es6": false
},
"rules": {
"block-scoped-var": "off",
"no-dupe-class-members": "off",
"no-var": "off",
"object-shorthand": "off",
"prefer-arrow-callback": "off",
"prefer-spread": "off",
"prefer-object-spread": "off",
"prefer-reflect": "off",
"prefer-template": "off"
},
"parserOptions": {
"ecmaVersion": 6,
"ecmaVersion": 5,
"ecmaFeatures": {
"arrowFunctions": false,
"classes": false,
"defaultParams": false,
"destructuring": false,
"experimentalObjectRestSpread": false,
"blockBindings": false,
"forOf": false,
@@ -48,7 +49,9 @@
"objectLiteralShorthandProperties": false,
"impliedStrict": false,
"restParams": false,
"superInFunctions": false
"spread": false,
"superInFunctions": false,
"templateStrings": false
}
}
}

View File

@@ -63,6 +63,7 @@
"socket": true,
"ajaxify": true,
"config": true,
"RELATIVE_PATH": true,
"utils": true,
"overrides": true,
"componentHandler": true,

3
public/js-enabled.css Normal file
View File

@@ -0,0 +1,3 @@
/*
The following stylesheet is only included on pages that can execute javascript
*/

View File

@@ -3,7 +3,6 @@
"ip": "IP <strong>%1</strong>",
"nodes-responded": "%1 nodes responded within %2ms!",
"host": "host",
"primary": "primary / run jobs",
"pid": "pid",
"nodejs": "nodejs",
"online": "online",

View File

@@ -1,5 +1,4 @@
{
"trending": "Trending",
"installed": "منصبة",
"active": "مفعلة",
"inactive": "معطلة",

View File

@@ -1,7 +1,7 @@
{
"available": "Available Widgets",
"explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.",
"none-installed": "No widgets found! Activate the widget essentials plugin in the <a href=\"%1\">plugins</a> control panel.",
"none-installed": "No widgets found! Activate the essential widgets plugin in the <a href=\"%1\">plugins</a> control panel.",
"clone-from": "Clone widgets from",
"containers.available": "Available Containers",
"containers.explanation": "Drag and drop on top of any active widget",

View File

@@ -11,7 +11,6 @@
"num-recent-replies": "# of Recent Replies",
"ext-link": "External Link",
"is-section": "Treat this category as a section",
"tag-whitelist": "Tag Whitelist",
"upload-image": "Upload Image",
"delete-image": "Remove",
"category-image": "Category Image",
@@ -27,8 +26,6 @@
"enable": "Enable",
"disable": "Disable",
"edit": "Edit",
"analytics": "Analytics",
"view-category": "View category",
"select-category": "Select Category",
"set-parent-category": "Set Parent Category",
@@ -66,6 +63,7 @@
"alert.create-success": "Category successfully created!",
"alert.none-active": "You have no active categories.",
"alert.create": "Create a Category",
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
"alert.confirm-purge": "<p class=\"lead\">Do you really want to purge this category \"%1\"?</p><h5><strong class=\"text-danger\">Warning!</strong> All topics and posts in this category will be purged!</h5> <p class=\"help-block\">Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category <em>temporarily</em>, you'll want to \"disable\" the category instead.</p>",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
@@ -77,9 +75,7 @@
"alert.user-search": "Search for a user here...",
"alert.find-group": "Find a Group",
"alert.group-search": "Search for a group here...",
"alert.not-enough-whitelisted-tags": "Whitelisted tags are less than minimum tags, you need to create more whitelisted tags!",
"collapse-all": "Collapse All",
"expand-all": "Expand All",
"disable-on-create": "Disable on create",
"no-matches": "No matches"
"disable-on-create": "Disable on create"
}

View File

@@ -8,9 +8,6 @@
"hidden": "Hidden",
"private": "Private",
"edit": "Edit",
"delete": "Delete",
"privileges": "Privileges",
"download-csv": "CSV",
"search-placeholder": "Search",
"create": "Create Group",
"description-placeholder": "A short description about your group",

View File

@@ -1,9 +1,9 @@
{
"global": "Global",
"global.no-users": "No user-specific global privileges.",
"admin": "Admin",
"group-privileges": "Group Privileges",
"user-privileges": "User Privileges",
"edit-privileges": "Edit Privileges",
"chat": "Chat",
"upload-images": "Upload Images",
"upload-files": "Upload Files",
@@ -33,20 +33,10 @@
"delete-topics": "Delete Topics",
"purge": "Purge",
"moderate": "Moderate",
"admin-dashboard": "Dashboard",
"admin-categories": "Categories",
"admin-privileges": "Privileges",
"admin-users": "Users",
"admin-settings": "Settings",
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
"alert.confirm-save": "Please confirm your intention to save these privileges",
"alert.saved": "Privilege changes saved and applied",
"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
"alert.discarded": "Privilege changes discarded",
"alert.confirm-copyToAll": "Are you sure you wish to apply this privilege set to <strong>all categories</strong>?",
"alert.confirm-copyToAllGroup": "Are you sure you wish to apply this group's privilege set to <strong>all categories</strong>?",
"alert.confirm-copyToChildren": "Are you sure you wish to apply this privilege set to <strong>all descendant (child) categories</strong>?",
"alert.confirm-copyToChildrenGroup": "Are you sure you wish to apply this group's privilege set to <strong>all descendant (child) categories</strong>?",
"alert.no-undo": "<em>This action cannot be undone.</em>"
"admin-settings": "Settings"
}

View File

@@ -108,5 +108,5 @@
"alerts.prompt-email": "Emails: ",
"alerts.email-sent-to": "An invitation email has been sent to %1",
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)"
"alerts.x-users-found": "%1 user(s) found! Search took %2 ms."
}

View File

@@ -19,7 +19,7 @@
"settings/general": "عامة",
"settings/homepage": "Home Page",
"settings/navigation": "Navigation",
"settings/reputation": "Reputation & Flags",
"settings/reputation": "السمعة",
"settings/email": "البريد الإلكتروني",
"settings/user": "Users",
"settings/group": "Groups",
@@ -70,7 +70,7 @@
"logout": "Log out",
"view-forum": "View Forum",
"search.placeholder": "Press &quot;/&quot; to search for settings",
"search.placeholder": "Search for settings",
"search.no-results": "No results...",
"search.search-forum": "Search the forum for <strong></strong>",
"search.keep-typing": "Type more to see results...",

View File

@@ -5,8 +5,6 @@
"maintenance-mode.message": "Maintenance Message",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors-help": "'none', 'self'(default) or list of URIs to allow.",
"headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB",
"headers.acao": "Access-Control-Allow-Origin",
"headers.acao-regex": "Access-Control-Allow-Origin Regular Expression",
@@ -32,9 +30,5 @@
"sockets.settings": "WebSocket Settings",
"sockets.max-attempts": "Max Reconnection Attempts",
"sockets.default-placeholder": "Default: %1",
"sockets.delay": "Reconnection Delay",
"analytics.settings": "Analytics Settings",
"analytics.max-cache": "Analytics Cache Max Value",
"analytics.max-cache-help": "On high-traffic installs, the cache could be exhausted continuously if there are more concurrent active users than the Max Cache value. (Restart required)"
"sockets.delay": "Reconnection Delay"
}

View File

@@ -6,7 +6,6 @@
"max-length": "Maximum length of chat messages",
"max-room-size": "Maximum number of users in chat rooms",
"delay": "Time between chat messages in milliseconds",
"notification-delay": "Notification delay for chat messages. (0 for no delay)",
"restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)",
"restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)"
}

View File

@@ -4,7 +4,10 @@
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
"from": "From Name",
"from-help": "The from name to display in the email.",
"sendmail-rate-limit": "Send <em>X</em> emails...",
"sendmail-rate-delta": "... every <em>X</em> milliseconds",
"sendmail-rate-help": "Instructs the NodeBB mailer to limit the number of messages sent at once in order to not overwhelm email receiving services. These options do not apply if SMTP Transport is enabled (below).",
"smtp-transport": "SMTP Transport",
"smtp-transport.enabled": "Use an external email server to send emails",
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
@@ -22,8 +25,6 @@
"smtp-transport.username": "Username",
"smtp-transport.username-help": "<b>For the Gmail service,</b> enter the full email address here, especially if you are using a Google Apps managed domain.",
"smtp-transport.password": "Password",
"smtp-transport.pool": "Enable pooled connections",
"smtp-transport.pool-help": "Pooling connections prevents NodeBB from creating a new connection for every email. This option only applies if SMTP Transport is enabled.",
"template": "Edit Email Template",
"template.select": "Select Email Template",

View File

@@ -27,12 +27,9 @@
"log.alt-text-placeholder": "Alternative text for accessibility",
"favicon": "صورة المفضله",
"favicon.upload": "رفع",
"pwa": "Progressive Web App",
"touch-icon": "Touch Icon",
"touch-icon": "Homescreen/Touch Icon",
"touch-icon.upload": "رفع",
"touch-icon.help": "Recommended size and format: 512x512, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.",
"maskable-icon": "Maskable (Homescreen) Icon",
"maskable-icon.help": "Recommended size and format: 512x512, PNG format only. If no maskable icon is specified, NodeBB will fall back to the Touch Icon.",
"touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.",
"outgoing-links": "Outgoing Links",
"outgoing-links.warning-page": "Use Outgoing Links Warning Page",
"search-default-sort-by": "الترتيب الافتراضي للبحث",
@@ -41,4 +38,4 @@
"theme-color": "لون الثيم",
"background-color": "لون الخلفية",
"background-color-help": "Color used for splash screen background when website is installed as a PWA"
}
}

View File

@@ -2,5 +2,6 @@
"notifications": "Notifications",
"welcome-notification": "Welcome Notification",
"welcome-notification-link": "Welcome Notification Link",
"welcome-notification-uid": "Welcome Notification User (UID)"
"welcome-notification-uid": "Welcome Notification User (UID)",
"notification-alert-timeout": "Notification Alert Timeout"
}

View File

@@ -42,7 +42,6 @@
"unread.cutoff": "Unread cutoff days",
"unread.min-track-last": "Minimum posts in topic before tracking last read",
"recent": "Recent Settings",
"recent.max-topics": "Maximum topics on /recent",
"recent.categoryFilter.disable": "Disable filtering of topics in ignored categories on the /recent page",
"signature": "Signature Settings",
"signature.disable": "Disable signatures",

View File

@@ -5,16 +5,10 @@
"votes-are-public": "All Votes Are Public",
"thresholds": "Activity Thresholds",
"min-rep-downvote": "Minimum reputation to downvote posts",
"downvotes-per-day": "Downvotes per day (set to 0 for unlimited downvotes)",
"downvotes-per-user-per-day": "Downvotes per user per day (set to 0 for unlimited downvotes)",
"min-rep-flag": "Minimum reputation to flag posts",
"min-rep-website": "Minimum reputation to add \"Website\" to user profile",
"min-rep-aboutme": "Minimum reputation to add \"About me\" to user profile",
"min-rep-signature": "Minimum reputation to add \"Signature\" to user profile",
"min-rep-profile-picture": "Minimum reputation to add \"Profile Picture\" to user profile",
"min-rep-cover-picture": "Minimum reputation to add \"Cover Picture\" to user profile",
"flags": "Flag Settings",
"flags.limit-per-target": "Maximum number of times something can be flagged",
"flags.limit-per-target-placeholder": "Default: 0"
"min-rep-cover-picture": "Minimum reputation to add \"Cover Picture\" to user profile"
}

View File

@@ -21,8 +21,6 @@
"reset.notify.text1": "نحيطك علما أن كلمة مرورك قد تم تغييرها في %1",
"reset.notify.text2": "إن لم يكن لديك علم بهذا، المرجو إشعار مدبر النظام بأسرع مايمكن.",
"digest.latest_topics": "آخر المستجدات من %1",
"digest.top-topics": "Top topics from %1",
"digest.popular-topics": "Popular topics from %1",
"digest.cta": "انقر هنا لمشاهدة %1",
"digest.unsub.info": "تم إرسال هذا الإشعار بآخر المستجدات وفقا لخيارات تسجيلكم.",
"digest.day": "يوم",

View File

@@ -26,7 +26,6 @@
"invalid-pagination-value": "رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
"username-taken": "اسم المستخدم مأخوذ",
"email-taken": "البريد الالكتروني مأخوذ",
"email-invited": "Email was already invited",
"email-not-confirmed": "You are unable to post until your email is confirmed, please click here to confirm your email.",
"email-not-confirmed-chat": "لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You won't be able to post or chat until your email is confirmed.",
@@ -139,13 +138,8 @@
"not-enough-reputation-min-rep-signature": "You do not have enough reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture": "You do not have enough reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture": "You do not have enough reputation to add a cover picture",
"post-already-flagged": "You have already flagged this post",
"user-already-flagged": "You have already flagged this user",
"post-flagged-too-many-times": "This post has been flagged by others already",
"user-flagged-too-many-times": "This user has been flagged by others already",
"already-flagged": "لقد بلغت عن هذه المشاركة من قبل.",
"self-vote": "You cannot vote on your own post",
"too-many-downvotes-today": "You can only downvote %1 times a day",
"too-many-downvotes-today-user": "You can only downvote a user %1 times a day",
"reload-failed": "المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
"registration-error": "حدث خطأ أثناء التسجيل",
"parse-error": "حدث خطأ ما أثناء تحليل استجابة الخادم",
@@ -163,12 +157,10 @@
"invalid-session-text": "يبدو أن فترة التسجيل لم تعد قائمة او هي غير مطابقة مع الخادم. يرجى إعادة تحميل هذه الصفحة.",
"no-topics-selected": "No topics selected!",
"cant-move-to-same-topic": "Can't move post to same topic!",
"cant-move-topic-to-same-category": "Can't move topic to the same category!",
"cannot-block-self": "You cannot block yourself!",
"cannot-block-privileged": "You cannot block administrators or global moderators",
"cannot-block-guest": "Guest are not able to block other users",
"already-blocked": "This user is already blocked",
"already-unblocked": "This user is already unblocked",
"no-connection": "There seems to be a problem with your internet connection",
"plugin-not-whitelisted": "Unable to install plugin &ndash; only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP"
"no-connection": "There seems to be a problem with your internet connection"
}

View File

@@ -1,7 +1,8 @@
{
"state": "الحالة",
"reports": "Reports",
"first-reported": "First Reported",
"reporter": "المُبلغ",
"reported-at": "وقت التبليغ",
"description": "الوصف",
"no-flags": "Hooray! No flags found.",
"assignee": "المحال إليه",
"update": "تحديث",
@@ -25,7 +26,6 @@
"filter-quick-mine": "Assigned to me",
"filter-cid-all": "All categories",
"apply-filters": "Apply Filters",
"more-filters": "More Filters",
"quick-actions": "اجراءات سريعه",
"flagged-user": "Flagged User",
@@ -43,11 +43,9 @@
"notes": "Flag Notes",
"add-note": "اضافة ملاحظة",
"no-notes": "No shared notes.",
"delete-note-confirm": "Are you sure you want to delete this flag note?",
"note-added": "Note Added",
"note-deleted": "Note Deleted",
"history": "Account &amp; Flag History",
"back": "Back to Flags List",
"no-history": "No flag history.",
"state-all": "All states",
@@ -56,16 +54,7 @@
"state-resolved": "تم حلها",
"state-rejected": "تم رفضها",
"no-assignee": "Not Assigned",
"sort": "Sort by",
"sort-newest": "Newest first",
"sort-oldest": "Oldest first",
"sort-reports": "Most reports",
"sort-all": "All flag types...",
"sort-posts-only": "Posts only...",
"sort-downvotes": "Most downvotes",
"sort-upvotes": "Most upvotes",
"sort-replies": "Most replies",
"note-added": "Note Added",
"modal-title": "Report Inappropriate Content",
"modal-body": "Please specify your reason for flagging %1 %2 for review. Alternatively, use one of the quick report buttons if applicable.",
@@ -77,9 +66,5 @@
"modal-submit-success": "Content has been flagged for moderation.",
"modal-submit-confirm": "Confirm Submission",
"modal-submit-confirm-text": "You have a custom reason specified already. Are you sure you wish to submit via quick-report?",
"modal-submit-confirm-text-help": "Submitting a quick report will overwrite any custom reasons defined.",
"bulk-actions": "Bulk Actions",
"bulk-resolve": "Resolve Flag(s)",
"bulk-success": "%1 flags updated"
"modal-submit-confirm-text-help": "Submitting a quick report will overwrite any custom reasons defined."
}

View File

@@ -52,17 +52,14 @@
"users": "الأعضاء",
"topics": "المواضيع",
"posts": "المشاركات",
"x-posts": "%1 posts",
"best": "الأفضل",
"votes": "Votes",
"x-votes": "%1 votes",
"voters": "Voters",
"upvoters": "الموافقين",
"upvoted": "مصوت بالموجب",
"downvoters": "مصوتين بالسالب",
"downvoted": "مصوت بالسالب",
"views": "المشاهدات",
"posters": "Posters",
"reputation": "السمعة",
"lastpost": "Last post",
"firstpost": "First post",

View File

@@ -1,7 +1,6 @@
{
"chat.chatting_with": "Chat with",
"chat.placeholder": "أكتب رسالة دردشة هنا، اضغط ENTER للإرسال",
"chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
"chat.send": "أرسل",
"chat.no_active": "لا يوجد لديك دردشات نشطة.",
"chat.user_typing": "%1 يكتب رسالة...",
@@ -59,7 +58,6 @@
"composer.upload-file": "Upload File",
"composer.zen_mode": "Zen Mode",
"composer.select_category": "Select a category",
"composer.textarea.placeholder": "Enter your post content here, drag and drop images",
"bootbox.ok": "OK",
"bootbox.cancel": "إلغاء",
"bootbox.confirm": "تأكيد",

View File

@@ -43,9 +43,6 @@
"new_register_multiple": "There are <strong>%1</strong> registration requests awaiting review.",
"flag_assigned_to_you": "تم تخصيص العلامة 1% لك",
"post_awaiting_review": "Post awaiting review",
"profile-exported": "<strong>%1</strong> profile exported, click to download",
"posts-exported": "<strong>%1</strong> posts exported, click to download",
"uploads-exported": "<strong>%1</strong> uploads exported, click to download",
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",

View File

@@ -7,7 +7,6 @@
"wrong_reset_code.message": "رمز إعادة التعين غير صحيح، يرجى المحاولة مرة أخرى أو <a href='/reset'>اطلب رمزا جديدا</a>",
"new_password": "كلمة المرور الجديدة",
"repeat_password": "تأكيد كلمة المرور",
"changing_password": "Changing Password",
"enter_email": "يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
"enter_email_address": "ادخل عنوان البريد الإلكتروني",
"password_reset_sent": "If the specified address corresponds to an existing user account, a password reset email was sent. Please note that only one email will be sent per minute.",

View File

@@ -44,6 +44,5 @@
"search-preferences-saved": "تم حفظ تفضيلات البحث",
"search-preferences-cleared": "تم ازالة تفضيلات البحث",
"show-results-as": "عرض النتائج كـ",
"see-more-results": "See more results (%1)",
"search-in-category": "Search in \"%1\""
"see-more-results": "See more results (%1)"
}

View File

@@ -1,5 +1,7 @@
{
"topic": "موضوع",
"topic_id": "معرف الموضوع",
"topic_id_placeholder": "أدخل معرف الموضوع",
"no_topics_found": "لا توجد مواضيع !",
"no_posts_found": "لا توجد مشاركات!",
"post_is_deleted": "هذه المشاركة محذوفة!",
@@ -34,11 +36,8 @@
"ban-ip": "Ban IP",
"view-history": "Edit History",
"bookmark_instructions": "اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
"flag-post": "Flag this post",
"flag-user": "Flag this user",
"already-flagged": "Already Flagged",
"view-flag-report": "View Flag Report",
"merged_message": "This topic has been merged into <a href=\"%1\">%2</a>",
"flag_title": "إشعار بمشاركة مخلة.",
"merged_message": "This topic has been merged into <a href=\"/topic/%1\">%2</a>",
"deleted_message": "هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
"following_topic.message": "ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
"not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.",
@@ -79,10 +78,7 @@
"thread_tools.purge_confirm": "هل أنت متأكد أنك تريد تطهير هذا الموضوع؟",
"thread_tools.merge_topics": "Merge Topics",
"thread_tools.merge": "Merge",
"topic_move_success": "This topic will be moved shortly. Click here to undo.",
"topic_move_undone": "Topic move undone",
"topic_move_posts_success": "Posts will be moved shortly. Click here to undo.",
"topic_move_posts_undone": "Post move undone",
"topic_move_success": "تم نقل هذا الموضوع إلى %1 بنجاح",
"post_delete_confirm": "هل أنت متأكد أنك تريد حذف هذه المشاركة؟",
"post_restore_confirm": "هل أنت متأكد أنك تريد استعادة هذه المشاركة؟",
"post_purge_confirm": "هل أنت متأكد أنك تريد تطهير هذه المشاركة؟",
@@ -100,9 +96,6 @@
"fork_topic": "فرع الموضوع",
"fork_topic_instruction": "إضغط على المشاركات التي تريد تفريعها",
"fork_no_pids": "لم تختر أي مشاركة",
"no-posts-selected": "No posts selected!",
"x-posts-selected": "%1 post(s) selected",
"x-posts-will-be-moved-to-y": "%1 post(s) will be moved to \"%2\"",
"fork_pid_count": "1% مشاركة محددة",
"fork_success": "تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
"delete_posts_instruction": "Click the posts you want to delete/purge",
@@ -111,7 +104,7 @@
"merge-options": "Merge options",
"merge-select-main-topic": "Select the main topic",
"merge-new-title-for-topic": "New title for topic",
"move_posts_instruction": "Click the posts you want to move then go to target topic and click move.",
"move_posts_instruction": "Click the posts you want to move",
"change_owner_instruction": "Click the posts you want to assign to another user",
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
"composer.handle_placeholder": "Enter your name/handle here",

View File

@@ -1,7 +1,7 @@
{
"banned": "محظور",
"offline": "غير متصل",
"deleted": "محذوف",
"deleted": "Deleted",
"username": "إسم المستخدم",
"joindate": "تاريخ الإنضمام",
"postcount": "عدد المشاركات",
@@ -111,7 +111,12 @@
"posts_per_page": "الردود في كل صفحة",
"max_items_per_page": "أقصى %1",
"acp_language": "Admin Page Language",
"notifications": "Notifications",
"notification_sounds": "تشغيل صوت عند تلقي تنبيه",
"notifications_and_sounds": "التنبيهات والأصوات",
"incoming-message-sound": "صوت الرسالة الواردة",
"outgoing-message-sound": "صوت الرسائل الصادرة",
"notification-sound": "صوت التنبيهات",
"no-sound": "بدون صوت",
"upvote-notif-freq": "معدل تكرار تنبيهات التصويت للأعلى",
"upvote-notif-freq.all": "كل التصويتات للأعلى",
"upvote-notif-freq.first": "First Per Post",
@@ -174,9 +179,6 @@
"consent.right_to_data_portability": "You have the Right to Data Portability",
"consent.right_to_data_portability_description": "You may request from us a machine-readable export of any collected data about you and your account. You can do so by clicking the appropriate button below.",
"consent.export_profile": "Export Profile (.json)",
"consent.export-profile-success": "Exporting profile, you will get a notification when it is complete.",
"consent.export_uploads": "Export Uploaded Content (.zip)",
"consent.export-uploads-success": "Exporting uploads, you will get a notification when it is complete.",
"consent.export_posts": "Export Posts (.csv)",
"consent.export-posts-success": "Exporting posts, you will get a notification when it is complete."
"consent.export_posts": "Export Posts (.csv)"
}

View File

@@ -3,7 +3,6 @@
"ip": "IP <strong>%1</strong>",
"nodes-responded": "%1 възела отговориха в рамките на %2мсек!",
"host": "сървър",
"primary": "основен / изпълнение на задачите",
"pid": "ид. на процеса",
"nodejs": "nodejs",
"online": "на линия",

View File

@@ -1,5 +1,4 @@
{
"trending": "Популярни",
"installed": "Инсталирани",
"active": "Включени",
"inactive": "Изключени",

View File

@@ -11,7 +11,6 @@
"num-recent-replies": "Брой на скорошните отговори",
"ext-link": "Външна връзка",
"is-section": "Използване на тази категория като раздел",
"tag-whitelist": "Списък от разрешени етикети",
"upload-image": "Качване на изображение",
"delete-image": "Премахване",
"category-image": "Изображение на категорията",
@@ -27,8 +26,6 @@
"enable": "Включване",
"disable": "Изключване",
"edit": "Редактиране",
"analytics": "Анализи",
"view-category": "Преглед на категорията",
"select-category": "Изберете категория",
"set-parent-category": "Задайте базова категория",
@@ -66,6 +63,7 @@
"alert.create-success": "Категорията е създадена успешно!",
"alert.none-active": "Нямате активни категории.",
"alert.create": "Създаване на категория",
"alert.confirm-moderate": "<strong>Наистина ли искате да дадете правомощието за модериране на тази потребителска група?</strong> Тази група е публична и всеки може свободно да се присъедини към нея.",
"alert.confirm-purge": "<p class=\"lead\">Наистина ли искате да изтриете категорията „%1“?</p><h5><strong class=\"text-danger\">Внимание!</strong> Всички теми и публикации в тази категория ще бъдат изтрити!</h5> <p class=\"help-block\">Изтриването на категорията ще премахне всички теми и публикации, и ще изтрие категорията от базата данни. Ако искате да премахнете категорията <em>временно</em>, можете просто да я „изключите“.</p>",
"alert.purge-success": "Категорията е изтрита!",
"alert.copy-success": "Настройките са копирани!",
@@ -77,9 +75,7 @@
"alert.user-search": "Потърсете потребител тук…",
"alert.find-group": "Търсене на група",
"alert.group-search": "Потърсете група тук…",
"alert.not-enough-whitelisted-tags": "Разрешените етикети са по-малко от минимума. Трябва да създадете още разрешени етикети!",
"collapse-all": "Свиване на всички",
"expand-all": "Разгъване на всички",
"disable-on-create": "Изключване при създаване",
"no-matches": "Няма съвпадения"
"disable-on-create": "Изключване при създаване"
}

View File

@@ -8,9 +8,6 @@
"hidden": "Скрита",
"private": "Частна",
"edit": "Редактиране",
"delete": "Изтриване",
"privileges": "Правомощия",
"download-csv": "CSV",
"search-placeholder": "Търсене",
"create": "Създаване на група",
"description-placeholder": "Кратко описание на групата",

View File

@@ -1,9 +1,9 @@
{
"global": "Глобални",
"global.no-users": "Няма глобални правомощия за отделни потребители.",
"admin": "Администратор",
"group-privileges": "Правомощия за групите",
"user-privileges": "Правомощия за потребителите",
"edit-privileges": "Редактиране на правомощията",
"chat": "Разговор",
"upload-images": "Качване на изображения",
"upload-files": "Качване на файлове",
@@ -33,20 +33,10 @@
"delete-topics": "Изтриване на теми",
"purge": "Изчистване",
"moderate": "Модериране",
"admin-dashboard": "Табло",
"admin-categories": "Категории",
"admin-privileges": "Правомощия",
"admin-users": "Потребители",
"admin-settings": "Настройки",
"alert.confirm-moderate": "<strong>Наистина ли искате да дадете правомощието за модериране на тази потребителска група?</strong> Тази група е публична и всеки може свободно да се присъедини към нея.",
"alert.confirm-save": "Моля, потвърдете желанието си да запазите тези правомощия",
"alert.saved": "Промените по правомощията са запазени и приложени",
"alert.confirm-discard": "Наистина ли искате да отхвърлите промените по правомощията?",
"alert.discarded": "Промените по правомощията са отхвърлени",
"alert.confirm-copyToAll": "Наистина ли искате да приложите този набор от правомощия към <strong>всички категории</strong>?",
"alert.confirm-copyToAllGroup": "Наистина ли искате да приложите набора от правомощия на таи група към <strong>всички категории</strong>?",
"alert.confirm-copyToChildren": "Наистина ли искате да приложите този набор от правомощия към <strong>всички по-долни (дъщерни) категории</strong>?",
"alert.confirm-copyToChildrenGroup": "Наистина ли искате да приложите набора от правомощия на таи група към <strong>всички по-долни (дъщерни) категории</strong>?",
"alert.no-undo": "<em>Това действие е необратимо.</em>"
"admin-settings": "Настройки"
}

View File

@@ -108,5 +108,5 @@
"alerts.prompt-email": "Е-пощи: ",
"alerts.email-sent-to": "Беше изпратено е-писмо за потвърждение до %1",
"alerts.x-users-found": "Намерени потребители: %1 (%2 секунди)"
"alerts.x-users-found": "Намерени потребители: %1! Търсенето отне %2 милисекунди."
}

View File

@@ -19,7 +19,7 @@
"settings/general": "Общи",
"settings/homepage": "Начална страница",
"settings/navigation": "Навигация",
"settings/reputation": "Репутация и доклади",
"settings/reputation": "Репутация",
"settings/email": "Е-поща",
"settings/user": "Потребители",
"settings/group": "Групи",
@@ -70,7 +70,7 @@
"logout": "Изход",
"view-forum": "Преглед на форума",
"search.placeholder": "Натиснете „/“ за търсене на настройки",
"search.placeholder": "Търсене на настройки",
"search.no-results": "Няма резултати…",
"search.search-forum": "Търсене във форума за <strong></strong>",
"search.keep-typing": "Продължете да пишете, за да видите още резултати…",

View File

@@ -5,8 +5,6 @@
"maintenance-mode.message": "Съобщение за профилактиката",
"headers": "Заглавни части",
"headers.allow-from": "Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
"headers.csp-frame-ancestors": "Задайте заглавката „Content-Security-Policy frame-ancestors“ за да поставите NodeBB „iFrame“",
"headers.csp-frame-ancestors-help": "„none“ (нищо), „self“ (себе си по подразбиране) или списък от позволени адреси.",
"headers.powered-by": "Персонализиране на заглавната част „Захранван от“, която се изпраща от NodeBB",
"headers.acao": "Произход за разрешаване на управлението на достъпа",
"headers.acao-regex": "Регулярен израз за произхода за разрешаване на управлението на достъпа",
@@ -32,9 +30,5 @@
"sockets.settings": "Настройки за WebSocket",
"sockets.max-attempts": "Максимален брой опити за повторно свързване",
"sockets.default-placeholder": "По подразбиране: %1",
"sockets.delay": "Забавяне при повторно свързване",
"analytics.settings": "Настройки за анализите",
"analytics.max-cache": "Макс. стойност на кеша за анализите",
"analytics.max-cache-help": "При инсталации с натоварен трафик, кешът може да бъде изразходен, ако има повече едновременни потребители, от колкото е максималната стойност на кеша. (Изисква рестартиране)"
"sockets.delay": "Забавяне при повторно свързване"
}

View File

@@ -5,8 +5,7 @@
"disable-editing-help": "Това ограничение не засяга администраторите и глобалните модератори",
"max-length": "Максимална дължина на съобщенията в разговорите",
"max-room-size": "Максимален брой потребители в стая за разговор",
"delay": "Време между съобщенията в разговорите (в милисекунди)",
"notification-delay": "Забавяне преди известяване за съобщения в разговорите. (0 без забавяне)",
"delay": "Време между съобщеният в разговорите (в милисекунди)",
"restrictions.seconds-edit-after": "Брой секунди, през които съобщенията в разговор могат да бъдат редактирани. (0 = изключено)",
"restrictions.seconds-delete-after": "Брой секунди, през които съобщенията в разговор могат да бъдат изтривани. (0 = изключено)"
}

View File

@@ -4,7 +4,10 @@
"address-help": "Следният адрес на е-поща е този, който получателят ще види в полетата „От“ и “Отговор до“.",
"from": "Име за полето „От“",
"from-help": "Името на изпращача, което да бъде показано в е-писмото.",
"sendmail-rate-limit": "Изпращане на <em>X</em> е-писма…",
"sendmail-rate-delta": "…на всеки <em>X</em> милисекунди",
"sendmail-rate-help": "Задава на програмата за изпращане на е-писма на NodeBB да ограничи броя едновременно изпращани съобщения, за да не се претоварват пощенските сървъри. Тези настройки не се вземат предвид, ако е включена настройката „Транспорт чрез SMTP“ (по-долу).",
"smtp-transport": "Транспорт чрез SMTP",
"smtp-transport.enabled": "Използване на външен сървър за е-поща за изпращане на е-писма",
"smtp-transport-help": "Можете да изберете от списък от познати услуги, или да въведете такава ръчно.",
@@ -22,8 +25,6 @@
"smtp-transport.username": "Потребителско име",
"smtp-transport.username-help": "<b>За услугата на Gmail</b>, въведете пълния адрес на е-пощата тук, особено ако използвате управляван домейн на „Google Apps“.",
"smtp-transport.password": "Парола",
"smtp-transport.pool": "Включване на групираните връзки",
"smtp-transport.pool-help": "Групирането на връзките предотвратява създаването на нова връзка за всяко е-писмо. Тази настройка има ефект, само ако е включено „Транспорт чрез SMTP“.",
"template": "Редактирана не шаблона за е-писма",
"template.select": "Изберете шаблон за е-писма",

View File

@@ -27,12 +27,9 @@
"log.alt-text-placeholder": "Алтернативен текст за достъпност",
"favicon": "Иконка на уеб сайта",
"favicon.upload": "Качване",
"pwa": "Прогресивно уеб-приложение",
"touch-icon": "Иконка за сензорен екран",
"touch-icon": "Иконка за начален екран (мобилно устройство)",
"touch-icon.upload": "Качване",
"touch-icon.help": "Препоръчителен размер и формат: 512x512, само във формат „PNG“. Ако не е посочена иконка за сензорен екран, NodeBB ще използва иконката на уеб сайта.",
"maskable-icon": "Маскируема иконка (за начален екран)",
"maskable-icon.help": "Препоръчителен размер и формат: 512x512, само във формат „PNG“. Ако не е посочена маскируема иконка, NodeBB ще използва иконката за сензорен екран.",
"touch-icon.help": "Препоръчителен размер и формат: 192x192, само във формат „PNG“. Ако не е посочена иконка за начален екран на мобилно устройство, NodeBB ще използва иконката на уеб сайта.",
"outgoing-links": "Изходящи връзки",
"outgoing-links.warning-page": "Показване на предупредителна страница при щракване върху външни връзки",
"search-default-sort-by": "Подредба по подразбиране при търсене",
@@ -41,4 +38,4 @@
"theme-color": "Цвят на темата",
"background-color": "Фонов цвят",
"background-color-help": "Цвят, който да се използва като фон за началния екран, когато уеб сайтът е инсталиран като приложение"
}
}

View File

@@ -2,5 +2,6 @@
"notifications": "Известия",
"welcome-notification": "Приветствено известие",
"welcome-notification-link": "Връзка за приветственото известие",
"welcome-notification-uid": "Потр. ид. за приветственото известие"
"welcome-notification-uid": "Потр. ид. за приветственото известие",
"notification-alert-timeout": "Време за изчакване преди премахване на уведомяването за известие"
}

View File

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

View File

@@ -5,16 +5,10 @@
"votes-are-public": "Всички гласувания са публични",
"thresholds": "Ограничения на дейността",
"min-rep-downvote": "Минимална репутация, необходима за отрицателно гласуване за публикации",
"downvotes-per-day": "Отрицателни гласувания за ден (задайте 0 за неограничен брой)",
"downvotes-per-user-per-day": "Отрицателни гласувания за потребител за ден (задайте 0 за неограничен брой)",
"min-rep-flag": "Минимална репутация, необходима за докладване на публикации",
"min-rep-website": "Минимална репутация, необходима за добавяне на полето „Уебсайт“ към профила на потребителя",
"min-rep-aboutme": "Минимална репутация, необходима за добавяне на полето „За мен“ към профила на потребителя",
"min-rep-signature": "Минимална репутация, необходима за добавяне на полето „Подпис“ към профила на потребителя",
"min-rep-profile-picture": "Минимална репутация, необходима за добавяне на профилна снимка към профила на потребителя",
"min-rep-cover-picture": "Минимална репутация, необходима за добавяне на снимка на корицата към профила на потребителя",
"flags": "Настройки за докладите",
"flags.limit-per-target": "Максимален брой докладвания на едно и също нещо",
"flags.limit-per-target-placeholder": "По подразбиране: 0"
"min-rep-cover-picture": "Минимална репутация, необходима за добавяне на снимка на корицата към профила на потребителя"
}

View File

@@ -21,8 +21,6 @@
"reset.notify.text1": "Известяваме Ви, че на %1, Вашата парола беше променена успешно.",
"reset.notify.text2": "Ако не сте поискали това, моля, свържете се незабавно с администратор.",
"digest.latest_topics": "Последни теми от %1",
"digest.top-topics": "Най-интересните теми от %1",
"digest.popular-topics": "Популярни теми от %1",
"digest.cta": "Натиснете тук, за да посетите %1",
"digest.unsub.info": "Това резюме беше изпратено до Вас поради настройките Ви за абонаментите.",
"digest.day": "ден",

View File

@@ -26,7 +26,6 @@
"invalid-pagination-value": "Грешен номер на странициране, трябва да бъде между %1 и %2",
"username-taken": "Потребителското име е заето",
"email-taken": "Е-пощата е заета",
"email-invited": "На тази е-поща вече е била изпратена покана",
"email-not-confirmed": "Няма да можете да публикувате съобщения, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed-chat": "Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Няма да можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
@@ -139,13 +138,8 @@
"not-enough-reputation-min-rep-signature": "Нямате достатъчно репутация, за да добавите подпис",
"not-enough-reputation-min-rep-profile-picture": "Нямате достатъчно репутация, за да добавите снимка на профила си",
"not-enough-reputation-min-rep-cover-picture": "Нямате достатъчно репутация, за да добавите снимка на корицата",
"post-already-flagged": "Вече сте докладвали тази публикация",
"user-already-flagged": "Вече сте докладвали този потребител",
"post-flagged-too-many-times": "Тази публикация вече е докладвана от други хора",
"user-flagged-too-many-times": "Този потребител вече е докладван от други хора",
"already-flagged": "Вече сте докладвали тази публикация",
"self-vote": "Не можете да гласувате за собствената си публикация",
"too-many-downvotes-today": "Можете да гласувате отрицателно не повече от %1 пъти на ден",
"too-many-downvotes-today-user": "Можете да гласувате отрицателно за потребител не повече от %1 пъти на ден",
"reload-failed": "NodeBB срещна проблем при презареждането: „%1“. NodeBB ще продължи да поддържа съществуващите клиентски ресурси, но Вие трябва да отмените последните си действия преди презареждането.",
"registration-error": "Грешка при регистрацията",
"parse-error": "Нещо се обърка при прочитането на отговора на сървъра",
@@ -163,12 +157,10 @@
"invalid-session-text": "Изглежда сесията Ви на вписване вече е изтекла или не съответства на сървъра. Моля, опреснете страницата.",
"no-topics-selected": "Няма избрани теми!",
"cant-move-to-same-topic": "Публикацията не може да бъде преместена в същата тема!",
"cant-move-topic-to-same-category": "Темата не може да бъде преместена в същата категория!",
"cannot-block-self": "Не можете да блокирате себе си!",
"cannot-block-privileged": "Не можете да блокирате администратори и глобални модератори",
"cannot-block-guest": "Гостите не могат да блокират други потребители",
"already-blocked": "Този потребител вече е блокиран",
"already-unblocked": "Този потребител вече е отблокиран",
"no-connection": "Изглежда има проблем с връзката Ви с Интернет",
"plugin-not-whitelisted": "Добавката не може да бъде инсталирана само добавки, одобрени от пакетния мениджър на NodeBB могат да бъдат инсталирани чрез ACP"
"no-connection": "Изглежда има проблем с връзката Ви с Интернет"
}

View File

@@ -1,7 +1,8 @@
{
"state": "Състояние",
"reports": "Доклади",
"first-reported": "Първо докладване",
"reporter": "Докладвал",
"reported-at": "Докладвано на",
"description": "Описание",
"no-flags": "Ура! Няма намерени доклади.",
"assignee": "Назначен",
"update": "Обновяване",
@@ -25,7 +26,6 @@
"filter-quick-mine": "Назначени на мен",
"filter-cid-all": "Всички категории",
"apply-filters": "Прилагане на филтрите",
"more-filters": "Още филтри",
"quick-actions": "Бързи действия",
"flagged-user": "Докладван потребител",
@@ -43,11 +43,9 @@
"notes": "Бележки към доклада",
"add-note": "Добавяне на бележка",
"no-notes": "Няма споделени бележки.",
"delete-note-confirm": "Наистина ли искате да изтриете тази бележка към доклада?",
"note-added": "Бележката е добавена",
"note-deleted": "Бележката е изтрита",
"history": "Акаунт и история на докладванията",
"back": "Обратно към списъка с доклади",
"no-history": "Няма история на доклада.",
"state-all": "Всички състояния",
@@ -56,16 +54,7 @@
"state-resolved": "Разрешен",
"state-rejected": "Отхвърлен",
"no-assignee": "Без назначение",
"sort": "Подреждане по",
"sort-newest": "Първо най-новите",
"sort-oldest": "Първо най-старите",
"sort-reports": "Първо тези с най-много доклади",
"sort-all": "Всички видове доклади…",
"sort-posts-only": "Само публикации…",
"sort-downvotes": "Най-много отрицателни гласове",
"sort-upvotes": "Най-много положителни гласове",
"sort-replies": "Най-много отговори",
"note-added": "Бележката е добавена",
"modal-title": "Докладване на неуместно съдържание",
"modal-body": "Моля, посочете причината за докладването на %1 %2 за преглед. Или използвайте някой от бутоните за бързо докладване, ако са приложими.",
@@ -77,9 +66,5 @@
"modal-submit-success": "Съдържанието беше докладвано на модераторите.",
"modal-submit-confirm": "Потвърждаване на докладването",
"modal-submit-confirm-text": "Вече сте описали специалната си причина. Наистина ли искате да изпратите доклада си по бързата процедура?",
"modal-submit-confirm-text-help": "Изпращането на доклад по бързата процедура ще премахне описаната от Вас специалната причина.",
"bulk-actions": "Групови действия",
"bulk-resolve": "Разрешаване на доклад(и)",
"bulk-success": "%1 доклада са обновени"
"modal-submit-confirm-text-help": "Изпращането на доклад по бързата процедура ще премахне описаната от Вас специалната причина."
}

View File

@@ -52,17 +52,14 @@
"users": "Потребители",
"topics": "Теми",
"posts": "Публ.",
"x-posts": "%1 публикации",
"best": "Най-добри",
"votes": "Гласове",
"x-votes": "%1 гласа",
"voters": "Гласували",
"upvoters": "Гласували положително",
"upvoted": "С положителни гласове",
"downvoters": "Гласували отрицателно",
"downvoted": "С отрицателни гласове",
"views": "Прегл.",
"posters": "Участници",
"reputation": "Репутация",
"lastpost": "Последна публикация",
"firstpost": "Първа публикация",

View File

@@ -1,7 +1,6 @@
{
"chat.chatting_with": "Разговор с",
"chat.placeholder": "Въведете съобщението тук и натиснете Ентер за изпращане",
"chat.scroll-up-alert": "В момента разглеждате по-стари съобщения. Щракнете тук, за да се прехвърлите към най-новото съобщение.",
"chat.send": "Изпращане",
"chat.no_active": "Нямате текущи разговори.",
"chat.user_typing": "%1 пише...",
@@ -59,7 +58,6 @@
"composer.upload-file": "Качване на файл",
"composer.zen_mode": "Режим Дзен",
"composer.select_category": "Изберете категория",
"composer.textarea.placeholder": "Въведете съдържанието на публикацията си тук. Можете също да влачите и пускате снимки.",
"bootbox.ok": "Добре",
"bootbox.cancel": "Отказ",
"bootbox.confirm": "Потвърждаване",

View File

@@ -43,9 +43,6 @@
"new_register_multiple": "Има <strong>%1</strong> заявки за регистрация, които очакват да бъдат прегледани.",
"flag_assigned_to_you": "<strong>Докладът %1</strong> беше назначен на Вас",
"post_awaiting_review": "Публикацията чака да бъде прегледана",
"profile-exported": "Профилът на <strong>%1</strong> е изнесен, щракнете за сваляне",
"posts-exported": "Публикациите на <strong>%1</strong> са изнесени, щракнете за сваляне",
"uploads-exported": "Качванията на <strong>%1</strong> са изнесени, щракнете за сваляне",
"email-confirmed": "Е-пощата беше потвърдена",
"email-confirmed-message": "Благодарим Ви, че потвърдихте е-пощата си. Акаунтът Ви е вече напълно активиран.",
"email-confirm-error-message": "Възникна проблем при потвърждаването на е-пощата Ви. Може кодът да е грешен или давността му да е изтекла.",

View File

@@ -7,7 +7,6 @@
"wrong_reset_code.message": "Полученият код за подновяване беше грешен. Моля, опитайте отново или <a href=\"/reset\">поискайте нов код за подновяване</a>.",
"new_password": "Нова парола",
"repeat_password": "Потвърдете паролата",
"changing_password": "Промяна на паролата…",
"enter_email": "Моля, въведете <strong>адреса на е-пощата си</strong> и ще Ви изпратим е-писмо с инструкции за това как да достъпите акаунта си.",
"enter_email_address": "Въведете адрес на е-поща",
"password_reset_sent": "Ако посоченият адрес съответства на съществуващ потребителски акаунт, то вече му е изпратено е-писмо за подновяване на паролата. Имайте предвид, че може да бъде изпращано само по едно е-писмо на минута.",

View File

@@ -44,6 +44,5 @@
"search-preferences-saved": "Предпочитанията за търсене бяха запазени",
"search-preferences-cleared": "Предпочитанията за търсене бяха изчистени",
"show-results-as": "Показване на резултатите като",
"see-more-results": "Показване на още резултати (%1)",
"search-in-category": "Търсене в „%1“"
"see-more-results": "Показване на още резултати (%1)"
}

View File

@@ -1,5 +1,7 @@
{
"topic": "Тема",
"topic_id": "Ид. на темата",
"topic_id_placeholder": "Въведете ид. на тема",
"no_topics_found": "Няма намерени теми!",
"no_posts_found": "Няма намерени публикации!",
"post_is_deleted": "Публикацията е изтрита!",
@@ -34,11 +36,8 @@
"ban-ip": "Блокиране на IP адреса",
"view-history": "История на редакциите",
"bookmark_instructions": "Щракнете тук, за да се върнете към последно прочетената публикация в тази тема.",
"flag-post": "Докладване на тази публикация",
"flag-user": "Докладване на този потребител",
"already-flagged": "Вече е докладвано",
"view-flag-report": "Преглед на доклада",
"merged_message": "Тази тема беше слята в <a href=\"%1\">%2</a>",
"flag_title": "Докладване на тази публикация до модератор",
"merged_message": "Тази тема беше слята в <a href=\"/topic/%1\">%2</a>",
"deleted_message": "Темата е изтрита. Само потребители с права за управление на темите могат да я видят.",
"following_topic.message": "Вече ще получавате известия когато някой публикува коментар в тази тема.",
"not_following_topic.message": "Ще виждате тази тема в списъка с непрочетени теми, но няма да получавате известия, когато хората публикуват нещо в нея.",
@@ -79,10 +78,7 @@
"thread_tools.purge_confirm": "Наистина ли искате да изчистите тази тема?",
"thread_tools.merge_topics": "Сливане на темите",
"thread_tools.merge": "Сливане",
"topic_move_success": "Темата ще бъде преместена след малко. Натиснете тук, за да отмените преместването.",
"topic_move_undone": "Преместването на темата беше отменено",
"topic_move_posts_success": "Публикациите ще бъдат преместени след малко. Натиснете тук, за да отмените преместването.",
"topic_move_posts_undone": "Преместването на публикациите беше отменено",
"topic_move_success": "Темата беше преместена успешно в %1",
"post_delete_confirm": "Наистина ли искате да изтриете тази публикация?",
"post_restore_confirm": "Наистина ли искате да възстановите тази публикация?",
"post_purge_confirm": "Наистина ли искате да изчистите тази публикация?",
@@ -100,9 +96,6 @@
"fork_topic": "Разделяне на темата",
"fork_topic_instruction": "Натиснете публикациите, които искате да отделите",
"fork_no_pids": "Няма избрани публикации!",
"no-posts-selected": "Няма избрани публикации!",
"x-posts-selected": "Избрани публикации: %1",
"x-posts-will-be-moved-to-y": "%1 публикации ще бъдат преместени в „%2“",
"fork_pid_count": "Избрани публикации: %1",
"fork_success": "Темата е разделена успешно! Натиснете тук, за да преминете към отделената тема.",
"delete_posts_instruction": "Натиснете публикациите, които искате да изтриете/изчистите",
@@ -111,7 +104,7 @@
"merge-options": "Настройки за сливането",
"merge-select-main-topic": "Изберете основната тема",
"merge-new-title-for-topic": "Ново заглавие за темата",
"move_posts_instruction": "Натиснете публикациите, които искате да преместите, а след това идете в желаната тема и натиснете „Преместване“.",
"move_posts_instruction": "Натиснете публикациите, които искате да преместите",
"change_owner_instruction": "Натиснете публикациите, които искате да прехвърлите на друг потребител",
"composer.title_placeholder": "Въведете заглавието на темата си тук...",
"composer.handle_placeholder": "Въведете името тук",

View File

@@ -111,7 +111,12 @@
"posts_per_page": "Публикации на страница",
"max_items_per_page": "Най-много %1",
"acp_language": "Език на администраторската страница",
"notifications": "Известия",
"notification_sounds": "Изпълняване на звук, когато получите известие",
"notifications_and_sounds": "Известия и звуци",
"incoming-message-sound": "Звук за входящо съобщение",
"outgoing-message-sound": "Звук за изходящо съобщение",
"notification-sound": "Звук за известие",
"no-sound": "Без звук",
"upvote-notif-freq": "Честота на известията за положителни гласове",
"upvote-notif-freq.all": "Всички положителни гласове",
"upvote-notif-freq.first": "При първия за публикация",
@@ -174,9 +179,6 @@
"consent.right_to_data_portability": "Имате право на пренос на данни",
"consent.right_to_data_portability_description": "Можете да изискате от нас всички събрани за Вас и акаунта Ви данни в машинен формат. Можете да направите това като натиснете съответния бутон по-долу.",
"consent.export_profile": "Изнасяне на профила (.json)",
"consent.export-profile-success": "Изнасяне на профила… Ще получите известие, когато е готово.",
"consent.export_uploads": "Изнасяне на каченото съдържание (.zip)",
"consent.export-uploads-success": "Изнасяне на каченото съдържание… Ще получите известие, когато е готово.",
"consent.export_posts": "Изнасяне на публикациите (.csv)",
"consent.export-posts-success": "Изнасяне на публикациите… Ще получите известие, когато е готово."
"consent.export_posts": "Изнасяне на публикациите (.csv)"
}

View File

@@ -3,7 +3,6 @@
"ip": "IP <strong>%1</strong>",
"nodes-responded": "%1 nodes responded within %2ms!",
"host": "host",
"primary": "primary / run jobs",
"pid": "pid",
"nodejs": "nodejs",
"online": "online",

View File

@@ -1,5 +1,4 @@
{
"trending": "Trending",
"installed": "Installed",
"active": "Active",
"inactive": "Inactive",

View File

@@ -1,7 +1,7 @@
{
"available": "Available Widgets",
"explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.",
"none-installed": "No widgets found! Activate the widget essentials plugin in the <a href=\"%1\">plugins</a> control panel.",
"none-installed": "No widgets found! Activate the essential widgets plugin in the <a href=\"%1\">plugins</a> control panel.",
"clone-from": "Clone widgets from",
"containers.available": "Available Containers",
"containers.explanation": "Drag and drop on top of any active widget",

View File

@@ -11,7 +11,6 @@
"num-recent-replies": "# of Recent Replies",
"ext-link": "External Link",
"is-section": "Treat this category as a section",
"tag-whitelist": "Tag Whitelist",
"upload-image": "Upload Image",
"delete-image": "Remove",
"category-image": "Category Image",
@@ -27,8 +26,6 @@
"enable": "Enable",
"disable": "Disable",
"edit": "Edit",
"analytics": "Analytics",
"view-category": "View category",
"select-category": "Select Category",
"set-parent-category": "Set Parent Category",
@@ -66,6 +63,7 @@
"alert.create-success": "Category successfully created!",
"alert.none-active": "You have no active categories.",
"alert.create": "Create a Category",
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
"alert.confirm-purge": "<p class=\"lead\">Do you really want to purge this category \"%1\"?</p><h5><strong class=\"text-danger\">Warning!</strong> All topics and posts in this category will be purged!</h5> <p class=\"help-block\">Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category <em>temporarily</em>, you'll want to \"disable\" the category instead.</p>",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
@@ -77,9 +75,7 @@
"alert.user-search": "Search for a user here...",
"alert.find-group": "Find a Group",
"alert.group-search": "Search for a group here...",
"alert.not-enough-whitelisted-tags": "Whitelisted tags are less than minimum tags, you need to create more whitelisted tags!",
"collapse-all": "Collapse All",
"expand-all": "Expand All",
"disable-on-create": "Disable on create",
"no-matches": "No matches"
"disable-on-create": "Disable on create"
}

View File

@@ -8,9 +8,6 @@
"hidden": "Hidden",
"private": "Private",
"edit": "Edit",
"delete": "Delete",
"privileges": "Privileges",
"download-csv": "CSV",
"search-placeholder": "Search",
"create": "Create Group",
"description-placeholder": "A short description about your group",

View File

@@ -1,9 +1,9 @@
{
"global": "Global",
"global.no-users": "No user-specific global privileges.",
"admin": "Admin",
"group-privileges": "Group Privileges",
"user-privileges": "User Privileges",
"edit-privileges": "Edit Privileges",
"chat": "Chat",
"upload-images": "Upload Images",
"upload-files": "Upload Files",
@@ -33,20 +33,10 @@
"delete-topics": "Delete Topics",
"purge": "Purge",
"moderate": "Moderate",
"admin-dashboard": "Dashboard",
"admin-categories": "Categories",
"admin-privileges": "Privileges",
"admin-users": "Users",
"admin-settings": "Settings",
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
"alert.confirm-save": "Please confirm your intention to save these privileges",
"alert.saved": "Privilege changes saved and applied",
"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
"alert.discarded": "Privilege changes discarded",
"alert.confirm-copyToAll": "Are you sure you wish to apply this privilege set to <strong>all categories</strong>?",
"alert.confirm-copyToAllGroup": "Are you sure you wish to apply this group's privilege set to <strong>all categories</strong>?",
"alert.confirm-copyToChildren": "Are you sure you wish to apply this privilege set to <strong>all descendant (child) categories</strong>?",
"alert.confirm-copyToChildrenGroup": "Are you sure you wish to apply this group's privilege set to <strong>all descendant (child) categories</strong>?",
"alert.no-undo": "<em>This action cannot be undone.</em>"
"admin-settings": "Settings"
}

View File

@@ -108,5 +108,5 @@
"alerts.prompt-email": "Emails: ",
"alerts.email-sent-to": "An invitation email has been sent to %1",
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)"
"alerts.x-users-found": "%1 user(s) found! Search took %2 ms."
}

View File

@@ -19,7 +19,7 @@
"settings/general": "General",
"settings/homepage": "Home Page",
"settings/navigation": "Navigation",
"settings/reputation": "Reputation & Flags",
"settings/reputation": "Reputation",
"settings/email": "Email",
"settings/user": "Users",
"settings/group": "Groups",
@@ -70,7 +70,7 @@
"logout": "Log out",
"view-forum": "View Forum",
"search.placeholder": "Press &quot;/&quot; to search for settings",
"search.placeholder": "Search for settings",
"search.no-results": "No results...",
"search.search-forum": "Search the forum for <strong></strong>",
"search.keep-typing": "Type more to see results...",

View File

@@ -5,8 +5,6 @@
"maintenance-mode.message": "Maintenance Message",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors-help": "'none', 'self'(default) or list of URIs to allow.",
"headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB",
"headers.acao": "Access-Control-Allow-Origin",
"headers.acao-regex": "Access-Control-Allow-Origin Regular Expression",
@@ -32,9 +30,5 @@
"sockets.settings": "WebSocket Settings",
"sockets.max-attempts": "Max Reconnection Attempts",
"sockets.default-placeholder": "Default: %1",
"sockets.delay": "Reconnection Delay",
"analytics.settings": "Analytics Settings",
"analytics.max-cache": "Analytics Cache Max Value",
"analytics.max-cache-help": "On high-traffic installs, the cache could be exhausted continuously if there are more concurrent active users than the Max Cache value. (Restart required)"
"sockets.delay": "Reconnection Delay"
}

View File

@@ -6,7 +6,6 @@
"max-length": "Maximum length of chat messages",
"max-room-size": "Maximum number of users in chat rooms",
"delay": "Time between chat messages in milliseconds",
"notification-delay": "Notification delay for chat messages. (0 for no delay)",
"restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)",
"restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)"
}

View File

@@ -4,7 +4,10 @@
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
"from": "From Name",
"from-help": "The from name to display in the email.",
"sendmail-rate-limit": "<em>X</em> ইমেইল পাঠাও... ",
"sendmail-rate-delta": "... প্রতি<em>X</em> মিলিসেকেন্ডে",
"sendmail-rate-help": "NodeBB মেইলার কে নির্দেশ দিন যে একবারে পাঠানো মেইলের সংখ্যা সিমিত রাখতে যাতে ইমেইল গ্রাহক সার্ভিস ওভারলোডেড না হয়ে যায়। এই অপশন কার্যকর হবে না যদি SMTP Transport চালু থাকে (নিচে দেখুন)। ",
"smtp-transport": "SMTP Transport",
"smtp-transport.enabled": "Use an external email server to send emails",
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
@@ -22,8 +25,6 @@
"smtp-transport.username": "Username",
"smtp-transport.username-help": "<b>For the Gmail service,</b> enter the full email address here, especially if you are using a Google Apps managed domain.",
"smtp-transport.password": "Password",
"smtp-transport.pool": "Enable pooled connections",
"smtp-transport.pool-help": "Pooling connections prevents NodeBB from creating a new connection for every email. This option only applies if SMTP Transport is enabled.",
"template": "Edit Email Template",
"template.select": "Select Email Template",

View File

@@ -27,12 +27,9 @@
"log.alt-text-placeholder": "Alternative text for accessibility",
"favicon": "Favicon",
"favicon.upload": "Upload",
"pwa": "Progressive Web App",
"touch-icon": "Touch Icon",
"touch-icon": "Homescreen/Touch Icon",
"touch-icon.upload": "Upload",
"touch-icon.help": "Recommended size and format: 512x512, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.",
"maskable-icon": "Maskable (Homescreen) Icon",
"maskable-icon.help": "Recommended size and format: 512x512, PNG format only. If no maskable icon is specified, NodeBB will fall back to the Touch Icon.",
"touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.",
"outgoing-links": "Outgoing Links",
"outgoing-links.warning-page": "Use Outgoing Links Warning Page",
"search-default-sort-by": "Search default sort by",
@@ -41,4 +38,4 @@
"theme-color": "Theme Color",
"background-color": "Background Color",
"background-color-help": "Color used for splash screen background when website is installed as a PWA"
}
}

View File

@@ -2,5 +2,6 @@
"notifications": "Notifications",
"welcome-notification": "Welcome Notification",
"welcome-notification-link": "Welcome Notification Link",
"welcome-notification-uid": "Welcome Notification User (UID)"
"welcome-notification-uid": "Welcome Notification User (UID)",
"notification-alert-timeout": "Notification Alert Timeout"
}

View File

@@ -42,7 +42,6 @@
"unread.cutoff": "Unread cutoff days",
"unread.min-track-last": "Minimum posts in topic before tracking last read",
"recent": "Recent Settings",
"recent.max-topics": "Maximum topics on /recent",
"recent.categoryFilter.disable": "Disable filtering of topics in ignored categories on the /recent page",
"signature": "Signature Settings",
"signature.disable": "Disable signatures",

View File

@@ -5,16 +5,10 @@
"votes-are-public": "All Votes Are Public",
"thresholds": "Activity Thresholds",
"min-rep-downvote": "Minimum reputation to downvote posts",
"downvotes-per-day": "Downvotes per day (set to 0 for unlimited downvotes)",
"downvotes-per-user-per-day": "Downvotes per user per day (set to 0 for unlimited downvotes)",
"min-rep-flag": "Minimum reputation to flag posts",
"min-rep-website": "Minimum reputation to add \"Website\" to user profile",
"min-rep-aboutme": "Minimum reputation to add \"About me\" to user profile",
"min-rep-signature": "Minimum reputation to add \"Signature\" to user profile",
"min-rep-profile-picture": "Minimum reputation to add \"Profile Picture\" to user profile",
"min-rep-cover-picture": "Minimum reputation to add \"Cover Picture\" to user profile",
"flags": "Flag Settings",
"flags.limit-per-target": "Maximum number of times something can be flagged",
"flags.limit-per-target-placeholder": "Default: 0"
"min-rep-cover-picture": "Minimum reputation to add \"Cover Picture\" to user profile"
}

View File

@@ -21,8 +21,6 @@
"reset.notify.text1": "আপনাকে জানাচ্ছি যে %1 এ আপনার পাসওয়ার্ড পরিবর্তন হয়েছে",
"reset.notify.text2": "এটা আপনার অজান্তে হলে এখনই প্রশাসককে আবহিত করুন",
"digest.latest_topics": "%1 এর সর্বশেষ টপিকসমূহ",
"digest.top-topics": "Top topics from %1",
"digest.popular-topics": "Popular topics from %1",
"digest.cta": "%1 ভিজিট করতে এখানে ক্লিক করুন",
"digest.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনাকে এই ডাইজেষ্টটি পাঠানো হয়েছে।",
"digest.day": "দিন",

View File

@@ -26,7 +26,6 @@
"invalid-pagination-value": "Invalid pagination value, must be at least %1 and at most %2",
"username-taken": "ইউজারনেম আগেই ব্যবহৃত",
"email-taken": "ইমেইল আগেই ব্যবহৃত",
"email-invited": "Email was already invited",
"email-not-confirmed": "You are unable to post until your email is confirmed, please click here to confirm your email.",
"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. You won't be able to post or chat until your email is confirmed.",
@@ -139,13 +138,8 @@
"not-enough-reputation-min-rep-signature": "You do not have enough reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture": "You do not have enough reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture": "You do not have enough reputation to add a cover picture",
"post-already-flagged": "You have already flagged this post",
"user-already-flagged": "You have already flagged this user",
"post-flagged-too-many-times": "This post has been flagged by others already",
"user-flagged-too-many-times": "This user has been flagged by others already",
"already-flagged": "You have already flagged this post",
"self-vote": "You cannot vote on your own post",
"too-many-downvotes-today": "You can only downvote %1 times a day",
"too-many-downvotes-today-user": "You can only downvote a user %1 times a day",
"reload-failed": "\"%1\" রিলোড করতে সমস্যা হয়েছে। রিলোডের পূর্বে যা করা হয়েছিল সেটি আনডু করা সমীচীন। ",
"registration-error": "নিবন্ধন এরর!",
"parse-error": "Something went wrong while parsing server response",
@@ -163,12 +157,10 @@
"invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page.",
"no-topics-selected": "No topics selected!",
"cant-move-to-same-topic": "Can't move post to same topic!",
"cant-move-topic-to-same-category": "Can't move topic to the same category!",
"cannot-block-self": "You cannot block yourself!",
"cannot-block-privileged": "You cannot block administrators or global moderators",
"cannot-block-guest": "Guest are not able to block other users",
"already-blocked": "This user is already blocked",
"already-unblocked": "This user is already unblocked",
"no-connection": "There seems to be a problem with your internet connection",
"plugin-not-whitelisted": "Unable to install plugin &ndash; only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP"
"no-connection": "There seems to be a problem with your internet connection"
}

View File

@@ -1,7 +1,8 @@
{
"state": "State",
"reports": "Reports",
"first-reported": "First Reported",
"reporter": "Reporter",
"reported-at": "Reported At",
"description": "Description",
"no-flags": "Hooray! No flags found.",
"assignee": "Assignee",
"update": "Update",
@@ -25,7 +26,6 @@
"filter-quick-mine": "Assigned to me",
"filter-cid-all": "All categories",
"apply-filters": "Apply Filters",
"more-filters": "More Filters",
"quick-actions": "Quick Actions",
"flagged-user": "Flagged User",
@@ -43,11 +43,9 @@
"notes": "Flag Notes",
"add-note": "Add Note",
"no-notes": "No shared notes.",
"delete-note-confirm": "Are you sure you want to delete this flag note?",
"note-added": "Note Added",
"note-deleted": "Note Deleted",
"history": "Account &amp; Flag History",
"back": "Back to Flags List",
"no-history": "No flag history.",
"state-all": "All states",
@@ -56,16 +54,7 @@
"state-resolved": "Resolved",
"state-rejected": "Rejected",
"no-assignee": "Not Assigned",
"sort": "Sort by",
"sort-newest": "Newest first",
"sort-oldest": "Oldest first",
"sort-reports": "Most reports",
"sort-all": "All flag types...",
"sort-posts-only": "Posts only...",
"sort-downvotes": "Most downvotes",
"sort-upvotes": "Most upvotes",
"sort-replies": "Most replies",
"note-added": "Note Added",
"modal-title": "Report Inappropriate Content",
"modal-body": "Please specify your reason for flagging %1 %2 for review. Alternatively, use one of the quick report buttons if applicable.",
@@ -77,9 +66,5 @@
"modal-submit-success": "Content has been flagged for moderation.",
"modal-submit-confirm": "Confirm Submission",
"modal-submit-confirm-text": "You have a custom reason specified already. Are you sure you wish to submit via quick-report?",
"modal-submit-confirm-text-help": "Submitting a quick report will overwrite any custom reasons defined.",
"bulk-actions": "Bulk Actions",
"bulk-resolve": "Resolve Flag(s)",
"bulk-success": "%1 flags updated"
"modal-submit-confirm-text-help": "Submitting a quick report will overwrite any custom reasons defined."
}

View File

@@ -52,17 +52,14 @@
"users": "ব্যবহারকারীগণ",
"topics": "টপিক",
"posts": "পোস্টগুলি",
"x-posts": "%1 posts",
"best": "Best",
"votes": "Votes",
"x-votes": "%1 votes",
"voters": "Voters",
"upvoters": "Upvoters",
"upvoted": "Upvoted",
"downvoters": "Downvoters",
"downvoted": "Downvoted",
"views": "দেখেছেন",
"posters": "Posters",
"reputation": "সন্মাননা",
"lastpost": "Last post",
"firstpost": "First post",

View File

@@ -1,7 +1,6 @@
{
"chat.chatting_with": "Chat with",
"chat.placeholder": "এখানে আপনার বার্তা লিখুন। পাঠানোর জন্য Enter চাপুন",
"chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
"chat.send": "প্রেরন করুন",
"chat.no_active": "আপনার কোন সচল কথোপকথন নেই",
"chat.user_typing": "%1 লিখছেন",
@@ -59,7 +58,6 @@
"composer.upload-file": "Upload File",
"composer.zen_mode": "Zen Mode",
"composer.select_category": "Select a category",
"composer.textarea.placeholder": "Enter your post content here, drag and drop images",
"bootbox.ok": "OK",
"bootbox.cancel": "Cancel",
"bootbox.confirm": "Confirm",

View File

@@ -43,9 +43,6 @@
"new_register_multiple": "There are <strong>%1</strong> registration requests awaiting review.",
"flag_assigned_to_you": "<strong>Flag %1</strong> has been assigned to you",
"post_awaiting_review": "Post awaiting review",
"profile-exported": "<strong>%1</strong> profile exported, click to download",
"posts-exported": "<strong>%1</strong> posts exported, click to download",
"uploads-exported": "<strong>%1</strong> uploads exported, click to download",
"email-confirmed": "ইমেইল নিশ্চিত করা হয়েছে",
"email-confirmed-message": "আপনার ইমেইল যাচাই করার জন্য আপনাকে ধন্যবাদ। আপনার অ্যাকাউন্টটি এখন সম্পূর্ণরূপে সক্রিয়।",
"email-confirm-error-message": "আপনার ইমেল ঠিকানার বৈধতা যাচাইয়ে একটি সমস্যা হয়েছে। সম্ভবত কোডটি ভুল ছিল অথবা কোডের মেয়াদ শেষ হয়ে গিয়েছে।",

View File

@@ -7,7 +7,6 @@
"wrong_reset_code.message": "প্রাপ্ত রিসেট কোডটি ভুল ছিল। আবার চেষ্টা করুন, অথবা <a href=\"/reset\">একটি নতুন রিসেট কোড</a> অনুরোধ করুন।",
"new_password": "নতুন পাসওয়ার্ড",
"repeat_password": "পাসওয়ার্ড নিশ্চিত করুন",
"changing_password": "Changing Password",
"enter_email": "অনুগ্রহপূর্বক আপনার ইমেইল এড্রেস প্রদান করুন, আমরা আপনাকে আপনার পাসওয়ার্ড রিসেট সম্পর্কিত তথ্যাবলী ইমেইলে পাঠিয়ে দিবো। ",
"enter_email_address": "আপনার ইমেইল এড্রেস",
"password_reset_sent": "If the specified address corresponds to an existing user account, a password reset email was sent. Please note that only one email will be sent per minute.",

View File

@@ -44,6 +44,5 @@
"search-preferences-saved": "Search preferences saved",
"search-preferences-cleared": "Search preferences cleared",
"show-results-as": "ফলাফল দেখানো হোক : ",
"see-more-results": "See more results (%1)",
"search-in-category": "Search in \"%1\""
"see-more-results": "See more results (%1)"
}

View File

@@ -1,5 +1,7 @@
{
"topic": "টপিক",
"topic_id": "টপিক নাম্বার ",
"topic_id_placeholder": "টপিক নাম্বার দিন ",
"no_topics_found": "কোন টপিক পাওয়া যায়নি!",
"no_posts_found": "কোন পোস্ট পাওয়া যায়নি",
"post_is_deleted": "এই পোস্টটি মুছে ফেলা হয়েছে!",
@@ -34,11 +36,8 @@
"ban-ip": "Ban IP",
"view-history": "Edit History",
"bookmark_instructions": "Click here to return to the last read post in this thread.",
"flag-post": "Flag this post",
"flag-user": "Flag this user",
"already-flagged": "Already Flagged",
"view-flag-report": "View Flag Report",
"merged_message": "This topic has been merged into <a href=\"%1\">%2</a>",
"flag_title": "মডারেশনের জন্য এই পোস্টটি ফ্ল্যাগ করুন",
"merged_message": "This topic has been merged into <a href=\"/topic/%1\">%2</a>",
"deleted_message": "এই টপিকটি মুছে ফেলা হয়েছে। শুধুমাত্র টপিক ব্যবস্থাপনার ক্ষমতাপ্রাপ্ত সদস্যগণ এটি দেখতে পারবেন।",
"following_topic.message": "এখন থেকে এই টপিকে অন্যকেউ পোস্ট করলে আপনি নোটিফিকেশন পাবেন।",
"not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.",
@@ -79,10 +78,7 @@
"thread_tools.purge_confirm": "আপনি নিশ্চিত যে আপনি টপিকটি পার্জ করতে চাচ্ছেন ? ",
"thread_tools.merge_topics": "Merge Topics",
"thread_tools.merge": "Merge",
"topic_move_success": "This topic will be moved shortly. Click here to undo.",
"topic_move_undone": "Topic move undone",
"topic_move_posts_success": "Posts will be moved shortly. Click here to undo.",
"topic_move_posts_undone": "Post move undone",
"topic_move_success": "টপিকটি %1 এ সরিয়ে নেয়া হয়েছে",
"post_delete_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি মুছে ফেলতে চান ?",
"post_restore_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি পুনরূূদ্ধার করতে চান ? ",
"post_purge_confirm": "আপনি নিশ্চিত যে আপনি এই পোষ্টটি পার্জ করতে চান ? ",
@@ -100,9 +96,6 @@
"fork_topic": "টপিক ফর্ক করুন",
"fork_topic_instruction": "যে পোষ্টটি ফর্ক করতে চান সেটি ক্লিক করুন",
"fork_no_pids": "কোন পোষ্ট সিলেক্ট করা হয় নি",
"no-posts-selected": "No posts selected!",
"x-posts-selected": "%1 post(s) selected",
"x-posts-will-be-moved-to-y": "%1 post(s) will be moved to \"%2\"",
"fork_pid_count": "%1 post(s) selected",
"fork_success": "টপিক ফর্ক করা হয়েছে। ফর্ক করা টপিকে যেতে এখানে ক্লিক করুন",
"delete_posts_instruction": "Click the posts you want to delete/purge",
@@ -111,7 +104,7 @@
"merge-options": "Merge options",
"merge-select-main-topic": "Select the main topic",
"merge-new-title-for-topic": "New title for topic",
"move_posts_instruction": "Click the posts you want to move then go to target topic and click move.",
"move_posts_instruction": "Click the posts you want to move",
"change_owner_instruction": "Click the posts you want to assign to another user",
"composer.title_placeholder": "আপনার টপিকের শিরোনাম দিন",
"composer.handle_placeholder": "Enter your name/handle here",

View File

@@ -111,7 +111,12 @@
"posts_per_page": "প্রতি পেইজে কতগুলো পোষ্ট থাকবে",
"max_items_per_page": "Maximum %1",
"acp_language": "Admin Page Language",
"notifications": "Notifications",
"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",
"upvote-notif-freq": "Upvote Notification Frequency",
"upvote-notif-freq.all": "All Upvotes",
"upvote-notif-freq.first": "First Per Post",
@@ -174,9 +179,6 @@
"consent.right_to_data_portability": "You have the Right to Data Portability",
"consent.right_to_data_portability_description": "You may request from us a machine-readable export of any collected data about you and your account. You can do so by clicking the appropriate button below.",
"consent.export_profile": "Export Profile (.json)",
"consent.export-profile-success": "Exporting profile, you will get a notification when it is complete.",
"consent.export_uploads": "Export Uploaded Content (.zip)",
"consent.export-uploads-success": "Exporting uploads, you will get a notification when it is complete.",
"consent.export_posts": "Export Posts (.csv)",
"consent.export-posts-success": "Exporting posts, you will get a notification when it is complete."
"consent.export_posts": "Export Posts (.csv)"
}

View File

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

View File

@@ -1,9 +1,8 @@
{
"you-are-on": "Jste u <strong>%1:%2</strong>",
"you-are-on": "You are on <strong>%1:%2</strong>",
"ip": "IP <strong>%1</strong>",
"nodes-responded": "%1 vazeb odpovědělo během %2ms.",
"host": "host",
"primary": "primární / spuštěné úlohy",
"pid": "pid",
"nodejs": "nodejs",
"online": "připojen",

View File

@@ -1,5 +1,4 @@
{
"trending": "Trending",
"installed": "Nainstalováno",
"active": "Aktivní",
"inactive": "Neaktivní",

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