Compare commits
10 Commits
protocol-v
...
v1.11.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c02e812967 | ||
|
|
c1042ee471 | ||
|
|
53c13976b6 | ||
|
|
1cdb6af5dc | ||
|
|
b0a44d866b | ||
|
|
77b767331b | ||
|
|
ab5035f4e2 | ||
|
|
2555d72c84 | ||
|
|
213582df8b | ||
|
|
543336070a |
@@ -14,8 +14,6 @@
|
||||
"exports": "always-multiline",
|
||||
"functions": "never"
|
||||
}],
|
||||
"no-return-await": "off",
|
||||
"no-constant-condition": "off",
|
||||
"no-empty": ["error", { "allowEmptyCatch": true }],
|
||||
"no-underscore-dangle": "off",
|
||||
"no-console": "off",
|
||||
@@ -43,7 +41,6 @@
|
||||
}],
|
||||
"no-else-return": [ "error", { "allowElseIf": true } ],
|
||||
"operator-linebreak": [ "error", "after" ],
|
||||
"arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }],
|
||||
|
||||
// ES6
|
||||
"prefer-rest-params": "off",
|
||||
|
||||
2
.github/ISSUE_TEMPLATE.md
vendored
@@ -10,8 +10,6 @@
|
||||
- **NodeBB version:**
|
||||
- **NodeBB git hash:**
|
||||
<!-- (to find your git hash, execute `git rev-parse HEAD` from the main NodeBB directory) -->
|
||||
- **Installed NodeBB Plugins:**
|
||||
<!-- (to find installed plugins run ./nodebb plugins) -->
|
||||
- **Database type:** mongo, redis, or postgres
|
||||
- **Database version:**
|
||||
<!-- `mongod --version`, `redis-server --version`, or `postgres --version` -->
|
||||
|
||||
29
.travis.yml
@@ -4,43 +4,34 @@ services:
|
||||
- postgresql
|
||||
before_install:
|
||||
- cp install/package.json package.json
|
||||
- sudo apt-get update
|
||||
- sudo apt-get --yes remove postgresql\*
|
||||
- sudo apt-get install -y postgresql-12 postgresql-client-12
|
||||
- sudo cp /etc/postgresql/{9.6,12}/main/pg_hba.conf
|
||||
- sudo service postgresql restart 12
|
||||
before_script:
|
||||
- sleep 15 # wait for mongodb to be ready
|
||||
- "mongo mydb_test --eval 'db.createUser({user:\"travis\", pwd: \"test\", roles: []});'"
|
||||
- sh -c "if [ '$DB' = 'mongodb' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"mongo\\\",\\\"mongo:host\\\":\\\"127.0.0.1\\\",\\\"mongo:port\\\":27017,\\\"mongo:username\\\":\\\"\\\",\\\"mongo:password\\\":\\\"\\\",\\\"mongo:database\\\":0,\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":27017,\\\"database\\\":\\\"travis_ci_test\\\"}\"; fi"
|
||||
- sh -c "if [ '$DB' = 'redis' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567/forum\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"redis\\\",\\\"redis:host\\\":\\\"127.0.0.1\\\",\\\"redis:port\\\":6379,\\\"redis:password\\\":\\\"\\\",\\\"redis:database\\\":0,\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":6379,\\\"database\\\":1}\"; fi"
|
||||
- sh -c "if [ '$DB' = 'mongodb' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"mongo\\\",\\\"mongo:host\\\":\\\"127.0.0.1\\\",\\\"mongo:port\\\":27017,\\\"mongo:username\\\":\\\"\\\",\\\"mongo:password\\\":\\\"\\\",\\\"mongo:database\\\":0,\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":27017,\\\"database\\\":0}\"; fi"
|
||||
- sh -c "if [ '$DB' = 'redis' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567/forum\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"redis\\\",\\\"redis:host\\\":\\\"127.0.0.1\\\",\\\"redis:port\\\":6379,\\\"redis:password\\\":\\\"\\\",\\\"redis:database\\\":0,\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":6379,\\\"database\\\":0}\"; fi"
|
||||
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database nodebb;' -U postgres; psql -c 'create database travis_ci_test;' -U postgres; node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"postgres\\\",\\\"postgres:host\\\":\\\"127.0.0.1\\\",\\\"postgres:port\\\":5432,\\\"postgres:password\\\":\\\"\\\",\\\"postgres:database\\\":\\\"nodebb\\\",\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":5432,\\\"username\\\":\\\"postgres\\\",\\\"database\\\":\\\"travis_ci_test\\\"}\"; fi"
|
||||
after_success:
|
||||
- "npm run coveralls"
|
||||
language: node_js
|
||||
sudo: false
|
||||
dist: xenial
|
||||
dist: trusty
|
||||
env:
|
||||
global:
|
||||
- PGUSER=postgres
|
||||
- PGPORT=5432
|
||||
- CXX=g++-4.8
|
||||
jobs:
|
||||
- "DB=mongodb TEST_ENV=production"
|
||||
- "DB=mongodb TEST_ENV=development"
|
||||
- "DB=redis TEST_ENV=production"
|
||||
- "DB=postgres TEST_ENV=production"
|
||||
- CXX=g++-4.8 DB=mongodb TEST_ENV=production
|
||||
- CXX=g++-4.8 DB=mongodb TEST_ENV=development
|
||||
- CXX=g++-4.8 DB=redis TEST_ENV=production
|
||||
- CXX=g++-4.8 DB=postgres TEST_ENV=production
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- mongodb-4.0-xenial
|
||||
- mongodb-3.4-trusty
|
||||
packages:
|
||||
- g++-4.8
|
||||
- mongodb-org-server
|
||||
postgresql: "9.5"
|
||||
node_js:
|
||||
- "12"
|
||||
- "10"
|
||||
- "8"
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
|
||||
50
.tx/config
@@ -2650,56 +2650,6 @@ trans.zh_CN = public/language/zh-CN/admin/manage/users.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/manage/users.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-manage-digest]
|
||||
file_filter = public/language/<lang>/admin/manage/digest.json
|
||||
source_file = public/language/en-GB/admin/manage/digest.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/admin/manage/digest.json
|
||||
trans.bg = public/language/bg/admin/manage/digest.json
|
||||
trans.bn = public/language/bn/admin/manage/digest.json
|
||||
trans.cs = public/language/cs/admin/manage/digest.json
|
||||
trans.da = public/language/da/admin/manage/digest.json
|
||||
trans.de = public/language/de/admin/manage/digest.json
|
||||
trans.el = public/language/el/admin/manage/digest.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/manage/digest.json
|
||||
trans.en_US = public/language/en-US/admin/manage/digest.json
|
||||
trans.es = public/language/es/admin/manage/digest.json
|
||||
trans.et = public/language/et/admin/manage/digest.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/manage/digest.json
|
||||
trans.fi = public/language/fi/admin/manage/digest.json
|
||||
trans.fr = public/language/fr/admin/manage/digest.json
|
||||
trans.gl = public/language/gl/admin/manage/digest.json
|
||||
trans.he = public/language/he/admin/manage/digest.json
|
||||
trans.hr = public/language/hr/admin/manage/digest.json
|
||||
trans.hu = public/language/hu/admin/manage/digest.json
|
||||
trans.id = public/language/id/admin/manage/digest.json
|
||||
trans.it = public/language/it/admin/manage/digest.json
|
||||
trans.ja = public/language/ja/admin/manage/digest.json
|
||||
trans.ko = public/language/ko/admin/manage/digest.json
|
||||
trans.lt = public/language/lt/admin/manage/digest.json
|
||||
trans.lv = public/language/lv/admin/manage/digest.json
|
||||
trans.ms = public/language/ms/admin/manage/digest.json
|
||||
trans.nb = public/language/nb/admin/manage/digest.json
|
||||
trans.nl = public/language/nl/admin/manage/digest.json
|
||||
trans.pl = public/language/pl/admin/manage/digest.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/manage/digest.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/manage/digest.json
|
||||
trans.ro = public/language/ro/admin/manage/digest.json
|
||||
trans.ru = public/language/ru/admin/manage/digest.json
|
||||
trans.rw = public/language/rw/admin/manage/digest.json
|
||||
trans.sc = public/language/sc/admin/manage/digest.json
|
||||
trans.sk = public/language/sk/admin/manage/digest.json
|
||||
trans.sl = public/language/sl/admin/manage/digest.json
|
||||
trans.sr = public/language/sr/admin/manage/digest.json
|
||||
trans.sv = public/language/sv/admin/manage/digest.json
|
||||
trans.th = public/language/th/admin/manage/digest.json
|
||||
trans.tr = public/language/tr/admin/manage/digest.json
|
||||
trans.uk = public/language/uk/admin/manage/digest.json
|
||||
trans.vi = public/language/vi/admin/manage/digest.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/manage/digest.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/manage/digest.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-settings-advanced]
|
||||
file_filter = public/language/<lang>/admin/settings/advanced.json
|
||||
source_file = public/language/en-GB/admin/settings/advanced.json
|
||||
|
||||
1351
CHANGELOG.md
13
Dockerfile
@@ -1,23 +1,20 @@
|
||||
FROM node:lts
|
||||
# The base image is the latest 8.x node (LTS)
|
||||
FROM node:8.14.0@sha256:dd2381fe1f68df03a058094097886cd96b24a47724ff5a588b90921f13e875b7
|
||||
|
||||
RUN mkdir -p /usr/src/app
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
ARG NODE_ENV
|
||||
ENV NODE_ENV $NODE_ENV
|
||||
|
||||
COPY install/package.json /usr/src/app/package.json
|
||||
|
||||
RUN npm install --only=prod && \
|
||||
npm cache clean --force
|
||||
|
||||
RUN npm install && npm cache clean --force
|
||||
COPY . /usr/src/app
|
||||
|
||||
ENV NODE_ENV=production \
|
||||
daemon=false \
|
||||
silent=false
|
||||
|
||||
EXPOSE 4567
|
||||
|
||||
CMD ./nodebb start
|
||||
|
||||
# the default port for NodeBB is exposed outside the container
|
||||
EXPOSE 4567
|
||||
218
Gruntfile.js
@@ -1,7 +1,5 @@
|
||||
'use strict';
|
||||
|
||||
|
||||
var async = require('async');
|
||||
var fork = require('child_process').fork;
|
||||
var env = process.env;
|
||||
var worker;
|
||||
@@ -12,26 +10,6 @@ var running = 0;
|
||||
|
||||
env.NODE_ENV = env.NODE_ENV || 'development';
|
||||
|
||||
|
||||
var nconf = require('nconf');
|
||||
nconf.file({
|
||||
file: 'config.json',
|
||||
});
|
||||
|
||||
nconf.defaults({
|
||||
base_dir: __dirname,
|
||||
views_dir: './build/public/templates',
|
||||
});
|
||||
var winston = require('winston');
|
||||
winston.configure({
|
||||
transports: [
|
||||
new winston.transports.Console({
|
||||
handleExceptions: true,
|
||||
}),
|
||||
],
|
||||
});
|
||||
var db = require('./src/database');
|
||||
|
||||
module.exports = function (grunt) {
|
||||
var args = [];
|
||||
var initArgs = ['--build'];
|
||||
@@ -92,116 +70,80 @@ module.exports = function (grunt) {
|
||||
}
|
||||
|
||||
grunt.initConfig({
|
||||
watch: {},
|
||||
watch: {
|
||||
lessUpdated_Client: {
|
||||
files: [
|
||||
'public/less/*.less',
|
||||
'!public/less/admin/**/*.less',
|
||||
'node_modules/nodebb-*/**/*.less',
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
lessUpdated_Admin: {
|
||||
files: [
|
||||
'public/less/admin/**/*.less',
|
||||
'node_modules/nodebb-*/**/*.less',
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
clientUpdated: {
|
||||
files: [
|
||||
'public/src/**/*.js',
|
||||
'node_modules/nodebb-*/**/*.js',
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'node_modules/benchpressjs/build/benchpress.js',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
serverUpdated: {
|
||||
files: ['*.js', 'install/*.js', 'src/**/*.js'],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
templatesUpdated: {
|
||||
files: [
|
||||
'src/views/**/*.tpl',
|
||||
'node_modules/nodebb-*/**/*.tpl',
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
langUpdated: {
|
||||
files: [
|
||||
'public/language/en-GB/*.json',
|
||||
'public/language/en-GB/**/*.json',
|
||||
'node_modules/nodebb-*/**/*.json',
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
'!node_modules/nodebb-*/plugin.json',
|
||||
'!node_modules/nodebb-*/package.json',
|
||||
'!node_modules/nodebb-*/theme.json',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||
|
||||
grunt.registerTask('default', ['watch']);
|
||||
|
||||
grunt.registerTask('init', function () {
|
||||
var done = this.async();
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
db.init(next);
|
||||
},
|
||||
function (next) {
|
||||
db.getSortedSetRange('plugins:active', 0, -1, next);
|
||||
},
|
||||
function (plugins, next) {
|
||||
addBaseThemes(plugins, next);
|
||||
},
|
||||
function (plugins, next) {
|
||||
if (!plugins.includes('nodebb-plugin-composer-default')) {
|
||||
plugins.push('nodebb-plugin-composer-default');
|
||||
}
|
||||
|
||||
if (process.argv.includes('--core')) {
|
||||
plugins = [];
|
||||
}
|
||||
|
||||
const lessUpdated_Client = plugins.map(p => 'node_modules/' + p + '/**/*.less');
|
||||
const lessUpdated_Admin = plugins.map(p => 'node_modules/' + p + '/**/*.less');
|
||||
const clientUpdated = plugins.map(p => 'node_modules/' + p + '/**/*.js');
|
||||
const templatesUpdated = plugins.map(p => 'node_modules/' + p + '/**/*.tpl');
|
||||
const langUpdated = plugins.map(p => 'node_modules/' + p + '/**/*.json');
|
||||
|
||||
grunt.config(['watch'], {
|
||||
lessUpdated_Client: {
|
||||
files: [
|
||||
'public/less/*.less',
|
||||
'!public/less/admin/**/*.less',
|
||||
...lessUpdated_Client,
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
lessUpdated_Admin: {
|
||||
files: [
|
||||
'public/less/admin/**/*.less',
|
||||
...lessUpdated_Admin,
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
clientUpdated: {
|
||||
files: [
|
||||
'public/src/**/*.js',
|
||||
...clientUpdated,
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'node_modules/benchpressjs/build/benchpress.js',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
serverUpdated: {
|
||||
files: ['*.js', 'install/*.js', 'src/**/*.js', '!src/upgrades/**'],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
templatesUpdated: {
|
||||
files: [
|
||||
'src/views/**/*.tpl',
|
||||
...templatesUpdated,
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
langUpdated: {
|
||||
files: [
|
||||
'public/language/en-GB/*.json',
|
||||
'public/language/en-GB/**/*.json',
|
||||
...langUpdated,
|
||||
'!node_modules/nodebb-*/node_modules/**',
|
||||
'!node_modules/nodebb-*/.git/**',
|
||||
'!node_modules/nodebb-*/plugin.json',
|
||||
'!node_modules/nodebb-*/package.json',
|
||||
'!node_modules/nodebb-*/theme.json',
|
||||
],
|
||||
options: {
|
||||
interval: 1000,
|
||||
},
|
||||
},
|
||||
});
|
||||
next();
|
||||
},
|
||||
], done);
|
||||
});
|
||||
|
||||
grunt.task.run('init');
|
||||
|
||||
env.NODE_ENV = 'development';
|
||||
|
||||
if (grunt.option('skip')) {
|
||||
@@ -222,25 +164,3 @@ module.exports = function (grunt) {
|
||||
|
||||
grunt.event.on('watch', update);
|
||||
};
|
||||
|
||||
function addBaseThemes(plugins, callback) {
|
||||
const themeId = plugins.find(p => p.startsWith('nodebb-theme-'));
|
||||
if (!themeId) {
|
||||
return setImmediate(callback, null, plugins);
|
||||
}
|
||||
function getBaseRecursive(themeId) {
|
||||
try {
|
||||
const baseTheme = require(themeId + '/theme').baseTheme;
|
||||
|
||||
if (baseTheme) {
|
||||
plugins.push(baseTheme);
|
||||
getBaseRecursive(baseTheme);
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
|
||||
getBaseRecursive(themeId);
|
||||
callback(null, plugins);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
|
||||
|
||||
NodeBB requires the following software to be installed:
|
||||
|
||||
* A version of Node.js at least 8 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
|
||||
* A version of Node.js at least 6 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
|
||||
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
|
||||
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
|
||||
|
||||
|
||||
30
app.js
@@ -21,24 +21,25 @@
|
||||
|
||||
require('./require-main');
|
||||
|
||||
const nconf = require('nconf');
|
||||
var nconf = require('nconf');
|
||||
nconf.argv().env({
|
||||
separator: '__',
|
||||
});
|
||||
|
||||
const winston = require('winston');
|
||||
const path = require('path');
|
||||
var async = require('async');
|
||||
var winston = require('winston');
|
||||
var path = require('path');
|
||||
|
||||
const file = require('./src/file');
|
||||
var file = require('./src/file');
|
||||
|
||||
global.env = process.env.NODE_ENV || 'production';
|
||||
|
||||
// Alternate configuration file support
|
||||
const configFile = path.resolve(__dirname, nconf.any(['config', 'CONFIG']) || 'config.json');
|
||||
var configFile = path.resolve(__dirname, nconf.any(['config', 'CONFIG']) || 'config.json');
|
||||
|
||||
const configExists = file.existsSync(configFile) || (nconf.get('url') && nconf.get('secret') && nconf.get('database'));
|
||||
var configExists = file.existsSync(configFile) || (nconf.get('url') && nconf.get('secret') && nconf.get('database'));
|
||||
|
||||
const prestart = require('./src/prestart');
|
||||
var prestart = require('./src/prestart');
|
||||
prestart.loadConfig(configFile);
|
||||
prestart.setupWinston();
|
||||
prestart.versionCheck();
|
||||
@@ -59,19 +60,30 @@ if (nconf.get('setup') || nconf.get('install')) {
|
||||
} else if (nconf.get('upgrade')) {
|
||||
require('./src/cli/upgrade').upgrade(true);
|
||||
} else if (nconf.get('reset')) {
|
||||
require('./src/cli/reset').reset({
|
||||
var options = {
|
||||
theme: nconf.get('t'),
|
||||
plugin: nconf.get('p'),
|
||||
widgets: nconf.get('w'),
|
||||
settings: nconf.get('s'),
|
||||
all: nconf.get('a'),
|
||||
};
|
||||
|
||||
async.series([
|
||||
async.apply(require('./src/cli/reset').reset, options),
|
||||
require('./src/meta/build').buildAll,
|
||||
], function (err) {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
|
||||
process.exit(0);
|
||||
});
|
||||
} else if (nconf.get('activate')) {
|
||||
require('./src/cli/manage').activate(nconf.get('activate'));
|
||||
} else if (nconf.get('plugins')) {
|
||||
require('./src/cli/manage').listPlugins();
|
||||
} else if (nconf.get('build')) {
|
||||
require('./src/cli/manage').build(nconf.get('build'));
|
||||
require('./src/meta/build').build(nconf.get('build'));
|
||||
} else if (nconf.get('events')) {
|
||||
require('./src/cli/manage').listEvents();
|
||||
} else {
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
version: '3.5'
|
||||
|
||||
services:
|
||||
node:
|
||||
build: .
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db
|
||||
expose:
|
||||
- 4567 # use a reverse proxy like Traefik
|
||||
|
||||
db:
|
||||
image: mongo:bionic
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- 27017
|
||||
environment:
|
||||
MONGO_INITDB_ROOT_USERNAME: root
|
||||
MONGO_INITDB_ROOT_PASSWORD: root
|
||||
volumes:
|
||||
- mongo:/data/db
|
||||
|
||||
volumes:
|
||||
mongo:
|
||||
@@ -11,7 +11,6 @@
|
||||
"initialPostDelay": 10,
|
||||
"newbiePostDelay": 120,
|
||||
"postEditDuration": 0,
|
||||
"newbiePostEditDuration": 3600,
|
||||
"postDeleteDuration": 0,
|
||||
"enablePostHistory": 1,
|
||||
"postCacheSize": 10485760,
|
||||
@@ -20,8 +19,6 @@
|
||||
"chatDeleteDuration": 0,
|
||||
"chatMessageDelay": 200,
|
||||
"newbiePostDelayThreshold": 3,
|
||||
"postQueueReputationThreshold": 0,
|
||||
"groupsExemptFromPostQueue": ["administrators", "Global Moderators"],
|
||||
"minimumPostLength": 8,
|
||||
"maximumPostLength": 32767,
|
||||
"minimumTagsPerTopic": 0,
|
||||
@@ -30,15 +27,12 @@
|
||||
"maximumTagLength": 15,
|
||||
"allowTopicsThumbnail": 0,
|
||||
"registrationType": "normal",
|
||||
"registrationApprovalType": "normal",
|
||||
"allowAccountDelete": 1,
|
||||
"allowFileUploads": 0,
|
||||
"privateUploads": 0,
|
||||
"allowedFileExtensions": "png,jpg,bmp",
|
||||
"allowUserHomePage": 1,
|
||||
"allowMultipleBadges": 0,
|
||||
"maximumFileSize": 2048,
|
||||
"stripEXIFData": 1,
|
||||
"resizeImageWidthThreshold": 2000,
|
||||
"resizeImageWidth": 760,
|
||||
"rejectImageWidth": 5000,
|
||||
@@ -65,6 +59,7 @@
|
||||
"allowProfileImageUploads": 1,
|
||||
"teaserPost": "last-reply",
|
||||
"allowPrivateGroups": 1,
|
||||
"allowGroupCreation": 0,
|
||||
"unreadCutoff": 2,
|
||||
"bookmarkThreshold": 5,
|
||||
"autoDetectLang": 1,
|
||||
@@ -96,18 +91,14 @@
|
||||
"postsPerPage": 20,
|
||||
"userSearchResultsPerPage": 50,
|
||||
"maximumGroupNameLength": 255,
|
||||
"maximumGroupTitleLength": 40,
|
||||
"preventTopicDeleteAfterReplies": 0,
|
||||
"feeds:disableSitemap": 0,
|
||||
"sitemapTopics": 500,
|
||||
"maintenanceMode": 0,
|
||||
"maintenanceModeStatus": 503,
|
||||
"votesArePublic": 0,
|
||||
"maximumInvites": 0,
|
||||
"username:disableEdit": 0,
|
||||
"email:disableEdit": 0,
|
||||
"email:sendmail:rateLimit": 2,
|
||||
"email:sendmail:rateDelta": 1000,
|
||||
"hideFullname": 0,
|
||||
"allowGuestHandles": 0,
|
||||
"disableRecentCategoryFilter": 0,
|
||||
@@ -125,8 +116,5 @@
|
||||
"eventLoopLagThreshold": 100,
|
||||
"eventLoopInterval": 500,
|
||||
"onlineCutoff": 30,
|
||||
"timeagoCutoff": 30,
|
||||
"necroThreshold": 7,
|
||||
"categoryWatchState": "watching",
|
||||
"submitPluginUsage": 1
|
||||
"timeagoCutoff": 30
|
||||
}
|
||||
@@ -83,7 +83,6 @@ function saveDatabaseConfig(config, databaseConfig, callback) {
|
||||
username: databaseConfig['postgres:username'],
|
||||
password: databaseConfig['postgres:password'],
|
||||
database: databaseConfig['postgres:database'],
|
||||
ssl: databaseConfig['postgres:ssl'],
|
||||
};
|
||||
} else {
|
||||
return callback(new Error('unknown database : ' + config.database));
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "nodebb",
|
||||
"license": "GPL-3.0",
|
||||
"description": "NodeBB Forum",
|
||||
"version": "1.13.0",
|
||||
"version": "1.11.1",
|
||||
"homepage": "http://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -31,121 +31,119 @@
|
||||
"dependencies": {
|
||||
"ace-builds": "^1.2.9",
|
||||
"archiver": "^3.0.0",
|
||||
"async": "^3.0.1",
|
||||
"autoprefixer": "^9.4.6",
|
||||
"async": "2.6.1",
|
||||
"autoprefixer": "^9.0.0",
|
||||
"bcryptjs": "2.4.3",
|
||||
"benchpressjs": "^2.0.0",
|
||||
"benchpressjs": "^1.2.5",
|
||||
"body-parser": "^1.18.2",
|
||||
"bootstrap": "^3.4.0",
|
||||
"bootswatch": "git://github.com/thomaspark/bootswatch.git#c41a8f066feb8950c6f9c6bcf5a3c37d1085404e",
|
||||
"bootstrap": "^3.3.7",
|
||||
"bootswatch": "^3",
|
||||
"chart.js": "^2.7.1",
|
||||
"cli-graph": "^3.2.2",
|
||||
"clipboard": "^2.0.1",
|
||||
"colors": "^1.1.2",
|
||||
"commander": "^3.0.0",
|
||||
"commander": "^2.12.2",
|
||||
"compression": "^1.7.1",
|
||||
"connect-ensure-login": "^0.1.1",
|
||||
"connect-flash": "^0.1.1",
|
||||
"connect-mongo": "3.2.0",
|
||||
"connect-mongo": "2.0.3",
|
||||
"connect-multiparty": "^2.1.0",
|
||||
"connect-pg-simple": "^6.0.0",
|
||||
"connect-redis": "4.0.3",
|
||||
"connect-pg-simple": "^5.0.0",
|
||||
"connect-redis": "3.4.0",
|
||||
"continuation-local-storage": "^3.2.1",
|
||||
"cookie-parser": "^1.4.3",
|
||||
"cron": "^1.3.0",
|
||||
"cropperjs": "^1.2.2",
|
||||
"csurf": "^1.9.0",
|
||||
"daemon": "^1.1.0",
|
||||
"diff": "^4.0.1",
|
||||
"diff": "^3.4.0",
|
||||
"express": "^4.16.2",
|
||||
"express-session": "^1.15.6",
|
||||
"express-useragent": "^1.0.12",
|
||||
"graceful-fs": "^4.1.11",
|
||||
"helmet": "^3.11.0",
|
||||
"html-to-text": "^5.0.0",
|
||||
"html-to-text": "^4.0.0",
|
||||
"ipaddr.js": "^1.5.4",
|
||||
"jquery": "^3.2.1",
|
||||
"jsesc": "2.5.2",
|
||||
"json-2-csv": "^3.0.0",
|
||||
"jsonwebtoken": "^8.4.0",
|
||||
"less": "^3.10.3",
|
||||
"lodash": "^4.17.15",
|
||||
"json-2-csv": "^2.1.2",
|
||||
"less": "^2.7.3",
|
||||
"lodash": "^4.17.10",
|
||||
"logrotate-stream": "^0.2.5",
|
||||
"lru-cache": "5.1.1",
|
||||
"lru-cache": "4.1.5",
|
||||
"material-design-lite": "^1.3.0",
|
||||
"mime": "^2.2.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mongodb": "3.4.0",
|
||||
"morgan": "^1.9.1",
|
||||
"mongodb": "3.1.10",
|
||||
"morgan": "^1.9.0",
|
||||
"mousetrap": "^1.6.1",
|
||||
"mubsub-nbb": "^1.5.1",
|
||||
"mubsub-nbb": "^1.5.0",
|
||||
"nconf": "^0.10.0",
|
||||
"nodebb-plugin-composer-default": "6.3.20",
|
||||
"nodebb-plugin-dbsearch": "4.0.7",
|
||||
"nodebb-plugin-emoji": "^3.0.0",
|
||||
"nodebb-plugin-composer-default": "6.1.17",
|
||||
"nodebb-plugin-dbsearch": "3.0.3",
|
||||
"nodebb-plugin-emoji": "^2.2.5",
|
||||
"nodebb-plugin-emoji-android": "2.0.0",
|
||||
"nodebb-plugin-markdown": "8.11.0",
|
||||
"nodebb-plugin-mentions": "2.7.3",
|
||||
"nodebb-plugin-markdown": "8.8.6",
|
||||
"nodebb-plugin-mentions": "2.3.0",
|
||||
"nodebb-plugin-soundpack-default": "1.0.0",
|
||||
"nodebb-plugin-spam-be-gone": "0.6.7",
|
||||
"nodebb-rewards-essentials": "0.1.2",
|
||||
"nodebb-theme-lavender": "5.0.11",
|
||||
"nodebb-theme-persona": "10.1.30",
|
||||
"nodebb-theme-slick": "1.2.28",
|
||||
"nodebb-theme-vanilla": "11.1.12",
|
||||
"nodebb-widget-essentials": "4.0.17",
|
||||
"nodemailer": "^6.0.0",
|
||||
"nodebb-plugin-spam-be-gone": "0.5.5",
|
||||
"nodebb-rewards-essentials": "0.0.13",
|
||||
"nodebb-theme-lavender": "5.0.8",
|
||||
"nodebb-theme-persona": "9.1.4",
|
||||
"nodebb-theme-slick": "1.2.18",
|
||||
"nodebb-theme-vanilla": "10.1.12",
|
||||
"nodebb-widget-essentials": "4.0.11",
|
||||
"nodemailer": "^4.6.5",
|
||||
"passport": "^0.4.0",
|
||||
"passport-local": "1.0.0",
|
||||
"pg": "^7.4.0",
|
||||
"pg-cursor": "^2.0.0",
|
||||
"postcss": "7.0.21",
|
||||
"pg-cursor": "^1.3.0",
|
||||
"postcss": "7.0.6",
|
||||
"postcss-clean": "1.1.0",
|
||||
"promise-polyfill": "^8.0.0",
|
||||
"prompt": "^1.0.0",
|
||||
"redis": "2.8.0",
|
||||
"request": "2.88.0",
|
||||
"rimraf": "3.0.0",
|
||||
"rimraf": "2.6.2",
|
||||
"rss": "^1.2.2",
|
||||
"sanitize-html": "^1.16.3",
|
||||
"semver": "^7.0.0",
|
||||
"semver": "^5.4.1",
|
||||
"serve-favicon": "^2.4.5",
|
||||
"sharp": "0.23.4",
|
||||
"sitemap": "^5.0.0",
|
||||
"socket.io": "2.3.0",
|
||||
"sharp": "0.21.0",
|
||||
"sitemap": "^2.0.0",
|
||||
"socket.io": "2.2.0",
|
||||
"socket.io-adapter-cluster": "^1.0.1",
|
||||
"socket.io-adapter-mongo": "^2.0.4",
|
||||
"socket.io-adapter-postgres": "^1.2.1",
|
||||
"socket.io-client": "2.3.0",
|
||||
"socket.io-adapter-mongo": "^2.0.1",
|
||||
"socket.io-adapter-postgres": "^1.0.1",
|
||||
"socket.io-client": "2.2.0",
|
||||
"socket.io-redis": "5.2.0",
|
||||
"socketio-wildcard": "2.0.0",
|
||||
"spdx-license-list": "^6.0.0",
|
||||
"spider-detector": "2.0.0",
|
||||
"textcomplete": "^0.17.1",
|
||||
"textcomplete.contenteditable": "^0.1.1",
|
||||
"spdx-license-list": "^5.0.0",
|
||||
"spider-detector": "1.0.18",
|
||||
"toobusy-js": "^0.5.1",
|
||||
"uglify-es": "^3.3.9",
|
||||
"validator": "12.1.0",
|
||||
"winston": "3.2.1",
|
||||
"validator": "10.9.0",
|
||||
"winston": "3.1.0",
|
||||
"xml": "^1.0.1",
|
||||
"xregexp": "^4.1.1",
|
||||
"zxcvbn": "^4.4.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "8.2.0",
|
||||
"@commitlint/config-angular": "8.2.0",
|
||||
"coveralls": "3.0.9",
|
||||
"eslint": "6.7.0",
|
||||
"eslint-config-airbnb-base": "14.0.0",
|
||||
"eslint-plugin-import": "2.18.2",
|
||||
"grunt": "1.0.4",
|
||||
"@commitlint/cli": "7.2.1",
|
||||
"@commitlint/config-angular": "7.1.2",
|
||||
"coveralls": "3.0.2",
|
||||
"eslint": "5.9.0",
|
||||
"eslint-config-airbnb-base": "13.1.0",
|
||||
"eslint-plugin-import": "2.14.0",
|
||||
"grunt": "1.0.3",
|
||||
"grunt-contrib-watch": "1.1.0",
|
||||
"husky": "3.1.0",
|
||||
"jsdom": "15.2.1",
|
||||
"lint-staged": "9.4.2",
|
||||
"mocha": "6.2.2",
|
||||
"husky": "1.2.1",
|
||||
"jsdom": "13.0.0",
|
||||
"lint-staged": "8.1.0",
|
||||
"mocha": "5.2.0",
|
||||
"mocha-lcov-reporter": "1.3.0",
|
||||
"nyc": "14.1.1",
|
||||
"smtp-server": "3.5.0"
|
||||
"nyc": "13.1.0",
|
||||
"smtp-server": "3.4.7"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/NodeBB/NodeBB/issues"
|
||||
|
||||
@@ -50,7 +50,6 @@ var scripts = [
|
||||
'public/vendor/xregexp/unicode/unicode-base.js',
|
||||
'public/src/utils.js',
|
||||
'public/src/installer/install.js',
|
||||
'node_modules/zxcvbn/dist/zxcvbn.js',
|
||||
];
|
||||
|
||||
var installing = false;
|
||||
@@ -132,7 +131,6 @@ function welcome(req, res) {
|
||||
success: success,
|
||||
values: req.body,
|
||||
minimumPasswordLength: defaults.minimumPasswordLength,
|
||||
minimumPasswordStrength: defaults.minimumPasswordStrength,
|
||||
installing: installing,
|
||||
});
|
||||
}
|
||||
@@ -183,7 +181,7 @@ function install(req, res) {
|
||||
function launch(req, res) {
|
||||
res.json({});
|
||||
server.close();
|
||||
req.setTimeout(0);
|
||||
|
||||
var child;
|
||||
|
||||
if (!nconf.get('launchCmd')) {
|
||||
|
||||
BIN
public/images/emails/banneduser.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
public/images/emails/digestheader.jpg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/images/emails/emailconfirm.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
public/images/emails/invitation.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
public/images/emails/newtopic.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
public/images/emails/nodebb.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
public/images/emails/notification.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
public/images/emails/password.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
public/images/emails/triangularbackground.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
public/images/emails/unreadpost.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"alert.confirm-rebuild-and-restart": "هل أنت متأكد إنك تريد إعادة بناء وتشغيل الـ NodeBB؟",
|
||||
"alert.confirm-rebuild-and-restart": "Are you sure you wish to rebuild and restart NodeBB?",
|
||||
"alert.confirm-restart": "هل تريد بالتأكيد إعادة تشغيل NodeBB؟",
|
||||
|
||||
"acp-title": "لوحة تحكم إدارة NodeBB | %1",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"posts-in-cache": "المشاركات المخزنة مؤقتاً",
|
||||
"average-post-size": "متوسط حجم المشاركة",
|
||||
"length-to-max": "الطول / أقصى حد",
|
||||
"percent-full": "1% كاملة",
|
||||
"percent-full": "%1% Full",
|
||||
"post-cache-size": "حجم التخزين المؤقت للمشاركات",
|
||||
"items-in-cache": "العناصر في التخزين المؤقت",
|
||||
"control-panel": "لوحة التحكم",
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
"mongo.bytes-out": "Bytes Out",
|
||||
"mongo.num-requests": "Number of Requests",
|
||||
"mongo.raw-info": "MongoDB Raw Info",
|
||||
"mongo.unauthorized": "NodeBB was unable to query the MongoDB database for relevant statistics. Please ensure that the user in use by NodeBB contains the "clusterMonitor" role for the "admin" database.",
|
||||
|
||||
"redis": "Redis",
|
||||
"redis.version": "Redis Version",
|
||||
|
||||
@@ -2,10 +2,5 @@
|
||||
"events": "أحداث",
|
||||
"no-events": "لا توجد أحداث",
|
||||
"control-panel": "لوحة تحكم الأحداث",
|
||||
"filters": "Filters",
|
||||
"filters-apply": "Apply Filters",
|
||||
"filter-type": "Event Type",
|
||||
"filter-start": "Start Date",
|
||||
"filter-end": "End Date",
|
||||
"filter-perPage": "Per Page"
|
||||
"delete-events": "حذف الأحداث"
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
"custom-js.enable": "تفعيل Javascript المخصصة",
|
||||
|
||||
"custom-header": "ترويسة مخصصة",
|
||||
"custom-header.description": "Enter custom HTML here (ex. Meta Tags, etc.), which will be appended to the <code><head></code> section of your forum's markup. Script tags are allowed, but are discouraged, as the <a href=\"#custom-js\" data-toggle=\"tab\">Custom Javascript</a> tab is available.",
|
||||
"custom-header.description": "أدخل HTML الخاصة بك هنا (مثل العلامات الوصفية، وما إلى ذلك)، والتي سيتم إلحاقها الى<code><head></code> في تصميم المنتدى. يسمح باستخدام علامات النص البرمجي، ولكن سيتم تعطيلها؛ لتوفر تبويبة\n<a href=\"#custom-header\" data-toggle=\"tab\">Javascript المخصصة</a>",
|
||||
"custom-header.enable": "تفعيل الترويسة المخصصة",
|
||||
|
||||
"custom-css.livereload": "تفعيل إعادة التحميل المباشرة",
|
||||
|
||||
@@ -7,8 +7,7 @@
|
||||
"online": "online",
|
||||
"git": "git",
|
||||
"memory": "memory",
|
||||
"load": "system load",
|
||||
"cpu-usage": "cpu usage",
|
||||
"load": "load",
|
||||
"uptime": "uptime",
|
||||
|
||||
"registered": "Registered",
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
"plugin-search": "البحث عن الإضافات",
|
||||
"plugin-search-placeholder": "جاري البحث عن الإضافات...",
|
||||
"submit-anonymous-usage": "Submit anonymous plugin usage data.",
|
||||
"reorder-plugins": "إعادة ترتيب الإضافات",
|
||||
"order-active": "ترتيب الإضافات المفعلة",
|
||||
"dev-interested": "هل انته مهتم ببرمجة إضافات لـNodeBB؟",
|
||||
@@ -30,8 +29,6 @@
|
||||
"plugin-item.more-info": "لمزيد من المعلومات:",
|
||||
"plugin-item.unknown": "غير معروف",
|
||||
"plugin-item.unknown-explanation": "تعذر تحديد حالة هذه الإضافة، ربما بسبب خطأ في الإعدادات.",
|
||||
"plugin-item.compatible": "This plugin works on NodeBB %1",
|
||||
"plugin-item.not-compatible": "This plugin has no compatibility data, make sure it works before installing on your production environment.",
|
||||
|
||||
"alert.enabled": "الإضافة مفعلة",
|
||||
"alert.disabled": "الإضافة معطلة",
|
||||
|
||||
@@ -18,13 +18,5 @@
|
||||
"alert.update-success": "Successfully updated widgets",
|
||||
"alert.clone-success": "Successfully cloned widgets",
|
||||
|
||||
"error.select-clone": "Please select a page to clone from",
|
||||
|
||||
"title": "Title",
|
||||
"title.placeholder": "Title (only shown on some containers)",
|
||||
"container": "Container",
|
||||
"container.placeholder": "Drag and drop a container or enter HTML here.",
|
||||
"show-to-groups": "Show to groups",
|
||||
"hide-from-groups": "Hide from groups",
|
||||
"hide-on-mobile": "Hide on mobile"
|
||||
"error.select-clone": "Please select a page to clone from"
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
"forum-traffic": "Forum Traffic",
|
||||
"page-views": "مشاهدات الصفحات",
|
||||
"unique-visitors": "زائرين فريدين",
|
||||
"new-users": "New Users",
|
||||
"users": "أعضاء",
|
||||
"posts": "مشاركات",
|
||||
"topics": "مواضيع",
|
||||
"page-views-seven": "آخر 7 ايام",
|
||||
@@ -14,12 +14,9 @@
|
||||
"page-views-custom-help": "أدخل نطاقا زمنيا لمرات مشاهدة الصفحات التي ترغب في عرضها. إذا لم يظهر منتقي التاريخ، فإن التنسيق المقبول هو <code>YYYY-MM-DD</code>",
|
||||
"page-views-custom-error": "الرجاء إدخال نطاق تاريخ صالح بالتنسيق <code>YYYY-MM-DD</code>",
|
||||
|
||||
"stats.yesterday": "Yesterday",
|
||||
"stats.today": "Today",
|
||||
"stats.last-week": "Last Week",
|
||||
"stats.this-week": "This Week",
|
||||
"stats.last-month": "Last Month",
|
||||
"stats.this-month": "This Month",
|
||||
"stats.day": "يوم",
|
||||
"stats.week": "إسبوع",
|
||||
"stats.month": "شهر",
|
||||
"stats.all": "كل الوقت",
|
||||
|
||||
"updates": "تحديثات",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"tooltip": "Tooltip:",
|
||||
"text": "Text:",
|
||||
"text-class": "Text Class: <small>optional</small>",
|
||||
"class": "Class: <small>optional</small>",
|
||||
"id": "ID: <small>optional</small>",
|
||||
|
||||
"properties": "Properties:",
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
"parent-category": "Parent Category",
|
||||
"optional-parent-category": "(Optional) Parent Category",
|
||||
"parent-category-none": "(None)",
|
||||
"copy-parent": "Copy Parent",
|
||||
"copy-settings": "Copy Settings From",
|
||||
"optional-clone-settings": "(Optional) Clone Settings From Category",
|
||||
"clone-children": "Clone Children Categories And Settings",
|
||||
@@ -30,13 +29,12 @@
|
||||
"select-category": "Select Category",
|
||||
"set-parent-category": "Set Parent Category",
|
||||
|
||||
"privileges.description": "You can configure the access control privileges for portions of the site in this section. Privileges can be granted on a per-user or a per-group basis. Select the domain of effect from the dropdown below.",
|
||||
"privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. Select the domain of effect from the dropdown below.",
|
||||
"privileges.category-selector": "Configuring privileges for ",
|
||||
"privileges.warning": "<strong>Note</strong>: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.",
|
||||
"privileges.section-viewing": "Viewing Privileges",
|
||||
"privileges.section-posting": "Posting Privileges",
|
||||
"privileges.section-moderation": "Moderation Privileges",
|
||||
"privileges.section-other": "Other",
|
||||
"privileges.section-user": "User",
|
||||
"privileges.search-user": "Add User",
|
||||
"privileges.no-users": "No user-specific privileges in this category.",
|
||||
@@ -45,12 +43,7 @@
|
||||
"privileges.search-group": "Add Group",
|
||||
"privileges.copy-to-children": "Copy to Children",
|
||||
"privileges.copy-from-category": "Copy from Category",
|
||||
"privileges.copy-privileges-to-all-categories": "Copy to All Categories",
|
||||
"privileges.copy-group-privileges-to-children": "Copy this group's privileges to the children of this category.",
|
||||
"privileges.copy-group-privileges-to-all-categories": "Copy this group's privileges to all categories.",
|
||||
"privileges.copy-group-privileges-from": "Copy this group's privileges from another category.",
|
||||
"privileges.inherit": "If the <code>registered-users</code> group is granted a specific privilege, all other groups receive an <strong>implicit privilege</strong>, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the <code>registered-users</code> user group, and so, privileges for additional groups need not be explicitly granted.",
|
||||
"privileges.copy-success": "Privileges copied!",
|
||||
|
||||
"analytics.back": "Back to Categories List",
|
||||
"analytics.title": "Analytics for \"%1\" category",
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"lead": "A listing of digest delivery stats and times is displayed below.",
|
||||
"disclaimer": "Please be advised that email delivery is not guaranteed, due to the nature of email technology. Many variables factor into whether an email sent to the recipient server is ultimately delivered into the user's inbox, including server reputation, blacklisted IP addresses, and whether DKIM/SPF/DMARC is configured.",
|
||||
"disclaimer-continued": "A successful delivery means the message was sent successfully by NodeBB and acknowledged by the recipient server. It does not mean the email landed in the inbox. For best results, we recommend using a third-party email delivery service such as <a href=\"https://sendgrid.com/why-sendgrid/\">SendGrid</a>.",
|
||||
|
||||
"user": "User",
|
||||
"subscription": "Subscription Type",
|
||||
"last-delivery": "Last successful delivery",
|
||||
"default": "System default",
|
||||
"default-help": "<em>System default</em> means the user has not explicitly overridden the global forum setting for digests, which is currently: "<strong>%1</strong>"",
|
||||
"resend": "Resend Digest",
|
||||
"resend-all-confirm": "Are you sure you wish to mnually execute this digest run?",
|
||||
"resent-single": "Manual digest resend completed",
|
||||
"resent-day": "Daily digest resent",
|
||||
"resent-week": "Weekly digest resent",
|
||||
"resent-month": "Monthly digest resent",
|
||||
"null": "<em>Never</em>",
|
||||
"manual-run": "Manual digest run:",
|
||||
|
||||
"no-delivery-data": "No delivery data found"
|
||||
}
|
||||
@@ -1,12 +1,8 @@
|
||||
{
|
||||
"name": "اسم المجموعة",
|
||||
"badge": "Badge",
|
||||
"properties": "Properties",
|
||||
"description": "Group Description",
|
||||
"member-count": "Member Count",
|
||||
"system": "System",
|
||||
"hidden": "Hidden",
|
||||
"private": "Private",
|
||||
"system": "System Group",
|
||||
"edit": "Edit",
|
||||
"search-placeholder": "Search",
|
||||
"create": "Create Group",
|
||||
@@ -21,12 +17,10 @@
|
||||
"edit.user-title": "Title of Members",
|
||||
"edit.icon": "Group Icon",
|
||||
"edit.label-color": "Group Label Color",
|
||||
"edit.text-color": "Group Text Color",
|
||||
"edit.show-badge": "Show Badge",
|
||||
"edit.private-details": "If enabled, joining of groups requires approval from a group owner.",
|
||||
"edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.",
|
||||
"edit.disable-join": "Disable join requests",
|
||||
"edit.disable-leave": "Disallow users from leaving the group",
|
||||
"edit.disable-requests": "Disable join requests",
|
||||
"edit.hidden": "Hidden",
|
||||
"edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually",
|
||||
"edit.add-user": "Add User to Group",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"post-queue": "Post Queue",
|
||||
"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings → Post → Post Queue</a> and enable <strong>Post Queue</strong>.",
|
||||
"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings → Post → Posting Restrictions</a> and enable <strong>Post Queue</strong>.",
|
||||
"user": "User",
|
||||
"category": "Category",
|
||||
"title": "Title",
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
{
|
||||
"global": "Global",
|
||||
"global.no-users": "No user-specific global privileges.",
|
||||
"group-privileges": "Group Privileges",
|
||||
"user-privileges": "User Privileges",
|
||||
|
||||
"chat": "Chat",
|
||||
"upload-images": "Upload Images",
|
||||
"upload-files": "Upload Files",
|
||||
@@ -11,12 +10,8 @@
|
||||
"search-content": "Search Content",
|
||||
"search-users": "Search Users",
|
||||
"search-tags": "Search Tags",
|
||||
"view-users": "View Users",
|
||||
"view-tags": "View Tags",
|
||||
"view-groups": "View Groups",
|
||||
"allow-local-login": "Local Login",
|
||||
"allow-group-creation": "Group Create",
|
||||
"view-users-info": "View Users Info",
|
||||
|
||||
"find-category": "Find Category",
|
||||
"access-category": "Access Category",
|
||||
"access-topics": "Access Topics",
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
"validate-email": "Validate Email",
|
||||
"send-validation-email": "Send Validation Email",
|
||||
"password-reset-email": "Send Password Reset Email",
|
||||
"force-password-reset": "Force Password Reset & Log User Out",
|
||||
"ban": "Ban User(s)",
|
||||
"temp-ban": "Ban User(s) Temporarily",
|
||||
"unban": "Unban User(s)",
|
||||
@@ -15,8 +14,6 @@
|
||||
"delete": "Delete User(s)",
|
||||
"purge": "Delete User(s) and Content",
|
||||
"download-csv": "Download CSV",
|
||||
"manage-groups": "Manage Groups",
|
||||
"add-group": "Add Group",
|
||||
"invite": "Invite",
|
||||
"new": "New User",
|
||||
|
||||
@@ -30,11 +27,6 @@
|
||||
"pills.banned": "Banned",
|
||||
"pills.search": "User Search",
|
||||
|
||||
"50-per-page": "50 per page",
|
||||
"100-per-page": "100 per page",
|
||||
"250-per-page": "250 per page",
|
||||
"500-per-page": "500 per page",
|
||||
|
||||
"search.uid": "By User ID",
|
||||
"search.uid-placeholder": "Enter a user ID to search",
|
||||
"search.username": "By User Name",
|
||||
@@ -89,9 +81,7 @@
|
||||
"alerts.confirm-remove-moderator": "Do you really want to remove this moderator?",
|
||||
"alerts.remove-moderator-success": "User is no longer moderator.",
|
||||
"alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?",
|
||||
"alerts.confirm-force-password-reset": "Are you sure you want to force the password reset and log out these user(s)?",
|
||||
"alerts.validate-email-success": "Emails validated",
|
||||
"alerts.validate-force-password-reset-success": "User(s) passwords have been reset and their existing sessions have been revoked.",
|
||||
"alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?",
|
||||
"alerts.confirm-delete": "<b>Warning!</b><br/>Do you really want to delete user(s)?<br/> This action is not reversable! Only the user account will be deleted, their posts and topics will remain.",
|
||||
"alerts.delete-success": "User(s) Deleted!",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"manage/groups": "المجموعات",
|
||||
"manage/ip-blacklist": "قائمة حظر عناوين IP",
|
||||
"manage/uploads": "Uploads",
|
||||
"manage/digest": "Digests",
|
||||
|
||||
"section-settings": "إعدادات",
|
||||
"settings/general": "عامة",
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"maintenance-mode": "Maintenance Mode",
|
||||
"maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
|
||||
"maintenance-mode.status": "Maintenance Mode Status Code",
|
||||
"maintenance-mode.message": "Maintenance Message",
|
||||
"headers": "Headers",
|
||||
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
"max-length": "Maximum length of chat messages",
|
||||
"max-room-size": "Maximum number of users in chat rooms",
|
||||
"delay": "Time between chat messages in milliseconds",
|
||||
"restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)",
|
||||
"restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)"
|
||||
"restrictions.seconds-edit-after": "Number of seconds before users are allowed to edit chat messages after posting. (0 disabled)",
|
||||
"restrictions.seconds-delete-after": "Number of seconds before users are allowed to delete chat messages after posting. (0 disabled)"
|
||||
}
|
||||
@@ -4,7 +4,6 @@
|
||||
"consent.message": "Notification message",
|
||||
"consent.acceptance": "Acceptance message",
|
||||
"consent.link-text": "Policy Link Text",
|
||||
"consent.link-url": "Policy Link URL",
|
||||
"consent.blank-localised-default": "Leave blank to use NodeBB localised defaults",
|
||||
"settings": "Settings",
|
||||
"cookie-domain": "Session cookie domain",
|
||||
|
||||
@@ -4,9 +4,6 @@
|
||||
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
|
||||
"from": "From Name",
|
||||
"from-help": "The from name to display in the email.",
|
||||
"sendmail-rate-limit": "Send <em>X</em> emails...",
|
||||
"sendmail-rate-delta": "... every <em>X</em> milliseconds",
|
||||
"sendmail-rate-help": "Instructs the NodeBB mailer to limit the number of messages sent at once in order to not overwhelm email receiving services. These options do not apply if SMTP Transport is enabled (below).",
|
||||
|
||||
"smtp-transport": "SMTP Transport",
|
||||
"smtp-transport.enabled": "Use an external email server to send emails",
|
||||
@@ -33,8 +30,8 @@
|
||||
"testing.select": "Select Email Template",
|
||||
"testing.send": "Send Test Email",
|
||||
"testing.send-help": "The test email will be sent to the currently logged in user's email address.",
|
||||
"subscriptions": "Email Digests",
|
||||
"subscriptions.disable": "Disable email digests",
|
||||
"subscriptions": "Email Subscriptions",
|
||||
"subscriptions.disable": "Disable subscriber notification emails",
|
||||
"subscriptions.hour": "Digest Hour",
|
||||
"subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>"
|
||||
}
|
||||
@@ -3,9 +3,10 @@
|
||||
"private-groups": "Private Groups",
|
||||
"private-groups.help": "If enabled, joining of groups requires the approval of the group owner <em>(Default: enabled)</em>",
|
||||
"private-groups.warning": "<strong>Beware!</strong> If this option is disabled and you have private groups, they automatically become public.",
|
||||
"allow-creation": "Allow Group Creation",
|
||||
"allow-creation-help": "If enabled, users can create groups <em>(Default: disabled)</em>",
|
||||
"allow-multiple-badges-help": "This flag can be used to allow users to select multiple group badges, requires theme support.",
|
||||
"max-name-length": "Maximum Group Name Length",
|
||||
"max-title-length": "Maximum Group Title Length",
|
||||
"cover-image": "Group Cover Image",
|
||||
"default-cover": "Default Cover Images",
|
||||
"default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image"
|
||||
|
||||
@@ -7,22 +7,19 @@
|
||||
"sorting.most-posts": "Most Posts",
|
||||
"sorting.topic-default": "Default Topic Sorting",
|
||||
"length": "Post Length",
|
||||
"post-queue": "Post Queue",
|
||||
"restrictions": "Posting Restrictions",
|
||||
"restrictions-new": "New User Restrictions",
|
||||
"restrictions.post-queue": "Enable post queue",
|
||||
"restrictions.post-queue-rep-threshold": "Reputation required to bypass post queue",
|
||||
"restrictions.groups-exempt-from-post-queue": "Select groups that should be exempt from the post queue",
|
||||
"restrictions-new.post-queue": "Enable new user restrictions",
|
||||
"restrictions.post-queue-help": "Enabling post queue will put the posts of new users in a queue for approval",
|
||||
"restrictions-new.post-queue-help": "Enabling new user restrictions will set restrictions on posts created by new users",
|
||||
"restrictions.seconds-between": "Number of seconds between posts",
|
||||
"restrictions.post-queue-help": "Enabling post queue will put the posts of new users in a queue for approval.",
|
||||
"restrictions-new.post-queue-help": "Enabling new user restrictions will set restrictions on posts created by new users.",
|
||||
"restrictions.seconds-between": "Seconds between posts",
|
||||
"restrictions.seconds-between-new": "Seconds between posts for new users",
|
||||
"restrictions.rep-threshold": "Reputation threshold before these restrictions are lifted",
|
||||
"restrictions.seconds-before-new": "Seconds before a new user can make their first post",
|
||||
"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.replies-no-delete": "Number of replies after users are disallowed to delete their own topics (set to 0 to disable)",
|
||||
"restrictions.seconds-defore-new": "Seconds before new user can post",
|
||||
"restrictions.seconds-edit-after": "Number of seconds before users are allowed to edit posts after posting. (0 disabled)",
|
||||
"restrictions.seconds-delete-after": "Number of seconds before users are allowed to delete posts after posting. (0 disabled)",
|
||||
"restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)",
|
||||
"restrictions.min-title-length": "Minimum Title Length",
|
||||
"restrictions.max-title-length": "Maximum Title Length",
|
||||
"restrictions.min-post-length": "Minimum Post Length",
|
||||
@@ -32,8 +29,6 @@
|
||||
"timestamp": "Timestamp",
|
||||
"timestamp.cut-off": "Date cut-off (in days)",
|
||||
"timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).<br /><em>(Default: <code>30</code>, or one month). Set to 0 to always display dates, leave blank to always display relative times.</em>",
|
||||
"timestamp.necro-threshold": "Necro Threshold (in days)",
|
||||
"timestamp.necro-threshold-help": "A message will be shown between posts if the time between them is longer than the necro threshold. (Default: <code>7</code>, or one week). Set to 0 to disable.</em>",
|
||||
"teaser": "Teaser Post",
|
||||
"teaser.last-post": "Last – Show the latest post, including the original post, if no replies",
|
||||
"teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies",
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
"min-length": "Minimum Tag Length",
|
||||
"max-length": "Maximum Tag Length",
|
||||
"goto-manage": "Click here to visit the tag management page.",
|
||||
"privacy": "Privacy",
|
||||
"list-private": "Make the tags list private",
|
||||
"related-topics": "Related Topics",
|
||||
"max-related-topics": "Maximum related topics to display (if supported by theme)"
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
"posts": "المشاركات",
|
||||
"allow-files": "السماح للأعضاء بتحميل الملفات الإعتيادية",
|
||||
"private": "جعل الملفات التي تم رفعها خاصة",
|
||||
"strip-exif-data": "Strip EXIF Data",
|
||||
"private-extensions": "File extensions to make private",
|
||||
"private-uploads-extensions-help": "Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
|
||||
"resize-image-width-threshold": "Resize images if they are wider than specified width",
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
"disable-email-changes": "عدم السماح بتغيير البريد الالكتروني",
|
||||
"disable-password-changes": "عدم السماح بتغيير كلمة المرور",
|
||||
"allow-account-deletion": "السماح بحذف الحساب",
|
||||
"user-info-private": "إخفاء قائمة المستخدم والبيانات عن الزوار",
|
||||
"hide-fullname": "إخفاء الإسم الكامل عن المستخدمين",
|
||||
"hide-email": "إخفاء البريد الإلكتروني عن المستخدمين",
|
||||
"themes": "القوالب",
|
||||
@@ -34,15 +35,13 @@
|
||||
"online-cutoff-help": "If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
|
||||
"registration": "تسجيل المستخدم",
|
||||
"registration-type": "نوع التسجيل",
|
||||
"registration-approval-type": "Registration Approval Type",
|
||||
"registration-type.normal": "عادي",
|
||||
"registration-type.admin-approval": "بموافقة الإدارة",
|
||||
"registration-type.admin-approval-ip": "بموافقة الإدارة لعناوين IP",
|
||||
"registration-type.invite-only": "بالدعوات فقط",
|
||||
"registration-type.admin-invite-only": "بالدعوات من قبل الإدارة فقط",
|
||||
"registration-type.disabled": "لا يوجد تسجيل",
|
||||
"registration-type.help": "Normal - Users can register from the /register page.<br/>\nInvite Only - Users can invite others from the <a href=\"%1/users\" target=\"_blank\">users</a> page.<br/>\nAdmin Invite Only - Only administrators can invite others from <a href=\"%1/users\" target=\"_blank\">users</a> and <a href=\"%1/admin/manage/users\">admin/manage/users</a> pages.<br/>\nNo registration - No user registration.<br/>",
|
||||
"registration-approval-type.help": "Normal - Users are registered immediately.<br/>\nAdmin Approval - User registrations are placed in an <a href=\"%1/admin/manage/registration\">approval queue</a> for administrators.<br/>\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.<br/>",
|
||||
"registration-type.help": "عادي - بإمكان المستخدمين التسجيل من خلال صفحة /التسجيل.<br/>\nبموافقة الإدارة - يتم وضع قائمة تسجيلات المستخدمين في <a href=\"%1/admin/manage/registration\">قائمة إنتظار موافقة</a> الإدارة.<br/>\nبموافقة الإدارة لعناوين IP - عادي بالنسبة للمستخدمين الجدد، ويتطلب موافقة الإدارة للتسجيل من عناوين IP تم التسجيل بإستخدامها مسبقاً.<br/>\nبالدعوات فقط - بإمكان المستخدمين إرسال دعوات من خلال صفحة <a href=\"%1/users\" target=\"_blank\">الأعضاء</a>.<br/>\nبالدعوات من قبل الإدارة فقط - فقط المراء بإمكانهم إرسال الدعوات من خلال صفحة <a href=\"%1/users\" target=\"_blank\">الأعضاء</a> و صفحات <a href=\"%1/admin/manage/users\">الإدارة/المشرفين/الأعضاء</a>.<br/>\nلا يوجد تسجيل - إغلاق خيار التسجيل بالكامل.<br/>",
|
||||
"registration.max-invites": "الحد الأقصى للدعوات لكل عضو",
|
||||
"max-invites": "الحد الأقصى للدعوات لكل عضو",
|
||||
"max-invites-help": "0 لعدم تحديد قيود، الإدارة تحصل على دعوات لامحدودة <br> هذا الخيار يعمل فقط عند تحديد خيار \"بالدعوات فقط\"",
|
||||
@@ -71,9 +70,5 @@
|
||||
"email-post-notif": "Send an email when replies are made to topics I am subscribed to",
|
||||
"follow-created-topics": "Follow topics you create",
|
||||
"follow-replied-topics": "Follow topics that you reply to",
|
||||
"default-notification-settings": "Default notification settings",
|
||||
"categoryWatchState": "Default category watch state",
|
||||
"categoryWatchState.watching": "Watching",
|
||||
"categoryWatchState.notwatching": "Not Watching",
|
||||
"categoryWatchState.ignoring": "Ignoring"
|
||||
"default-notification-settings": "Default notification settings"
|
||||
}
|
||||
@@ -7,16 +7,14 @@
|
||||
"browsing": "تصفح",
|
||||
"no_replies": "لم يرد أحد",
|
||||
"no_new_posts": "لا توجد مشاركات جديدة.",
|
||||
"share_this_category": "شارك هذا القسم",
|
||||
"watch": "تابع",
|
||||
"ignore": "تجاهل",
|
||||
"watching": "متابع",
|
||||
"not-watching": "لست متابع",
|
||||
"ignoring": "متجاهل",
|
||||
"watching.description": "أظهر المواضيع في الغير مقروء و الحديث",
|
||||
"not-watching.description": "Do not show topics in unread, show in recent",
|
||||
"ignoring.description": "Do not show topics in unread and recent",
|
||||
"watching.message": "You are now watching updates from this category and all subcategories",
|
||||
"notwatching.message": "You are not watching updates from this category and all subcategories",
|
||||
"ignoring.message": "You are now ignoring updates from this category and all subcategories",
|
||||
"watching.description": "أظهر المواضيع في غير مقروء",
|
||||
"ignoring.description": "لا تظهر المواضيع في غير مقروء",
|
||||
"watch.message": "أنت الآن تتابع التحديثات من هذا القسم وجميع الأقسام الفرعية",
|
||||
"ignore.message": "أنت الآن تتجاهل التحديثات من هذا القسم وجميع الأقسام الفرعية",
|
||||
"watched-categories": "الأقسام المُتابعة"
|
||||
}
|
||||
@@ -13,37 +13,30 @@
|
||||
"welcome.cta": "انقر هنا لتفعيل عنوان بريدك الإلكتروني",
|
||||
"invitation.text1": "%1 قام بدعوتك للانضمام لـ %2",
|
||||
"invitation.text2": "Your invitation will expire in %1 days.",
|
||||
"invitation.cta": "Click here to create your account.",
|
||||
"invitation.ctr": "إضغط هنا لإنشاء حسابك",
|
||||
"reset.text1": "لقد توصلنا بطلب إعادة تعيين كلمة المرور الخاصة بك، ربما لكونك قد نسيتها, إن لم يكن الأمر كذلك، المرجو تجاهل هذه الرسالة.",
|
||||
"reset.text2": "لمواصلة طلب إعاة تعيين كلمة المرور، الرجاء تتبع هذا الرابط.",
|
||||
"reset.cta": "انقر هنا لإعادة تعيين كلمة السر الخاصة بك.",
|
||||
"reset.notify.subject": "تم تغيير كلمة المرور بنجاح",
|
||||
"reset.notify.text1": "نحيطك علما أن كلمة مرورك قد تم تغييرها في %1",
|
||||
"reset.notify.text2": "إن لم يكن لديك علم بهذا، المرجو إشعار مدبر النظام بأسرع مايمكن.",
|
||||
"digest.notifications": "لديك تنبيهات غير مقروءة من طرف %1:",
|
||||
"digest.latest_topics": "آخر المستجدات من %1",
|
||||
"digest.cta": "انقر هنا لمشاهدة %1",
|
||||
"digest.unsub.info": "تم إرسال هذا الإشعار بآخر المستجدات وفقا لخيارات تسجيلكم.",
|
||||
"digest.no_topics": "ليس هناك مواضيع نشيطة في %1 الماضي",
|
||||
"digest.day": "يوم",
|
||||
"digest.week": "أسبوع",
|
||||
"digest.month": "شهر",
|
||||
"digest.subject": "إستهلاك ل",
|
||||
"digest.title.day": "Your Daily Digest",
|
||||
"digest.title.week": "Your Weekly Digest",
|
||||
"digest.title.month": "Your Monthly Digest",
|
||||
"notif.chat.subject": "هناك محادثة جديدة من %1",
|
||||
"notif.chat.cta": "انقر هنا لمتابعة المحادثة",
|
||||
"notif.chat.unsub.info": "تم إرسال هذا الإشعار بوجودة محادثة جديدة وفقا لخيارات تسجيلك.",
|
||||
"notif.post.cta": "انقر هنا لقراءة الموضوع بأكمله",
|
||||
"notif.post.unsub.info": "تم إشعارك بهذه المشاركة بناءً على الخيارات التي سبق وأن حددتها.",
|
||||
"notif.post.unsub.one-click": "Alternatively, unsubscribe from future emails like this, by clicking",
|
||||
"notif.cta": "To the forum",
|
||||
"notif.cta-new-reply": "View Post",
|
||||
"notif.cta-new-chat": "View Chat",
|
||||
"notif.test.short": "Testing Notifications",
|
||||
"notif.test.long": "This is a test of the notifications email. Send help!",
|
||||
"notif.cta": "Click here to go to forum",
|
||||
"test.text1": "هذه رسالة تجريبية للتأكد من صحة إعدادت الرسائل الإلكترونية في منتدى NodeBB خاصتك.",
|
||||
"unsub.cta": "انقر هنا لتغيير تلك الإعدادات",
|
||||
"unsubscribe": "unsubscribe",
|
||||
"unsub.success": "You will no longer receive emails from the <strong>%1</strong> mailing list",
|
||||
"banned.subject": "You have been banned from %1",
|
||||
"banned.text1": "The user %1 has been banned from %2.",
|
||||
"banned.text2": "This ban will last until %1.",
|
||||
|
||||
@@ -11,9 +11,6 @@
|
||||
"invalid-uid": "مستخدم غير موجود",
|
||||
"invalid-username": "اسم المستخدم غير مقبول",
|
||||
"invalid-email": "البريد الاكتروني غير مقبول",
|
||||
"invalid-fullname": "Invalid Fullname",
|
||||
"invalid-location": "Invalid Location",
|
||||
"invalid-birthday": "Invalid Birthday",
|
||||
"invalid-title": "Invalid title",
|
||||
"invalid-user-data": "بيانات المستخدم غير صحيحة",
|
||||
"invalid-password": "كلمة السر غير مقبولة",
|
||||
@@ -26,18 +23,16 @@
|
||||
"invalid-pagination-value": "رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
|
||||
"username-taken": "اسم المستخدم مأخوذ",
|
||||
"email-taken": "البريد الالكتروني مأخوذ",
|
||||
"email-not-confirmed": "You are unable to post until your email is confirmed, please click here to confirm your email.",
|
||||
"email-not-confirmed": "عنوان بريدك الإلكتروني غير مفعل بعد. انقر هنا لتفعيله من فضلك.",
|
||||
"email-not-confirmed-chat": "لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
|
||||
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You won't be able to post or chat until your email is confirmed.",
|
||||
"email-not-confirmed-email-sent": "بريدك الإلكتروني غير مفعل. رجاءًا تفحص صندوق البريد عن رسالة التفعيل.",
|
||||
"no-email-to-confirm": "هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.",
|
||||
"email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.",
|
||||
"confirm-email-already-sent": "لقد تم ارسال بريد التأكيد، الرجاء اﻹنتظار 1% دقائق لإعادة اﻹرسال",
|
||||
"sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
|
||||
"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-long": "اسم المستخدم طويل",
|
||||
"password-too-long": "كلمة السر طويلة ",
|
||||
"reset-rate-limited": "Too many password reset requests (rate limited)",
|
||||
"user-banned": "المستخدم محظور",
|
||||
"user-banned-reason": "Sorry, this account has been banned (Reason: %1)",
|
||||
"user-banned-reason-until": "Sorry, this account has been banned until %1 (Reason: %2)",
|
||||
@@ -103,8 +98,6 @@
|
||||
"group-needs-owner": "هذه المجموعة تتطلب مالك واحد على اﻷقل",
|
||||
"group-already-invited": "المستخدم سبق وأن تمت دعوته",
|
||||
"group-already-requested": "سبق وتم تسجيل طلب العضوية",
|
||||
"group-join-disabled": "You are not able to join this group at this time",
|
||||
"group-leave-disabled": "You are not able to leave this group at this time",
|
||||
"post-already-deleted": "سبق وتم حذف هذا الرد",
|
||||
"post-already-restored": "سبق وتم إلغاء حذف هذا الرد",
|
||||
"topic-already-deleted": "سبق وتم حذف هذا الموضوع",
|
||||
@@ -150,6 +143,7 @@
|
||||
"invite-maximum-met": "لقد قمت بدعوة الحد الأقصى من الأشخاص (%1 من %2)",
|
||||
"no-session-found": "لم دخول مسجل!",
|
||||
"not-in-room": "المستخدم غير موجود في الغرفة.",
|
||||
"no-users-in-room": "لا يوجد مستخدمين في الغرفة.",
|
||||
"cant-kick-self": "لا يمكنك طرد نفسك من المجموعة.",
|
||||
"no-users-selected": "لا يوجد مستخدم محدد.",
|
||||
"invalid-home-page-route": "Invalid home page route",
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
"updated": "Updated",
|
||||
"target-purged": "The content this flag referred to has been purged and is no longer available.",
|
||||
|
||||
"graph-label": "Daily Flags",
|
||||
"quick-filters": "Quick Filters",
|
||||
"filter-active": "There are one or more filters active in this list of flags",
|
||||
"filter-reset": "Remove Filters",
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
"alert.banned.message": "لقد تم حظر حسابك. سيتم تسجيل الخروج.",
|
||||
"alert.unfollow": "أنت لا تتابع %1 بعد الآن!",
|
||||
"alert.follow": "أنت الآن تتابع %1!",
|
||||
"online": "المتواجدون حاليًّا",
|
||||
"users": "الأعضاء",
|
||||
"topics": "المواضيع",
|
||||
"posts": "المشاركات",
|
||||
@@ -59,8 +60,6 @@
|
||||
"downvoted": "مصوت بالسالب",
|
||||
"views": "المشاهدات",
|
||||
"reputation": "السمعة",
|
||||
"lastpost": "Last post",
|
||||
"firstpost": "First post",
|
||||
"read_more": "اقرأ المزيد",
|
||||
"more": "المزيد",
|
||||
"posted_ago_by_guest": "كتب %1 بواسطة زائر",
|
||||
@@ -78,7 +77,6 @@
|
||||
"recentposts": "آخر المشاركات",
|
||||
"recentips": "آخر عناوين ال IP التي سجلت الدخول",
|
||||
"moderator_tools": "أدوات المشرف",
|
||||
"online": "المتواجدون حاليًّا",
|
||||
"away": "غير متواجد",
|
||||
"dnd": "عدم الإزعاج",
|
||||
"invisible": "مخفي",
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
"details.latest_posts": "آخر المشاركات",
|
||||
"details.private": "خاص",
|
||||
"details.disableJoinRequests": "Disable join requests",
|
||||
"details.disableLeave": "Disallow users from leaving the group",
|
||||
"details.grant": "منح/سحب المِلكية",
|
||||
"details.kick": "طرد",
|
||||
"details.kick_confirm": "Are you sure you want to remove this member from the group?",
|
||||
@@ -37,8 +36,7 @@
|
||||
"details.description": "الوصف",
|
||||
"details.badge_preview": "معاينة الوسام",
|
||||
"details.change_icon": "تغيير الأيقونة",
|
||||
"details.change_label_colour": "Change Label Colour",
|
||||
"details.change_text_colour": "Change Text Colour",
|
||||
"details.change_colour": "تغيير اللون",
|
||||
"details.badge_text": "نص الوسام",
|
||||
"details.userTitleEnabled": "إظهار الوسام",
|
||||
"details.private_help": "في حالة تفعيل الخيار، الانضمام إلى المجموعة يستلزم قبول مالكها",
|
||||
@@ -49,11 +47,9 @@
|
||||
"event.updated": "تم تحديث بيانات المجموعة",
|
||||
"event.deleted": "تم حذف المجموعة %1",
|
||||
"membership.accept-invitation": "اقبل الدعوة",
|
||||
"membership.accept.notification_title": "You are now a member of <strong>%1</strong>",
|
||||
"membership.invitation-pending": "الدعوة بانتظار القبول",
|
||||
"membership.join-group": "انظم للمجموعة",
|
||||
"membership.leave-group": "غادر المجموعة",
|
||||
"membership.leave.notification_title": "<strong>%1</strong> has left group <strong>%2</strong>",
|
||||
"membership.reject": "رفض",
|
||||
"new-group.group_name": "اسم المجموعة",
|
||||
"upload-group-cover": "Upload group cover",
|
||||
|
||||
@@ -34,9 +34,6 @@
|
||||
"chat.kick": "Kick",
|
||||
"chat.show-ip": "Show IP",
|
||||
"chat.owner": "Room Owner",
|
||||
"chat.system.user-join": "%1 has joined the room",
|
||||
"chat.system.user-leave": "%1 has left the room",
|
||||
"chat.system.room-rename": "%2 has renamed this room: %1",
|
||||
"composer.compose": "اكتب",
|
||||
"composer.show_preview": "عرض المعاينة",
|
||||
"composer.hide_preview": "إخفاء المعاينة",
|
||||
|
||||
@@ -5,20 +5,20 @@
|
||||
"mark_all_read": "اجعل كل التنبيهات مقروءة",
|
||||
"back_to_home": "عودة إلى %1",
|
||||
"outgoing_link": "رابط خارجي",
|
||||
"outgoing_link_message": "أنت تغادر اﻻن %1",
|
||||
"outgoing_link_message": "You are now leaving %1",
|
||||
"continue_to": "استمر إلى %1",
|
||||
"return_to": "عودة إى %1",
|
||||
"new_notification": "لديك تنبيه جديد",
|
||||
"new_notification": "You have a new notification",
|
||||
"you_have_unread_notifications": "لديك تنبيهات غير مقروءة.",
|
||||
"all": "الكل",
|
||||
"topics": "مواضيع",
|
||||
"replies": "ردود",
|
||||
"chat": "محادثات",
|
||||
"follows": "متابعون",
|
||||
"upvote": "الموافقين",
|
||||
"all": "All",
|
||||
"topics": "Topics",
|
||||
"replies": "Replies",
|
||||
"chat": "Chats",
|
||||
"follows": "Follows",
|
||||
"upvote": "Upvotes",
|
||||
"new-flags": "New Flags",
|
||||
"my-flags": "Flags assigned to me",
|
||||
"bans": "الحظر",
|
||||
"bans": "Bans",
|
||||
"new_message_from": "رسالة جديدة من <strong>%1</strong>",
|
||||
"upvoted_your_post_in": "<strong>%1</strong> أضاف صوتًا إيجابيا إلى مشاركتك في <strong>%2</strong>.",
|
||||
"upvoted_your_post_in_dual": "<strong>%1</strong> and <strong>%2</strong> have upvoted your post in <strong>%3</strong>.",
|
||||
@@ -40,23 +40,22 @@
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
|
||||
"new_register": "<strong>%1</strong> sent a registration request.",
|
||||
"new_register_multiple": "There are <strong>%1</strong> registration requests awaiting review.",
|
||||
"flag_assigned_to_you": "تم تخصيص العلامة 1% لك",
|
||||
"flag_assigned_to_you": "<strong>Flag %1</strong> has been assigned to you",
|
||||
"post_awaiting_review": "Post awaiting review",
|
||||
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
|
||||
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
|
||||
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
|
||||
"email-confirm-sent": "تم إرسال بريد التفعيل.",
|
||||
"none": "None",
|
||||
"notification_only": "التنبيهات فقط",
|
||||
"email_only": "البريد الالكتروني فقط",
|
||||
"notification_and_email": "التنبيهات والبريد اﻻلكتروني",
|
||||
"notificationType_upvote": "عندما يوافقك احدهم على منشورك",
|
||||
"notification_only": "Notification Only",
|
||||
"email_only": "Email Only",
|
||||
"notification_and_email": "Notification & Email",
|
||||
"notificationType_upvote": "When someone upvotes your post",
|
||||
"notificationType_new-topic": "When someone you follow posts a topic",
|
||||
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
|
||||
"notificationType_follow": "When someone starts following you",
|
||||
"notificationType_new-chat": "When you receive a chat message",
|
||||
"notificationType_group-invite": "When you receive a group invite",
|
||||
"notificationType_group-request-membership": "When someone requests to join a group you own",
|
||||
"notificationType_new-register": "When someone gets added to registration queue",
|
||||
"notificationType_post-queue": "When a new post is queued",
|
||||
"notificationType_new-post-flag": "When a post is flagged",
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
"account/following": "People %1 follows",
|
||||
"account/followers": "People who follow %1",
|
||||
"account/posts": "Posts made by %1",
|
||||
"account/latest-posts": "Latest posts made by %1",
|
||||
"account/topics": "Topics created by %1",
|
||||
"account/groups": "%1's Groups",
|
||||
"account/watched_categories": "%1's Watched Categories",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"repeat_password": "تأكيد كلمة المرور",
|
||||
"enter_email": "يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
|
||||
"enter_email_address": "ادخل عنوان البريد الإلكتروني",
|
||||
"password_reset_sent": "If the specified address corresponds to an existing user account, a password reset email was sent. Please note that only one email will be sent per minute.",
|
||||
"password_reset_sent": "A password reset email has been sent to the specified address. Please note that only one email will be sent per minute.",
|
||||
"invalid_email": "بريد إلكتروني غير صالح أو غير موجود",
|
||||
"password_too_short": "كلمة المرور التي أدخلتها قصيرة، الرجاء اختر كلمة مرور مختلفة",
|
||||
"passwords_do_not_match": "كلمتا السر التي أدخلتهما غير متطابقتان",
|
||||
|
||||
@@ -43,6 +43,5 @@
|
||||
"clear-preferences": "ازالة التفضيلات",
|
||||
"search-preferences-saved": "تم حفظ تفضيلات البحث",
|
||||
"search-preferences-cleared": "تم ازالة تفضيلات البحث",
|
||||
"show-results-as": "عرض النتائج كـ",
|
||||
"see-more-results": "See more results (%1)"
|
||||
"show-results-as": "عرض النتائج كـ"
|
||||
}
|
||||
@@ -18,13 +18,11 @@
|
||||
"last_reply_time": "Last reply",
|
||||
"reply-as-topic": "رد بموضوع",
|
||||
"guest-login-reply": "يجب عليك تسجيل الدخول للرد",
|
||||
"login-to-view": "🔒 Log in to view",
|
||||
"edit": "تعديل",
|
||||
"delete": "حذف",
|
||||
"purge": "تطهير",
|
||||
"restore": "استعادة",
|
||||
"move": "نقل",
|
||||
"change-owner": "Change Owner",
|
||||
"fork": "فرع",
|
||||
"link": "رابط",
|
||||
"share": "نشر",
|
||||
@@ -66,7 +64,6 @@
|
||||
"thread_tools.move": "نقل الموضوع",
|
||||
"thread_tools.move-posts": "Move Posts",
|
||||
"thread_tools.move_all": "نقل الكل",
|
||||
"thread_tools.change_owner": "Change Owner",
|
||||
"thread_tools.select_category": "Select Category",
|
||||
"thread_tools.fork": "إنشاء فرع الموضوع",
|
||||
"thread_tools.delete": "حذف الموضوع",
|
||||
@@ -101,7 +98,6 @@
|
||||
"delete_posts_instruction": "Click the posts you want to delete/purge",
|
||||
"merge_topics_instruction": "Click the topics you want to merge",
|
||||
"move_posts_instruction": "Click the posts you want to move",
|
||||
"change_owner_instruction": "Click the posts you want to assign to another user",
|
||||
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
|
||||
"composer.handle_placeholder": "اﻹسم",
|
||||
"composer.discard": "نبذ التغييرات",
|
||||
@@ -133,7 +129,5 @@
|
||||
"diffs.description": "This post has <strong>%1</strong> revisions. Click one of the revisions below to see the post content at that point in time.",
|
||||
"diffs.no-revisions-description": "This post has <strong>%1</strong> revisions.",
|
||||
"diffs.current-revision": "current revision",
|
||||
"diffs.original-revision": "original revision",
|
||||
"timeago_later": "%1 later",
|
||||
"timeago_earlier": "%1 earlier"
|
||||
"diffs.original-revision": "original revision"
|
||||
}
|
||||
@@ -26,10 +26,8 @@
|
||||
"reputation": "السمعة",
|
||||
"bookmarks": "Bookmarks",
|
||||
"watched_categories": "Watched categories",
|
||||
"change_all": "Change All",
|
||||
"watched": "متابع",
|
||||
"ignored": "تم تجاهله",
|
||||
"default-category-watch-state": "Default category watch state",
|
||||
"followers": "المتابعون",
|
||||
"following": "يتابع",
|
||||
"blocks": "Blocks",
|
||||
@@ -50,7 +48,6 @@
|
||||
"change_picture": "تغيير الصورة",
|
||||
"change_username": "تغيير اسم المستخدم",
|
||||
"change_email": "تغيير البريد اﻹلكتروني",
|
||||
"email_same_as_password": "Please enter your current password to continue – you've entered your new email again",
|
||||
"edit": "تعديل",
|
||||
"edit-profile": "تعديل الملف الشخصي",
|
||||
"default_picture": "أيقونة افتراضية",
|
||||
@@ -125,7 +122,6 @@
|
||||
"follow_topics_you_reply_to": "متابعة المواضيع التي تقوم بالرد عليها",
|
||||
"follow_topics_you_create": "متابعة المواضيع التي تقوم بإنشائها",
|
||||
"grouptitle": "عنوان المجموعة",
|
||||
"group-order-help": "Select a group and use the arrows to order titles",
|
||||
"no-group-title": "لا يوجد عنوان للمجموعة",
|
||||
"select-skin": "إختر سمة",
|
||||
"select-homepage": "إختر الصفحة الرئيسية",
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
"mongo.bytes-out": "Байтове ИЗХ",
|
||||
"mongo.num-requests": "Брой заявки",
|
||||
"mongo.raw-info": "Сурови данни от MongoDB",
|
||||
"mongo.unauthorized": "NodeBB не успя да получи нужните статистики от MongoDB. Моля, уверете се, че потребителят, който се използва от NodeBB, включва ролята „clusterMonitor“ за базата данни „admin“.",
|
||||
|
||||
"redis": "Redis",
|
||||
"redis.version": "Версия на Redis",
|
||||
|
||||
@@ -2,10 +2,5 @@
|
||||
"events": "Събития",
|
||||
"no-events": "Няма събития",
|
||||
"control-panel": "Контролен панел за събитията",
|
||||
"filters": "Филтри",
|
||||
"filters-apply": "Прилагане на филтрите",
|
||||
"filter-type": "Вид събитие",
|
||||
"filter-start": "Начална дата",
|
||||
"filter-end": "Крайна дата",
|
||||
"filter-perPage": "На страница"
|
||||
"delete-events": "Изтриване на събитията"
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
"custom-js.enable": "Включване на персонализирания код на Javascript",
|
||||
|
||||
"custom-header": "Персонализирана заглавна част",
|
||||
"custom-header.description": "Въведете своя персонализиран код HTML тук (напр. елементи „meta“ и т.н.), те ще бъдат добавени към секцията <code><head></code> в кода на Вашия форум. Ползването на елементи „script“ е позволено, но непрепоръчително, тъй като за това можете да ползвате раздела <a href=\"#custom-js\" data-toggle=\"tab\">Персонализиран код на Javascript</a>.",
|
||||
"custom-header.description": "Въведете своя персонализиран код HTML тук (напр. елементи „meta“ и т.н.), те ще бъдат добавени към секцията <code><head></code> в кода на Вашия форум. Ползването на елементи „script“ е позволено, но непрепоръчително, тъй като за това можете да ползвате раздела <a href=\"#custom-header\" data-toggle=\"tab\">Персонализиран код на Javascript</a>.",
|
||||
"custom-header.enable": "Включване на персонализирана заглавна част",
|
||||
|
||||
"custom-css.livereload": "Включване на моменталното презареждане",
|
||||
|
||||
@@ -7,8 +7,7 @@
|
||||
"online": "на линия",
|
||||
"git": "git",
|
||||
"memory": "памет",
|
||||
"load": "натоварване на системата",
|
||||
"cpu-usage": "използване на процесора",
|
||||
"load": "натоварване",
|
||||
"uptime": "активно време",
|
||||
|
||||
"registered": "Регистрирани",
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
"plugin-search": "Търсене на добавки",
|
||||
"plugin-search-placeholder": "Търсене на добавка…",
|
||||
"submit-anonymous-usage": "Изпращане на анонимни данни за употребата на добавката",
|
||||
"reorder-plugins": "Пренареждане на добавките",
|
||||
"order-active": "Подреждане на включените добавки",
|
||||
"dev-interested": "Искате ли да пишете добавки за NodeBB?",
|
||||
@@ -30,8 +29,6 @@
|
||||
"plugin-item.more-info": "За повече информация",
|
||||
"plugin-item.unknown": "Неизвестно",
|
||||
"plugin-item.unknown-explanation": "Състоянието на тази добавка не може да бъде определено, може би поради грешка в конфигурацията.",
|
||||
"plugin-item.compatible": "Тази добавка работи с NodeBB %1",
|
||||
"plugin-item.not-compatible": "Тази добавка няма информация за съвместимост. Уверете се, че работи, преди да я инсталирате на истинския си сървър.",
|
||||
|
||||
"alert.enabled": "Добавката е включена",
|
||||
"alert.disabled": "Добавката е изключена",
|
||||
|
||||
@@ -18,13 +18,5 @@
|
||||
"alert.update-success": "Джаджите са обновени успешно",
|
||||
"alert.clone-success": "Джаджите са клонирани успешно",
|
||||
|
||||
"error.select-clone": "Изберете страница, от която да клонирате",
|
||||
|
||||
"title": "Заглавие",
|
||||
"title.placeholder": "Заглавие (показва се само в някои контейнери)",
|
||||
"container": "Контейнер",
|
||||
"container.placeholder": "Завлачете и пуснете контейнер или въведете HTML тук.",
|
||||
"show-to-groups": "Показване на групите",
|
||||
"hide-from-groups": "Скриване от групите",
|
||||
"hide-on-mobile": "Скриване на мобилни устройства"
|
||||
"error.select-clone": "Изберете страница, от която да клонирате"
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
"forum-traffic": "Трафик на форума",
|
||||
"page-views": "Преглеждания на страниците",
|
||||
"unique-visitors": "Уникални посетители",
|
||||
"new-users": "Нови потребители",
|
||||
"users": "Потребители",
|
||||
"posts": "Публикации",
|
||||
"topics": "Теми",
|
||||
"page-views-seven": "Последните 7 дни",
|
||||
@@ -14,12 +14,9 @@
|
||||
"page-views-custom-help": "Въведете интервал от дати, за които искате да видите преглежданията на страниците. Ако не се появи календар за избор, можете да въведете датите във формат: <code>ГГГГ-ММ-ДД</code>",
|
||||
"page-views-custom-error": "Моля, въведете правилен интервал от дати във формата: <code>ГГГГ-ММ-ДД</code>",
|
||||
|
||||
"stats.yesterday": "Вчера",
|
||||
"stats.today": "Днес",
|
||||
"stats.last-week": "Миналата седмица",
|
||||
"stats.this-week": "Тази седмица",
|
||||
"stats.last-month": "Миналия месец",
|
||||
"stats.this-month": "Този месец",
|
||||
"stats.day": "Ден",
|
||||
"stats.week": "Седмица",
|
||||
"stats.month": "Месец",
|
||||
"stats.all": "От началото",
|
||||
|
||||
"updates": "Обновления",
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"tooltip": "Подсказка:",
|
||||
"text": "Текст:",
|
||||
"text-class": "Текстов клас: <small>незадължително</small>",
|
||||
"class": "Клас: <small>незадължително</small>",
|
||||
"id": "Идентификатор: <small>незадължително</small>",
|
||||
|
||||
"properties": "Свойства:",
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
"parent-category": "Базова категория",
|
||||
"optional-parent-category": "(Незадължително) Базова категория",
|
||||
"parent-category-none": "(Няма)",
|
||||
"copy-parent": "Копиране на базовата",
|
||||
"copy-settings": "Копиране на настройките от",
|
||||
"optional-clone-settings": "(Незадължително) Копиране на настройките от категория",
|
||||
"clone-children": "Клониране на дъщерните категории и настройки",
|
||||
@@ -30,13 +29,12 @@
|
||||
"select-category": "Изберете категория",
|
||||
"set-parent-category": "Задайте базова категория",
|
||||
|
||||
"privileges.description": "В тази секция можете да настроите правомощията за достъп до различните части на уеб сайта Правомощията могат да бъдат давани на отделни потребители или на цели групи. Изберете обхвата на приложение от падащото меню по-долу.",
|
||||
"privileges.description": "В тази секция можете да настроите правомощията за достъп до тази категория. Правомощията могат да бъдат давани на отделни потребители или на цели групи. Изберете обхвата на приложение от падащото меню по-долу.",
|
||||
"privileges.category-selector": "Настройване на правомощията за ",
|
||||
"privileges.warning": "<strong>Забележка</strong>: Настройките за правомощията влизат в сила моментално. Не е нужно да запазвате категорията след като промените тези настройки.",
|
||||
"privileges.section-viewing": "Правомощия за преглед",
|
||||
"privileges.section-posting": "Правомощия за публикуване",
|
||||
"privileges.section-moderation": "Правомощия за модериране",
|
||||
"privileges.section-other": "Други",
|
||||
"privileges.section-user": "Потребител",
|
||||
"privileges.search-user": "Добавяне на потребител",
|
||||
"privileges.no-users": "В тази категория няма правомощия за отделни потребители.",
|
||||
@@ -45,12 +43,7 @@
|
||||
"privileges.search-group": "Добавяне на група",
|
||||
"privileges.copy-to-children": "Копиране в наследниците",
|
||||
"privileges.copy-from-category": "Копиране от категория",
|
||||
"privileges.copy-privileges-to-all-categories": "Копиране във всички категории",
|
||||
"privileges.copy-group-privileges-to-children": "Копиране на правомощията на тази група в поделементите на тази категория.",
|
||||
"privileges.copy-group-privileges-to-all-categories": "Копиране на правомощията на тази група във всички категории.",
|
||||
"privileges.copy-group-privileges-from": "Копиране на правомощията на тази група от друга категория.",
|
||||
"privileges.inherit": "Ако групата на <code>регистрираните потребители</code> получи дадено правомощие, всички останали групи го получават като <strong>подразбиращо се правомощие</strong>, дори то да не им е специално дадено. Вие виждате това подразбиращо се правомощие, защото всички потребители са членове на групата на <code>регистрираните потребители</code>, така че няма нужда да се дават едни и същи правомощия на още групи.",
|
||||
"privileges.copy-success": "Правомощията са копирани!",
|
||||
|
||||
"analytics.back": "Назад към списъка с категориите",
|
||||
"analytics.title": "Аналитични данни за категорията „%1“",
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"lead": "По-долу са показани статистики и времена за разпращането на резюмета.",
|
||||
"disclaimer": "Имайте предвид, че при доставката на е-поща няма гаранции, поради същността на технологията за е-пощата. Много неща влияят на това дали едно изпратено е-писмо настина достига до получателя си, като: репутация на сървъра, блокирани IP адреси или това дали е настроено DKIM/SPF/DMARC.",
|
||||
"disclaimer-continued": "Успешната доставка означава, че съобщението е изпратено успешно от NodeBB и потвърдено от сървъра на получателя. Това не означава, че писмото е достигнало до входящата кутия на получателя. За да имате по-добри резултати, препоръчвам използването на специализирана услуга за изпращане на е-писма, като <a href=\"https://sendgrid.com/why-sendgrid/\">SendGrid</a>.",
|
||||
|
||||
"user": "Потребител",
|
||||
"subscription": "Вид на абонамента",
|
||||
"last-delivery": "Последна успешна доставка",
|
||||
"default": "По подразбиране за системата",
|
||||
"default-help": "<em>По подразбиране за системата</em> означава, че потребителят не е избрал ръчно друга настройка за глобалния форум за резюметата, която в момента е;„%1</strong>“",
|
||||
"resend": "Повторно изпращане на резюмето",
|
||||
"resend-all-confirm": "Наистина ли искате да предизвикате ръчно изпращането на резюмето?",
|
||||
"resent-single": "Ръчното повторно разпращане на резюмето е завършено",
|
||||
"resent-day": "Дневното резюме беше изпратено повторно",
|
||||
"resent-week": "Седмичното резюме беше изпратено повторно",
|
||||
"resent-month": "Месечното резюме беше изпратено повторно",
|
||||
"null": "<em>Никога</em>",
|
||||
"manual-run": "Ръчно разпращане на резюмето:",
|
||||
|
||||
"no-delivery-data": "Няма данни за доставката"
|
||||
}
|
||||
@@ -1,12 +1,8 @@
|
||||
{
|
||||
"name": "Име на групата",
|
||||
"badge": "Емблема",
|
||||
"properties": "Свойства",
|
||||
"description": "Описание на групата",
|
||||
"member-count": "Брой на членовете",
|
||||
"system": "Системна",
|
||||
"hidden": "Скрита",
|
||||
"private": "Частна",
|
||||
"system": "Системна група",
|
||||
"edit": "Редактиране",
|
||||
"search-placeholder": "Търсене",
|
||||
"create": "Създаване на група",
|
||||
@@ -21,12 +17,10 @@
|
||||
"edit.user-title": "Звание на членовете",
|
||||
"edit.icon": "Иконка на групата",
|
||||
"edit.label-color": "Цвята за етикета на групата",
|
||||
"edit.text-color": "Цвята за текста на групата",
|
||||
"edit.show-badge": "Показване на емблема",
|
||||
"edit.private-details": "Ако е включено, присъединяването към група ще изисква одобрение от собственик на групата.",
|
||||
"edit.private-override": "Внимание: Частните групи са изключени на системно ниво, това пренебрегва тази настройка.",
|
||||
"edit.disable-join": "Забраняване на заявките за присъединяване",
|
||||
"edit.disable-leave": "Забраняване на потребители да напускат групата",
|
||||
"edit.disable-requests": "Изключване на заявките за присъединяване",
|
||||
"edit.hidden": "Скрита",
|
||||
"edit.hidden-details": "Ако е включено, групата няма да е видима в списъка с групи и ще трябва потребителите да бъдат поканени специално.",
|
||||
"edit.add-user": "Добавяне на потребител към групата",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"post-queue": "Опашка за публикации",
|
||||
"description": "Няма публикации в опашката. <br> За да включите тази функционалност, идете в <a href=\"%1\">Настройки → Публикуване → Опашка за публикации</a> и включете <strong>Опашката за публикации</strong>.",
|
||||
"description": "Няма публикации в опашката. <br> За да включите тази функционалност, идете в <a href=\"%1\">Настройки → Публикуване → Ограничения за публикуването</a> и включете <strong>Опашката за публикации</strong>.",
|
||||
"user": "Потребител",
|
||||
"category": "Категория",
|
||||
"title": "Заглавие",
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
{
|
||||
"global": "Глобални",
|
||||
"global.no-users": "Няма глобални правомощия за отделни потребители.",
|
||||
"group-privileges": "Правомощия за групите",
|
||||
"user-privileges": "Правомощия за потребителите",
|
||||
|
||||
"chat": "Разговор",
|
||||
"upload-images": "Качване на изображения",
|
||||
"upload-files": "Качване на файлове",
|
||||
@@ -11,12 +10,8 @@
|
||||
"search-content": "Търсене на съдържание",
|
||||
"search-users": "Търсене на потребители",
|
||||
"search-tags": "Търсене на етикети",
|
||||
"view-users": "Преглед на потребителите",
|
||||
"view-tags": "Преглед на етикетите",
|
||||
"view-groups": "Преглед на групите",
|
||||
"allow-local-login": "Локално вписване",
|
||||
"allow-group-creation": "Създаване на групи",
|
||||
"view-users-info": "Преглед на информацията за потребителите",
|
||||
|
||||
"find-category": "Търсене на категория",
|
||||
"access-category": "Достъп до категория",
|
||||
"access-topics": "Достъп до теми",
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
"validate-email": "Проверка на е-пощата",
|
||||
"send-validation-email": "Изпращане на е-писмо за потвърждение",
|
||||
"password-reset-email": "Изпращане на е-писмо за възстановяване на паролата",
|
||||
"force-password-reset": "Принудително подновяване на паролата и отписване на потребителя",
|
||||
"ban": "Блокиране на потребителя/ите",
|
||||
"temp-ban": "Блокиране на потребителя/ите временно",
|
||||
"unban": "Деблокиране на потребителя/ите",
|
||||
@@ -15,8 +14,6 @@
|
||||
"delete": "Изтриване на потребителя/ите",
|
||||
"purge": "Изтриване на потребителя/ите и съдържанието",
|
||||
"download-csv": "Сваляне във формат „CSV“",
|
||||
"manage-groups": "Управление на групите",
|
||||
"add-group": "Добавяне на група",
|
||||
"invite": "Покана",
|
||||
"new": "Нов потребител",
|
||||
|
||||
@@ -30,11 +27,6 @@
|
||||
"pills.banned": "Блокиран",
|
||||
"pills.search": "Търсене на потребители",
|
||||
|
||||
"50-per-page": "50 на страница",
|
||||
"100-per-page": "100 на страница",
|
||||
"250-per-page": "250 на страница",
|
||||
"500-per-page": "500 на страница",
|
||||
|
||||
"search.uid": "По потребителски идентификатор",
|
||||
"search.uid-placeholder": "Въведете потребителски идентификатор, който да потърсите",
|
||||
"search.username": "По име на потребител",
|
||||
@@ -89,9 +81,7 @@
|
||||
"alerts.confirm-remove-moderator": "Наистина ли искате да премахнете този модератор?",
|
||||
"alerts.remove-moderator-success": "Потребителят вече няма да бъде модератор.",
|
||||
"alerts.confirm-validate-email": "Искате ли да проверите е-пощата/ите на този/тези потребител(и)?",
|
||||
"alerts.confirm-force-password-reset": "Наистина ли искате принудително да подновите паролата и да отпишете потребителя или потребителите?",
|
||||
"alerts.validate-email-success": "Е-пощите са проверени",
|
||||
"alerts.validate-force-password-reset-success": "Паролата на потребителя (или паролите на потребителите) беше подновена и сесията му беше прекратена.",
|
||||
"alerts.password-reset-confirm": "Искате ли да изпратите е-писмо/а за възстановяване на паролата на този/тези потребител(и)?",
|
||||
"alerts.confirm-delete": "<b>ВНИМАНИЕ!</b><br/>Наистина ли искате да изтриете потребителя/ите?<br/> Това действие е необратимо! Ще бъде изтрит само профилът на потребителя/ите, неговите/техните публикациите и теми ще останат.",
|
||||
"alerts.delete-success": "Потребителят/ите е/са изтрит(и)!",
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
"manage/groups": "Групи",
|
||||
"manage/ip-blacklist": "Черен списък за IP адреси",
|
||||
"manage/uploads": "Качвания",
|
||||
"manage/digest": "Резюмета",
|
||||
|
||||
"section-settings": "Настройки",
|
||||
"settings/general": "Общи",
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"maintenance-mode": "Режим на профилактика",
|
||||
"maintenance-mode.help": "Когато форумът е в режим на профилактика, всички заявки ще бъдат пренасочвани към статична страница за изчакване, с изключение на администраторите, които ще могат да използват уеб сайта нормално.",
|
||||
"maintenance-mode.status": "Код на състоянието за режима на профилактика",
|
||||
"maintenance-mode.message": "Съобщение за профилактиката",
|
||||
"headers": "Заглавни части",
|
||||
"headers.allow-from": "Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
"max-length": "Максимална дължина на съобщенията в разговорите",
|
||||
"max-room-size": "Максимален брой потребители в стая за разговор",
|
||||
"delay": "Време между съобщеният в разговорите (в милисекунди)",
|
||||
"restrictions.seconds-edit-after": "Брой секунди, през които съобщенията в разговор могат да бъдат редактирани. (0 = изключено)",
|
||||
"restrictions.seconds-delete-after": "Брой секунди, през които съобщенията в разговор могат да бъдат изтривани. (0 = изключено)"
|
||||
"restrictions.seconds-edit-after": "Брой секунди, в които потребителите не могат да редактират съобщенията си в разговорите след публикуването им. (0 = изключено)",
|
||||
"restrictions.seconds-delete-after": "Брой секунди, в които потребителите не могат да изтрият съобщенията си в разговорите след публикуването им. (0 = изключено)"
|
||||
}
|
||||
@@ -4,7 +4,6 @@
|
||||
"consent.message": "Съобщение за известие",
|
||||
"consent.acceptance": "Съобщение за приемане",
|
||||
"consent.link-text": "Връзка към текста на политиката",
|
||||
"consent.link-url": "Връзка към адреса на политиката",
|
||||
"consent.blank-localised-default": "Оставете това празно, за да използвате данните по подразбиране на NodeBB, които са преведени",
|
||||
"settings": "Настройки",
|
||||
"cookie-domain": "Домейн на бисквитката за сесията",
|
||||
|
||||
@@ -4,9 +4,6 @@
|
||||
"address-help": "Следният адрес на е-поща е този, който получателят ще види в полетата „От“ и “Отговор до“.",
|
||||
"from": "Име за полето „От“",
|
||||
"from-help": "Името на изпращача, което да бъде показано в е-писмото.",
|
||||
"sendmail-rate-limit": "Изпращане на <em>X</em> е-писма…",
|
||||
"sendmail-rate-delta": "…на всеки <em>X</em> милисекунди",
|
||||
"sendmail-rate-help": "Задава на програмата за изпращане на е-писма на NodeBB да ограничи броя едновременно изпращани съобщения, за да не се претоварват пощенските сървъри. Тези настройки не се вземат предвид, ако е включена настройката „Транспорт чрез SMTP“ (по-долу).",
|
||||
|
||||
"smtp-transport": "Транспорт чрез SMTP",
|
||||
"smtp-transport.enabled": "Използване на външен сървър за е-поща за изпращане на е-писма",
|
||||
@@ -33,8 +30,8 @@
|
||||
"testing.select": "Изберете шаблон за е-писма",
|
||||
"testing.send": "Изпращане на пробно е-писмо",
|
||||
"testing.send-help": "Пробното е-писмо ще бъде изпратено до е-пощата на текущо вписания потребител.",
|
||||
"subscriptions": "Резюмета по е-поща",
|
||||
"subscriptions.disable": "Изключване на резюметата по е-пощата",
|
||||
"subscriptions": "Абонаменти за е-писма",
|
||||
"subscriptions.disable": "Изключване на известията по е-поща за абонати",
|
||||
"subscriptions.hour": "Време за разпращане",
|
||||
"subscriptions.hour-help": "Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>"
|
||||
}
|
||||
@@ -3,9 +3,10 @@
|
||||
"private-groups": "Частни групи",
|
||||
"private-groups.help": "Ако е включено, присъединяването към групи ще изисква одобрение от собственик на групата. <em>(По подразбиране: включено)</em>",
|
||||
"private-groups.warning": "<strong>Внимание!</strong> Ако това е изключено и имате частни групи, те автоматично ще станат публични.",
|
||||
"allow-creation": "Позволяване на създаването на групи",
|
||||
"allow-creation-help": "Ако е включено, потребителите ще могат да създават групи. <em>(По подразбиране: изключено)</em>",
|
||||
"allow-multiple-badges-help": "Това може да се използва, за да позволи на потребителите да избират множество значки за групите. Изисква поддържа на теми.",
|
||||
"max-name-length": "Минимална дължина на името на група",
|
||||
"max-title-length": "Максимална дължина на заглавието на група",
|
||||
"cover-image": "Изображение на корицата за групата",
|
||||
"default-cover": "Стандартни изображения на корицата",
|
||||
"default-cover-help": "Добавете стандартни изображения на корицата (разделени със запетаи) за групите, които нямат качено такова."
|
||||
|
||||
@@ -7,21 +7,18 @@
|
||||
"sorting.most-posts": "Първо тези с най-много публикации",
|
||||
"sorting.topic-default": "Подредба по подразбиране на темите",
|
||||
"length": "Дължина на публикациите",
|
||||
"post-queue": "Опашка за публикации",
|
||||
"restrictions": "Ограничения за публикуването",
|
||||
"restrictions-new": "Ограничения за новите потребители",
|
||||
"restrictions.post-queue": "Включване на опашката за публикации",
|
||||
"restrictions.post-queue-rep-threshold": "Нужна репутация за пропускане на опашката за публикации",
|
||||
"restrictions.groups-exempt-from-post-queue": "Избиране на групи, които да пропускат опашката за публикации",
|
||||
"restrictions-new.post-queue": "Включване на ограниченията за новите потребители",
|
||||
"restrictions.post-queue-help": "Ако опашката за публикации е включена, публикациите на новите потребители ще бъдат добавяни в опашка за одобрение",
|
||||
"restrictions-new.post-queue-help": "Ако ограниченията за новите потребители са включени, това ще зададе някои ограничения за публикациите създадени от новите потребители",
|
||||
"restrictions.post-queue-help": "Ако опашката за публикации е включена, публикациите на новите потребители ще бъдат добавяни в опашка за одобрение.",
|
||||
"restrictions-new.post-queue-help": "Ако ограниченията за новите потребители са включени, това ще зададе някои ограничения за публикациите създадени от новите потребители.",
|
||||
"restrictions.seconds-between": "Брой секунди между публикациите",
|
||||
"restrictions.seconds-between-new": "Брой секунди между публикациите за нови потребители",
|
||||
"restrictions.rep-threshold": "Необходима репутация за премахване на това ограничение",
|
||||
"restrictions.seconds-before-new": "Брой секунди преди новите потребители да могат да публикуват за пръв път",
|
||||
"restrictions.seconds-edit-after": "Брой секунди, през които публикациите могат да бъдат редактирани. (0 = изключено)",
|
||||
"restrictions.seconds-delete-after": "Брой секунди, през които публикациите могат да бъдат изтрити. (0 = изключено)",
|
||||
"restrictions.seconds-defore-new": "Брой секунди преди новите потребители да могат да публикуват",
|
||||
"restrictions.seconds-edit-after": "Брой секунди, в които потребителите не могат да редактират публикациите си след публикуването им. (0 = изключено)",
|
||||
"restrictions.seconds-delete-after": "Брой секунди, в които потребителите не могат да изтрият публикациите си след публикуването им. (0 = изключено)",
|
||||
"restrictions.replies-no-delete": "Брой отговори, след които потребителите вече не могат да изтриват собствените си теми. (0 = изключено)",
|
||||
"restrictions.min-title-length": "Минимална дължина на заглавието",
|
||||
"restrictions.max-title-length": "Максимална дължина на заглавието",
|
||||
@@ -32,8 +29,6 @@
|
||||
"timestamp": "Време",
|
||||
"timestamp.cut-off": "Използване на дата след (в брой дни)",
|
||||
"timestamp.cut-off-help": "Датите и времената ще бъдат показвани относително (напр. „преди 3 часа“ или „преди 5 дни“), и преведени на множество\n\\t\\t\\t\\t\\tезици. След определено време, този текст ще започне да показва самите дата и час, според езика на потребителя\n\\t\\t\\t\\t\\t(напр. „5 ноември 2016 15:30“).<br /><em>(По подразбиране: <code>30</code>, тоест един месец). Ако зададете 0, винаги ще се изписват дати, а ако оставите полето празно, времето ще бъде винаги относително.</em>",
|
||||
"timestamp.necro-threshold": "Мъртва граница (в дни)",
|
||||
"timestamp.necro-threshold-help": "Между публикациите ще бъде показано съобщение, ако времето между тях е по-дълго от мъртвата граница. (По подразбиране: <code>7</code>, или една седмица). Задайте 0 за изключване.</em>",
|
||||
"teaser": "Представителна публикация",
|
||||
"teaser.last-post": "Последната – Показване на последната публикация, или първоначалната такава, ако няма отговори.",
|
||||
"teaser.last-reply": "Последната – Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
"min-length": "Минимална дължина на етикетите",
|
||||
"max-length": "Максимална дължина на етикетите",
|
||||
"goto-manage": "Щракнете тук, за да отворите страницата за управление на етикетите.",
|
||||
"privacy": "Поверителност",
|
||||
"list-private": "Списъкът с етикети да бъде частен",
|
||||
"related-topics": "Свързани теми",
|
||||
"max-related-topics": "Максимален брой свързани теми, които да бъдат показвани (ако това се поддържа от темата)"
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
"posts": "Публикации",
|
||||
"allow-files": "Позволяване на потребителите да качват обикновени файлове",
|
||||
"private": "Качените файлове да бъдат частни",
|
||||
"strip-exif-data": "Премахване на данните EXIF",
|
||||
"private-extensions": "Файлови разширения, които да бъдат частни",
|
||||
"private-uploads-extensions-help": "Въведете списък от файлови разширения, разделени със запетаи, които искате да бъдат частни (например <code>pdf,xls,doc</code>). Ако оставите това поле празно, всички файлове ще бъдат частни.",
|
||||
"resize-image-width-threshold": "Преоразмеряване на изображенията, ако са по-широки от определената ширина",
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
"disable-email-changes": "Забраняване на промяната на е-пощата",
|
||||
"disable-password-changes": "Забраняване на промяната на паролата",
|
||||
"allow-account-deletion": "Позволяване на изтриването на профила",
|
||||
"user-info-private": "Скриване на списъка от потребители и данните от гостите.",
|
||||
"hide-fullname": "Скриване на пълното име от потребителите",
|
||||
"hide-email": "Скриване на е-пощата от потребителите",
|
||||
"themes": "Теми",
|
||||
@@ -34,15 +35,13 @@
|
||||
"online-cutoff-help": "Ако потребителят не извършва никакви действия през този период, ще бъде смятан за неактивен и няма да получава известия в реално време.",
|
||||
"registration": "Регистриране на потребителите",
|
||||
"registration-type": "Вид регистриране",
|
||||
"registration-approval-type": "Вид одобрение на регистрацията",
|
||||
"registration-type.normal": "Обикновено",
|
||||
"registration-type.admin-approval": "Одобрена от администратор",
|
||||
"registration-type.admin-approval-ip": "Одобрена от администратор по IP адрес",
|
||||
"registration-type.invite-only": "Само с покана",
|
||||
"registration-type.admin-invite-only": "Само с покана от администратор",
|
||||
"registration-type.disabled": "Без регистриране",
|
||||
"registration-type.help": "Обикновена — Потребителите могат да се регистрират от страницата /register.<br/>\nСамо с покана — Потребителите могат да поканят други от страницата с <a href=\"%1/users\" target=\"_blank\">потребителите</a>.<br/>\nСамо с покана от администратор — Само администратори могат да канят други от страницата с <a href=\"%1/users\" target=\"_blank\">потребителите</a> и от страниците за <a href=\"%1/admin/manage/users\">управление на потребителите</a>.<br/>\nБез регистриране — Потребителите не се регистрират.<br/>",
|
||||
"registration-approval-type.help": "Обикновена — Потребителите се регистрират на момента.<br/>\nОдобрена от администратор — Потребителските регистрации се поставят в <a href=\"%1/admin/manage/registration\">опашка за одобрение</a>, която администраторите преглеждат.<br/>\nОдобрена от администратор по IP адрес — Новите потребители се регистрират по обикновения начин, а онези, от чиито IP адрес вече са се регистрирали други акаунти, се нуждаят от одобрението на администратор.<br/>",
|
||||
"registration-type.help": "Обикновена — Потребителите могат да се регистрират от страницата /register.<br/>\nОдобрена от администратор — Потребителските регистрации се поставят в <a href=\"%1/admin/manage/registration\">опашка за одобрение</a>, която администраторите преглеждат.<br/>\nОдобрена от администратор по IP адрес — Новите потребители се регистрират по обикновения начин, а онези, от чиито IP адрес вече са се регистрирали други акаунти, се нуждаят от одобрението на администратор.<br/>\nСамо с покана — Потребителите могат да поканят други от страницата с <a href=\"%1/users\" target=\"_blank\">потребителите</a>.<br/>\nСамо с покана от администратор — Само администратори могат да канят други от страницата с <a href=\"%1/users\" target=\"_blank\">потребителите</a> и от страниците за <a href=\"%1/admin/manage/users\">управление на потребителите</a>.<br/>\nБез регистриране — Потребителите не се регистрират.<br/>",
|
||||
"registration.max-invites": "Максимален брой покани на потребител",
|
||||
"max-invites": "Максимален брой покани на потребител",
|
||||
"max-invites-help": "0 = няма ограничение. Администраторите могат да разпращат неограничен брой покани.<br>Тази стойност се използва, само ако е избран режимът „Само с покана“.",
|
||||
@@ -71,9 +70,5 @@
|
||||
"email-post-notif": "Изпращане на е-писмо, когато се появи отговор в темите, за които съм абониран(а).",
|
||||
"follow-created-topics": "Следване на темите, които създавате",
|
||||
"follow-replied-topics": "Следване на темите, на които отговаряте",
|
||||
"default-notification-settings": "Настройки по подразбиране за известията",
|
||||
"categoryWatchState": "Състояние по подразбиране за следенето на категории",
|
||||
"categoryWatchState.watching": "Да се следят",
|
||||
"categoryWatchState.notwatching": "Да не се следят",
|
||||
"categoryWatchState.ignoring": "Да се пренебрегват"
|
||||
"default-notification-settings": "Настройки по подразбиране за известията"
|
||||
}
|
||||
@@ -7,16 +7,14 @@
|
||||
"browsing": "разглежда",
|
||||
"no_replies": "Няма отговори",
|
||||
"no_new_posts": "Няма нови публикации.",
|
||||
"share_this_category": "Споделяне на тази категория",
|
||||
"watch": "Следене",
|
||||
"ignore": "Пренебрегване",
|
||||
"watching": "Следите",
|
||||
"not-watching": "Не следите",
|
||||
"ignoring": "Пренебрегвате",
|
||||
"watching.description": "Темите да се показват в непрочетените и скорошните",
|
||||
"not-watching.description": "Темите да не се показват в непрочетените, а само в скорошните",
|
||||
"ignoring.description": "Темите да не се показват нито в непрочетените, нито в скорошните",
|
||||
"watching.message": "Вече следите новите неща в категорията и подкатегориите ѝ",
|
||||
"notwatching.message": "Вече не следите новите неща в категорията и подкатегориите ѝ",
|
||||
"ignoring.message": "Вече пренебрегвате новите неща в тази категория и всички нейни подкатегории",
|
||||
"watching.description": "Темите да се показват в непрочетените",
|
||||
"ignoring.description": "Темите да не се показват в непрочетените",
|
||||
"watch.message": "Вече следите новите неща в категорията и подкатегориите ѝ",
|
||||
"ignore.message": "Вече не следите новите неща в тази категория и всички нейни подкатегории",
|
||||
"watched-categories": "Следени категории"
|
||||
}
|
||||
@@ -13,37 +13,30 @@
|
||||
"welcome.cta": "Натиснете тук, за да потвърдите своята е-поща.",
|
||||
"invitation.text1": "%1 Ви покани да се присъедините към %2",
|
||||
"invitation.text2": "Поканата Ви ще изтече след %1 дни.",
|
||||
"invitation.cta": "Натиснете тук, за да си създадете акаунт.",
|
||||
"invitation.ctr": "Натиснете тук, за да си създадете акаунт.",
|
||||
"reset.text1": "Получихме заявка за подновяване на Вашата парола, най-вероятно защото сте я забравили. Ако това не е така, моля не обръщайте внимание на това е-писмо.",
|
||||
"reset.text2": "За да продължите с процедурата по подновяване на паролата, моля последвайте следната връзка:",
|
||||
"reset.cta": "Натиснете тук, за да нулирате паролата си",
|
||||
"reset.notify.subject": "Паролата беше променена успешно",
|
||||
"reset.notify.text1": "Известяваме Ви, че на %1, Вашата парола беше променена успешно.",
|
||||
"reset.notify.text2": "Ако не сте поискали това, моля, свържете се незабавно с администратор.",
|
||||
"digest.notifications": "Имате непрочетени известия от %1:",
|
||||
"digest.latest_topics": "Последни теми от %1",
|
||||
"digest.cta": "Натиснете тук, за да посетите %1",
|
||||
"digest.unsub.info": "Това резюме беше изпратено до Вас поради настройките Ви за абонаментите.",
|
||||
"digest.no_topics": "Не е имало дейност по темите в последните %1",
|
||||
"digest.day": "ден",
|
||||
"digest.week": "месец",
|
||||
"digest.month": "година",
|
||||
"digest.subject": "Резюме за %1",
|
||||
"digest.title.day": "Дневното Ви резюме",
|
||||
"digest.title.week": "Седмичното Ви резюме",
|
||||
"digest.title.month": "Месечното Ви резюме",
|
||||
"notif.chat.subject": "Получено е ново съобщение от %1",
|
||||
"notif.chat.cta": "Натиснете тук, за да продължите дискусията",
|
||||
"notif.chat.unsub.info": "Това известие за разговор беше изпратено до Вас поради настройките Ви за абонаментите.",
|
||||
"notif.post.cta": "Натиснете тук, за да прочетете цялата тема",
|
||||
"notif.post.unsub.info": "Това известие за публикация беше изпратено до Вас поради настройките Ви за абонаментите.",
|
||||
"notif.post.unsub.one-click": "Или можете да се отпишете от подобни бъдещи съобщения, като натиснете",
|
||||
"notif.cta": "Към форума",
|
||||
"notif.cta-new-reply": "Преглед на публикацията",
|
||||
"notif.cta-new-chat": "Преглед на разговора",
|
||||
"notif.test.short": "Изпробване на известията",
|
||||
"notif.test.long": "Това е пробно е-писмо за проверка на работата на известията.",
|
||||
"notif.cta": "Натиснете тук, за да преминете към форума",
|
||||
"test.text1": "Това е пробно е-писмо, за да потвърдим, че изпращачът на е-поща е правилно настроен за Вашия NodeBB.",
|
||||
"unsub.cta": "Натиснете тук, за да промените тези настройки",
|
||||
"unsubscribe": "отписване",
|
||||
"unsub.success": "Повече няма да получавате е-писма от пощенския списък на <strong>%1</strong>",
|
||||
"banned.subject": "Вие бяхте блокиран(а) от %1",
|
||||
"banned.text1": "Потребителят %1 беше блокиран от %2.",
|
||||
"banned.text2": "Това блокиране ще е в сила до %1.",
|
||||
|
||||
@@ -11,9 +11,6 @@
|
||||
"invalid-uid": "Грешен идентификатор на потребител",
|
||||
"invalid-username": "Грешно потребителско име",
|
||||
"invalid-email": "Грешна е-поща",
|
||||
"invalid-fullname": "Грешно пълно име",
|
||||
"invalid-location": "Грешно местоположение",
|
||||
"invalid-birthday": "Грешна рождена дата",
|
||||
"invalid-title": "Грешно заглавие",
|
||||
"invalid-user-data": "Грешни потребителски данни",
|
||||
"invalid-password": "Грешна парола",
|
||||
@@ -26,18 +23,16 @@
|
||||
"invalid-pagination-value": "Грешен номер на странициране, трябва да бъде между %1 и %2",
|
||||
"username-taken": "Потребителското име е заето",
|
||||
"email-taken": "Е-пощата е заета",
|
||||
"email-not-confirmed": "Няма да можете да публикувате съобщения, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
||||
"email-not-confirmed": "Вашата е-поща все още не е потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
||||
"email-not-confirmed-chat": "Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
||||
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Няма да можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
|
||||
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение.",
|
||||
"no-email-to-confirm": "Този форум изисква потвърдена е-поща. Моля, натиснете тук, за да въведете е-поща",
|
||||
"email-confirm-failed": "Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
|
||||
"confirm-email-already-sent": "Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
|
||||
"sendmail-not-found": "Изпълнимият файл на „sendmail“ не може да бъде намерен. Моля, уверете се, че е инсталиран и изпълним за потребителя, чрез който е пуснат NodeBB.",
|
||||
"digest-not-enabled": "Този потребител няма включени резюмета, или системната настройка по подразбиране е да не се изпращат резюмета",
|
||||
"username-too-short": "Потребителското име е твърде кратко",
|
||||
"username-too-long": "Потребителското име е твърде дълго",
|
||||
"password-too-long": "Паролата е твърде дълга",
|
||||
"reset-rate-limited": "Твърде много подновявания на паролата (има ограничение на честотата)",
|
||||
"user-banned": "Потребителят е блокиран",
|
||||
"user-banned-reason": "За съжаление, този акаунт е блокиран (Причина: %1)",
|
||||
"user-banned-reason-until": "За съжаление, този акаунт е блокиран до %1 (Причина: %2)",
|
||||
@@ -103,8 +98,6 @@
|
||||
"group-needs-owner": "Тази група се нуждае от поне един собственик",
|
||||
"group-already-invited": "Този потребител вече е бил поканен",
|
||||
"group-already-requested": "Вашата заявка за членство вече е била изпратена",
|
||||
"group-join-disabled": "В момента не можете да се присъедините към тази група",
|
||||
"group-leave-disabled": "В момента не можете да напуснете тази група",
|
||||
"post-already-deleted": "Тази публикация вече е изтрита",
|
||||
"post-already-restored": "Тази публикация вече е възстановена",
|
||||
"topic-already-deleted": "Тази тема вече е изтрита",
|
||||
@@ -150,6 +143,7 @@
|
||||
"invite-maximum-met": "Вие сте поканили максимално позволения брой хора (%1 от %2).",
|
||||
"no-session-found": "Няма намерена сесия на вписване!",
|
||||
"not-in-room": "Потребителят не е в стаята",
|
||||
"no-users-in-room": "Няма потребители в тази стая",
|
||||
"cant-kick-self": "Не можете да изритате себе си от групата",
|
||||
"no-users-selected": "Няма избран(и) потребител(и)",
|
||||
"invalid-home-page-route": "Грешен път към началната страница",
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
"updated": "Обновено",
|
||||
"target-purged": "Съдържанието, за което се отнася този доклад, е било изтрито и вече не е налично.",
|
||||
|
||||
"graph-label": "Дневни етикети",
|
||||
"quick-filters": "Бързи филтри",
|
||||
"filter-active": "В този списък с доклади има един или повече филтри",
|
||||
"filter-reset": "Премахване на филтрите",
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
"alert.banned.message": "Вие току-що бяхте блокиран. Сега ще излезете от системата.",
|
||||
"alert.unfollow": "Вие вече не следвате %1!",
|
||||
"alert.follow": "Вие следвате %1!",
|
||||
"online": "На линия",
|
||||
"users": "Потребители",
|
||||
"topics": "Теми",
|
||||
"posts": "Публ.",
|
||||
@@ -59,8 +60,6 @@
|
||||
"downvoted": "С отрицателни гласове",
|
||||
"views": "Прегл.",
|
||||
"reputation": "Репутация",
|
||||
"lastpost": "Последна публикация",
|
||||
"firstpost": "Първа публикация",
|
||||
"read_more": "още",
|
||||
"more": "Още",
|
||||
"posted_ago_by_guest": "публикувано %1 от гост",
|
||||
@@ -78,7 +77,6 @@
|
||||
"recentposts": "Скорошни публикации",
|
||||
"recentips": "Наскоро ползвани IP адреси",
|
||||
"moderator_tools": "Модераторски инструменти",
|
||||
"online": "На линия",
|
||||
"away": "Отсъстващ",
|
||||
"dnd": "Отпочиващ",
|
||||
"invisible": "Невидим",
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
"details.latest_posts": "Скорошни публикации",
|
||||
"details.private": "Частна",
|
||||
"details.disableJoinRequests": "Забраняване на заявките за присъединяване",
|
||||
"details.disableLeave": "Забраняване на потребители да напускат групата",
|
||||
"details.grant": "Даване/отнемане на собственост",
|
||||
"details.kick": "Изгонване",
|
||||
"details.kick_confirm": "Наистина ли искате да премахнете този член на групата?",
|
||||
@@ -37,8 +36,7 @@
|
||||
"details.description": "Описание",
|
||||
"details.badge_preview": "Преглед на емблемата",
|
||||
"details.change_icon": "Промяна на иконката",
|
||||
"details.change_label_colour": "Промяна на цвета на етикета",
|
||||
"details.change_text_colour": "Промяна на цвета на текста",
|
||||
"details.change_colour": "Промяна на цвета",
|
||||
"details.badge_text": "Текст на емблемата",
|
||||
"details.userTitleEnabled": "Показване на емблемата",
|
||||
"details.private_help": "Ако е включено, присъединяването към група ще изисква одобрение от собственик на групата.",
|
||||
@@ -49,11 +47,9 @@
|
||||
"event.updated": "Подробностите за групата бяха обновени",
|
||||
"event.deleted": "Групата „%1“ е изтрита",
|
||||
"membership.accept-invitation": "Приемане на поканата",
|
||||
"membership.accept.notification_title": "В момента сте член на <strong>%1</strong>",
|
||||
"membership.invitation-pending": "Чакаща покана",
|
||||
"membership.join-group": "Присъединяване към групата",
|
||||
"membership.leave-group": "Напускане на групата",
|
||||
"membership.leave.notification_title": "<strong>%1</strong> напусна групата <strong>%2</strong>",
|
||||
"membership.reject": "Отхвърляне",
|
||||
"new-group.group_name": "Име на групата:",
|
||||
"upload-group-cover": "Качване на снимка за показване на групата",
|
||||
|
||||
@@ -34,9 +34,6 @@
|
||||
"chat.kick": "Изгонване",
|
||||
"chat.show-ip": "Показване на IP адреса",
|
||||
"chat.owner": "Собственик на стаята",
|
||||
"chat.system.user-join": "%1 се присъедини към стаята",
|
||||
"chat.system.user-leave": "%1 напусна стаята",
|
||||
"chat.system.room-rename": "%2 преименува тази стая: %1",
|
||||
"composer.compose": "Писане",
|
||||
"composer.show_preview": "Показване на прегледа",
|
||||
"composer.hide_preview": "Скриване на прегледа",
|
||||
|
||||
@@ -56,7 +56,6 @@
|
||||
"notificationType_follow": "Когато някой започне да Ви следва",
|
||||
"notificationType_new-chat": "Когато получите съобщение в разговор",
|
||||
"notificationType_group-invite": "Когато получите покана за група",
|
||||
"notificationType_group-request-membership": "Когато някой поиска да се включи в група, на която Вие сте собственик",
|
||||
"notificationType_new-register": "Когато някой бъде добавен в опашката за регистрация",
|
||||
"notificationType_post-queue": "Когато бъде добавена нова публикация в опашката",
|
||||
"notificationType_new-post-flag": "Когато публикация бъде докладвана",
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
"account/following": "Хора, които %1 следва",
|
||||
"account/followers": "Хора, които следват %1",
|
||||
"account/posts": "Публикации от %1",
|
||||
"account/latest-posts": "Последни публикации от %1",
|
||||
"account/topics": "Теми, създадени от %1",
|
||||
"account/groups": "Групите на %1",
|
||||
"account/watched_categories": "Следените категории на %1",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"repeat_password": "Потвърдете паролата",
|
||||
"enter_email": "Моля, въведете <strong>адреса на е-пощата си</strong> и ще Ви изпратим е-писмо с инструкции за това как да достъпите акаунта си.",
|
||||
"enter_email_address": "Въведете адрес на е-поща",
|
||||
"password_reset_sent": "Ако посоченият адрес съответства на съществуващ потребителски акаунт, то вече му е изпратено е-писмо за подновяване на паролата. Имайте предвид, че може да бъде изпращано само по едно е-писмо на минута.",
|
||||
"password_reset_sent": "Информацията за подновяване на паролата беше изпратена на посочения адрес. Имайте предвид, че може да бъде изпращано само по едно е-писмо на минута.",
|
||||
"invalid_email": "Грешна е-поща / е-пощата не съществува!",
|
||||
"password_too_short": "Паролата е твърде кратка. Моля, изберете друга парола.",
|
||||
"passwords_do_not_match": "Двете пароли, които въведохте, са различни.",
|
||||
|
||||
@@ -43,6 +43,5 @@
|
||||
"clear-preferences": "Изчистване на предпочитанията",
|
||||
"search-preferences-saved": "Предпочитанията за търсене бяха запазени",
|
||||
"search-preferences-cleared": "Предпочитанията за търсене бяха изчистени",
|
||||
"show-results-as": "Показване на резултатите като",
|
||||
"see-more-results": "Показване на още резултати (%1)"
|
||||
"show-results-as": "Показване на резултатите като"
|
||||
}
|
||||
@@ -18,13 +18,11 @@
|
||||
"last_reply_time": "Последен отговор",
|
||||
"reply-as-topic": "Отговор в нова тема",
|
||||
"guest-login-reply": "Впишете се, за да отговорите",
|
||||
"login-to-view": "🔒 Впишете се, за да видите това",
|
||||
"edit": "Редактиране",
|
||||
"delete": "Изтриване",
|
||||
"purge": "Изчистване",
|
||||
"restore": "Възстановяване",
|
||||
"move": "Преместване",
|
||||
"change-owner": "Промяна на собственика",
|
||||
"fork": "Разделяне",
|
||||
"link": "Връзка",
|
||||
"share": "Споделяне",
|
||||
@@ -66,7 +64,6 @@
|
||||
"thread_tools.move": "Преместване на темата",
|
||||
"thread_tools.move-posts": "Преместване на публикациите",
|
||||
"thread_tools.move_all": "Преместване на всички",
|
||||
"thread_tools.change_owner": "Промяна на собственика",
|
||||
"thread_tools.select_category": "Избиране на категория",
|
||||
"thread_tools.fork": "Разделяне на темата",
|
||||
"thread_tools.delete": "Изтриване на темата",
|
||||
@@ -101,7 +98,6 @@
|
||||
"delete_posts_instruction": "Натиснете публикациите, които искате да изтриете/изчистите",
|
||||
"merge_topics_instruction": "Натиснете темите, които искате да слеете",
|
||||
"move_posts_instruction": "Натиснете публикациите, които искате да преместите",
|
||||
"change_owner_instruction": "Натиснете публикациите, които искате да прехвърлите на друг потребител",
|
||||
"composer.title_placeholder": "Въведете заглавието на темата си тук...",
|
||||
"composer.handle_placeholder": "Име",
|
||||
"composer.discard": "Отхвърляне",
|
||||
@@ -133,7 +129,5 @@
|
||||
"diffs.description": "Тази публикация има <strong>%1</strong> варианта. Щракнете върху някоя от версиите по-долу, за да видите съдържанието ѝ в съответния момент.",
|
||||
"diffs.no-revisions-description": "Тази публикация има <strong>%1</strong> варианта.",
|
||||
"diffs.current-revision": "текуща версия",
|
||||
"diffs.original-revision": "оригинална версия",
|
||||
"timeago_later": "%1 по-късно",
|
||||
"timeago_earlier": "%1 по-рано"
|
||||
"diffs.original-revision": "оригинална версия"
|
||||
}
|
||||
@@ -26,10 +26,8 @@
|
||||
"reputation": "Репутация",
|
||||
"bookmarks": "Отметки",
|
||||
"watched_categories": "Следени категории",
|
||||
"change_all": "Промяна на всички",
|
||||
"watched": "Следени",
|
||||
"ignored": "Пренебрегвани",
|
||||
"default-category-watch-state": "Състояние по подразбиране за следенето на категории",
|
||||
"followers": "Последователи",
|
||||
"following": "Следва",
|
||||
"blocks": "Блокира",
|
||||
@@ -50,7 +48,6 @@
|
||||
"change_picture": "Промяна на снимката",
|
||||
"change_username": "Промяна на потребителското име",
|
||||
"change_email": "Промяна на е-пощата",
|
||||
"email_same_as_password": "Моля, въведете текущата си парола, за да продължите – Вие въведохте новата си е-поща отново",
|
||||
"edit": "Редактиране",
|
||||
"edit-profile": "Редактиране на профила",
|
||||
"default_picture": "Иконка по подразбиране",
|
||||
@@ -125,7 +122,6 @@
|
||||
"follow_topics_you_reply_to": "Следене на темите, в които отговаряте",
|
||||
"follow_topics_you_create": "Следене на темите, които създавате",
|
||||
"grouptitle": "Заглавие на групата",
|
||||
"group-order-help": "Изберете група и използвайте стрелките, за да пренаредите заглавията",
|
||||
"no-group-title": "Няма заглавие на група",
|
||||
"select-skin": "Изберете облик",
|
||||
"select-homepage": "Изберете начална страница",
|
||||
|
||||