Merge commit '26af152ada1fa9a66a6736d288ada5ee989a9e5f' into v3.x

isekai-main
Misty Release Bot
commit 8aa4425aad

@ -65,7 +65,7 @@ jobs:
- 5432:5432 - 5432:5432
redis: redis:
image: 'redis:2.8.23' image: 'redis:7.0.11'
# Set health checks to wait until redis has started # Set health checks to wait until redis has started
options: >- options: >-
--health-cmd "redis-cli ping" --health-cmd "redis-cli ping"
@ -194,7 +194,7 @@ jobs:
run: npm run coverage run: npm run coverage
- name: Test coverage - name: Test coverage
uses: coverallsapp/github-action@v2.1.2 uses: coverallsapp/github-action@v2.2.0
if: matrix.coverage if: matrix.coverage
with: with:
github-token: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
@ -208,7 +208,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Coveralls Finished - name: Coveralls Finished
uses: coverallsapp/github-action@v2.1.2 uses: coverallsapp/github-action@v2.2.0
with: with:
github-token: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true parallel-finished: true

@ -1,3 +1,24 @@
#### v3.1.7 (2023-06-21)
##### Chores
* incrementing version number - v3.1.6 (b3a3b130)
* update changelog for v3.1.6 (f10a2d2e)
* incrementing version number - v3.1.5 (ec19343a)
* incrementing version number - v3.1.4 (2452783c)
* incrementing version number - v3.1.3 (3b4e9d3f)
* incrementing version number - v3.1.2 (40fa3489)
* incrementing version number - v3.1.1 (40250733)
* incrementing version number - v3.1.0 (0cb386bd)
* incrementing version number - v3.0.1 (26f6ea49)
* incrementing version number - v3.0.0 (224e08cd)
##### Bug Fixes
* #11735, crash when making guest reply (f2fe7c06)
* #11729, only check registered users (090a7921)
* #11723, fix pagination on following/follower page (4e146eb5)
#### v3.1.6 (2023-06-15) #### v3.1.6 (2023-06-15)
##### Chores ##### Chores

@ -29,9 +29,11 @@
}, },
"dependencies": { "dependencies": {
"@adactive/bootstrap-tagsinput": "0.8.2", "@adactive/bootstrap-tagsinput": "0.8.2",
"@fontsource/inter": "5.0.3",
"@fontsource/poppins": "5.0.3",
"@isaacs/ttlcache": "1.4.0", "@isaacs/ttlcache": "1.4.0",
"@popperjs/core": "2.11.7", "@popperjs/core": "2.11.8",
"ace-builds": "1.19.0", "ace-builds": "1.23.1",
"archiver": "5.3.1", "archiver": "5.3.1",
"async": "3.2.4", "async": "3.2.4",
"autoprefixer": "10.4.14", "autoprefixer": "10.4.14",
@ -46,31 +48,31 @@
"cli-graph": "3.2.2", "cli-graph": "3.2.2",
"clipboard": "2.0.11", "clipboard": "2.0.11",
"colors": "1.4.0", "colors": "1.4.0",
"commander": "10.0.1", "commander": "11.0.0",
"compare-versions": "5.0.3", "compare-versions": "5.0.3",
"compression": "1.7.4", "compression": "1.7.4",
"connect-flash": "0.1.1", "connect-flash": "0.1.1",
"connect-mongo": "5.0.0", "connect-mongo": "5.0.0",
"connect-multiparty": "2.2.0", "connect-multiparty": "2.2.0",
"connect-pg-simple": "8.0.0", "connect-pg-simple": "9.0.0",
"connect-redis": "7.0.1", "connect-redis": "7.1.0",
"cookie-parser": "1.4.6", "cookie-parser": "1.4.6",
"cron": "2.3.0", "cron": "2.3.1",
"cropperjs": "1.5.13", "cropperjs": "1.5.13",
"csrf-sync": "4.0.1", "csrf-sync": "4.0.1",
"daemon": "1.1.0", "daemon": "1.1.0",
"diff": "5.1.0", "diff": "5.1.0",
"esbuild": "0.17.18", "esbuild": "0.18.10",
"express": "4.18.2", "express": "4.18.2",
"express-session": "1.17.3", "express-session": "1.17.3",
"express-useragent": "1.0.15", "express-useragent": "1.0.15",
"file-loader": "6.2.0", "file-loader": "6.2.0",
"fs-extra": "11.1.1", "fs-extra": "11.1.1",
"graceful-fs": "4.2.11", "graceful-fs": "4.2.11",
"helmet": "6.2.0", "helmet": "7.0.0",
"html-to-text": "9.0.5", "html-to-text": "9.0.5",
"ipaddr.js": "2.0.1", "ipaddr.js": "2.1.0",
"jquery": "3.6.4", "jquery": "3.7.0",
"jquery-deserialize": "2.0.0", "jquery-deserialize": "2.0.0",
"jquery-form": "4.3.0", "jquery-form": "4.3.0",
"jquery-serializeobject": "1.0.0", "jquery-serializeobject": "1.0.0",
@ -81,70 +83,69 @@
"less": "4.1.3", "less": "4.1.3",
"lodash": "4.17.21", "lodash": "4.17.21",
"logrotate-stream": "0.2.9", "logrotate-stream": "0.2.9",
"lru-cache": "9.1.1", "lru-cache": "10.0.0",
"material-design-lite": "1.3.0",
"mime": "3.0.0", "mime": "3.0.0",
"mkdirp": "3.0.1", "mkdirp": "3.0.1",
"mongodb": "5.4.0", "mongodb": "5.6.0",
"morgan": "1.10.0", "morgan": "1.10.0",
"mousetrap": "1.6.5", "mousetrap": "1.6.5",
"multiparty": "4.2.3", "multiparty": "4.2.3",
"nconf": "0.12.0", "nconf": "0.12.0",
"nodebb-plugin-2factor": "7.0.5", "nodebb-plugin-2factor": "7.1.3",
"nodebb-plugin-composer-default": "10.1.5", "nodebb-plugin-composer-default": "10.2.3",
"nodebb-plugin-dbsearch": "6.0.1", "nodebb-plugin-dbsearch": "6.1.0",
"nodebb-plugin-emoji": "5.0.10", "nodebb-plugin-emoji": "5.1.2",
"nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-emoji-android": "4.0.0",
"nodebb-plugin-markdown": "12.0.4", "nodebb-plugin-markdown": "12.1.4",
"nodebb-plugin-mentions": "4.1.1", "nodebb-plugin-mentions": "4.2.0",
"nodebb-plugin-ntfy": "1.0.15", "nodebb-plugin-ntfy": "1.0.15",
"nodebb-plugin-spam-be-gone": "2.0.7", "nodebb-plugin-spam-be-gone": "2.1.0",
"nodebb-rewards-essentials": "0.2.3", "nodebb-rewards-essentials": "0.2.3",
"nodebb-theme-harmony": "1.0.24", "nodebb-theme-harmony": "1.0.64",
"nodebb-theme-lavender": "7.0.9", "nodebb-theme-lavender": "7.1.1",
"nodebb-theme-peace": "2.0.25", "nodebb-theme-peace": "2.0.32",
"nodebb-theme-persona": "13.0.67", "nodebb-theme-persona": "13.1.6",
"nodebb-widget-essentials": "7.0.12", "nodebb-widget-essentials": "7.0.13",
"nodemailer": "6.9.1", "nodemailer": "6.9.3",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"passport": "0.6.0", "passport": "0.6.0",
"passport-http-bearer": "1.0.1", "passport-http-bearer": "1.0.1",
"passport-local": "1.0.0", "passport-local": "1.0.0",
"pg": "8.10.0", "pg": "8.11.1",
"pg-cursor": "2.9.0", "pg-cursor": "2.10.1",
"postcss": "8.4.23", "postcss": "8.4.24",
"postcss-clean": "1.2.0", "postcss-clean": "1.2.0",
"progress-webpack-plugin": "1.0.16", "progress-webpack-plugin": "1.0.16",
"prompt": "1.3.0", "prompt": "1.3.0",
"ioredis": "5.3.2", "ioredis": "5.3.2",
"request": "2.88.2", "request": "2.88.2",
"request-promise-native": "1.0.9", "request-promise-native": "1.0.9",
"rimraf": "5.0.0", "rimraf": "5.0.1",
"rss": "1.2.2", "rss": "1.2.2",
"rtlcss": "4.1.0", "rtlcss": "4.1.0",
"sanitize-html": "2.10.0", "sanitize-html": "2.11.0",
"sass": "1.62.1", "sass": "1.63.6",
"semver": "7.5.0", "semver": "7.5.3",
"serve-favicon": "2.5.0", "serve-favicon": "2.5.0",
"sharp": "0.32.1", "sharp": "0.32.1",
"sitemap": "7.1.1", "sitemap": "7.1.1",
"slideout": "1.0.1", "slideout": "1.0.1",
"socket.io": "4.6.1", "socket.io": "4.7.1",
"socket.io-client": "4.6.1", "socket.io-client": "4.7.1",
"@socket.io/redis-adapter": "8.2.0", "@socket.io/redis-adapter": "8.2.1",
"sortablejs": "1.15.0", "sortablejs": "1.15.0",
"spdx-license-list": "6.6.0", "spdx-license-list": "6.6.0",
"spider-detector": "2.0.0", "spider-detector": "2.0.0",
"terser-webpack-plugin": "5.3.8", "terser-webpack-plugin": "5.3.9",
"textcomplete": "0.18.2", "textcomplete": "0.18.2",
"textcomplete.contenteditable": "0.1.1", "textcomplete.contenteditable": "0.1.1",
"timeago": "1.6.7", "timeago": "1.6.7",
"tinycon": "0.6.8", "tinycon": "0.6.8",
"toobusy-js": "0.5.1", "toobusy-js": "0.5.1",
"validator": "13.9.0", "validator": "13.9.0",
"webpack": "5.82.0", "webpack": "5.88.0",
"webpack-merge": "5.8.0", "webpack-merge": "5.9.0",
"winston": "3.8.2", "winston": "3.9.0",
"xml": "1.0.1", "xml": "1.0.1",
"xregexp": "5.1.1", "xregexp": "5.1.1",
"yargs": "17.7.2", "yargs": "17.7.2",
@ -152,28 +153,28 @@
}, },
"devDependencies": { "devDependencies": {
"@apidevtools/swagger-parser": "10.1.0", "@apidevtools/swagger-parser": "10.1.0",
"@commitlint/cli": "17.6.3", "@commitlint/cli": "17.6.6",
"@commitlint/config-angular": "17.6.3", "@commitlint/config-angular": "17.6.6",
"coveralls": "3.1.1", "coveralls": "3.1.1",
"eslint": "8.40.0", "eslint": "8.43.0",
"eslint-config-nodebb": "0.2.1", "eslint-config-nodebb": "0.2.1",
"eslint-plugin-import": "2.27.5", "eslint-plugin-import": "2.27.5",
"grunt": "1.6.1", "grunt": "1.6.1",
"grunt-contrib-watch": "1.1.0", "grunt-contrib-watch": "1.1.0",
"husky": "8.0.3", "husky": "8.0.3",
"jsdom": "22.0.0", "jsdom": "22.1.0",
"lint-staged": "13.2.2", "lint-staged": "13.2.3",
"mocha": "10.2.0", "mocha": "10.2.0",
"mocha-lcov-reporter": "1.3.0", "mocha-lcov-reporter": "1.3.0",
"mockdate": "3.0.5", "mockdate": "3.0.5",
"nyc": "15.1.0", "nyc": "15.1.0",
"smtp-server": "3.11.0" "smtp-server": "3.12.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"sass-embedded": "1.62.0" "sass-embedded": "1.63.6"
}, },
"resolutions": { "resolutions": {
"*/jquery": "3.6.4" "*/jquery": "3.7.0"
}, },
"bugs": { "bugs": {
"url": "https://github.com/NodeBB/NodeBB/issues" "url": "https://github.com/NodeBB/NodeBB/issues"

@ -50,6 +50,9 @@ let installing = false;
let success = false; let success = false;
let error = false; let error = false;
let launchUrl; let launchUrl;
let timeStart = 0;
const totalTime = 1000 * 60 * 3;
const viewsDir = path.join(paths.baseDir, 'build/public/templates'); const viewsDir = path.join(paths.baseDir, 'build/public/templates');
@ -102,11 +105,32 @@ function launchExpress(port) {
function setupRoutes() { function setupRoutes() {
app.get('/', welcome); app.get('/', welcome);
app.post('/', install); app.post('/', install);
app.post('/launch', launch); app.get('/testdb', testDatabase);
app.get('/ping', ping); app.get('/ping', ping);
app.get('/sping', ping); app.get('/sping', ping);
} }
async function testDatabase(req, res) {
let db;
try {
const keys = Object.keys(req.query);
const dbName = keys[0].split(':')[0];
db = require(`../src/database/${dbName}`);
const opts = {};
keys.forEach((key) => {
opts[key.replace(`${dbName}:`, '')] = req.query[key];
});
await db.init(opts);
const global = await db.getObject('global');
await db.close();
res.json({ success: 1, dbfull: !!global });
} catch (err) {
res.json({ error: err.stack });
}
}
function ping(req, res) { function ping(req, res) {
res.status(200).send(req.path === '/sping' ? 'healthy' : '200'); res.status(200).send(req.path === '/sping' ? 'healthy' : '200');
} }
@ -123,7 +147,6 @@ function welcome(req, res) {
}); });
const defaults = require('./data/defaults.json'); const defaults = require('./data/defaults.json');
res.render('install/index', { res.render('install/index', {
url: nconf.get('url') || (`${req.protocol}://${req.get('host')}`), url: nconf.get('url') || (`${req.protocol}://${req.get('host')}`),
launchUrl: launchUrl, launchUrl: launchUrl,
@ -136,6 +159,7 @@ function welcome(req, res) {
minimumPasswordLength: defaults.minimumPasswordLength, minimumPasswordLength: defaults.minimumPasswordLength,
minimumPasswordStrength: defaults.minimumPasswordStrength, minimumPasswordStrength: defaults.minimumPasswordStrength,
installing: installing, installing: installing,
percentInstalled: installing ? ((Date.now() - timeStart) / totalTime * 100).toFixed(2) : 0,
}); });
} }
@ -143,6 +167,7 @@ function install(req, res) {
if (installing) { if (installing) {
return welcome(req, res); return welcome(req, res);
} }
timeStart = Date.now();
req.setTimeout(0); req.setTimeout(0);
installing = true; installing = true;
@ -170,21 +195,22 @@ function install(req, res) {
const child = require('child_process').fork('app', ['--setup'], { const child = require('child_process').fork('app', ['--setup'], {
env: setupEnvVars, env: setupEnvVars,
}); });
child.on('error', (err) => {
error = true;
success = false;
winston.error(err.stack);
});
child.on('close', (data) => { child.on('close', (data) => {
installing = false;
success = data === 0; success = data === 0;
error = data !== 0; error = data !== 0;
launch();
welcome(req, res);
}); });
welcome(req, res);
} }
async function launch(req, res) { async function launch() {
try { try {
res.json({});
server.close(); server.close();
req.setTimeout(0);
let child; let child;
if (!nconf.get('launchCmd')) { if (!nconf.get('launchCmd')) {

@ -6,7 +6,6 @@
body { body {
background: #00A9EA; background: #00A9EA;
color: white; color: white;
/* see public/less/admin/vars.less for documentation on system font family */
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
text-align: center; text-align: center;
-webkit-transform-style: preserve-3d; -webkit-transform-style: preserve-3d;

@ -4,6 +4,13 @@
"acp-title": "لوحة تحكم إدارة NodeBB | %1", "acp-title": "لوحة تحكم إدارة NodeBB | %1",
"settings-header-contents": "محتويات", "settings-header-contents": "محتويات",
"changes-saved": "Changes Saved",
"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
"changes-not-saved": "لم يتم حفظ التغييرات", "changes-not-saved": "لم يتم حفظ التغييرات",
"changes-not-saved-message": "حدثت مشكلة أثناء حفظ التغييرات في NodeBB. (%1)" "changes-not-saved-message": "حدثت مشكلة أثناء حفظ التغييرات في NodeBB. (%1)",
"save-changes": "Save changes",
"min": "Min:",
"max": "Max:",
"view": "View",
"edit": "Edit"
} }

@ -1,4 +1,5 @@
{ {
"cache": "Cache",
"post-cache": "التخزين المؤقت للمشاركات", "post-cache": "التخزين المؤقت للمشاركات",
"group-cache": "التخزين المؤقت للمجموعات", "group-cache": "التخزين المؤقت للمجموعات",
"local-cache": "تخزين مؤقت محلي", "local-cache": "تخزين مؤقت محلي",

@ -5,7 +5,7 @@
"uptime-seconds": "مدة التشغيل بالثواني", "uptime-seconds": "مدة التشغيل بالثواني",
"uptime-days": "مدة التشغيل بالأيام", "uptime-days": "مدة التشغيل بالأيام",
"mongo": "Mongo", "mongo": "MongoDB",
"mongo.version": "اصدار MongoDB", "mongo.version": "اصدار MongoDB",
"mongo.storage-engine": "محرك التخزين", "mongo.storage-engine": "محرك التخزين",
"mongo.collections": "التجميعات", "mongo.collections": "التجميعات",

@ -1,4 +1,5 @@
{ {
"errors": "Errors",
"figure-x": "شكل %1", "figure-x": "شكل %1",
"error-events-per-day": "<code>%1</code> حدث كل يوم ", "error-events-per-day": "<code>%1</code> حدث كل يوم ",
"error.404": "404 لم يتم العثور", "error.404": "404 لم يتم العثور",

@ -1,4 +1,5 @@
{ {
"customise": "Customise",
"custom-css": "Custom CSS/SASS", "custom-css": "Custom CSS/SASS",
"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.", "custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
"custom-css.enable": "Enable Custom CSS/SASS", "custom-css.enable": "Enable Custom CSS/SASS",
@ -12,5 +13,8 @@
"custom-header.enable": "تفعيل الترويسة المخصصة", "custom-header.enable": "تفعيل الترويسة المخصصة",
"custom-css.livereload": "تفعيل إعادة التحميل المباشرة", "custom-css.livereload": "تفعيل إعادة التحميل المباشرة",
"custom-css.livereload.description": "فعل هذا الخيار لإجبار جميع الجلسات في الأجهزة التي قمت بتسجيل الدخول فيها بحسابك على التحديث عند النقر على زر الحفظ" "custom-css.livereload.description": "فعل هذا الخيار لإجبار جميع الجلسات في الأجهزة التي قمت بتسجيل الدخول فيها بحسابك على التحديث عند النقر على زر الحفظ",
"bsvariables": "_variables.scss",
"bsvariables.description": "Override bootstrap variables here. You can also use a tool like <a href=\"https://bootstrap.build/app\">bootstrap.build</a> and paste the output here.<br/>Changes require a rebuild & restart.",
"bsvariables.enable": "Enable _variables.scss"
} }

@ -1,7 +1,16 @@
{ {
"skins": "Skins",
"bootswatch-skins": "Bootswatch Skins",
"custom-skins": "Custom Skins",
"add-skin": "Add Skin",
"save-custom-skins": "Save Custom Skins",
"save-custom-skins-success": "Custom skins saved successfully",
"custom-skin-name": "Custom Skin Name",
"custom-skin-variables": "Custom Skin Variables",
"loading": "جاري تحميل السمات...", "loading": "جاري تحميل السمات...",
"homepage": "الصفحة الرئيسية", "homepage": "الصفحة الرئيسية",
"select-skin": "إختيار السمة", "select-skin": "إختيار السمة",
"revert-skin": "Revert Skin",
"current-skin": "السمة الحالية", "current-skin": "السمة الحالية",
"skin-updated": "تم تحديث السمة", "skin-updated": "تم تحديث السمة",
"applied-success": "تم تطبيق السمة %1 بنجاح", "applied-success": "تم تطبيق السمة %1 بنجاح",

@ -1,7 +1,9 @@
{ {
"themes": "Themes",
"checking-for-installed": "جاري التحقق من القوالب المثبتة...", "checking-for-installed": "جاري التحقق من القوالب المثبتة...",
"homepage": "الصفحة الرئيسية", "homepage": "الصفحة الرئيسية",
"select-theme": "إختيار القالب", "select-theme": "إختيار القالب",
"revert-theme": "Revert Theme",
"current-theme": "القالب المستخدم حالياً", "current-theme": "القالب المستخدم حالياً",
"no-themes": "لم يتم العثور على قوالب مثبتة", "no-themes": "لم يتم العثور على قوالب مثبتة",
"revert-confirm": "هل أنت متأكد من أنك ترغب في استعادة قااب NodeBB الافتراضي؟", "revert-confirm": "هل أنت متأكد من أنك ترغب في استعادة قااب NodeBB الافتراضي؟",

@ -26,13 +26,13 @@
"updates": "تحديثات", "updates": "تحديثات",
"running-version": "المنتدى يعمل حاليا على <strong>NodeBB الإصدار<span id=\"version\">%1</span></strong>.", "running-version": "المنتدى يعمل حاليا على <strong>NodeBB الإصدار<span id=\"version\">%1</span></strong>.",
"keep-updated": "تأكد دائما من أن NodeBB يعمل على احدث إصدار للحصول على أحدث التصحيحات الأمنية وإصلاحات الأخطاء.", "keep-updated": "تأكد دائما من أن NodeBB يعمل على احدث إصدار للحصول على أحدث التصحيحات الأمنية وإصلاحات الأخطاء.",
"up-to-date": "<p>المنتدى <strong>يعمل على أحدث إصدار</strong> <i class=\"fa fa-check\"></i></p>", "up-to-date": "You are <strong>up-to-date</strong> <i class=\"fa fa-check\"></i>",
"upgrade-available": "<p> هناك إصدار جديد برقم (v%1). خذ بعين الاعتبار <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\"> ترقية NodeBB </a>.</p>", "upgrade-available": "A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.",
"prerelease-upgrade-available": "<p>هذا إصدار منتهي من الاصدارات المسبقة من NodeBB. هناك إصدار جديد برقم (v٪ 1). ضع في اعتبارك <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">ترقية NodeBB إليه</a>.</p>", "prerelease-upgrade-available": "This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.",
"prerelease-warning": "<p>هذه نسخة <strong>ماقبل الإصدار</strong> من NodeBB. قد تحدث أخطاء غير مقصودة. <i class=\"fa fa-exclamation-triangle\"></i></p>", "prerelease-warning": "This is a <strong>pre-release</strong> version of NodeBB. Unintended bugs may occur. <i class=\"fa fa-exclamation-triangle\"></i>",
"fallback-emailer-not-found": "مرسل البريد الإلكتروني الاحتياطي غير موجود!", "fallback-emailer-not-found": "مرسل البريد الإلكتروني الاحتياطي غير موجود!",
"running-in-development": "المنتدى قيد التشغيل في وضع \"المطورين\". وقد تكون هناك ثغرات أمنية مفتوحة؛ من فضلك تواصل مع مسؤول نظامك.", "running-in-development": "Forum is running in development mode. The forum may be open to potential vulnerabilities; please contact your system administrator",
"latest-lookup-failed": "<p>فشل البحث عن أحدث إصدار متوفر من NodeBB</p>", "latest-lookup-failed": "Failed to look up latest available version of NodeBB",
"notices": "إشعارات", "notices": "إشعارات",
"restart-not-required": "إعادة التشغيل غير مطلوب", "restart-not-required": "إعادة التشغيل غير مطلوب",

@ -1,4 +1,5 @@
{ {
"logger": "Logger",
"logger-settings": "إعدادات المسجِّل", "logger-settings": "إعدادات المسجِّل",
"description": "من خلال تمكين مربعات الاختيار ، ستتلقى سجلات إلى جهازك الطرفي. إذا حددت مسارًا ، فسيتم بعد ذلك حفظ السجلات في ملف بدلاً من ذلك. يعد تسجيل HTTP مفيدًا لجمع الإحصائيات حول من ومتى وماذا يصل الأشخاص في المنتدى. بالإضافة إلى تسجيل طلبات HTTP ، يمكننا أيضًا تسجيل أحداث socket.io. يمكن أن يكون تسجيل Socket.io ، جنبًا إلى جنب مع شاشة redis-cli ، مفيدًا جدًا في تعلم العناصر الداخلية لـ NodeBB.", "description": "من خلال تمكين مربعات الاختيار ، ستتلقى سجلات إلى جهازك الطرفي. إذا حددت مسارًا ، فسيتم بعد ذلك حفظ السجلات في ملف بدلاً من ذلك. يعد تسجيل HTTP مفيدًا لجمع الإحصائيات حول من ومتى وماذا يصل الأشخاص في المنتدى. بالإضافة إلى تسجيل طلبات HTTP ، يمكننا أيضًا تسجيل أحداث socket.io. يمكن أن يكون تسجيل Socket.io ، جنبًا إلى جنب مع شاشة redis-cli ، مفيدًا جدًا في تعلم العناصر الداخلية لـ NodeBB.",
"explanation": "ما عليك سوى تحديدأو/ إلغاء تحديد إعدادات التسجيل لتمكين أو تعطيل التسجيل أثناء التنقل. لا حاجة لإعادة التشغيل.", "explanation": "ما عليك سوى تحديدأو/ إلغاء تحديد إعدادات التسجيل لتمكين أو تعطيل التسجيل أثناء التنقل. لا حاجة لإعادة التشغيل.",

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

@ -1,10 +1,12 @@
{ {
"rewards": "المكافآت", "rewards": "المكافآت",
"add-reward": "Add reward",
"condition-if-users": "إذا كان للمستخدم", "condition-if-users": "إذا كان للمستخدم",
"condition-is": "يكون: ", "condition-is": "يكون: ",
"condition-then": "عندئذ:", "condition-then": "عندئذ:",
"max-claims": "عدد المرات التي يمكن فيها المطالبة بالمكافأة", "max-claims": "عدد المرات التي يمكن فيها المطالبة بالمكافأة",
"zero-infinite": "أدخل 0 للقيمة اللانهائية", "zero-infinite": "أدخل 0 للقيمة اللانهائية",
"select-reward": "Select reward",
"delete": "احذف", "delete": "احذف",
"enable": "مكّن", "enable": "مكّن",
"disable": "عطّل", "disable": "عطّل",

@ -1,4 +1,5 @@
{ {
"widgets": "Widgets",
"available": "Available Widgets", "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.", "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 widget essentials plugin in the <a href=\"%1\">plugins</a> control panel.",

@ -1,10 +1,11 @@
{ {
"manage-admins-and-mods": "Manage Admins & Mods",
"administrators": "Administrators", "administrators": "Administrators",
"global-moderators": "Global Moderators", "global-moderators": "Global Moderators",
"moderators": "Moderators", "moderators": "Moderators",
"no-global-moderators": "No Global Moderators", "no-global-moderators": "No Global Moderators",
"no-sub-categories": "No subcategories", "no-sub-categories": "No subcategories",
"subcategories": "%1 subcategories", "view-children": "View children (%1)",
"no-moderators": "No Moderators", "no-moderators": "No Moderators",
"add-administrator": "Add Administrator", "add-administrator": "Add Administrator",
"add-global-moderator": "Add Global Moderator", "add-global-moderator": "Add Global Moderator",

@ -1,7 +1,11 @@
{ {
"manage-categories": "Manage Categories",
"add-category": "Add category",
"jump-to": "Jump to...",
"settings": "اعدادات القسم", "settings": "اعدادات القسم",
"edit-category": "Edit Category",
"privileges": "الصلاحيات", "privileges": "الصلاحيات",
"back-to-categories": "Back to categories",
"name": "Category Name", "name": "Category Name",
"description": "Category Description", "description": "Category Description",
"bg-color": "Background Colour", "bg-color": "Background Colour",
@ -15,8 +19,11 @@
"post-queue": "Post queue", "post-queue": "Post queue",
"tag-whitelist": "Tag Whitelist", "tag-whitelist": "Tag Whitelist",
"upload-image": "Upload Image", "upload-image": "Upload Image",
"upload": "Upload",
"select-icon": "Select Icon",
"delete-image": "Remove", "delete-image": "Remove",
"category-image": "Category Image", "category-image": "Category Image",
"image-and-icon": "Image & Icon",
"parent-category": "Parent Category", "parent-category": "Parent Category",
"optional-parent-category": "(Optional) Parent Category", "optional-parent-category": "(Optional) Parent Category",
"top-level": "Top Level", "top-level": "Top Level",
@ -31,6 +38,7 @@
"disable": "Disable", "disable": "Disable",
"edit": "Edit", "edit": "Edit",
"analytics": "Analytics", "analytics": "Analytics",
"view-category": "View category", "view-category": "View category",
"set-order": "Set order", "set-order": "Set order",
"set-order-help": "Setting the order of the category will move this category to that order and update the order of other categories as necessary. Minimum order is 1 which puts the category at the top.", "set-order-help": "Setting the order of the category will move this category to that order and update the order of other categories as necessary. Minimum order is 1 which puts the category at the top.",

@ -1,4 +1,10 @@
{ {
"manage-groups": "Manage Groups",
"add-group": "Add group",
"edit-group": "Edit Group",
"back-to-groups": "Back to groups",
"view-group": "View group",
"icon-and-title": "Icon & Title",
"name": "اسم المجموعة", "name": "اسم المجموعة",
"badge": "Badge", "badge": "Badge",
"properties": "Properties", "properties": "Properties",
@ -10,7 +16,7 @@
"edit": "Edit", "edit": "Edit",
"delete": "Delete", "delete": "Delete",
"privileges": "Privileges", "privileges": "Privileges",
"download-csv": "CSV", "members-csv": "Members (CSV)",
"search-placeholder": "Search", "search-placeholder": "Search",
"create": "Create Group", "create": "Create Group",
"description-placeholder": "A short description about your group", "description-placeholder": "A short description about your group",

@ -1,4 +1,6 @@
{ {
"manage-privileges": "Manage Privileges",
"discard-changes": "Discard changes",
"global": "Global", "global": "Global",
"admin": "Admin", "admin": "Admin",
"group-privileges": "Group Privileges", "group-privileges": "Group Privileges",

@ -1,9 +1,11 @@
{ {
"manage-tags": "Manage Tags",
"none": "Your forum does not have any topics with tags yet.", "none": "Your forum does not have any topics with tags yet.",
"bg-color": "Background Colour", "bg-color": "Background Colour",
"text-color": "Text Colour", "text-color": "Text Colour",
"description": "Select tags by clicking or dragging, use <code>CTRL</code> to select multiple tags.", "description": "Select tags by clicking or dragging, use <code>CTRL</code> to select multiple tags.",
"create": "Create Tag", "create": "Create Tag",
"add-tag": "Add tag",
"modify": "Modify Tags", "modify": "Modify Tags",
"rename": "Rename Tags", "rename": "Rename Tags",
"delete": "Delete Selected Tags", "delete": "Delete Selected Tags",

@ -1,4 +1,5 @@
{ {
"manage-uploads": "Manage Uploads",
"upload-file": "Upload File", "upload-file": "Upload File",
"filename": "Filename", "filename": "Filename",
"usage": "Post Usage", "usage": "Post Usage",

@ -1,4 +1,5 @@
{ {
"manage-users": "Manage Users",
"users": "المستخدمين", "users": "المستخدمين",
"edit": "Actions", "edit": "Actions",
"make-admin": "Make Admin", "make-admin": "Make Admin",
@ -49,6 +50,10 @@
"users.username": "username", "users.username": "username",
"users.email": "email", "users.email": "email",
"users.no-email": "(no email)", "users.no-email": "(no email)",
"users.validated": "Validated",
"users.not-validated": "Not Validated",
"users.validation-pending": "Validation Pending",
"users.validation-expired": "Validation Expired",
"users.ip": "IP", "users.ip": "IP",
"users.postcount": "postcount", "users.postcount": "postcount",
"users.reputation": "reputation", "users.reputation": "reputation",

@ -72,7 +72,9 @@
"development/info": "Info", "development/info": "Info",
"rebuild-and-restart-forum": "Rebuild & Restart Forum", "rebuild-and-restart-forum": "Rebuild & Restart Forum",
"rebuild-and-restart": "Rebuild & Restart",
"restart-forum": "Restart Forum", "restart-forum": "Restart Forum",
"restart": "Restart",
"logout": "Log out", "logout": "Log out",
"view-forum": "View Forum", "view-forum": "View Forum",

@ -3,17 +3,27 @@
"settings": "Settings", "settings": "Settings",
"lead-text": "From this page you can configure access to the Write API in NodeBB.", "lead-text": "From this page you can configure access to the Write API in NodeBB.",
"intro": "By default, the Write API authenticates users based on their session cookie, but NodeBB also supports Bearer authentication via tokens generated via this page.", "intro": "By default, the Write API authenticates users based on their session cookie, but NodeBB also supports Bearer authentication via tokens generated via this page.",
"warning": "<strong>Be advised</strong> — treat tokens like passwords. If they are leaked, your account should be considered compromised.",
"docs": "Click here to access the full API specification", "docs": "Click here to access the full API specification",
"require-https": "Require API usage via HTTPS only", "require-https": "Require API usage via HTTPS only",
"require-https-caveat": "<strong>Note</strong>: Some installations involving load balancers may proxy their requests to NodeBB using HTTP, in which case this option should remain disabled.", "require-https-caveat": "<strong>Note</strong>: Some installations involving load balancers may proxy their requests to NodeBB using HTTP, in which case this option should remain disabled.",
"uid": "User ID", "uid": "User ID",
"token": "Token",
"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter", "uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
"description": "Description", "description": "Description",
"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.", "last-seen": "Last seen",
"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.", "created": "Created",
"create-token": "Create Token",
"update-token": "Update Token",
"master-token": "Master token",
"last-seen-never": "This key has never been used.", "last-seen-never": "This key has never been used.",
"no-description": "No description specified.", "no-description": "No description specified.",
"token-on-save": "Token will be generated once form is saved" "actions": "Actions",
"edit": "Edit",
"roll": "Roll",
"delete-confirm": "Are you sure you wish to delete this token? It will not be recoverable.",
"roll-confirm": "Are you sure you wish to regenerate this token? The old token will be immediately revoked and will not be recoverable."
} }

@ -1,11 +1,13 @@
{ {
"general-settings": "General Settings",
"on-this-page": "On this page:",
"site-settings": "اعدادات الموقع", "site-settings": "اعدادات الموقع",
"title": "عنوان الموقع", "title": "عنوان الموقع",
"title.short": "عنوان قصير", "title.short": "عنوان قصير",
"title.short-placeholder": "ان لم تقم بكتابة عنوان مختصر, سيتم استخدام عنوان الموقع الكلي", "title.short-placeholder": "ان لم تقم بكتابة عنوان مختصر, سيتم استخدام عنوان الموقع الكلي",
"title.url": "Title Link URL", "title.url": "Title Link URL",
"title.url-placeholder": "The URL of the site title", "title.url-placeholder": "The URL of the site title",
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json", "title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
"title.name": "اسم المنتدي", "title.name": "اسم المنتدي",
"title.show-in-header": "Show Site Title in Header", "title.show-in-header": "Show Site Title in Header",
"browser-title": "عنوان المتصفح", "browser-title": "عنوان المتصفح",
@ -16,7 +18,7 @@
"description": "وصف الموقع", "description": "وصف الموقع",
"keywords": "الكلمات الدليله للموقع", "keywords": "الكلمات الدليله للموقع",
"keywords-placeholder": "Keywords describing your community, comma-separated", "keywords-placeholder": "Keywords describing your community, comma-separated",
"logo": "شعار الموقع", "logo-and-icons": "Site Logo & Icons",
"logo.image": "صورة", "logo.image": "صورة",
"logo.image-placeholder": "Path to a logo to display on forum header", "logo.image-placeholder": "Path to a logo to display on forum header",
"logo.upload": "رفع", "logo.upload": "رفع",

@ -1,5 +1,6 @@
{ {
"settings": "Settings", "settings": "Settings",
"guest-settings": "Guest settings",
"handles.enabled": "Allow guest handles", "handles.enabled": "Allow guest handles",
"handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
"topic-views.enabled": "Allow guests to increase topic view counts", "topic-views.enabled": "Allow guests to increase topic view counts",

@ -1,4 +1,5 @@
{ {
"navigation": "Navigation",
"icon": "Icon:", "icon": "Icon:",
"change-icon": "change", "change-icon": "change",
"route": "Route:", "route": "Route:",

@ -1,4 +1,5 @@
{ {
"general": "General",
"sorting": "Post Sorting", "sorting": "Post Sorting",
"sorting.post-default": "Default Post Sorting", "sorting.post-default": "Default Post Sorting",
"sorting.oldest-to-newest": "Oldest to Newest", "sorting.oldest-to-newest": "Oldest to Newest",
@ -23,10 +24,8 @@
"restrictions.seconds-edit-after": "Number of seconds a post remains editable (set to 0 to disable)", "restrictions.seconds-edit-after": "Number of seconds a post remains editable (set to 0 to disable)",
"restrictions.seconds-delete-after": "Number of seconds a post remains deletable (set to 0 to disable)", "restrictions.seconds-delete-after": "Number of seconds a post remains deletable (set to 0 to disable)",
"restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics (set to 0 to disable)", "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics (set to 0 to disable)",
"restrictions.min-title-length": "Minimum Title Length", "restrictions.title-length": "Title Length",
"restrictions.max-title-length": "Maximum Title Length", "restrictions.post-length": "Post Length",
"restrictions.min-post-length": "Minimum Post Length",
"restrictions.max-post-length": "Maximum Post Length",
"restrictions.days-until-stale": "Days until topic is considered stale", "restrictions.days-until-stale": "Days until topic is considered stale",
"restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.",
"timestamp": "Timestamp", "timestamp": "Timestamp",
@ -41,10 +40,9 @@
"teaser.last-reply": "Last &ndash; Show the latest reply, or a \"No replies\" placeholder if no replies", "teaser.last-reply": "Last &ndash; Show the latest reply, or a \"No replies\" placeholder if no replies",
"teaser.first": "First", "teaser.first": "First",
"showPostPreviewsOnHover": "Show a preview of posts when mouse overed", "showPostPreviewsOnHover": "Show a preview of posts when mouse overed",
"unread": "Unread Settings", "unread-and-recent": "Unread & Recent Settings",
"unread.cutoff": "Unread cutoff days", "unread.cutoff": "Unread cutoff days",
"unread.min-track-last": "Minimum posts in topic before tracking last read", "unread.min-track-last": "Minimum posts in topic before tracking last read",
"recent": "Recent Settings",
"recent.max-topics": "Maximum topics on /recent", "recent.max-topics": "Maximum topics on /recent",
"recent.categoryFilter.disable": "Disable filtering of topics in ignored categories on the /recent page", "recent.categoryFilter.disable": "Disable filtering of topics in ignored categories on the /recent page",
"signature": "Signature Settings", "signature": "Signature Settings",

@ -27,5 +27,5 @@
"flags.action-on-resolve": "Do the following when a flag is resolved", "flags.action-on-resolve": "Do the following when a flag is resolved",
"flags.action-on-reject": "Do the following when a flag is rejected", "flags.action-on-reject": "Do the following when a flag is rejected",
"flags.action.nothing": "Do nothing", "flags.action.nothing": "Do nothing",
"flags.action.rescind": "Rescind the notification send to moderators/administrators" "flags.action.rescind": "Rescind the notification sent to moderators/administrators"
} }

@ -1,5 +1,4 @@
{ {
"post-sharing": "Post Sharing", "post-sharing": "Post Sharing",
"info-plugins-additional": "Plugins can add additional networks for sharing posts.", "info-plugins-additional": "Plugins can add additional networks for sharing posts."
"save-success": "Successfully saved Post Sharing Networks!"
} }

@ -3,6 +3,7 @@
"link-to-manage": "Manage Tags", "link-to-manage": "Manage Tags",
"system-tags": "System Tags", "system-tags": "System Tags",
"system-tags-help": "Only privileged users will be able to use these tags.", "system-tags-help": "Only privileged users will be able to use these tags.",
"tags-per-topic": "Tags per topic",
"min-per-topic": "Minimum Tags per Topic", "min-per-topic": "Minimum Tags per Topic",
"max-per-topic": "Maximum Tags per Topic", "max-per-topic": "Maximum Tags per Topic",
"min-length": "Minimum Tag Length", "min-length": "Minimum Tag Length",

@ -59,7 +59,7 @@
"max-about-me-length": "الحد الأعلى من الأحرف في حقل \"عني\"", "max-about-me-length": "الحد الأعلى من الأحرف في حقل \"عني\"",
"terms-of-use": "شروط استخدام المنتدى <small>(تترك فارغة لتعطيلها)</small>", "terms-of-use": "شروط استخدام المنتدى <small>(تترك فارغة لتعطيلها)</small>",
"user-search": "بحث الأعضاء", "user-search": "بحث الأعضاء",
"user-search-results-per-page": "عدد النتائج المراد عرضها", "user-search-results-per-page": "Number of users to display in search results",
"default-user-settings": "إعدادات الأعضاء الافتراضية", "default-user-settings": "إعدادات الأعضاء الافتراضية",
"show-email": "عرض البريد الإلكتروني", "show-email": "عرض البريد الإلكتروني",
"show-fullname": "عرض الاسم الكامل", "show-fullname": "عرض الاسم الكامل",

@ -42,6 +42,7 @@
"user-doesnt-have-email": "User \"%1\" does not have an email set.", "user-doesnt-have-email": "User \"%1\" does not have an email set.",
"email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.", "email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.",
"confirm-email-already-sent": "لقد تم ارسال بريد التأكيد، الرجاء اﻹنتظار 1% دقائق لإعادة اﻹرسال", "confirm-email-already-sent": "لقد تم ارسال بريد التأكيد، الرجاء اﻹنتظار 1% دقائق لإعادة اﻹرسال",
"confirm-email-expired": "Confirmation email expired",
"sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.", "sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
"digest-not-enabled": "This user does not have digests enabled, or the system default is not configured to send digests", "digest-not-enabled": "This user does not have digests enabled, or the system default is not configured to send digests",
"username-too-short": "اسم المستخدم قصير.", "username-too-short": "اسم المستخدم قصير.",

@ -20,6 +20,7 @@
"you_have_successfully_logged_in": "تم سجيل الدخول بنجاح", "you_have_successfully_logged_in": "تم سجيل الدخول بنجاح",
"save_changes": "حفظ التغييرات", "save_changes": "حفظ التغييرات",
"save": "حفظ", "save": "حفظ",
"create": "Create",
"cancel": "Cancel", "cancel": "Cancel",
"close": "أغلق", "close": "أغلق",
"pagination": "الصفحات", "pagination": "الصفحات",

@ -2,7 +2,7 @@
"chat.chatting_with": "Chat with", "chat.chatting_with": "Chat with",
"chat.placeholder": "Type chat message here, drag & drop images, press enter to send", "chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
"chat.placeholder.mobile": "Type chat message here", "chat.placeholder.mobile": "Type chat message here",
"chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.", "chat.scroll-up-alert": "Go to most recent message",
"chat.usernames-and-x-others": "%1 & %2 others", "chat.usernames-and-x-others": "%1 & %2 others",
"chat.chat-with-usernames": "Chat with %1", "chat.chat-with-usernames": "Chat with %1",
"chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others", "chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",

@ -14,6 +14,7 @@
"flagged-content": "Flagged Content", "flagged-content": "Flagged Content",
"ip-blacklist": "IP Blacklist", "ip-blacklist": "IP Blacklist",
"post-queue": "Post Queue", "post-queue": "Post Queue",
"registration-queue": "Registration Queue",
"users/online": "اﻷعضاء المتصلون", "users/online": "اﻷعضاء المتصلون",
"users/latest": "أحدث اﻷعضاء", "users/latest": "أحدث اﻷعضاء",
"users/sort-posts": "الأعضاء الأكثر نشاطاً", "users/sort-posts": "الأعضاء الأكثر نشاطاً",

@ -1,4 +1,5 @@
{ {
"theme-name": "Harmony Theme",
"skins": "Skins", "skins": "Skins",
"collapse": "Collapse", "collapse": "Collapse",
"expand": "Expand", "expand": "Expand",
@ -10,5 +11,6 @@
"settings.stickyToolbar": "Sticky toolbar", "settings.stickyToolbar": "Sticky toolbar",
"settings.stickyToolbar.help": "The toolbar on topic and category pages will stick to the top of the page", "settings.stickyToolbar.help": "The toolbar on topic and category pages will stick to the top of the page",
"settings.autohideBottombar": "Auto hide bottom bar", "settings.autohideBottombar": "Auto hide bottom bar",
"settings.autohideBottombar.help": "The bottom bar on mobile view will be hidden when the page is scrolled down" "settings.autohideBottombar.help": "The bottom bar on mobile view will be hidden when the page is scrolled down",
"settings.chatModals": "Enable chat modals"
} }

@ -164,7 +164,7 @@
"composer.schedule": "Schedule", "composer.schedule": "Schedule",
"composer.replying_to": "الرد على %1", "composer.replying_to": "الرد على %1",
"composer.new_topic": "موضوع جديد", "composer.new_topic": "موضوع جديد",
"composer.editing": "Editing", "composer.editing-in": "Editing post in %1",
"composer.uploading": "جاري الرفع", "composer.uploading": "جاري الرفع",
"composer.thumb_url_label": "ألصق رابط الصورة المصغرة للموضوع", "composer.thumb_url_label": "ألصق رابط الصورة المصغرة للموضوع",
"composer.thumb_title": "إضافة صورة مصغرة للموضوع", "composer.thumb_title": "إضافة صورة مصغرة للموضوع",

@ -141,6 +141,8 @@
"group-order-help": "Select a group and use the arrows to order titles", "group-order-help": "Select a group and use the arrows to order titles",
"no-group-title": "لا يوجد عنوان للمجموعة", "no-group-title": "لا يوجد عنوان للمجموعة",
"select-skin": "إختر سمة", "select-skin": "إختر سمة",
"default": "Default (%1)",
"no-skin": "No Skin",
"select-homepage": "إختر الصفحة الرئيسية", "select-homepage": "إختر الصفحة الرئيسية",
"homepage": "الصفحة الرئيسية", "homepage": "الصفحة الرئيسية",
"homepage_description": "حدد صفحة لاستخدامها كصفحة رئيسية للمنتدى أو \"لا شيء\" لاستخدام الصفحة الرئيسية الافتراضية.", "homepage_description": "حدد صفحة لاستخدامها كصفحة رئيسية للمنتدى أو \"لا شيء\" لاستخدام الصفحة الرئيسية الافتراضية.",

@ -6,7 +6,7 @@
"most_flags": "معظم الأعلام", "most_flags": "معظم الأعلام",
"search": "بحث", "search": "بحث",
"enter_username": "أدخل اسم مستخدم للبحث", "enter_username": "أدخل اسم مستخدم للبحث",
"search-user-for-chat": "Search for a user to start chat:", "search-user-for-chat": "Search for a user to start chat",
"load_more": "حمل المزيد", "load_more": "حمل المزيد",
"users-found-search-took": "تم إيجاد %1 مستخدمـ(ين)! استغرق البحث %2 ثانية.", "users-found-search-took": "تم إيجاد %1 مستخدمـ(ين)! استغرق البحث %2 ثانية.",
"filter-by": "تصفية بحسب", "filter-by": "تصفية بحسب",

@ -4,6 +4,13 @@
"acp-title": "%1 | Контролен панел за администратори на NodeBB", "acp-title": "%1 | Контролен панел за администратори на NodeBB",
"settings-header-contents": "Съдържание", "settings-header-contents": "Съдържание",
"changes-saved": "Промените са запазени",
"changes-saved-message": "Промените Ви в настройките на NodeBB бяха запазени.",
"changes-not-saved": "Промените не са запазени", "changes-not-saved": "Промените не са запазени",
"changes-not-saved-message": "Възникна проблем при запазването на промените Ви по NodeBB. (%1)" "changes-not-saved-message": "Възникна проблем при запазването на промените Ви по NodeBB. (%1)",
"save-changes": "Запазване на промените",
"min": "Мин.:",
"max": "Макс.:",
"view": "Преглед",
"edit": "Редактиране"
} }

@ -1,4 +1,5 @@
{ {
"cache": "Кеш",
"post-cache": "Кеш за публикации", "post-cache": "Кеш за публикации",
"group-cache": "Кеш за групи", "group-cache": "Кеш за групи",
"local-cache": "Локален кеш", "local-cache": "Локален кеш",

@ -5,7 +5,7 @@
"uptime-seconds": "Активно време в секунди", "uptime-seconds": "Активно време в секунди",
"uptime-days": "Активно време в дни", "uptime-days": "Активно време в дни",
"mongo": "Mongo", "mongo": "MongoDB",
"mongo.version": "Версия на MongoDB", "mongo.version": "Версия на MongoDB",
"mongo.storage-engine": "Система за съхранение", "mongo.storage-engine": "Система за съхранение",
"mongo.collections": "Колекции", "mongo.collections": "Колекции",

@ -1,4 +1,5 @@
{ {
"errors": "Грешки",
"figure-x": "Фигура %1", "figure-x": "Фигура %1",
"error-events-per-day": "<code>%1</code> събития на ден", "error-events-per-day": "<code>%1</code> събития на ден",
"error.404": "Страницата не е намерена (Грешка 404)", "error.404": "Страницата не е намерена (Грешка 404)",

@ -1,4 +1,5 @@
{ {
"customise": "Персонализиране",
"custom-css": "Персонализиран CSS/SASS", "custom-css": "Персонализиран CSS/SASS",
"custom-css.description": "Въведете своите собствени декларации на CSS/SASS. Те ще бъдат приложени след всички останали стилове.", "custom-css.description": "Въведете своите собствени декларации на CSS/SASS. Те ще бъдат приложени след всички останали стилове.",
"custom-css.enable": "Включване на персонализиран CSS/SASS", "custom-css.enable": "Включване на персонализиран CSS/SASS",
@ -12,5 +13,8 @@
"custom-header.enable": "Включване на персонализирана заглавна част", "custom-header.enable": "Включване на персонализирана заглавна част",
"custom-css.livereload": "Включване на моменталното презареждане", "custom-css.livereload": "Включване на моменталното презареждане",
"custom-css.livereload.description": "Ако включите това, всички сесии на всяко устройство, където използвате акаунта си, ще се презареждат, когато натискате „Запазване“." "custom-css.livereload.description": "Ако включите това, всички сесии на всяко устройство, където използвате акаунта си, ще се презареждат, когато натискате „Запазване“.",
"bsvariables": "_variables.scss",
"bsvariables.description": "Тук може да промените променливите на bootstrap. Можете също да използвате и инструмент като <a href=\"https://bootstrap.build/app\">bootstrap.build</a> и да копирате резултата от него тук.<br/>Промените изискват повторно изграждане и рестартиране.",
"bsvariables.enable": "Включване на _variables.scss"
} }

@ -1,7 +1,16 @@
{ {
"skins": "Облици",
"bootswatch-skins": "Облици от Bootswatch",
"custom-skins": "Персонализирани облици",
"add-skin": "Добавяне на облик",
"save-custom-skins": "Запазване на персонализираните облици",
"save-custom-skins-success": "Персонализираните облици са запазени успешно",
"custom-skin-name": "Име на персонализирания облик",
"custom-skin-variables": "Променливи на персонализирания облик",
"loading": "Зареждане на облиците…", "loading": "Зареждане на облиците…",
"homepage": "Начална страница", "homepage": "Начална страница",
"select-skin": "Изберете облик", "select-skin": "Изберете облик",
"revert-skin": "Отмяна на облика",
"current-skin": "Текущ облик", "current-skin": "Текущ облик",
"skin-updated": "Обликът е променен", "skin-updated": "Обликът е променен",
"applied-success": "Обликът „%1“ беше успешно приложен", "applied-success": "Обликът „%1“ беше успешно приложен",

@ -1,7 +1,9 @@
{ {
"themes": "Теми",
"checking-for-installed": "Проверяване за инсталирани теми…", "checking-for-installed": "Проверяване за инсталирани теми…",
"homepage": "Начална страница", "homepage": "Начална страница",
"select-theme": "Изберете тема", "select-theme": "Изберете тема",
"revert-theme": "Отмяна на темата",
"current-theme": "Текуща тема", "current-theme": "Текуща тема",
"no-themes": "Няма намерени инсталирани теми", "no-themes": "Няма намерени инсталирани теми",
"revert-confirm": "Наистина ли искате да възстановите стандартната тема на NodeBB?", "revert-confirm": "Наистина ли искате да възстановите стандартната тема на NodeBB?",

@ -26,13 +26,13 @@
"updates": "Обновления", "updates": "Обновления",
"running-version": "Вие използвате <strong>NodeBB версия <span id=\"version\">%1</span></strong>.", "running-version": "Вие използвате <strong>NodeBB версия <span id=\"version\">%1</span></strong>.",
"keep-updated": "Стремете се винаги да използвате най-новата версия на NodeBB, за да се възползвате от последните подобрения на сигурността и поправки на проблеми.", "keep-updated": "Стремете се винаги да използвате най-новата версия на NodeBB, за да се възползвате от последните подобрения на сигурността и поправки на проблеми.",
"up-to-date": "<p>Вие използвате <strong>най-новата версия</strong> <i class=\"fa fa-check\"></i></p>", "up-to-date": "Вие използвате <strong>най-новата версия</strong> <i class=\"fa fa-check\"></i>",
"upgrade-available": "<p>Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>", "upgrade-available": "Има нова версия (%1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.",
"prerelease-upgrade-available": "<p>Това е остаряла предварителна версия на NodeBB. Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>", "prerelease-upgrade-available": "Това е остаряла предварителна версия на NodeBB. Има нова версия (%1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.",
"prerelease-warning": "<p>Това е версия за <strong>предварителен преглед</strong> на NodeBB. Възможно е да има неочаквани неизправности. <i class=\"fa fa-exclamation-triangle\"></i></p>", "prerelease-warning": "Това е <strong>предварителна версия</strong> на NodeBB. Възможно е да има неочаквани неизправности. <i class=\"fa fa-exclamation-triangle\"></i>",
"fallback-emailer-not-found": "Не е намерен резервен изпращач на е-поща", "fallback-emailer-not-found": "Не е намерен резервен изпращач на е-поща",
"running-in-development": "<span>Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.</span>", "running-in-development": "Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.",
"latest-lookup-failed": "<p>Не може да бъде извършена проверка за последната налична версия на NodeBB</p>", "latest-lookup-failed": "Не може да бъде извършена проверка за последната налична версия на NodeBB",
"notices": "Забележки", "notices": "Забележки",
"restart-not-required": "Не се изисква рестартиране", "restart-not-required": "Не се изисква рестартиране",

@ -1,4 +1,5 @@
{ {
"logger": "Журнал",
"logger-settings": "Настройки на журнала", "logger-settings": "Настройки на журнала",
"description": "Ако поставите отметки тук, Вие ще виждате журнала в терминала си. Ако посочите пътечка, то вместо това журналите ще бъдат записвани във файл. Журналът чрез HTTP е удобен за получаване на статистика за това кога, кои и какви хора посещават форума Ви. В допълнение към следенето на заявките чрез HTTP, можем също да следим и събитията на socket.io. Журналът на Socket.io, в комбинация с redis-cli, може да Ви бъде много полезно, ако искате да разучите как работи NodeBB.", "description": "Ако поставите отметки тук, Вие ще виждате журнала в терминала си. Ако посочите пътечка, то вместо това журналите ще бъдат записвани във файл. Журналът чрез HTTP е удобен за получаване на статистика за това кога, кои и какви хора посещават форума Ви. В допълнение към следенето на заявките чрез HTTP, можем също да следим и събитията на socket.io. Журналът на Socket.io, в комбинация с redis-cli, може да Ви бъде много полезно, ако искате да разучите как работи NodeBB.",
"explanation": "За да включите или изключите журналите в реално време, просто поставете или премахнете отметките в настройките на журнала. Няма нужда от рестартиране.", "explanation": "За да включите или изключите журналите в реално време, просто поставете или премахнете отметките в настройките на журнала. Няма нужда от рестартиране.",

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

@ -1,10 +1,12 @@
{ {
"rewards": "Награди", "rewards": "Награди",
"add-reward": "Добавяне на награда",
"condition-if-users": "Ако потребителският(ата/ото)", "condition-if-users": "Ако потребителският(ата/ото)",
"condition-is": "Е:", "condition-is": "Е:",
"condition-then": "Тогава:", "condition-then": "Тогава:",
"max-claims": "Колко пъти може да бъде получавана наградата", "max-claims": "Колко пъти може да бъде получавана наградата",
"zero-infinite": "0 = безкраен брой пъти", "zero-infinite": "0 = безкраен брой пъти",
"select-reward": "Изберете награда",
"delete": "Изтриване", "delete": "Изтриване",
"enable": "Включване", "enable": "Включване",
"disable": "Изключване", "disable": "Изключване",

@ -1,4 +1,5 @@
{ {
"widgets": "Джаджи",
"available": "Налични джаджи", "available": "Налични джаджи",
"explanation": "Изберете джаджа от падащото меню, а след това я завлачете и пуснете в областта за джаджи в някой от шаблоните вляво.", "explanation": "Изберете джаджа от падащото меню, а след това я завлачете и пуснете в областта за джаджи в някой от шаблоните вляво.",
"none-installed": "Няма намерени джаджи! Включете добавката с основните джаджи в контролния панел за <a href=\"%1\">добавките</a>.", "none-installed": "Няма намерени джаджи! Включете добавката с основните джаджи в контролния панел за <a href=\"%1\">добавките</a>.",

@ -1,10 +1,11 @@
{ {
"manage-admins-and-mods": "Управление на администраторите и модераторите",
"administrators": "Администратори", "administrators": "Администратори",
"global-moderators": "Глобални модератори", "global-moderators": "Глобални модератори",
"moderators": "Модератори", "moderators": "Модератори",
"no-global-moderators": "Няма глобални модератори", "no-global-moderators": "Няма глобални модератори",
"no-sub-categories": "Няма подкатегории", "no-sub-categories": "Няма подкатегории",
"subcategories": "%1 подкатегории", "view-children": "Преглед на подкатегориите (%1)",
"no-moderators": "Няма модератори", "no-moderators": "Няма модератори",
"add-administrator": "Добавяне на администратор", "add-administrator": "Добавяне на администратор",
"add-global-moderator": "Добавяне на глобален модератор", "add-global-moderator": "Добавяне на глобален модератор",

@ -1,7 +1,11 @@
{ {
"manage-categories": "Управление на категориите",
"add-category": "Добавяне на категория",
"jump-to": "Прехвърляне към…",
"settings": "Настройки на категорията", "settings": "Настройки на категорията",
"edit-category": "Редактиране на категорията",
"privileges": "Правомощия", "privileges": "Правомощия",
"back-to-categories": "Назад към категориите",
"name": "Име на категорията", "name": "Име на категорията",
"description": "Описание на категорията", "description": "Описание на категорията",
"bg-color": "Цвят на фона", "bg-color": "Цвят на фона",
@ -15,8 +19,11 @@
"post-queue": "Опашка за публикации", "post-queue": "Опашка за публикации",
"tag-whitelist": "Списък от разрешени етикети", "tag-whitelist": "Списък от разрешени етикети",
"upload-image": "Качване на изображение", "upload-image": "Качване на изображение",
"upload": "Качване",
"select-icon": "Изберете иконка",
"delete-image": "Премахване", "delete-image": "Премахване",
"category-image": "Изображение на категорията", "category-image": "Изображение на категорията",
"image-and-icon": "Изображение и иконка",
"parent-category": "Базова категория", "parent-category": "Базова категория",
"optional-parent-category": "(Незадължително) Базова категория", "optional-parent-category": "(Незадължително) Базова категория",
"top-level": "Най-горно ниво", "top-level": "Най-горно ниво",
@ -31,6 +38,7 @@
"disable": "Изключване", "disable": "Изключване",
"edit": "Редактиране", "edit": "Редактиране",
"analytics": "Анализи", "analytics": "Анализи",
"view-category": "Преглед на категорията", "view-category": "Преглед на категорията",
"set-order": "Запазване на реда", "set-order": "Запазване на реда",
"set-order-help": "Задаването на позиция за категорията ще я премести на желаното място и ще промени местата на другите категории, ако е необходимо. Най-малкият възможен номер е 1, което ще постави категорията най-отгоре.", "set-order-help": "Задаването на позиция за категорията ще я премести на желаното място и ще промени местата на другите категории, ако е необходимо. Най-малкият възможен номер е 1, което ще постави категорията най-отгоре.",

@ -1,4 +1,10 @@
{ {
"manage-groups": "Управление на групите",
"add-group": "Добавяне на група",
"edit-group": "Редактиране на групата",
"back-to-groups": "Назад към групите",
"view-group": "Преглед на групата",
"icon-and-title": "Иконка и заглавие",
"name": "Име на групата", "name": "Име на групата",
"badge": "Емблема", "badge": "Емблема",
"properties": "Свойства", "properties": "Свойства",
@ -10,7 +16,7 @@
"edit": "Редактиране", "edit": "Редактиране",
"delete": "Изтриване", "delete": "Изтриване",
"privileges": "Правомощия", "privileges": "Правомощия",
"download-csv": "CSV", "members-csv": "Членове (CSV)",
"search-placeholder": "Търсене", "search-placeholder": "Търсене",
"create": "Създаване на група", "create": "Създаване на група",
"description-placeholder": "Кратко описание на групата", "description-placeholder": "Кратко описание на групата",

@ -1,4 +1,6 @@
{ {
"manage-privileges": "Управление на правомощията",
"discard-changes": "Отхвърляне на промените",
"global": "Глобални", "global": "Глобални",
"admin": "Администратор", "admin": "Администратор",
"group-privileges": "Правомощия за групите", "group-privileges": "Правомощия за групите",

@ -1,9 +1,11 @@
{ {
"manage-tags": "Управление на етикетите",
"none": "Форумът все още няма теми с етикети.", "none": "Форумът все още няма теми с етикети.",
"bg-color": "Цвят на фона", "bg-color": "Цвят на фона",
"text-color": "Цвят на текста", "text-color": "Цвят на текста",
"description": "Изберете етикетите чрез щракване или влачене. Използвайте <code>CTRL</code>, за да изберете няколко етикета.", "description": "Изберете етикетите чрез щракване или влачене. Използвайте <code>CTRL</code>, за да изберете няколко етикета.",
"create": "Създаване на етикет", "create": "Създаване на етикет",
"add-tag": "Добавяне на етикет",
"modify": "Редактиране на етикети", "modify": "Редактиране на етикети",
"rename": "Преименуване на етикети", "rename": "Преименуване на етикети",
"delete": "Изтриване на избраните етикети", "delete": "Изтриване на избраните етикети",

@ -1,4 +1,5 @@
{ {
"manage-uploads": "Управление на качванията",
"upload-file": "Качване на файл", "upload-file": "Качване на файл",
"filename": "Име на файла", "filename": "Име на файла",
"usage": "Използване в публикации", "usage": "Използване в публикации",

@ -1,4 +1,5 @@
{ {
"manage-users": "Управление на потребителите",
"users": "Потребители", "users": "Потребители",
"edit": "Действия", "edit": "Действия",
"make-admin": "Даване на администраторски права", "make-admin": "Даване на администраторски права",
@ -49,6 +50,10 @@
"users.username": "потребителско име", "users.username": "потребителско име",
"users.email": "е-поща", "users.email": "е-поща",
"users.no-email": "(няма е-поща)", "users.no-email": "(няма е-поща)",
"users.validated": "Потвърдена",
"users.not-validated": "Непотвърдена",
"users.validation-pending": "Очаква потвърждение",
"users.validation-expired": "Изтекла давност на потвърждението",
"users.ip": "IP адрес", "users.ip": "IP адрес",
"users.postcount": "брой публикации", "users.postcount": "брой публикации",
"users.reputation": "репутация", "users.reputation": "репутация",

@ -68,11 +68,13 @@
"advanced/logs": "Журнали", "advanced/logs": "Журнали",
"advanced/errors": "Грешки", "advanced/errors": "Грешки",
"advanced/cache": "Кеш", "advanced/cache": "Кеш",
"development/logger": "Система на журнала", "development/logger": "Журнал",
"development/info": "Информация", "development/info": "Информация",
"rebuild-and-restart-forum": "Повторно изграждане и рестартиране на форума", "rebuild-and-restart-forum": "Повторно изграждане и рестартиране на форума",
"rebuild-and-restart": "Повторно изграждане и рестартиране",
"restart-forum": "Рестартиране на форума", "restart-forum": "Рестартиране на форума",
"restart": "Рестартиране",
"logout": "Изход", "logout": "Изход",
"view-forum": "Преглед на форума", "view-forum": "Преглед на форума",

@ -1,19 +1,29 @@
{ {
"tokens": "Кодове", "tokens": "Идентификатор",
"settings": "Настройки", "settings": "Настройки",
"lead-text": "На тази страница можете да настроите достъпа до ППИ за писане в NodeBB.", "lead-text": "На тази страница можете да настроите достъпа до ППИ за писане в NodeBB.",
"intro": "По подразбиране ППИ за писане удостоверява потребителите чрез бисквитката им за сесията, но NodeBB поддържа и удостоверяване чрез метода „Bearer“, използвайки кодовете от тази страница.", "intro": "По подразбиране ППИ за писане удостоверява потребителите чрез бисквитката им за сесията, но NodeBB поддържа и удостоверяване чрез метода „Bearer“, използвайки идентификаторите от тази страница.",
"warning": "<strong>Внимавайте</strong> отнасяйте се с идентификаторите като с пароли. Ако някой се сдобие с тях, може да получи достъп до акаунта Ви.",
"docs": "Щракнете тук за достъп до пълната документация на ППИ", "docs": "Щракнете тук за достъп до пълната документация на ППИ",
"require-https": "Ползването на ППИ да работи само чрез HTTPS", "require-https": "Ползването на ППИ да работи само чрез HTTPS",
"require-https-caveat": "<strong>Забележка</strong>: В някои случаи, когато се ползват програми за балансиране на натоварването, е възможно заявките към NodeBB да се препращат чрез HTTP тогава тази настройка трябва да остане изключена.", "require-https-caveat": "<strong>Забележка</strong>: В някои случаи, когато се ползват програми за балансиране на натоварването, е възможно заявките към NodeBB да се препращат чрез HTTP тогава тази настройка трябва да остане изключена.",
"uid": "Потребителски ИД", "uid": "Потребителски ИД",
"token": "Идентификатор",
"uid-help-text": "Посочете потребителски ИД, който да бъде свързан с този код. Ако ИД е <code>0</code>, това ще се счита за <em>главен</em> код, който може да приема идентичността на всеки от другите потребители чрез параметъра <code>_uid</code>", "uid-help-text": "Посочете потребителски ИД, който да бъде свързан с този код. Ако ИД е <code>0</code>, това ще се счита за <em>главен</em> код, който може да приема идентичността на всеки от другите потребители чрез параметъра <code>_uid</code>",
"description": "Описание", "description": "Описание",
"last-seen-ago": "Последно използван <span class=\"timeago\" title=\"%1\"></span>.", "last-seen": "Последно видян",
"last-seen-on": "Последно използван на <span class=\"timeago\" title=\"%1\"></span>.", "created": "Създаден",
"create-token": "Създаване на идентификатор",
"update-token": "Промяна на идентификатора",
"master-token": "Главен идентификатор",
"last-seen-never": "Този ключ не е използван никога.", "last-seen-never": "Този ключ не е използван никога.",
"no-description": "Няма описание.", "no-description": "Няма описание.",
"token-on-save": "Кодът ще бъде създаден след като данните бъдат запазени" "actions": "Действия",
"edit": "Редактиране",
"roll": "Пресъздаване",
"delete-confirm": "Наистина ли искате да изтриете този идентификатор? След това няма да може да го възстановите.",
"roll-confirm": "Наистина ли искате да пресъздадете този идентификатор? Старият ще бъде премахнат незабавно и няма да може да бъде възстановен."
} }

@ -1,11 +1,13 @@
{ {
"general-settings": "Общи настройки",
"on-this-page": "На тази страница:",
"site-settings": "Настройки на уеб сайта", "site-settings": "Настройки на уеб сайта",
"title": "Заглавие на уеб сайта", "title": "Заглавие на уеб сайта",
"title.short": "Кратко заглавие", "title.short": "Кратко заглавие",
"title.short-placeholder": "Ако не е посочено кратко заглавие, ще бъде използвано заглавието на уеб сайта", "title.short-placeholder": "Ако не е посочено кратко заглавие, ще бъде използвано заглавието на уеб сайта",
"title.url": "Адрес за заглавието", "title.url": "Адрес за заглавието",
"title.url-placeholder": "Адресът за заглавието на уеб сайта", "title.url-placeholder": "Адресът за заглавието на уеб сайта",
"title.url-help": "Когато потребител щракне върху заглавието, той ще бъде прехвърлен към този адрес. Ако е празно, потребителят ще бъде изпратен към началната страница на форума. <br> Забележка: Това не е външният адрес, който се ползва в е-писмата. Той се задава от свойството <code>url</code> във файла config.json", "title.url-help": "Когато потребител щракне върху заглавието, той ще бъде прехвърлен към този адрес. Ако е празно, потребителят ще бъде изпратен към началната страница на форума. Забележка: Това не е външният адрес, който се ползва в е-писмата. Той се задава от свойството <code>url</code> във файла config.json.",
"title.name": "Името на общността Ви", "title.name": "Името на общността Ви",
"title.show-in-header": "Показване на заглавието на уеб сайта в заглавната част", "title.show-in-header": "Показване на заглавието на уеб сайта в заглавната част",
"browser-title": "Заглавие на браузъра", "browser-title": "Заглавие на браузъра",
@ -16,7 +18,7 @@
"description": "Описание на уеб сайта", "description": "Описание на уеб сайта",
"keywords": "Ключови думи на уеб сайта", "keywords": "Ключови думи на уеб сайта",
"keywords-placeholder": "Ключови думи, описващи общността Ви. Трябва да бъдат разделени със запетаи.", "keywords-placeholder": "Ключови думи, описващи общността Ви. Трябва да бъдат разделени със запетаи.",
"logo": "Лого на уеб сайта", "logo-and-icons": "Лого и иконки на уеб сайта",
"logo.image": "Изображение", "logo.image": "Изображение",
"logo.image-placeholder": "Път до логото, което да бъде показано в заглавната част на форума", "logo.image-placeholder": "Път до логото, което да бъде показано в заглавната част на форума",
"logo.upload": "Качване", "logo.upload": "Качване",

@ -1,5 +1,6 @@
{ {
"settings": "Настройки", "settings": "Настройки",
"guest-settings": "Настройки за гостите",
"handles.enabled": "Позволяване на имената за гостите", "handles.enabled": "Позволяване на имената за гостите",
"handles.enabled-help": "Тази възможност предоставя ново поле, което позволява на гостите да си изберат име, което да се използва за всяка публикация, която правят. Ако е изключено, всички те просто ще имат името „Гост“.", "handles.enabled-help": "Тази възможност предоставя ново поле, което позволява на гостите да си изберат име, което да се използва за всяка публикация, която правят. Ако е изключено, всички те просто ще имат името „Гост“.",
"topic-views.enabled": "Гостите да допринасят за броя на преглеждания на темите", "topic-views.enabled": "Гостите да допринасят за броя на преглеждания на темите",

@ -1,4 +1,5 @@
{ {
"navigation": "Навигация",
"icon": "Иконка:", "icon": "Иконка:",
"change-icon": "промяна", "change-icon": "промяна",
"route": "Маршрут:", "route": "Маршрут:",

@ -1,4 +1,5 @@
{ {
"general": "Общи",
"sorting": "Подредба на публикациите", "sorting": "Подредба на публикациите",
"sorting.post-default": "Подредба по подразбиране на публикациите", "sorting.post-default": "Подредба по подразбиране на публикациите",
"sorting.oldest-to-newest": "Първо най-старите", "sorting.oldest-to-newest": "Първо най-старите",
@ -23,10 +24,8 @@
"restrictions.seconds-edit-after": "Брой секунди, през които публикациите могат да бъдат редактирани. (0 = изключено)", "restrictions.seconds-edit-after": "Брой секунди, през които публикациите могат да бъдат редактирани. (0 = изключено)",
"restrictions.seconds-delete-after": "Брой секунди, през които публикациите могат да бъдат изтрити. (0 = изключено)", "restrictions.seconds-delete-after": "Брой секунди, през които публикациите могат да бъдат изтрити. (0 = изключено)",
"restrictions.replies-no-delete": "Брой отговори, след които потребителите вече не могат да изтриват собствените си теми. (0 = изключено)", "restrictions.replies-no-delete": "Брой отговори, след които потребителите вече не могат да изтриват собствените си теми. (0 = изключено)",
"restrictions.min-title-length": "Минимална дължина на заглавието", "restrictions.title-length": "Дължина на заглавието",
"restrictions.max-title-length": "Максимална дължина на заглавието", "restrictions.post-length": "Дължина на публикациите",
"restrictions.min-post-length": "Минимална дължина на публикацията",
"restrictions.max-post-length": "Максимална дължина на публикацията",
"restrictions.days-until-stale": "Брой дни, след които темата се смята за стара", "restrictions.days-until-stale": "Брой дни, след които темата се смята за стара",
"restrictions.stale-help": "Ако дадена тема е определена като „стара“, то потребителите, които се опитат да пишат в нея, ще получат предупредително съобщение.", "restrictions.stale-help": "Ако дадена тема е определена като „стара“, то потребителите, които се опитат да пишат в нея, ще получат предупредително съобщение.",
"timestamp": "Време", "timestamp": "Време",
@ -41,10 +40,9 @@
"teaser.last-reply": "Последната &ndash; Показване на последния отговор, или „Няма отговори“, ако все още няма такива.", "teaser.last-reply": "Последната &ndash; Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
"teaser.first": "Първата", "teaser.first": "Първата",
"showPostPreviewsOnHover": "Показване на кратък преглед на публикациите при посочване с мишката", "showPostPreviewsOnHover": "Показване на кратък преглед на публикациите при посочване с мишката",
"unread": "Настройки за непрочетените", "unread-and-recent": "Настройки за скорошните и непрочетените",
"unread.cutoff": "Възраст на публикациите, след която те не се показват в непрочетените (в брой дни)", "unread.cutoff": "Възраст на публикациите, след която те не се показват в непрочетените (в брой дни)",
"unread.min-track-last": "Минимален брой публикации в темата, след което да започва следене на последно прочетената", "unread.min-track-last": "Минимален брой публикации в темата, след което да започва следене на последно прочетената",
"recent": "Настройки за скорошните",
"recent.max-topics": "Максимален брой теми в скорошните", "recent.max-topics": "Максимален брой теми в скорошните",
"recent.categoryFilter.disable": "Изключване на филтрирането на темите в пренебрегваните категории на страницата /recent", "recent.categoryFilter.disable": "Изключване на филтрирането на темите в пренебрегваните категории на страницата /recent",
"signature": "Настройки за подписите", "signature": "Настройки за подписите",

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

@ -3,6 +3,7 @@
"link-to-manage": "Управление на етикетите", "link-to-manage": "Управление на етикетите",
"system-tags": "Системни етикети", "system-tags": "Системни етикети",
"system-tags-help": "Само потребителите с по-високи правомощия ще могат да използват тези етикети.", "system-tags-help": "Само потребителите с по-високи правомощия ще могат да използват тези етикети.",
"tags-per-topic": "Брой етикети за тема",
"min-per-topic": "Минимален брой етикети за тема", "min-per-topic": "Минимален брой етикети за тема",
"max-per-topic": "Максимален брой етикети за тема", "max-per-topic": "Максимален брой етикети за тема",
"min-length": "Минимална дължина на етикетите", "min-length": "Минимална дължина на етикетите",

@ -59,7 +59,7 @@
"max-about-me-length": "Максимална дължина на информацията на потребителите за себе си", "max-about-me-length": "Максимална дължина на информацията на потребителите за себе си",
"terms-of-use": "Условия за ползване на форума <small>(Оставете празно и няма да има такива)</small>", "terms-of-use": "Условия за ползване на форума <small>(Оставете празно и няма да има такива)</small>",
"user-search": "Търсене на потребители", "user-search": "Търсене на потребители",
"user-search-results-per-page": "Брой резултати, които да бъдат показвани", "user-search-results-per-page": "Брой потребители, които да бъдат показвани в резултатите от търсене",
"default-user-settings": "Настройки по подразбиране на потребителите", "default-user-settings": "Настройки по подразбиране на потребителите",
"show-email": "Показване на е-пощата", "show-email": "Показване на е-пощата",
"show-fullname": "Показване на пълното име", "show-fullname": "Показване на пълното име",

@ -42,6 +42,7 @@
"user-doesnt-have-email": "Потребителят „%1“ няма зададена е-поща.", "user-doesnt-have-email": "Потребителят „%1“ няма зададена е-поща.",
"email-confirm-failed": "Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.", "email-confirm-failed": "Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
"confirm-email-already-sent": "Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.", "confirm-email-already-sent": "Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
"confirm-email-expired": "Е-писмото за потвърждение е с изтекла давност",
"sendmail-not-found": "Изпълнимият файл на „sendmail“ не може да бъде намерен. Моля, уверете се, че е инсталиран и изпълним за потребителя, чрез който е пуснат NodeBB.", "sendmail-not-found": "Изпълнимият файл на „sendmail“ не може да бъде намерен. Моля, уверете се, че е инсталиран и изпълним за потребителя, чрез който е пуснат NodeBB.",
"digest-not-enabled": "Този потребител няма включени резюмета, или системната настройка по подразбиране е да не се изпращат резюмета", "digest-not-enabled": "Този потребител няма включени резюмета, или системната настройка по подразбиране е да не се изпращат резюмета",
"username-too-short": "Потребителското име е твърде кратко", "username-too-short": "Потребителското име е твърде кратко",
@ -219,7 +220,7 @@
"topic-event-unrecognized": "Събитието „%1“ на темата е неизвестно", "topic-event-unrecognized": "Събитието „%1“ на темата е неизвестно",
"cant-set-child-as-parent": "Дъщерна категория не може да се зададе като базова такава", "cant-set-child-as-parent": "Дъщерна категория не може да се зададе като базова такава",
"cant-set-self-as-parent": "Категорията не може да се зададе като базова категория на себе си", "cant-set-self-as-parent": "Категорията не може да се зададе като базова категория на себе си",
"api.master-token-no-uid": "Беше получен главен код без съответстващо поле `_uid` в тялото на заявката", "api.master-token-no-uid": "Беше получен главен идентификатор без съответстващо поле `_uid` в тялото на заявката",
"api.400": "Нещо не беше наред с данните в заявката, които подадохте.", "api.400": "Нещо не беше наред с данните в заявката, които подадохте.",
"api.401": "Няма намерена сесия. Моля, впишете се и опитайте отново.", "api.401": "Няма намерена сесия. Моля, впишете се и опитайте отново.",
"api.403": "Нямате право да изпълните тази команда", "api.403": "Нямате право да изпълните тази команда",

@ -20,6 +20,7 @@
"you_have_successfully_logged_in": "Вие влязохте успешно", "you_have_successfully_logged_in": "Вие влязохте успешно",
"save_changes": "Запазване на промените", "save_changes": "Запазване на промените",
"save": "Запазване", "save": "Запазване",
"create": "Създаване",
"cancel": "Отказ", "cancel": "Отказ",
"close": "Затваряне", "close": "Затваряне",
"pagination": "Странициране", "pagination": "Странициране",

@ -2,7 +2,7 @@
"chat.chatting_with": "Разговор с", "chat.chatting_with": "Разговор с",
"chat.placeholder": "Въведете съобщение тук или пуснете снимки и натиснете Ентер за изпращане", "chat.placeholder": "Въведете съобщение тук или пуснете снимки и натиснете Ентер за изпращане",
"chat.placeholder.mobile": "Въведете съобщение тук", "chat.placeholder.mobile": "Въведете съобщение тук",
"chat.scroll-up-alert": "В момента разглеждате по-стари съобщения. Щракнете тук, за да се прехвърлите към най-новото съобщение.", "chat.scroll-up-alert": "Към последните съобщения",
"chat.usernames-and-x-others": "%1 и %2 други", "chat.usernames-and-x-others": "%1 и %2 други",
"chat.chat-with-usernames": "Разговор с %1", "chat.chat-with-usernames": "Разговор с %1",
"chat.chat-with-usernames-and-x-others": "Разговор с %1 и %2 други", "chat.chat-with-usernames-and-x-others": "Разговор с %1 и %2 други",

@ -14,6 +14,7 @@
"flagged-content": "Докладвано съдържание", "flagged-content": "Докладвано съдържание",
"ip-blacklist": "Черен списък за IP адреси", "ip-blacklist": "Черен списък за IP адреси",
"post-queue": "Опашка за публикации", "post-queue": "Опашка за публикации",
"registration-queue": "Регистрационна опашка",
"users/online": "Потребители на линия", "users/online": "Потребители на линия",
"users/latest": "Последни потребители", "users/latest": "Последни потребители",
"users/sort-posts": "Потребители с най-много публикации", "users/sort-posts": "Потребители с най-много публикации",

@ -1,14 +1,16 @@
{ {
"skins": "Skins", "theme-name": "Тема на Harmony",
"collapse": "Collapse", "skins": "Облици",
"expand": "Expand", "collapse": "Свиване",
"login-register-to-search": "Login or register to search.", "expand": "Разгъване",
"settings.title": "Theme settings", "login-register-to-search": "Впишете се или се регистрирайте, за да можете да търсите.",
"settings.enableQuickReply": "Enable quick reply", "settings.title": "Настройки на темата",
"settings.centerHeaderElements": "Center header elements", "settings.enableQuickReply": "Включване на бързите отговори",
"settings.mobileTopicTeasers": "Show topic teasers on mobile", "settings.centerHeaderElements": "Центриране на заглавните елементи",
"settings.stickyToolbar": "Sticky toolbar", "settings.mobileTopicTeasers": "Показване на резюмета на темите на мобилни устройства",
"settings.stickyToolbar.help": "The toolbar on topic and category pages will stick to the top of the page", "settings.stickyToolbar": "Статична лента с инструменти",
"settings.autohideBottombar": "Auto hide bottom bar", "settings.stickyToolbar.help": "Лентата с инструменти в страниците с теми и категории ще стои винаги в горния край на страницата",
"settings.autohideBottombar.help": "The bottom bar on mobile view will be hidden when the page is scrolled down" "settings.autohideBottombar": "Автоматично скриване на долната лента",
"settings.autohideBottombar.help": "В изгледа за мобилни устройства долната лента ще се скрива, когато страницата се превърта надолу",
"settings.chatModals": "Включване на прозорците за разговори"
} }

@ -1,10 +1,10 @@
{ {
"settings.title": "Theme settings", "settings.title": "Настройки на темата",
"settings.intro": "You can customise your theme settings here. Settings are stored on a per-device basis, so you are able to have different settings on different devices (phone, tablet, desktop, etc.)", "settings.intro": "Тук може да промените настройките на темата. Тези настройки се съхраняват отделно на всяко устройство, така че може да имате различни настройки на различните си устройства (телефон, таблет, настолен компютър и т.н.)",
"settings.mobile-menu-side": "Switch which side each mobile menu is on", "settings.mobile-menu-side": "Превключване на страната, от която да бъде всяко меню на мобилно устройство",
"settings.autoHidingNavbar": "Automatically hide the navbar on scroll", "settings.autoHidingNavbar": "Автоматично скриване на навигационната лента при превъртане",
"settings.autoHidingNavbar-xs": "Very small screens (e.g. phones in portrait mode)", "settings.autoHidingNavbar-xs": "Много малки екрани (напр. телефон в портретна ориентация)",
"settings.autoHidingNavbar-sm": "Smaller screens (e.g. phones, some tablets)", "settings.autoHidingNavbar-sm": "По-малки екрани (напр. телефони, някои таблети)",
"settings.autoHidingNavbar-md": "Medium sized screens (e.g. tablets in landscape mode)", "settings.autoHidingNavbar-md": "Средно големи екрани (напр. таблети в пейзажна ориентация)",
"settings.autoHidingNavbar-lg": "Larger screens (e.g. desktop computers)" "settings.autoHidingNavbar-lg": "По-големи екрани (напр. лаптопи и настолни компютри)"
} }

@ -164,7 +164,7 @@
"composer.schedule": "Насрочване", "composer.schedule": "Насрочване",
"composer.replying_to": "Отговор на %1", "composer.replying_to": "Отговор на %1",
"composer.new_topic": "Нова тема", "composer.new_topic": "Нова тема",
"composer.editing": "Редактиране", "composer.editing-in": "Редактиране на публикация в %1",
"composer.uploading": "качване...", "composer.uploading": "качване...",
"composer.thumb_url_label": "Поставете адреса на иконка за темата", "composer.thumb_url_label": "Поставете адреса на иконка за темата",
"composer.thumb_title": "Добавете иконка към тази тема", "composer.thumb_title": "Добавете иконка към тази тема",

@ -141,6 +141,8 @@
"group-order-help": "Изберете група и използвайте стрелките, за да пренаредите заглавията", "group-order-help": "Изберете група и използвайте стрелките, за да пренаредите заглавията",
"no-group-title": "Няма заглавие на група", "no-group-title": "Няма заглавие на група",
"select-skin": "Изберете облик", "select-skin": "Изберете облик",
"default": "По подразбиране (%1)",
"no-skin": "Без облик",
"select-homepage": "Изберете начална страница", "select-homepage": "Изберете начална страница",
"homepage": "Начална страница", "homepage": "Начална страница",
"homepage_description": "Изберете страница, която да използвате като начална за форума, или „Нищо“, за да използвате тази по подразбиране.", "homepage_description": "Изберете страница, която да използвате като начална за форума, или „Нищо“, за да използвате тази по подразбиране.",

@ -6,7 +6,7 @@
"most_flags": "С най-много доклади", "most_flags": "С най-много доклади",
"search": "Търсене", "search": "Търсене",
"enter_username": "Въведете потребителско име, което да потърсите", "enter_username": "Въведете потребителско име, което да потърсите",
"search-user-for-chat": "Потърсете потребител, с когото да започнете разговор:", "search-user-for-chat": "Потърсете потребител, с когото да започнете разговор",
"load_more": "Зареждане на още", "load_more": "Зареждане на още",
"users-found-search-took": "Намерени са %1 потребител(и)! Търсенето отне %2 секунди.", "users-found-search-took": "Намерени са %1 потребител(и)! Търсенето отне %2 секунди.",
"filter-by": "Филтриране", "filter-by": "Филтриране",

@ -4,6 +4,13 @@
"acp-title": "%1 | NodeBB এডমিন কন্ট্রোল প্যানেল", "acp-title": "%1 | NodeBB এডমিন কন্ট্রোল প্যানেল",
"settings-header-contents": "কনটেন্টস", "settings-header-contents": "কনটেন্টস",
"changes-saved": "Changes Saved",
"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
"changes-not-saved": "Changes Not Saved", "changes-not-saved": "Changes Not Saved",
"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)" "changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)",
"save-changes": "Save changes",
"min": "Min:",
"max": "Max:",
"view": "View",
"edit": "Edit"
} }

@ -1,4 +1,5 @@
{ {
"cache": "Cache",
"post-cache": "Post Cache", "post-cache": "Post Cache",
"group-cache": "Group Cache", "group-cache": "Group Cache",
"local-cache": "Local Cache", "local-cache": "Local Cache",

@ -5,7 +5,7 @@
"uptime-seconds": "Uptime in Seconds", "uptime-seconds": "Uptime in Seconds",
"uptime-days": "Uptime in Days", "uptime-days": "Uptime in Days",
"mongo": "Mongo", "mongo": "MongoDB",
"mongo.version": "MongoDB Version", "mongo.version": "MongoDB Version",
"mongo.storage-engine": "Storage Engine", "mongo.storage-engine": "Storage Engine",
"mongo.collections": "Collections", "mongo.collections": "Collections",

@ -1,4 +1,5 @@
{ {
"errors": "Errors",
"figure-x": "Figure %1", "figure-x": "Figure %1",
"error-events-per-day": "<code>%1</code> events per day", "error-events-per-day": "<code>%1</code> events per day",
"error.404": "404 Not Found", "error.404": "404 Not Found",

@ -1,4 +1,5 @@
{ {
"customise": "Customise",
"custom-css": "Custom CSS/SASS", "custom-css": "Custom CSS/SASS",
"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.", "custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
"custom-css.enable": "Enable Custom CSS/SASS", "custom-css.enable": "Enable Custom CSS/SASS",
@ -12,5 +13,8 @@
"custom-header.enable": "Enable Custom Header", "custom-header.enable": "Enable Custom Header",
"custom-css.livereload": "Enable Live Reload", "custom-css.livereload": "Enable Live Reload",
"custom-css.livereload.description": "Enable this to force all sessions on every device under your account to refresh whenever you click save" "custom-css.livereload.description": "Enable this to force all sessions on every device under your account to refresh whenever you click save",
"bsvariables": "_variables.scss",
"bsvariables.description": "Override bootstrap variables here. You can also use a tool like <a href=\"https://bootstrap.build/app\">bootstrap.build</a> and paste the output here.<br/>Changes require a rebuild & restart.",
"bsvariables.enable": "Enable _variables.scss"
} }

@ -1,7 +1,16 @@
{ {
"skins": "Skins",
"bootswatch-skins": "Bootswatch Skins",
"custom-skins": "Custom Skins",
"add-skin": "Add Skin",
"save-custom-skins": "Save Custom Skins",
"save-custom-skins-success": "Custom skins saved successfully",
"custom-skin-name": "Custom Skin Name",
"custom-skin-variables": "Custom Skin Variables",
"loading": "Loading Skins...", "loading": "Loading Skins...",
"homepage": "Homepage", "homepage": "Homepage",
"select-skin": "Select Skin", "select-skin": "Select Skin",
"revert-skin": "Revert Skin",
"current-skin": "Current Skin", "current-skin": "Current Skin",
"skin-updated": "Skin Updated", "skin-updated": "Skin Updated",
"applied-success": "%1 skin was succesfully applied", "applied-success": "%1 skin was succesfully applied",

@ -1,7 +1,9 @@
{ {
"themes": "Themes",
"checking-for-installed": "Checking for installed themes...", "checking-for-installed": "Checking for installed themes...",
"homepage": "Homepage", "homepage": "Homepage",
"select-theme": "Select Theme", "select-theme": "Select Theme",
"revert-theme": "Revert Theme",
"current-theme": "Current Theme", "current-theme": "Current Theme",
"no-themes": "No installed themes found", "no-themes": "No installed themes found",
"revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?",

@ -26,13 +26,13 @@
"updates": "Updates", "updates": "Updates",
"running-version": "You are running <strong>NodeBB v<span id=\"version\">%1</span></strong>.", "running-version": "You are running <strong>NodeBB v<span id=\"version\">%1</span></strong>.",
"keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.",
"up-to-date": "<p>You are <strong>up-to-date</strong> <i class=\"fa fa-check\"></i></p>", "up-to-date": "You are <strong>up-to-date</strong> <i class=\"fa fa-check\"></i>",
"upgrade-available": "<p>A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>", "upgrade-available": "A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.",
"prerelease-upgrade-available": "<p>This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>", "prerelease-upgrade-available": "This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.",
"prerelease-warning": "<p>This is a <strong>pre-release</strong> version of NodeBB. Unintended bugs may occur. <i class=\"fa fa-exclamation-triangle\"></i></p>", "prerelease-warning": "This is a <strong>pre-release</strong> version of NodeBB. Unintended bugs may occur. <i class=\"fa fa-exclamation-triangle\"></i>",
"fallback-emailer-not-found": "Fallback emailer not found!", "fallback-emailer-not-found": "Fallback emailer not found!",
"running-in-development": "<span>Forum is running in development mode. The forum may be open to potential vulnerabilities; please contact your system administrator.</span>", "running-in-development": "Forum is running in development mode. The forum may be open to potential vulnerabilities; please contact your system administrator",
"latest-lookup-failed": "<p>Failed to look up latest available version of NodeBB</p>", "latest-lookup-failed": "Failed to look up latest available version of NodeBB",
"notices": "Notices", "notices": "Notices",
"restart-not-required": "Restart not required", "restart-not-required": "Restart not required",

@ -1,4 +1,5 @@
{ {
"logger": "Logger",
"logger-settings": "Logger Settings", "logger-settings": "Logger Settings",
"description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.",
"explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.",

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

@ -1,10 +1,12 @@
{ {
"rewards": "Rewards", "rewards": "Rewards",
"add-reward": "Add reward",
"condition-if-users": "If User's", "condition-if-users": "If User's",
"condition-is": "Is:", "condition-is": "Is:",
"condition-then": "Then:", "condition-then": "Then:",
"max-claims": "Amount of times reward is claimable", "max-claims": "Amount of times reward is claimable",
"zero-infinite": "Enter 0 for infinite", "zero-infinite": "Enter 0 for infinite",
"select-reward": "Select reward",
"delete": "Delete", "delete": "Delete",
"enable": "Enable", "enable": "Enable",
"disable": "Disable", "disable": "Disable",

@ -1,4 +1,5 @@
{ {
"widgets": "Widgets",
"available": "Available Widgets", "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.", "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 widget essentials plugin in the <a href=\"%1\">plugins</a> control panel.",

@ -1,10 +1,11 @@
{ {
"manage-admins-and-mods": "Manage Admins & Mods",
"administrators": "Administrators", "administrators": "Administrators",
"global-moderators": "Global Moderators", "global-moderators": "Global Moderators",
"moderators": "Moderators", "moderators": "Moderators",
"no-global-moderators": "No Global Moderators", "no-global-moderators": "No Global Moderators",
"no-sub-categories": "No subcategories", "no-sub-categories": "No subcategories",
"subcategories": "%1 subcategories", "view-children": "View children (%1)",
"no-moderators": "No Moderators", "no-moderators": "No Moderators",
"add-administrator": "Add Administrator", "add-administrator": "Add Administrator",
"add-global-moderator": "Add Global Moderator", "add-global-moderator": "Add Global Moderator",

@ -1,7 +1,11 @@
{ {
"manage-categories": "Manage Categories",
"add-category": "Add category",
"jump-to": "Jump to...",
"settings": "Category Settings", "settings": "Category Settings",
"edit-category": "Edit Category",
"privileges": "Privileges", "privileges": "Privileges",
"back-to-categories": "Back to categories",
"name": "Category Name", "name": "Category Name",
"description": "Category Description", "description": "Category Description",
"bg-color": "Background Colour", "bg-color": "Background Colour",
@ -15,8 +19,11 @@
"post-queue": "Post queue", "post-queue": "Post queue",
"tag-whitelist": "Tag Whitelist", "tag-whitelist": "Tag Whitelist",
"upload-image": "Upload Image", "upload-image": "Upload Image",
"upload": "Upload",
"select-icon": "Select Icon",
"delete-image": "Remove", "delete-image": "Remove",
"category-image": "Category Image", "category-image": "Category Image",
"image-and-icon": "Image & Icon",
"parent-category": "Parent Category", "parent-category": "Parent Category",
"optional-parent-category": "(Optional) Parent Category", "optional-parent-category": "(Optional) Parent Category",
"top-level": "Top Level", "top-level": "Top Level",
@ -31,6 +38,7 @@
"disable": "Disable", "disable": "Disable",
"edit": "Edit", "edit": "Edit",
"analytics": "Analytics", "analytics": "Analytics",
"view-category": "View category", "view-category": "View category",
"set-order": "Set order", "set-order": "Set order",
"set-order-help": "Setting the order of the category will move this category to that order and update the order of other categories as necessary. Minimum order is 1 which puts the category at the top.", "set-order-help": "Setting the order of the category will move this category to that order and update the order of other categories as necessary. Minimum order is 1 which puts the category at the top.",

@ -1,4 +1,10 @@
{ {
"manage-groups": "Manage Groups",
"add-group": "Add group",
"edit-group": "Edit Group",
"back-to-groups": "Back to groups",
"view-group": "View group",
"icon-and-title": "Icon & Title",
"name": "Group Name", "name": "Group Name",
"badge": "Badge", "badge": "Badge",
"properties": "Properties", "properties": "Properties",
@ -10,7 +16,7 @@
"edit": "Edit", "edit": "Edit",
"delete": "Delete", "delete": "Delete",
"privileges": "Privileges", "privileges": "Privileges",
"download-csv": "CSV", "members-csv": "Members (CSV)",
"search-placeholder": "Search", "search-placeholder": "Search",
"create": "Create Group", "create": "Create Group",
"description-placeholder": "A short description about your group", "description-placeholder": "A short description about your group",

@ -1,4 +1,6 @@
{ {
"manage-privileges": "Manage Privileges",
"discard-changes": "Discard changes",
"global": "Global", "global": "Global",
"admin": "Admin", "admin": "Admin",
"group-privileges": "Group Privileges", "group-privileges": "Group Privileges",

@ -1,9 +1,11 @@
{ {
"manage-tags": "Manage Tags",
"none": "Your forum does not have any topics with tags yet.", "none": "Your forum does not have any topics with tags yet.",
"bg-color": "Background Colour", "bg-color": "Background Colour",
"text-color": "Text Colour", "text-color": "Text Colour",
"description": "Select tags by clicking or dragging, use <code>CTRL</code> to select multiple tags.", "description": "Select tags by clicking or dragging, use <code>CTRL</code> to select multiple tags.",
"create": "Create Tag", "create": "Create Tag",
"add-tag": "Add tag",
"modify": "Modify Tags", "modify": "Modify Tags",
"rename": "Rename Tags", "rename": "Rename Tags",
"delete": "Delete Selected Tags", "delete": "Delete Selected Tags",

@ -1,4 +1,5 @@
{ {
"manage-uploads": "Manage Uploads",
"upload-file": "Upload File", "upload-file": "Upload File",
"filename": "Filename", "filename": "Filename",
"usage": "Post Usage", "usage": "Post Usage",

@ -1,4 +1,5 @@
{ {
"manage-users": "Manage Users",
"users": "Users", "users": "Users",
"edit": "Actions", "edit": "Actions",
"make-admin": "Make Admin", "make-admin": "Make Admin",
@ -49,6 +50,10 @@
"users.username": "username", "users.username": "username",
"users.email": "email", "users.email": "email",
"users.no-email": "(no email)", "users.no-email": "(no email)",
"users.validated": "Validated",
"users.not-validated": "Not Validated",
"users.validation-pending": "Validation Pending",
"users.validation-expired": "Validation Expired",
"users.ip": "IP", "users.ip": "IP",
"users.postcount": "postcount", "users.postcount": "postcount",
"users.reputation": "reputation", "users.reputation": "reputation",

@ -72,7 +72,9 @@
"development/info": "Info", "development/info": "Info",
"rebuild-and-restart-forum": "Rebuild & Restart Forum", "rebuild-and-restart-forum": "Rebuild & Restart Forum",
"rebuild-and-restart": "Rebuild & Restart",
"restart-forum": "Restart Forum", "restart-forum": "Restart Forum",
"restart": "Restart",
"logout": "Log out", "logout": "Log out",
"view-forum": "View Forum", "view-forum": "View Forum",

@ -3,17 +3,27 @@
"settings": "Settings", "settings": "Settings",
"lead-text": "From this page you can configure access to the Write API in NodeBB.", "lead-text": "From this page you can configure access to the Write API in NodeBB.",
"intro": "By default, the Write API authenticates users based on their session cookie, but NodeBB also supports Bearer authentication via tokens generated via this page.", "intro": "By default, the Write API authenticates users based on their session cookie, but NodeBB also supports Bearer authentication via tokens generated via this page.",
"warning": "<strong>Be advised</strong> — treat tokens like passwords. If they are leaked, your account should be considered compromised.",
"docs": "Click here to access the full API specification", "docs": "Click here to access the full API specification",
"require-https": "Require API usage via HTTPS only", "require-https": "Require API usage via HTTPS only",
"require-https-caveat": "<strong>Note</strong>: Some installations involving load balancers may proxy their requests to NodeBB using HTTP, in which case this option should remain disabled.", "require-https-caveat": "<strong>Note</strong>: Some installations involving load balancers may proxy their requests to NodeBB using HTTP, in which case this option should remain disabled.",
"uid": "User ID", "uid": "User ID",
"token": "Token",
"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter", "uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
"description": "Description", "description": "Description",
"last-seen-ago": "Last used <span class=\"timeago\" title=\"%1\"></span>.", "last-seen": "Last seen",
"last-seen-on": "Last used on <span class=\"timeago\" title=\"%1\"></span>.", "created": "Created",
"create-token": "Create Token",
"update-token": "Update Token",
"master-token": "Master token",
"last-seen-never": "This key has never been used.", "last-seen-never": "This key has never been used.",
"no-description": "No description specified.", "no-description": "No description specified.",
"token-on-save": "Token will be generated once form is saved" "actions": "Actions",
"edit": "Edit",
"roll": "Roll",
"delete-confirm": "Are you sure you wish to delete this token? It will not be recoverable.",
"roll-confirm": "Are you sure you wish to regenerate this token? The old token will be immediately revoked and will not be recoverable."
} }

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

Loading…
Cancel
Save