Merge branch 'v1.18.x' of https://github.com/NodeBB/NodeBB into v1.18.x

v1.18.x
落雨楓 2 years ago
commit 5a386214b1

@ -10,7 +10,7 @@ checks:
threshold: 500
method-lines:
config:
threshold: 50
threshold: 75
method-complexity:
config:
threshold: 10

@ -0,0 +1,51 @@
name: Run Docker
# Controls when the workflow will run
on:
push:
branches:
- 'master'
- 'v*.x'
tags:
- 'v*'
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: nodebb/docker
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest
- name: Build and push Docker images
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}

@ -21,7 +21,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
node: [12, 14]
node: [12, 14, 16]
database: [mongo-dev, mongo, redis, postgres]
include:
# only run coverage once

@ -1,17 +0,0 @@
{
"indent_size": 4,
"indent_char": " ",
"indent_level": 0,
"indent_with_tabs": true,
"preserve_newlines": true,
"max_preserve_newlines": 10,
"jslint_happy": true,
"brace_style": "collapse",
"keep_array_indentation": false,
"keep_function_indentation": false,
"space_before_conditional": true,
"break_chained_methods": false,
"eval_code": false,
"unescape_strings": false,
"wrap_line_length": 0
}

@ -1,91 +0,0 @@
{
// JSHint Default Configuration File (as on JSHint website)
// See http://jshint.com/docs/ for more details
"maxerr" : 50, // {int} Maximum error before stopping
"esversion": 6,
// Enforcing
"bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
"camelcase" : false, // true: Identifiers must be in camelCase
"curly" : true, // true: Require {} for every new block or scope
"eqeqeq" : true, // true: Require triple equals (===) for comparison
"forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty()
"immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
"indent" : 4, // {int} Number of spaces to use for indentation
"latedef" : false, // true: Require variables/functions to be defined before being used
"newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()`
"noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee`
"noempty" : true, // true: Prohibit use of empty blocks
"nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment)
"plusplus" : false, // true: Prohibit use of `++` & `--`
"quotmark" : false, // Quotation mark consistency:
// false : do nothing (default)
// true : ensure whatever is used is consistent
// "single" : require single quotes
// "double" : require double quotes
"undef" : true, // true: Require all non-global variables to be declared (prevents global leaks)
"unused" : true, // true: Require all defined variables be used
"strict" : true, // true: Requires all functions run in ES5 Strict Mode
"trailing" : false, // true: Prohibit trailing whitespaces
"maxparams" : false, // {int} Max number of formal params allowed per function
"maxdepth" : false, // {int} Max depth of nested blocks (within functions)
"maxstatements" : false, // {int} Max number statements per function
"maxcomplexity" : false, // {int} Max cyclomatic complexity per function
"maxlen" : false, // {int} Max number of characters per line
// Relaxing
"asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons)
"boss" : false, // true: Tolerate assignments where comparisons would be expected
"debug" : false, // true: Allow debugger statements e.g. browser breakpoints.
"eqnull" : false, // true: Tolerate use of `== null`
"es5" : false, // true: Allow ES5 syntax (ex: getters and setters)
"esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`)
"moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features)
// (ex: `for each`, multiple try/catch, function expression…)
"evil" : false, // true: Tolerate use of `eval` and `new Function()`
"expr" : false, // true: Tolerate `ExpressionStatement` as Programs
"funcscope" : false, // true: Tolerate defining variables inside control statements"
"globalstrict" : false, // true: Allow global "use strict" (also enables 'strict')
"iterator" : false, // true: Tolerate using the `__iterator__` property
"lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
"laxbreak" : false, // true: Tolerate possibly unsafe line breakings
"laxcomma" : false, // true: Tolerate comma-first style coding
"loopfunc" : false, // true: Tolerate functions being defined in loops
"multistr" : false, // true: Tolerate multi-line strings
"proto" : false, // true: Tolerate using the `__proto__` property
"scripturl" : false, // true: Tolerate script-targeted URLs
"smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment
"shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
"sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation
"supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;`
"validthis" : false, // true: Tolerate using this in a non-constructor function
// Environments
"browser" : true, // Web Browser (window, document, etc)
"couch" : false, // CouchDB
"devel" : true, // Development/debugging (alert, confirm, etc)
"dojo" : false, // Dojo Toolkit
"jquery" : true, // jQuery
"mootools" : false, // MooTools
"node" : true, // Node.js
"nonstandard" : false, // Widely adopted globals (escape, unescape, etc)
"prototypejs" : false, // Prototype and Scriptaculous
"rhino" : false, // Rhino
"worker" : false, // Web Workers
"wsh" : false, // Windows Scripting Host
"yui" : false, // Yahoo User Interface
"mocha": true,
// Legacy
"nomen" : false, // true: Prohibit dangling `_` in variables
"onevar" : false, // true: Allow only one `var` statement per function
"passfail" : false, // true: Stop on first error
"white" : false, // true: Check against strict whitespace and indentation rules
// Custom Globals
"globals" : {
"Promise": true
} // additional predefined global variables
}

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

@ -1,3 +1,400 @@
#### v1.18.5 (2021-10-27)
##### Breaking Changes
* disable javascript in custom less tab (719cfc0d)
##### Chores
* remove .opacity() mixin as it is supported cross-browser (28efcb59)
* up themes (463b2076)
* up persona (1438f409)
* incrementing version number - v1.18.4 (945c2b0b)
* update changelog for v1.18.4 (7cbcb521)
* **deps:**
* update dependency lint-staged to v11.2.6 (8d4bb8bb)
* update dependency lint-staged to v11.2.5 (0728a994)
* update dependency lint-staged to v11.2.4 (f76a7882)
* update dependency husky to v7.0.4 (2a3e13f3)
* update dependency mocha to v9.1.3 (4784f016)
* update dependency eslint-plugin-import to v2.25.2 (3c3f45d9)
* update dependency jsdom to v18 (4b8dcd4c)
* update dependency eslint-plugin-import to v2.25.1 (7c4aebbd)
* update dependency lint-staged to v11.2.3 (288b5456)
* update dependency lint-staged to v11.2.2 (f96c8c4d)
* update dependency @commitlint/cli to v13.2.1 (52c38a1d)
* update dependency lint-staged to v11.2.1 (022e8df0)
* update dependency eslint-config-nodebb to v0.0.3 (4b92df82)
* **i18n:**
* fallback strings for new resources: nodebb.admin-settings-email, nodebb.error (9b68dc37)
* fallback strings for new resources: nodebb.admin-dashboard (ff962b5d)
* fallback strings for new resources: nodebb.admin-dashboard, nodebb.admin-menu (abe59131)
* fallback strings for new resources: nodebb.admin-manage-digest, nodebb.admin-settings-user, nodebb.user (2bed40be)
##### Documentation Changes
* update verbiage re: login API route (94c4f87b)
##### New Features
* new ACP option `emailPrompt` ... which allows administrators to disable the client-side prompt to encourage users to enter or confirm their email addresses (80ea12c1)
* show popular searches (f4cf482a)
* new plugin hook to allow plugins to reject email address on new registration or email change (6b4f35c2)
* utilities login API route now starts an actual login session, if requested (806a1e50)
* add method name to deprecation message (b91ae088)
* quote tooltip (66fca4e0)
* additional quality options for jpeg uploads, added quality and compression settings for png uploads (d22b076b)
* #8053, biweekly digest option (f7967bdf)
* core submit button dropdown (605a5381)
* added failing i18n tests (35af7634)
* confirm before deleting all events (#9875) (56d05b4e)
##### Bug Fixes
* **deps:**
* update dependency nodebb-theme-vanilla to v12.1.7 (#9944) (bf20965f)
* update dependency nodebb-theme-persona to v11.2.19 (#9943) (bcf85fcf)
* update dependency nodebb-rewards-essentials to v0.2.0 (7c2ecb12)
* update dependency nodebb-theme-vanilla to v12.1.6 (49b8b983)
* update dependency nodebb-theme-persona to v11.2.18 (ed0adf2c)
* update dependency nodebb-theme-persona to v11.2.17 (78661079)
* update dependency postcss to v8.3.11 (a5f4e206)
* update dependency nodebb-theme-vanilla to v12.1.5 (d74a6bd3)
* update dependency sharp to v0.29.2 (8b8fe393)
* update dependency postcss to v8.3.10 (b18a24e9)
* update dependency nodebb-theme-persona to v11.2.15 (f3c8d7da)
* update dependency nodebb-theme-persona to v11.2.14 (#9919) (5e08e67b)
* update dependency socket.io-client to v4.3.2 (deba3e27)
* update dependency socket.io to v4.3.1 (e1554f61)
* update socket.io packages (ce5a0a21)
* update dependency nodebb-plugin-spam-be-gone to v0.7.10 (600a8720)
* update dependency nodebb-plugin-composer-default to v7.0.10 (b0128f85)
* update dependency nodebb-plugin-markdown to v8.14.4 (f8f35d7e)
* update dependency nodebb-plugin-composer-default to v7.0.9 (ed874662)
* update dependency nodebb-theme-persona to v11.2.13 (1dba75e9)
* update dependency ioredis to v4.28.0 (4ff5452d)
* update dependency nodebb-theme-persona to v11.2.12 (fe9f82f6)
* update dependency ioredis to v4.27.11 (6d2e0aa9)
* update dependency nodebb-plugin-mentions to v2.14.1 (820f8cdf)
* update dependency jquery-ui to v1.13.0 (b0eb2aed)
* remove loading="lazy", fixes inf. scroll loaded images (01572785)
* windows tests (25ebbd65)
* undefined query showing in searches (6cfaea06)
* don't repeat search if on same page (89f5e06b)
* api session revoke test (0926ae6e)
* crash (da64810a)
* add missing translation (eb075c73)
* move record to controller (ee8e0480)
* profile edit fields showing translated values (63572c23)
* #9934, fix translator test (8d316d18)
* token verify (04dab1d5)
* guard against prototype pollution (1783f918)
* translator path traversal (c8b2fc46)
* there is no alltime digest, fixes translation in test email (e62948f7)
* clicking outside postContainer should close tooltip (47df62e7)
* minification regression (998b9e79)
* tooltip (fec7ebed)
* biweekly digest #8053 (9cb4de50)
* restore plugin upgrade checking logic (44687394)
* fallbacks for new langauge key (ed4ebd22)
* #9917, show topics as unread for guests (4333d217)
* clarify site settings urls vs config.json url (#9912) (6436aa65)
* clarify SMTP enable toggle (#9911) (09f198fc)
* don't overwrite reloadRequired with false (9e0ce027)
* delete translations in admin/general folder (since general was removed and relocated elsewhere) (b460e590)
* pushed missing key to tx and pulled fallbacks (21b61082)
* adding missing language namespace "top" (0f9b0b78)
* extra debug log (bd893cda)
* have renovate add `dependencies` label to its PRs (eddb9868)
* no global bootbox (#9879) (227456fb)
* #9872 update app badge with notification count if applicable (3e69bcdf)
* better nomenclature (c1149d04)
* html attributes (#9877) (3acaac4c)
* escape thumbs, allow robots meta tag (4f9717fb)
* missing translations (#9876) (7935bd9e)
##### Performance Improvements
* dont fs.open if plugin doesnt have language namespace (#9893) (1feb111a)
##### Refactors
* wider value field (c428ba80)
* dont save partial searches (c7e078d4)
* use search api for topic search (64192731)
* slowdown quick search (19ee7174)
* typo (a5287906)
* add callback to loadNotifications (f02fba29)
* simplified utilities API > login rout (506c34a8)
* log error as well (1d62bd6d)
* catch errors from buildHeader in error handler :fire: (73a9ca09)
* add missing helpers.tryRoute (d4da9840)
* shorter middleware (ee0282f5)
* meta/minifier use async/await (b2429ef0)
* remove unused var (90b81262)
* catch errors from digest (8e319a9b)
* less.render returns promise (14bc83a8)
* less.render already returns promise (6da32392)
* prompt.get already returns promise (c70eaa0a)
* no need for async/callbacks (057d1d58)
* no more :cow: (38756a0c)
* allow array of uids for blocks.is/list (a9bc6a09)
* show full url on error log (8e6bd7e9)
* var to const and let (#9885) (b0a24d6d)
* remove unused code (997fb2b3)
* remove unused colorpicker (543d8521)
##### Reverts
* lazy load (3d1cf168)
##### Tests
* fix broken openapi3 schema (7ef5214e)
* restore commented-out i18n test (fa1afbcf)
* moved topic event and topic thumb tests to subfolder for better organisation (154ffea0)
* remove escape (6c25b9db)
* possible fix to timeout (63109c07)
* increase timeout (8654a996)
#### v1.18.4 (2021-10-06)
##### Chores
* up persona (f4e62fb1)
* incrementing version number - v1.18.3 (57358743)
* update changelog for v1.18.3 (f066ddb8)
* **deps:**
* update dependency lint-staged to v11.2.0 (840b49b9)
* update commitlint monorepo to v13.2.0 (aa370310)
* update dependency mocha to v9.1.2 (6385b88e)
##### Documentation Changes
* added link to unofficial IRC channel (c5a48b44)
##### New Features
* use unread icon in mobile (27e53b42)
* cli user management commands (#9848) (d1ff3d62)
* #9855, allow uid for post queue notifications (5aea6c6a)
* add userData to static:user.delete (f24b630e)
* closes #9845, sort by views (6399b428)
* duplicate `requireEmailAddress` settings block to Settings > User (a9645475)
* mongodb driver 4.x (#9832) (07adb49e)
* a useless hover effect because raisins (1a61ffc5)
##### Bug Fixes
* **deps:**
* update dependency mongodb to v4.1.3 (b4fc2773)
* update dependency postcss to v8.3.9 (9455e5b2)
* update dependency autoprefixer to v10.3.7 (78895d05)
* update dependency nodebb-plugin-composer-default to v7.0.8 (9215c7d1)
* update dependency ioredis to v4.27.10 (4694382c)
* update dependency nodebb-theme-persona to v11.2.9 (346e0890)
* update dependency autoprefixer to v10.3.6 (058fdca4)
* update dependency yargs to v17.2.1 (d50dd801)
* update dependency postcss to v8.3.8 (193c92e3)
* update dependency passport to ^0.5.0 (daea8a86)
* update dependency connect-pg-simple to v7 (#9785) (054f3da6)
* update dependency yargs to v17.2.0 (c78309b5)
* #9866, fire vote hooks after reputation changes (#9867) (8ad9a103)
* #9865, don't display register messages after login (96f5312d)
* dont show decimails on auto approva minutes (a0df3890)
* #9864 (e954ca10)
* delete old topic tags (a70c69fa)
* switch inf. scroll to xhr (#9854) (4404e819)
* #9828, max-width (40915105)
* handle undefined returnTo on registerAbort (ac1b9692)
* lint (ff850b24)
* psql tests (123354ca)
* psql test (f8d4ec6c)
* possible test fix for subfolder redirect (3605ac81)
* missing relative path in test (4eacfef0)
* #9834, missing null email check on new registrations, added tests (58e0a366)
* crossorigin not showing up on manifest link tag (0faa4937)
* #9827, fix reward duplication (89af00d1)
##### Performance Improvements
* convert promise.all to single query (#9851) (ea04aede)
##### Refactors
* use utils.debounce (a7668a7f)
* remove async.waterfall from remaining upgrade scripts (6b34065f)
##### Tests
* dashboard (4f8647a5)
* add tests for admin privileges (9fe9ab08)
* add missing tests (34798325)
* remove debug log (8cb47548)
* no need to create fake interstitial as NodeBB comes with some by default (cb69934a)
#### v1.18.3 (2021-09-22)
##### Chores
* **deps:** update docker/build-push-action action to v2.7.0 (ee027719)
* incrementing version number - v1.18.2 (0a56158b)
* update changelog for v1.18.2 (27e9282a)
##### New Features
* move filter:topic.post hook to top of method (f194809f)
* add client-side static hook to fire immediately before any topic action (hint: delete `action` to stop default behaviour) (66eaae44)
* allow removing multiple items from list (397835a0)
* add uid to filter:user.saveSettings (7f48edc0)
* headers for global privs #9717 (#9762) (84ff1152)
* add ACP option to require email address on new registration (006fc700)
##### Bug Fixes
* **deps:**
* update dependency nodebb-plugin-composer-default to v7.0.7 (98554294)
* update dependency postcss to v8.3.7 (6ebe707c)
* update dependency autoprefixer to v10.3.5 (25687441)
* update dependency nodebb-plugin-composer-default to v7.0.6 (#9815) (c18678ce)
* update dependency nodebb-theme-persona to v11.2.8 (#9816) (39d73d0c)
* update dependency connect-mongo to v4.6.0 (8e886c85)
* update dependency nodebb-plugin-composer-default to v7.0.4 (8af54255)
* update dependency mongodb to v3.7.1 (9049dcd7)
* update dependency nodebb-theme-persona to v11.2.6 (506035b5)
* update dependency nodebb-theme-slick to v1.4.13 (787306a6)
* update dependency nodebb-plugin-composer-default to v7.0.3 (732b59c2)
* fixed element shifting in ACP menu that's been bothering me for 5-ish years (31975a62)
* #9822, use correct username/pwd (30f38771)
* remove unused translator (2add84a5)
* ban info test (07859f7e)
* #9819, show same time info for ban (9f0e55ad)
* show local time for ban (7a2f0ae1)
* crash (c437b336)
* remove caller from payload after hooks is done (15f9aaa6)
* bad uid reference (ce8ea6ea)
* update Topics.post and Topics.reply so that plugins can modify uid (or redirect a reply to a different topic) (7777812e)
* #9818, fix totalTime calculation (c4fc7bf9)
* missing microdata in category data (1ed62aa8)
* #9812, add topics:schedule (c0a52924)
* for subfolders (31a6d4b3)
* req.path doesn't have full url (0236ea86)
* escape moderation note before adding to dom (75ebe786)
* #9811, send bodyClass on 403 (40c9fca9)
* also launch docker workflow on release branches (944a7985)
* xss on flags page via ban reason (ba3582b8)
* up timeout for psql tests (896ff215)
* redis batch (0c4b875e)
* redis processing batch+1 items every iteration (3261edcc)
* #9560, don't save post diffs if content didn't change (8b576a37)
* #9790, get baseIndex on update for infinitescroll (6a55c027)
* #9790, fix sorting of more than one page of pinned topics (2657804c)
* privileges added by plugins (#9802) (3ecbb624)
* #9800, don't send all welcome test emails to test@example.org @julianlam (71ed50b9)
* docker - remove sha tag (b06e8dba)
* Return QEMU back, remove platforms definition (52eace4b)
* Docker workflow tweaks (#9792) (e7f4cde4)
* browsers autocompleting smtp fields when they should not (34afb747)
##### Refactors
* no regex (18252fb9)
* remove async.waterfall (58ac55c1)
* remove async.waterfall (222dccaf)
* remove async.waterfall (f35a0f43)
* allow plugins to replace og:image, or specify additional og:image (819917da)
##### Code Style Changes
* give me an A! :100: (0b4d7d1f)
#### v1.18.2 (2021-09-08)
##### Chores
* **deps:** update commitlint monorepo to v13 (87ba768f)
* incrementing version number - v1.18.1 (f8f80e4f)
* update changelog for v1.18.1 (0713475d)
##### New Features
* a slightly less ugly rewards panel (bf0c02a7)
##### Bug Fixes
* dashboard graph controls (a7855c4c)
* #9767 ACP change group icon fix (580a016b)
* #9781 (#9782) (0ce4b87d)
* replace logic in isPrivilegedOrSelfAndPasswordMatch to use privileges.users.canEdit (856ba78a)
* handle missing uid in deprecated socket call (cdaea611)
* use privileges.users.canEdit for image upload priv check (e33e046f)
* errors from registerComplete (a48bbdbf)
* simplify logic for fullname and email blanking in user retrieval (getUserDataByUserSlug) (60de0844)
* lint (1e2bda13)
* manifest error (488f0978)
* #9772, regression from https://github.com/NodeBB/NodeBB/commit/70a04bc10577e90e28d66a647d38cafc3307a285 (72710b80)
* push back some deprecations, remove deprecated stuff scheduled for v1.18.0 (dd4e66e2)
* deprecate userData.showHidden as it is functionally equivalent to userData.canEdit (4ac701d7)
* focus on save button on plugin activation (46e5e17d)
* #9773, fire hooks properly for priv changes (#9774) (6869920e)
* **deps:**
* update dependency sharp to v0.29.1 (ac6cd02f)
* update dependency nodebb-plugin-dbsearch to v5.0.3 (338f90fc)
* update dependency nodebb-theme-vanilla to v12.1.3 (0b3ea5ad)
* update dependency nodebb-theme-persona to v11.2.5 (57e54d55)
##### Refactors
* deprecate picture update socket call, new API routes for picture update (0a41741b)
##### Tests
* added test for external image via new change picture API (8cbad61e)
#### v1.18.1 (2021-09-03)
##### Chores
* found some hooks that don't play well docgen (ae793b4a)
* incrementing version number - v1.18.0 (1e436ae7)
* update changelog for v1.18.0 (2fd9c095)
* **deps:** update dependency mocha to v9.1.1 (64bac178)
##### New Features
* create folders in ACP uploads #9638 (#9750) (3df79683)
* column based view on wide priv. tables (#9699) (61f02f17)
* als (#9749) (e59d3575)
* add quick reply key (e9314842)
* add new lang key for no best posts (6e73d8c9)
##### Bug Fixes
* **deps:**
* update dependency autoprefixer to v10.3.4 (67b932f4)
* update dependency nodebb-theme-persona to v11.2.4 (fe18e100)
* update dependency mongodb to v3.7.0 (31a35d7f)
* update socket.io packages to v4.2.0 (f2028d70)
* update dependency ioredis to v4.27.9 (6052eb16)
* update dependency mongodb to v3.6.12 (#9761) (5fa982c1)
* update dependency nodebb-plugin-composer-default to v7.0.2 (33d51201)
* update dependency nodebb-theme-slick to v1.4.12 (1b416d7e)
* update dependency nodebb-theme-slick to v1.4.11 (65b32fa1)
* update dependency nodebb-theme-persona to v11.2.3 (6ce321e4)
* update dependency autoprefixer to v10.3.3 (91ba7cdf)
* update dependency nodebb-theme-slick to v1.4.9 (d80b378f)
* update dependency jquery-deserialize to v2.0.0 (#9744) (7f9451ce)
* determine indeterminate checkboxes (760ea9df)
* move app.alert back into the conditionals (ca9bae3a)
* only show email confirmation warning toast on pages that it applies (1bd1cc74)
* updated email confirm warning to be more positive (2d1380dd)
* automated tests are a good thing to have (6afeac37)
##### Refactors
* consistent jquery element var naming (fc0e655e)
* var to const (1272da65)
#### v1.18.0 (2021-08-25)
##### Breaking Changes

@ -1,17 +1,20 @@
FROM node:lts
RUN mkdir -p /usr/src/app
RUN mkdir -p /usr/src/app && \
chown -R node:node /usr/src/app
WORKDIR /usr/src/app
ARG NODE_ENV
ENV NODE_ENV $NODE_ENV
COPY install/package.json /usr/src/app/package.json
COPY --chown=node:node install/package.json /usr/src/app/package.json
USER node
RUN npm install --only=prod && \
npm cache clean --force
COPY . /usr/src/app
COPY --chown=node:node . /usr/src/app
ENV NODE_ENV=production \
daemon=false \

@ -1,8 +1,7 @@
# ![NodeBB](public/images/logo.svg)
[![Build Status](https://travis-ci.org/NodeBB/NodeBB.svg?branch=master)](https://travis-ci.org/NodeBB/NodeBB)
[![Workflow](https://github.com/NodeBB/NodeBB/actions/workflows/test.yaml/badge.svg)](https://github.com/NodeBB/NodeBB/actions/workflows/test.yaml)
[![Coverage Status](https://coveralls.io/repos/github/NodeBB/NodeBB/badge.svg?branch=master)](https://coveralls.io/github/NodeBB/NodeBB?branch=master)
[![Dependency Status](https://david-dm.org/nodebb/nodebb.svg?path=install)](https://david-dm.org/nodebb/nodebb?path=install)
[![Code Climate](https://codeclimate.com/github/NodeBB/NodeBB/badges/gpa.svg)](https://codeclimate.com/github/NodeBB/NodeBB)
[**NodeBB Forum Software**](https://nodebb.org) is powered by Node.js and supports either Redis, MongoDB, or a PostgreSQL database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB has many modern features out of the box such as social network integration and streaming discussions, while still making sure to be compatible with older browsers.
@ -15,6 +14,7 @@ Additional functionality is enabled through the use of third-party plugins.
* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/)
* [NodeBB Blog](http://blog.nodebb.org)
* [Premium Hosting for NodeBB](http://www.nodebb.org/ "NodeBB")
* Unofficial IRC community &ndash; channel `#nodebb` on Libera.chat
* [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")

@ -14,6 +14,7 @@
"newbiePostEditDuration": 3600,
"postDeleteDuration": 0,
"enablePostHistory": 1,
"topicBacklinks": 1,
"postCacheSize": 10485760,
"disableChat": 0,
"chatEditDuration": 0,
@ -68,6 +69,7 @@
"gdpr_enabled": 1,
"allowProfileImageUploads": 1,
"teaserPost": "last-reply",
"showPostPreviewsOnHover": 1,
"allowPrivateGroups": 1,
"unreadCutoff": 2,
"bookmarkThreshold": 5,
@ -136,7 +138,9 @@
"disableEmailSubscriptions": 0,
"emailConfirmInterval": 10,
"removeEmailNotificationImages": 0,
"sendValidationEmail": 1,
"includeUnverifiedEmails": 0,
"emailPrompt": 1,
"inviteExpiration": 7,
"dailyDigestFreq": "off",
"digestHour": 17,

@ -3,10 +3,6 @@
const prompt = require('prompt');
const winston = require('winston');
const util = require('util');
const promptGet = util.promisify((schema, callback) => prompt.get(schema, callback));
const questions = {
redis: require('../src/database/redis').questions,
mongo: require('../src/database/mongo').questions,
@ -28,17 +24,17 @@ async function getDatabaseConfig(config) {
if (config['redis:host'] && config['redis:port']) {
return config;
}
return await promptGet(questions.redis);
return await prompt.get(questions.redis);
} else if (config.database === 'mongo') {
if ((config['mongo:host'] && config['mongo:port']) || config['mongo:uri']) {
return config;
}
return await promptGet(questions.mongo);
return await prompt.get(questions.mongo);
} else if (config.database === 'postgres') {
if (config['postgres:host'] && config['postgres:port']) {
return config;
}
return await promptGet(questions.postgres);
return await prompt.get(questions.postgres);
}
throw new Error(`unknown database : ${config.database}`);
}

@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
"version": "1.18.1",
"version": "1.18.6",
"homepage": "http://www.nodebb.org",
"repository": {
"type": "git",
@ -32,7 +32,7 @@
"ace-builds": "^1.4.12",
"archiver": "^5.2.0",
"async": "^3.2.0",
"autoprefixer": "10.3.4",
"autoprefixer": "10.4.0",
"bcryptjs": "2.4.3",
"benchpressjs": "2.4.3",
"body-parser": "^1.19.0",
@ -41,14 +41,14 @@
"chart.js": "^2.9.4",
"cli-graph": "^3.2.2",
"clipboard": "^2.0.6",
"colors": "^1.4.0",
"colors": "1.4.0",
"commander": "^7.1.0",
"compare-versions": "3.6.0",
"compression": "^1.7.4",
"connect-flash": "^0.1.1",
"connect-mongo": "4.5.0",
"connect-mongo": "4.6.0",
"connect-multiparty": "^2.2.0",
"connect-pg-simple": "^6.2.1",
"connect-pg-simple": "^7.0.0",
"connect-redis": "6.0.0",
"cookie-parser": "^1.4.5",
"cron": "^1.8.2",
@ -61,13 +61,13 @@
"express-useragent": "^1.0.15",
"graceful-fs": "^4.2.6",
"helmet": "^4.4.1",
"html-to-text": "8.0.0",
"html-to-text": "8.1.0",
"ipaddr.js": "^2.0.0",
"jquery": "3.6.0",
"jquery-deserialize": "2.0.0",
"jquery-form": "4.3.0",
"jquery-serializeobject": "1.0.0",
"jquery-ui": "1.12.1",
"jquery-ui": "1.13.0",
"jsesc": "3.0.2",
"json2csv": "5.0.6",
"jsonwebtoken": "^8.5.1",
@ -78,36 +78,36 @@
"material-design-lite": "^1.3.0",
"mime": "^2.5.2",
"mkdirp": "^1.0.4",
"mongodb": "3.7.0",
"mongodb": "4.1.4",
"morgan": "^1.10.0",
"mousetrap": "^1.6.5",
"multiparty": "4.2.2",
"@nodebb/bootswatch": "3.4.2",
"nconf": "^0.11.2",
"nodebb-plugin-composer-default": "7.0.2",
"nodebb-plugin-dbsearch": "5.0.2",
"nodebb-plugin-composer-default": "7.0.14",
"nodebb-plugin-dbsearch": "5.1.0",
"nodebb-plugin-emoji": "^3.5.0",
"nodebb-plugin-emoji-android": "2.0.5",
"nodebb-plugin-markdown": "8.14.3",
"nodebb-plugin-mentions": "2.13.11",
"nodebb-plugin-spam-be-gone": "0.7.9",
"nodebb-rewards-essentials": "0.1.5",
"nodebb-theme-lavender": "5.2.1",
"nodebb-theme-persona": "11.2.4",
"nodebb-theme-slick": "1.4.12",
"nodebb-theme-vanilla": "12.1.2",
"nodebb-plugin-markdown": "8.14.4",
"nodebb-plugin-mentions": "3.0.3",
"nodebb-plugin-spam-be-gone": "0.7.11",
"nodebb-rewards-essentials": "0.2.0",
"nodebb-theme-lavender": "5.3.1",
"nodebb-theme-persona": "11.2.21",
"nodebb-theme-slick": "1.4.16",
"nodebb-theme-vanilla": "12.1.9",
"nodebb-widget-essentials": "5.0.4",
"nodemailer": "^6.5.0",
"nprogress": "0.2.0",
"passport": "^0.4.1",
"passport": "^0.5.0",
"passport-http-bearer": "^1.0.1",
"passport-local": "1.0.0",
"pg": "^8.7.1",
"pg-cursor": "^2.7.1",
"postcss": "8.3.6",
"postcss": "8.3.11",
"postcss-clean": "1.2.0",
"prompt": "^1.1.0",
"ioredis": "4.27.9",
"ioredis": "4.28.0",
"request": "2.88.2",
"request-promise-native": "^1.0.9",
"requirejs": "2.3.6",
@ -116,12 +116,12 @@
"sanitize-html": "^2.3.2",
"semver": "^7.3.4",
"serve-favicon": "^2.5.0",
"sharp": "0.29.0",
"sharp": "0.29.2",
"sitemap": "^7.0.0",
"slideout": "1.0.1",
"socket.io": "4.2.0",
"socket.io": "4.3.2",
"socket.io-adapter-cluster": "^1.0.1",
"socket.io-client": "4.2.0",
"socket.io-client": "4.3.2",
"@socket.io/redis-adapter": "7.0.0",
"sortablejs": "1.14.0",
"spdx-license-list": "^6.4.0",
@ -132,28 +132,28 @@
"tinycon": "0.6.8",
"toobusy-js": "^0.5.1",
"uglify-es": "^3.3.9",
"validator": "13.6.0",
"validator": "13.7.0",
"visibilityjs": "2.0.2",
"winston": "3.3.3",
"xml": "^1.0.1",
"xregexp": "^5.0.1",
"yargs": "17.1.1",
"yargs": "17.2.1",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
"@apidevtools/swagger-parser": "10.0.3",
"@commitlint/cli": "12.1.4",
"@commitlint/config-angular": "12.1.4",
"@commitlint/cli": "14.1.0",
"@commitlint/config-angular": "14.1.0",
"coveralls": "3.1.1",
"eslint": "7.32.0",
"eslint-config-nodebb": "0.0.2",
"eslint-plugin-import": "2.24.2",
"eslint-config-nodebb": "0.0.3",
"eslint-plugin-import": "2.25.3",
"grunt": "1.4.1",
"grunt-contrib-watch": "1.1.0",
"husky": "7.0.2",
"jsdom": "17.0.0",
"lint-staged": "11.1.2",
"mocha": "9.1.1",
"husky": "7.0.4",
"jsdom": "18.0.1",
"lint-staged": "11.2.6",
"mocha": "9.1.3",
"mocha-lcov-reporter": "1.3.0",
"mockdate": "3.0.5",
"nyc": "15.1.0",
@ -182,4 +182,4 @@
"url": "https://github.com/barisusakli"
}
]
}
}

@ -7,11 +7,7 @@ const fs = require('fs');
const path = require('path');
const childProcess = require('child_process');
const less = require('less');
const util = require('util');
const lessRenderAsync = util.promisify(
(style, opts, cb) => less.render(String(style), opts, cb)
);
const uglify = require('uglify-es');
const nconf = require('nconf');
@ -253,7 +249,7 @@ async function compileLess() {
try {
const installSrc = path.join(__dirname, '../public/less/install.less');
const style = await fs.promises.readFile(installSrc);
const css = await lessRenderAsync(style, { filename: path.resolve(installSrc) });
const css = await less.render(String(style), { filename: path.resolve(installSrc) });
await fs.promises.writeFile(path.join(__dirname, '../public/installer.css'), css.css);
} catch (err) {
winston.error(`Unable to compile LESS: \n${err.stack}`);

@ -5,7 +5,6 @@ const fs = require('fs');
const url = require('url');
const path = require('path');
const { fork } = require('child_process');
const async = require('async');
const logrotate = require('logrotate-stream');
const mkdirp = require('mkdirp');
@ -36,7 +35,7 @@ const Loader = {
};
const appPath = path.join(__dirname, 'app.js');
Loader.init = function (callback) {
Loader.init = function () {
if (silent) {
console.log = (...args) => {
output.write(`${args.join(' ')}\n`);
@ -45,17 +44,15 @@ Loader.init = function (callback) {
process.on('SIGHUP', Loader.restart);
process.on('SIGTERM', Loader.stop);
callback();
};
Loader.displayStartupMessages = function (callback) {
Loader.displayStartupMessages = function () {
console.log('');
console.log(`NodeBB v${pkg.version} Copyright (C) 2013-2014 NodeBB Inc.`);
console.log('This program comes with ABSOLUTELY NO WARRANTY.');
console.log('This is free software, and you are welcome to redistribute it under certain conditions.');
console.log('For the full license, please visit: http://www.gnu.org/copyleft/gpl.html');
console.log('');
callback();
};
Loader.addWorkerEvents = function (worker) {
@ -107,17 +104,13 @@ Loader.addWorkerEvents = function (worker) {
});
};
Loader.start = function (callback) {
Loader.start = function () {
numProcs = getPorts().length;
console.log(`Clustering enabled: Spinning up ${numProcs} process(es).\n`);
for (let x = 0; x < numProcs; x += 1) {
forkWorker(x, x === 0);
}
if (callback) {
callback();
}
};
function forkWorker(index, isPrimary) {
@ -232,15 +225,12 @@ fs.open(pathToConfig, 'r', (err) => {
fs.writeFileSync(pidFilePath, String(process.pid));
}
async.series([
Loader.init,
Loader.displayStartupMessages,
Loader.start,
], (err) => {
if (err) {
console.error('[loader] Error during startup');
throw err;
}
});
try {
Loader.init();
Loader.displayStartupMessages();
Loader.start();
} catch (err) {
console.error('[loader] Error during startup');
throw err;
}
});

@ -1,6 +1,8 @@
{
"maxerr" : 50, // {int} Maximum error before stopping
"esversion": 9,
// Enforcing
"bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
"camelcase" : false, // true: Identifiers must be in camelCase
@ -42,7 +44,7 @@
"evil" : false, // true: Tolerate use of `eval` and `new Function()`
"expr" : false, // true: Tolerate `ExpressionStatement` as Programs
"funcscope" : false, // true: Tolerate defining variables inside control statements"
"globalstrict" : false, // true: Allow global "use strict" (also enables 'strict')
"globalstrict" : true, // true: Allow global "use strict" (also enables 'strict')
"iterator" : false, // true: Tolerate using the `__iterator__` property
"lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
"laxbreak" : false, // true: Tolerate possibly unsafe line breakings
@ -66,7 +68,6 @@
"utils": true,
"overrides": true,
"componentHandler": true,
"bootbox": true,
"templates": true,
"Visibility": true,
"Tinycon": true,

@ -3,6 +3,7 @@
"no-events": "لا توجد أحداث",
"control-panel": "لوحة تحكم الأحداث",
"delete-events": "حذف الاحداث",
"confirm-delete-all-events": "Are you sure you want to delete all logged events?",
"filters": "تصفية",
"filters-apply": "تطبيق التصفية",
"filter-type": "نوع الحدث",

@ -56,8 +56,8 @@
"active-users.total": "المجموع",
"active-users.connections": "Connections",
"anonymous-registered-users": "المجهولين مقابل المستخدمين المسجلين",
"anonymous": "مجهول",
"guest-registered-users": "Guest vs Registered Users",
"guest": "Guest",
"registered": "مسجل",
"user-presence": "تواجد المستخدمين",
@ -68,6 +68,7 @@
"unread": "غير مقروء",
"high-presence-topics": "مواضيع ذات حضور قوي",
"popular-searches": "Popular Searches",
"graphs.page-views": "مشاهدات الصفحة",
"graphs.page-views-registered": "Page Views Registered",
@ -75,13 +76,14 @@
"graphs.page-views-bot": "Page Views Bot",
"graphs.unique-visitors": "زوار فريدين",
"graphs.registered-users": "مستخدمين مسجلين",
"graphs.anonymous-users": "مستخدمين مجهولين",
"graphs.guest-users": "Guest Users",
"last-restarted-by": "Last restarted by",
"no-users-browsing": "No users browsing",
"back-to-dashboard": "Back to Dashboard",
"details.no-users": "No users have joined within the selected timeframe",
"details.no-topics": "No topics have been posted within the selected timeframe",
"details.no-searches": "No searches have been made yet",
"details.no-logins": "No logins have been recorded within the selected timeframe",
"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
"details.logins-login-time": "Login Time"

@ -8,7 +8,11 @@
"nodejs": "nodejs",
"online": "online",
"git": "git",
"memory": "memory",
"process-memory": "process memory",
"system-memory": "system memory",
"used-memory-process": "Used memory by process",
"used-memory-os": "Used system memory",
"total-memory-os": "Total system memory",
"load": "system load",
"cpu-usage": "cpu usage",
"uptime": "uptime",

@ -8,8 +8,6 @@
"delete": "Delete",
"enable": "Enable",
"disable": "Disable",
"control-panel": "Rewards Control",
"new-reward": "New Reward",
"alert.delete-success": "Successfully deleted reward",
"alert.no-inputs-found": "Illegal reward - no inputs found!",

@ -1,79 +0,0 @@
{
"forum-traffic": "Forum Traffic",
"page-views": "مشاهدات الصفحات",
"unique-visitors": "زائرين فريدين",
"new-users": "New Users",
"posts": "مشاركات",
"topics": "مواضيع",
"page-views-seven": "آخر 7 ايام",
"page-views-thirty": "آخر 30 يوماً",
"page-views-last-day": "آخر 24 ساعة",
"page-views-custom": "مدة زمنية مخصصة",
"page-views-custom-start": "بداية المدة",
"page-views-custom-end": "نهاية المده",
"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.all": "كل الوقت",
"updates": "تحديثات",
"running-version": "المنتدى يعمل حاليا على <strong>NodeBB الإصدار<span id=\"version\">%1</span></strong>.",
"keep-updated": "تأكد دائما من أن NodeBB يعمل على احدث إصدار للحصول على أحدث التصحيحات الأمنية وإصلاحات الأخطاء.",
"up-to-date": "<p>المنتدى <strong>يعمل على أحدث إصدار</strong> <i class=\"fa fa-check\"></i></p>",
"upgrade-available": "<p>A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
"prerelease-upgrade-available": "<p>This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
"prerelease-warning": "<p>هذه نسخة <strong>ماقبل الإصدار</strong> من NodeBB. قد تحدث أخطاء غير مقصودة. <i class=\"fa fa-exclamation-triangle\"></i></p>",
"running-in-development": "المنتدى قيد التشغيل في وضع \"المطورين\". وقد تكون هناك ثغرات أمنية مفتوحة؛ من فضلك تواصل مع مسؤول نظامك.",
"latest-lookup-failed": "<p>Failed to look up latest available version of NodeBB</p>",
"notices": "إشعارات",
"restart-not-required": "إعادة التشغيل غير مطلوب",
"restart-required": "إعادة التشغيل مطلوبة",
"search-plugin-installed": "إضافة البحث منصبة",
"search-plugin-not-installed": "إضافة البحث غير منصبة",
"search-plugin-tooltip": "نصب إضافة البحث من صفحة الإضافات البرمجية لتنشيط وظيفة البحث",
"control-panel": "التحكم بالنظام",
"rebuild-and-restart": "Rebuild &amp; Restart",
"restart": "Restart",
"restart-warning": "Rebuilding or Restarting your NodeBB will drop all existing connections for a few seconds.",
"restart-disabled": "Rebuilding and Restarting your NodeBB has been disabled as you do not seem to be running it via the appropriate daemon.",
"maintenance-mode": "وضع الصيانة",
"maintenance-mode-title": "انقر هنا لإعداد وضع الصيانة لـNodeBB",
"realtime-chart-updates": "التحديث الفوري للرسم البياني",
"active-users": "المستخدمين النشطين",
"active-users.users": "الأعضاء",
"active-users.guests": "الزوار",
"active-users.total": "المجموع",
"active-users.connections": "Connections",
"anonymous-registered-users": "المجهولين مقابل المستخدمين المسجلين",
"anonymous": "مجهول",
"registered": "مسجل",
"user-presence": "تواجد المستخدمين",
"on-categories": "في قائمة الأقسام",
"reading-posts": "قراءة المشاركات",
"browsing-topics": "تصفح المواضيع",
"recent": "الأخيرة",
"unread": "غير مقروء",
"high-presence-topics": "مواضيع ذات حضور قوي",
"graphs.page-views": "مشاهدات الصفحة",
"graphs.page-views-registered": "Page Views Registered",
"graphs.page-views-guest": "Page Views Guest",
"graphs.page-views-bot": "Page Views Bot",
"graphs.unique-visitors": "زوار فريدين",
"graphs.registered-users": "مستخدمين مسجلين",
"graphs.anonymous-users": "مستخدمين مجهولين",
"last-restarted-by": "Last restarted by",
"no-users-browsing": "No users browsing"
}

@ -1,8 +0,0 @@
{
"home-page": "Home Page",
"description": "Choose what page is shown when users navigate to the root URL of your forum.",
"home-page-route": "Home Page Route",
"custom-route": "Custom Route",
"allow-user-home-pages": "Allow User Home Pages",
"home-page-title": "Title of the home page (default \"Home\")"
}

@ -1,6 +0,0 @@
{
"language-settings": "اعدادات اللغة",
"description": "تُحدد اللغة الافتراضية إعدادات اللغة لجميع المستخدمين الذين يزورون المنتدى. <br />يمكن للأعضاء تجاوز اللغة الافتراضية من خلال صفحة إعدادات الحساب الخاصة بهم.",
"default-language": "اللغة الافتراضية",
"auto-detect": "الكشف عن إعدادات اللغة للزوار بشكل آلي"
}

@ -1,23 +0,0 @@
{
"icon": "Icon:",
"change-icon": "change",
"route": "Route:",
"tooltip": "Tooltip:",
"text": "Text:",
"text-class": "Text Class: <small>optional</small>",
"class": "Class: <small>optional</small>",
"id": "ID: <small>optional</small>",
"properties": "Properties:",
"groups": "Groups:",
"open-new-window": "Open in a new window",
"btn.delete": "Delete",
"btn.disable": "Disable",
"btn.enable": "Enable",
"available-menu-items": "Available Menu Items",
"custom-route": "Custom Route",
"core": "core",
"plugin": "plugin"
}

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

@ -1,9 +0,0 @@
{
"notifications": "التنبيهات",
"chat-messages": "Chat Messages",
"play-sound": "Play",
"incoming-message": "Incoming Message",
"outgoing-message": "Outgoing Message",
"upload-new-sound": "Upload New Sound",
"saved": "Settings Saved"
}

@ -13,6 +13,7 @@
"resent-single": "Manual digest resend completed",
"resent-day": "Daily digest resent",
"resent-week": "Weekly digest resent",
"resent-biweek": "Bi-Weekly digest resent",
"resent-month": "Monthly digest resent",
"null": "<em>Never</em>",
"manual-run": "Manual digest run:",

@ -47,6 +47,7 @@
"users.uid": "uid",
"users.username": "username",
"users.email": "email",
"users.no-email": "(no email)",
"users.ip": "IP",
"users.postcount": "postcount",
"users.reputation": "reputation",

@ -4,6 +4,7 @@
"dashboard/logins": "Logins",
"dashboard/users": "Users",
"dashboard/topics": "Topics",
"dashboard/searches": "Searches",
"section-general": "عام",
"section-manage": "إدارة",

@ -6,7 +6,7 @@
"from-help": "The from name to display in the email.",
"smtp-transport": "SMTP Transport",
"smtp-transport.enabled": "Use an external email server to send emails",
"smtp-transport.enabled": "Enable SMTP Transport",
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
"smtp-transport.service": "Select a service",
"smtp-transport.service-custom": "Custom Service",
@ -37,6 +37,10 @@
"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>",
"notifications.remove-images": "Remove images from email notifications",
"require-email-address": "Require new users to specify an email address",
"require-email-address-warning": "By default, users can opt-out of entering an email address. Enabling this option means they have to enter an email address in order to proceed with registration. <strong>It does not ensure user will enter a real email address, nor even an address they own.</strong>",
"include-unverified-emails": "Send emails to recipients who have not explicitly confirmed their emails",
"include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). <strong>Enable this setting at your own risk</strong> &ndash; sending emails to unverified addresses may be a violation of regional anti-spam laws."
}
"include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). <strong>Enable this setting at your own risk</strong> &ndash; sending emails to unverified addresses may be a violation of regional anti-spam laws.",
"prompt": "Prompt users to enter or confirm their emails",
"prompt-help": "If a user does not have an email set, or their email is not confirmed, a warning will be shown on screen."
}

@ -3,9 +3,9 @@
"title": "عنوان الموقع",
"title.short": "عنوان قصير",
"title.short-placeholder": "ان لم تقم بكتابة عنوان مختصر, سيتم استخدام عنوان الموقع الكلي",
"title.url": "الرابط",
"title.url": "Title Link URL",
"title.url-placeholder": "The URL of the site title",
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index.",
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
"title.name": "اسم المنتدي",
"title.show-in-header": "Show Site Title in Header",
"browser-title": "عنوان المتصفح",
@ -20,9 +20,9 @@
"logo.image": "صورة",
"logo.image-placeholder": "Path to a logo to display on forum header",
"logo.upload": "رفع",
"logo.url": "الرابط",
"logo.url": "Logo Link URL",
"logo.url-placeholder": "The URL of the site logo",
"logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.",
"logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
"logo.alt-text": "نص بديل",
"log.alt-text-placeholder": "Alternative text for accessibility",
"favicon": "صورة المفضله",
@ -47,4 +47,4 @@
"undo-timeout": "Undo Timeout",
"undo-timeout-help": "Some operations such as moving topics will allow for the moderator to undo their action within a certain timeframe. Set to 0 to disable undo completely.",
"topic-tools": "Topic Tools"
}
}

@ -11,6 +11,8 @@
"properties": "Properties:",
"groups": "Groups:",
"open-new-window": "Open in a new window",
"dropdown": "Dropdown",
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
"btn.delete": "Delete",
"btn.disable": "Disable",
@ -20,4 +22,4 @@
"custom-route": "Custom Route",
"core": "core",
"plugin": "plugin"
}
}

@ -2,5 +2,6 @@
"notifications": "Notifications",
"welcome-notification": "Welcome Notification",
"welcome-notification-link": "Welcome Notification Link",
"welcome-notification-uid": "Welcome Notification User (UID)"
"welcome-notification-uid": "Welcome Notification User (UID)",
"post-queue-notification-uid": "Post Queue User (UID)"
}

@ -40,6 +40,7 @@
"teaser.last-post": "Last &ndash; Show the latest post, including the original post, if no replies",
"teaser.last-reply": "Last &ndash; Show the latest reply, or a \"No replies\" placeholder if no replies",
"teaser.first": "First",
"showPostPreviewsOnHover": "Show a preview of posts when mouse overed",
"unread": "Unread Settings",
"unread.cutoff": "Unread cutoff days",
"unread.min-track-last": "Minimum posts in topic before tracking last read",
@ -56,6 +57,9 @@
"composer.show-help": "Show \"Help\" tab",
"composer.enable-plugin-help": "Allow plugins to add content to the help tab",
"composer.custom-help": "Custom Help Text",
"backlinks": "Backlinks",
"backlinks.enabled": "Enable topic backlinks",
"backlinks.help": "If a post references another topic, a link back to the post will be inserted into the referenced topic at that point in time.",
"ip-tracking": "IP Tracking",
"ip-tracking.each-post": "Track IP Address for each post",
"enable-post-history": "Enable Post History"

@ -71,6 +71,7 @@
"digest-freq.off": "Off",
"digest-freq.daily": "Daily",
"digest-freq.weekly": "Weekly",
"digest-freq.biweekly": "Bi-Weekly",
"digest-freq.monthly": "Monthly",
"email-chat-notifs": "Send an email if a new chat message arrives and I am not online",
"email-post-notif": "Send an email when replies are made to topics I am subscribed to",

@ -34,8 +34,9 @@
"email-invited": "Email was already invited",
"email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation email.",
"email-not-confirmed-chat": "لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You won't be able to post or chat until your email is confirmed.",
"no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery. Please click here to enter an email.",
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You may not be able to post in some categories or chat until your email is confirmed.",
"no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery, and may be necessary for chatting and posting in some categories. Please click here to enter an email.",
"user-doesnt-have-email": "User \"%1\" does not have an email set.",
"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.",
@ -103,6 +104,7 @@
"already-bookmarked": "You have already bookmarked this post",
"already-unbookmarked": "You have already unbookmarked this post",
"cant-ban-other-admins": "لايمكن حظر مدبر نظام آخر.",
"cant-make-banned-users-admin": "You can't make banned users admin.",
"cant-remove-last-admin": "رجاءًا ، أضف مدير أخر قبل حذف صلاحيات الإدارة من حسابك.",
"account-deletion-disabled": "Account deletion is disabled",
"cant-delete-admin": "رجاءًا أزل صلاحيات الإدارة قبل حذف الحساب. ",

@ -54,7 +54,7 @@
"composer.formatting.strikethrough": "Strikethrough",
"composer.formatting.code": "Code",
"composer.formatting.link": "Link",
"composer.formatting.picture": "Picture",
"composer.formatting.picture": "Image Link",
"composer.upload-picture": "Upload Image",
"composer.upload-file": "Upload File",
"composer.zen_mode": "Zen Mode",

@ -0,0 +1,4 @@
{
"title": "Top",
"no_top_topics": "No top topics"
}

@ -47,6 +47,7 @@
"restored-by": "Restored by",
"moved-from-by": "Moved from %1 by",
"queued-by": "Post queued for approval &rarr;",
"backlink": "Referenced by",
"bookmark_instructions": "اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
"flag-post": "Flag this post",
"flag-user": "Flag this user",
@ -138,6 +139,7 @@
"composer.handle_placeholder": "Enter your name/handle here",
"composer.discard": "نبذ التغييرات",
"composer.submit": "حفظ",
"composer.additional-options": "Additional Options",
"composer.schedule": "Schedule",
"composer.replying_to": "الرد على %1",
"composer.new_topic": "موضوع جديد",
@ -158,6 +160,7 @@
"newest_to_oldest": "من الأحدث إلى الأقدم",
"most_votes": "Most Votes",
"most_posts": "Most Posts",
"most_views": "Most Views",
"stale.title": "Create new topic instead?",
"stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?",
"stale.create": "موضوع جديد",

@ -94,6 +94,7 @@
"digest_off": "غير مفعل",
"digest_daily": "يوميا",
"digest_weekly": "أسبوعيًّا",
"digest_biweekly": "Bi-Weekly",
"digest_monthly": "شهريًّا",
"has_no_follower": "هذا المستخدم ليس لديه أية متابعين :(",
"follows_no_one": "هذا المستخدم لا يتابع أحد :(",

@ -3,6 +3,7 @@
"no-events": "Няма събития",
"control-panel": "Контролен панел за събитията",
"delete-events": "Изтриване на събитията",
"confirm-delete-all-events": "Наистина ли искате да изтриете всички събития в журнала?",
"filters": "Филтри",
"filters-apply": "Прилагане на филтрите",
"filter-type": "Вид събитие",

@ -56,8 +56,8 @@
"active-users.total": "Общо",
"active-users.connections": "Връзки",
"anonymous-registered-users": "Анонимни към регистрирани потребители",
"anonymous": "Анонимни",
"guest-registered-users": "Гости към регистрирани потребители",
"guest": "Гост",
"registered": "Регистрирани",
"user-presence": "Присъствие на потребителите ",
@ -68,6 +68,7 @@
"unread": "Непрочетени",
"high-presence-topics": "Теми с най-голяма присъственост",
"popular-searches": "Популярни търсения",
"graphs.page-views": "Преглеждания на страниците",
"graphs.page-views-registered": "Преглеждания на страниците от регистрирани потребители",
@ -75,13 +76,14 @@
"graphs.page-views-bot": "Преглеждания на страниците от ботове",
"graphs.unique-visitors": "Уникални посетители",
"graphs.registered-users": "Регистрирани потребители",
"graphs.anonymous-users": "Анонимни потребители",
"graphs.guest-users": "Гости",
"last-restarted-by": "Последно рестартиране от",
"no-users-browsing": "Няма разглеждащи потребители",
"back-to-dashboard": "Назад към таблото",
"details.no-users": "В избрания период не са се регистрирали нови потребители",
"details.no-topics": "В избрания период не са публикувани нови теми",
"details.no-searches": "Все още не са правени търсения",
"details.no-logins": "В избрания период не са отчетени вписвания",
"details.logins-static": "NodeBB запазва данни за сесията в продължение на %1 дни, така че в следната таблица могат да се видят само последните активни сесии",
"details.logins-login-time": "Време на вписване"

@ -8,7 +8,11 @@
"nodejs": "nodejs",
"online": "на линия",
"git": "git",
"memory": "памет",
"process-memory": "памет на процеса",
"system-memory": "системна памет",
"used-memory-process": "Използвана памет от процеса",
"used-memory-os": "Използвана системна памет",
"total-memory-os": "Обща системна памет",
"load": "натоварване на системата",
"cpu-usage": "използване на процесора",
"uptime": "активно време",

@ -8,8 +8,6 @@
"delete": "Изтриване",
"enable": "Включване",
"disable": "Изключване",
"control-panel": "Управление на наградите",
"new-reward": "Нова награда",
"alert.delete-success": "Наградата е изтрита успешно",
"alert.no-inputs-found": "Неправомерна награда — няма нищо въведено!",

@ -1,79 +0,0 @@
{
"forum-traffic": "Трафик на форума",
"page-views": "Преглеждания на страниците",
"unique-visitors": "Уникални посетители",
"new-users": "Нови потребители",
"posts": "Публикации",
"topics": "Теми",
"page-views-seven": "Последните 7 дни",
"page-views-thirty": "Последните 30 дни",
"page-views-last-day": "Последните 24 часа",
"page-views-custom": "Интервал по избор",
"page-views-custom-start": "Начална дата",
"page-views-custom-end": "Крайна дата",
"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.all": "От началото",
"updates": "Обновления",
"running-version": "Вие използвате <strong>NodeBB версия <span id=\"version\">%1</span></strong>.",
"keep-updated": "Стремете се винаги да използвате най-новата версия на NodeBB, за да се възползвате от последните подобрения на сигурността и поправки на проблеми.",
"up-to-date": "<p>Вие използвате <strong>най-новата версия</strong> <i class=\"fa fa-check\"></i></p>",
"upgrade-available": "<p>Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>",
"prerelease-upgrade-available": "<p>Това е остаряла предварителна версия на NodeBB. Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>",
"prerelease-warning": "<p>Това е версия за <strong>предварителен преглед</strong> на NodeBB. Възможно е да има неочаквани неизправности. <i class=\"fa fa-exclamation-triangle\"></i></p>",
"running-in-development": "<span>Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.</span>",
"latest-lookup-failed": "<p>Не може да бъде извършена проверка за последната налична версия на NodeBB</p>",
"notices": "Забележки",
"restart-not-required": "Не се изисква рестартиране",
"restart-required": "Изисква се рестартиране",
"search-plugin-installed": "Добавката за търсене е инсталирана",
"search-plugin-not-installed": "Добавката за търсене не е инсталирана",
"search-plugin-tooltip": "Инсталирайте добавка за търсене от страницата с добавките, за да включите функционалността за търсене",
"control-panel": "Системен контрол",
"rebuild-and-restart": "Повторно изграждане и рестартиране",
"restart": "Рестартиране",
"restart-warning": "Повторното изграждане и рестартирането на NodeBB ще прекъснат всички връзки за няколко секунди.",
"restart-disabled": "Възможностите за повторно изграждане и рестартиране на NodeBB са изключени, тъй като изглежда, че NodeBB не се изпълнява чрез подходящия демон.",
"maintenance-mode": "Режим на профилактика",
"maintenance-mode-title": "Щракнете тук, за да зададете режим на профилактика на NodeBB",
"realtime-chart-updates": "Актуализации на таблиците в реално време",
"active-users": "Дейни потребители",
"active-users.users": "Потребители",
"active-users.guests": "Гости",
"active-users.total": "Общо",
"active-users.connections": "Връзки",
"anonymous-registered-users": "Анонимни към регистрирани потребители",
"anonymous": "Анонимни",
"registered": "Регистрирани",
"user-presence": "Присъствие на потребителите ",
"on-categories": "В списъка с категории",
"reading-posts": "Четящи публикации",
"browsing-topics": "Разглеждащи теми",
"recent": "Скорошни",
"unread": "Непрочетени",
"high-presence-topics": "Теми с най-голяма присъственост",
"graphs.page-views": "Преглеждания на страниците",
"graphs.page-views-registered": "Преглеждания на страниците от регистрирани потребители",
"graphs.page-views-guest": "Преглеждания на страниците от гости",
"graphs.page-views-bot": "Преглеждания на страниците от ботове",
"graphs.unique-visitors": "Уникални посетители",
"graphs.registered-users": "Регистрирани потребители",
"graphs.anonymous-users": "Анонимни потребители",
"last-restarted-by": "Последно рестартиране от",
"no-users-browsing": "Няма разглеждащи потребители"
}

@ -1,8 +0,0 @@
{
"home-page": "Начална страница",
"description": "Изберете коя страница да бъде показана, когато потребителите отидат на главния адрес на форума.",
"home-page-route": "Път на началната страница",
"custom-route": "Персонализиран път",
"allow-user-home-pages": "Разрешаване на потребителските начални страници",
"home-page-title": "Заглавие на началната страница (по подразбиране: „Начало“)"
}

@ -1,6 +0,0 @@
{
"language-settings": "Езикови настройки",
"description": "Езикът по подразбиране определя езиковите настройки за всички потребители, които посещават Вашия форум. <br />Отделните потребители могат да сменят езика си от страницата с настройки на профила си.",
"default-language": "Език по подразбиране",
"auto-detect": "Автоматично разпознаване на езика за гостите"
}

@ -1,23 +0,0 @@
{
"icon": "Иконка:",
"change-icon": "промяна",
"route": "Маршрут:",
"tooltip": "Подсказка:",
"text": "Текст:",
"text-class": "Текстов клас: <small>незадължително</small>",
"class": "Клас: <small>незадължително</small>",
"id": "Идентификатор: <small>незадължително</small>",
"properties": "Свойства:",
"groups": "Групи:",
"open-new-window": "Отваряне в нов прозорец",
"btn.delete": "Изтриване",
"btn.disable": "Изключване",
"btn.enable": "Включване",
"available-menu-items": "Налични елементи за менюто",
"custom-route": "Персонализиран маршрут",
"core": "ядро",
"plugin": "добавка"
}

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

@ -1,9 +0,0 @@
{
"notifications": "Известия",
"chat-messages": "Съобщения в разговори",
"play-sound": "Пускане",
"incoming-message": "Входящо съобщение",
"outgoing-message": "Изходящо съобщение",
"upload-new-sound": "Качване на нов звук",
"saved": "Настройките са запазени"
}

@ -13,6 +13,7 @@
"resent-single": "Ръчното повторно разпращане на резюмето е завършено",
"resent-day": "Дневното резюме беше изпратено повторно",
"resent-week": "Седмичното резюме беше изпратено повторно",
"resent-biweek": "Двуседмичното резюме беше изпратено повторно",
"resent-month": "Месечното резюме беше изпратено повторно",
"null": "<em>Никога</em>",
"manual-run": "Ръчно разпращане на резюмето:",

@ -47,6 +47,7 @@
"users.uid": "потр. ид.",
"users.username": "потребителско име",
"users.email": "е-поща",
"users.no-email": "(няма е-поща)",
"users.ip": "IP адрес",
"users.postcount": "брой публикации",
"users.reputation": "репутация",

@ -4,6 +4,7 @@
"dashboard/logins": "Вписвания",
"dashboard/users": "Потребители",
"dashboard/topics": "Теми",
"dashboard/searches": "Търсения",
"section-general": "Общи",
"section-manage": "Управление",

@ -6,7 +6,7 @@
"from-help": "Името на изпращача, което да бъде показано в е-писмото.",
"smtp-transport": "Транспорт чрез SMTP",
"smtp-transport.enabled": "Използване на външен сървър за е-поща за изпращане на е-писма",
"smtp-transport.enabled": "Включване на транспорта чрез SMTP",
"smtp-transport-help": "Можете да изберете от списък от познати услуги, или да въведете такава ръчно.",
"smtp-transport.service": "Изберете услуга",
"smtp-transport.service-custom": "Персонализирана услуга",
@ -37,6 +37,10 @@
"subscriptions.hour": "Време за разпращане",
"subscriptions.hour-help": "Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>",
"notifications.remove-images": "Премахване на изображенията от известията по е-поща",
"require-email-address": "Новите потребители задължително трябва да предоставят е-поща",
"require-email-address-warning": "По подразбиране потребителите могат да не въвеждат адрес на е-поща. Ако включите това, те задължително ще трябва да предоставят е-поща, за да могат да се регистрират. <strong>Това не означава, че потребителят ще въведе съществуваща е-поща, нито че тя ще е негова.</strong>",
"include-unverified-emails": "Изпращане на е-писма към получатели, които не са потвърдили изрично е-пощата си",
"include-unverified-warning": "За потребителите, които имат свързана е-поща с регистрацията си, тя се смята за потвърдена. Но има ситуации, в които това не е така (например при ползване на регистрация от друга система, но и в други случаи), <strong>Включете тази настройка на собствен риск</strong> &ndash; изпращането на е-писма към непотвърдени адреси може да нарушава определени местни закони против нежеланата поща."
}
"include-unverified-warning": "За потребителите, които имат свързана е-поща с регистрацията си, тя се смята за потвърдена. Но има ситуации, в които това не е така (например при ползване на регистрация от друга система, но и в други случаи), <strong>Включете тази настройка на собствен риск</strong> &ndash; изпращането на е-писма към непотвърдени адреси може да нарушава определени местни закони против нежеланата поща.",
"prompt": "Подсещане на потребителите да въведат или потвърдят е-пощата си",
"prompt-help": "Ако потребител няма зададена е-поща, или ако тя не е потвърдена, на екрана му ще се покаже предупредително съобщение."
}

@ -3,9 +3,9 @@
"title": "Заглавие на уеб сайта",
"title.short": "Кратко заглавие",
"title.short-placeholder": "Ако не е посочено кратко заглавие, ще бъде използвано заглавието на уеб сайта",
"title.url": "Адрес",
"title.url-placeholder": "Адресът на заглавието на уеб сайта",
"title.url-help": "При щракване върху заглавието, потребителите ще бъдат изпратени на този адрес. Ако бъде оставено празно, потребителите ще бъдат изпращани на началната страница на форума.",
"title.url": "Адрес за заглавието",
"title.url-placeholder": "Адресът за заглавието на уеб сайта",
"title.url-help": "Когато потребител щракне върху заглавието, той ще бъде прехвърлен към този адрес. Ако е празно, потребителят ще бъде изпратен към началната страница на форума. <br> Забележка: Това не е външният адрес, който се ползва в е-писмата. Той се задава от свойството <code>url</code> във файла config.json",
"title.name": "Името на общността Ви",
"title.show-in-header": "Показване на заглавието на уеб сайта в заглавната част",
"browser-title": "Заглавие на браузъра",
@ -20,9 +20,9 @@
"logo.image": "Изображение",
"logo.image-placeholder": "Път до логото, което да бъде показано в заглавната част на форума",
"logo.upload": "Качване",
"logo.url": "Адрес",
"logo.url-placeholder": "Адресът на логото на уеб сайта",
"logo.url-help": "При щракване върху логото, потребителите ще бъдат изпратени на този адрес. Ако бъде оставено празно, потребителите ще бъдат изпращани на началната страница на форума.",
"logo.url": "Адрес за логото",
"logo.url-placeholder": "Адресът за логото на уеб сайта",
"logo.url-help": "Когато потребител щракне върху логото, той ще бъде прехвърлен към този адрес. Ако е празно, потребителят ще бъде изпратен към началната страница на форума. <br> Забележка: Това не е външният адрес, който се ползва в е-писмата. Той се задава от свойството <code>url</code> във файла config.json",
"logo.alt-text": "Алтернативен текст",
"log.alt-text-placeholder": "Алтернативен текст за достъпност",
"favicon": "Иконка на уеб сайта",
@ -47,4 +47,4 @@
"undo-timeout": "Време за отмяна",
"undo-timeout-help": "Някои действия, като например преместването на теми, могат да бъдат отменени от модератора в рамките на определено време. Задайте 0, за да забраните изцяло отменянето.",
"topic-tools": "Инструменти за темите"
}
}

@ -11,6 +11,8 @@
"properties": "Свойства:",
"groups": "Групи:",
"open-new-window": "Отваряне в нов прозорец",
"dropdown": "Падащо меню",
"dropdown-placeholder": "Въведете елементите на падащото меню по-долу. Пример: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Връзка 1&lt;/a&gt;&lt;/li&gt;",
"btn.delete": "Изтриване",
"btn.disable": "Изключване",
@ -20,4 +22,4 @@
"custom-route": "Персонализиран маршрут",
"core": "ядро",
"plugin": "добавка"
}
}

@ -2,5 +2,6 @@
"notifications": "Известия",
"welcome-notification": "Приветствено известие",
"welcome-notification-link": "Връзка за приветственото известие",
"welcome-notification-uid": "Потр. ид. за приветственото известие"
"welcome-notification-uid": "Потр. ид. за приветственото известие",
"post-queue-notification-uid": "Потр. ид. за опашката с публикации"
}

@ -40,6 +40,7 @@
"teaser.last-post": "Последната &ndash; Показване на последната публикация, или първоначалната такава, ако няма отговори.",
"teaser.last-reply": "Последната &ndash; Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
"teaser.first": "Първата",
"showPostPreviewsOnHover": "Показване на кратък преглед на публикациите при посочване с мишката",
"unread": "Настройки за непрочетените",
"unread.cutoff": "Възраст на публикациите, след която те не се показват в непрочетените (в брой дни)",
"unread.min-track-last": "Минимален брой публикации в темата, след което да започва следене на последно прочетената",
@ -56,6 +57,9 @@
"composer.show-help": "Показване на раздела „Помощ“",
"composer.enable-plugin-help": "Позволяване на добавките да добавят съдържание в раздела за помощ",
"composer.custom-help": "Персонализиран текст за помощ",
"backlinks": "Обратни връзки",
"backlinks.enabled": "Включване на обратните връзки в темите",
"backlinks.help": "Ако в публикацията има препратка към друга тема, там ще бъде поставена връзка към публикацията, с конкретното време.",
"ip-tracking": "Записване на IP адреса",
"ip-tracking.each-post": "Записване на IP адреса за всяка публикация",
"enable-post-history": "Включване на историята на публикациите"

@ -71,6 +71,7 @@
"digest-freq.off": "Изключено",
"digest-freq.daily": "Ежедневно",
"digest-freq.weekly": "Ежеседмично",
"digest-freq.biweekly": "На всеки две седмици",
"digest-freq.monthly": "Ежемесечно",
"email-chat-notifs": "Изпращане на е-писмо, ако получа ново съобщение в разговор, а не съм на линия",
"email-post-notif": "Изпращане на е-писмо, когато се появи отговор в темите, за които съм абониран(а).",

@ -34,8 +34,9 @@
"email-invited": "На тази е-поща вече е била изпратена покана",
"email-not-confirmed": "Публикуването в някои категории и теми ще бъде възможно едва след като е-пощата Ви бъде потвърдена. Щръкнете тук, за да Ви изпратим е-писмо за потвърждение.",
"email-not-confirmed-chat": "Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Няма да можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
"no-email-to-confirm": "Нямате зададена е-поща. Тя е необходима за възстановяването на акаунта в случай на проблем. Натиснете тук, за да въведете е-поща.",
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Възможно е да не можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
"no-email-to-confirm": "Нямате зададена е-поща. Тя е необходима за възстановяването на акаунта в случай на проблем, а може и да се изисква, за да пишете в някои категории. Натиснете тук, за да въведете е-поща.",
"user-doesnt-have-email": "Потребителят „%1“ няма зададена е-поща.",
"email-confirm-failed": "Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
"confirm-email-already-sent": "Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
"sendmail-not-found": "Изпълнимият файл на „sendmail“ не може да бъде намерен. Моля, уверете се, че е инсталиран и изпълним за потребителя, чрез който е пуснат NodeBB.",
@ -103,6 +104,7 @@
"already-bookmarked": "Вече имате отметка към тази публикация",
"already-unbookmarked": "Вече сте премахнали отметката си от тази публикация",
"cant-ban-other-admins": "Не можете да блокирате другите администратори!",
"cant-make-banned-users-admin": "Не можете да давате администраторски права на блокирани потребители.",
"cant-remove-last-admin": "Вие сте единственият администратор. Добавете друг потребител като администратор, преди да премахнете себе си като администратор",
"account-deletion-disabled": "Изтриването на акаунт е забранено",
"cant-delete-admin": "Премахнете администраторските права от този акаунт, преди да го изтриете.",

@ -54,7 +54,7 @@
"composer.formatting.strikethrough": "Зачертан",
"composer.formatting.code": "Код",
"composer.formatting.link": "Връзка",
"composer.formatting.picture": "Снимка",
"composer.formatting.picture": "Връзка към изображение",
"composer.upload-picture": "Качване на изображение",
"composer.upload-file": "Качване на файл",
"composer.zen_mode": "Режим Дзен",

@ -0,0 +1,4 @@
{
"title": "Най-популярни",
"no_top_topics": "Няма най-популярни теми"
}

@ -47,6 +47,7 @@
"restored-by": "Възстановена от",
"moved-from-by": "Преместена от %1 от",
"queued-by": "Публикацията е добавена в опашката за одобрение &rarr;",
"backlink": "Спомената от",
"bookmark_instructions": "Щракнете тук, за да се върнете към последно прочетената публикация в тази тема.",
"flag-post": "Докладване на тази публикация",
"flag-user": "Докладване на този потребител",
@ -138,6 +139,7 @@
"composer.handle_placeholder": "Въведете името тук",
"composer.discard": "Отхвърляне",
"composer.submit": "Публикуване",
"composer.additional-options": "Допълнителни настройки",
"composer.schedule": "Насрочване",
"composer.replying_to": "Отговор на %1",
"composer.new_topic": "Нова тема",
@ -158,6 +160,7 @@
"newest_to_oldest": "Първо най-новите",
"most_votes": "Първо тези с най-много гласове",
"most_posts": "Първо тези с най-много публикации",
"most_views": "Първо тези с най-много преглеждания",
"stale.title": "Създаване на нова тема вместо това?",
"stale.warning": "Темата, в която отговаряте, е доста стара. Искате ли вместо това да създадете нова и да направите препратка към тази в отговора си?",
"stale.create": "Създаване на нова тема",

@ -94,6 +94,7 @@
"digest_off": "Изключено",
"digest_daily": "Ежедневно",
"digest_weekly": "Ежеседмично",
"digest_biweekly": "На всеки две седмици",
"digest_monthly": "Ежемесечно",
"has_no_follower": "Този потребител няма последователи :(",
"follows_no_one": "Този потребител не следва никого :(",

@ -3,6 +3,7 @@
"no-events": "There are no events",
"control-panel": "Events Control Panel",
"delete-events": "Delete Events",
"confirm-delete-all-events": "Are you sure you want to delete all logged events?",
"filters": "Filters",
"filters-apply": "Apply Filters",
"filter-type": "Event Type",

@ -56,8 +56,8 @@
"active-users.total": "Total",
"active-users.connections": "Connections",
"anonymous-registered-users": "Anonymous vs Registered Users",
"anonymous": "Anonymous",
"guest-registered-users": "Guest vs Registered Users",
"guest": "Guest",
"registered": "Registered",
"user-presence": "User Presence",
@ -68,6 +68,7 @@
"unread": "Unread",
"high-presence-topics": "High Presence Topics",
"popular-searches": "Popular Searches",
"graphs.page-views": "Page Views",
"graphs.page-views-registered": "Page Views Registered",
@ -75,13 +76,14 @@
"graphs.page-views-bot": "Page Views Bot",
"graphs.unique-visitors": "Unique Visitors",
"graphs.registered-users": "Registered Users",
"graphs.anonymous-users": "Anonymous Users",
"graphs.guest-users": "Guest Users",
"last-restarted-by": "Last restarted by",
"no-users-browsing": "No users browsing",
"back-to-dashboard": "Back to Dashboard",
"details.no-users": "No users have joined within the selected timeframe",
"details.no-topics": "No topics have been posted within the selected timeframe",
"details.no-searches": "No searches have been made yet",
"details.no-logins": "No logins have been recorded within the selected timeframe",
"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
"details.logins-login-time": "Login Time"

@ -8,7 +8,11 @@
"nodejs": "nodejs",
"online": "online",
"git": "git",
"memory": "memory",
"process-memory": "process memory",
"system-memory": "system memory",
"used-memory-process": "Used memory by process",
"used-memory-os": "Used system memory",
"total-memory-os": "Total system memory",
"load": "system load",
"cpu-usage": "cpu usage",
"uptime": "uptime",

@ -8,8 +8,6 @@
"delete": "Delete",
"enable": "Enable",
"disable": "Disable",
"control-panel": "Rewards Control",
"new-reward": "New Reward",
"alert.delete-success": "Successfully deleted reward",
"alert.no-inputs-found": "Illegal reward - no inputs found!",

@ -1,79 +0,0 @@
{
"forum-traffic": "Forum Traffic",
"page-views": "Page Views",
"unique-visitors": "Unique Visitors",
"new-users": "New Users",
"posts": "Posts",
"topics": "Topics",
"page-views-seven": "Last 7 Days",
"page-views-thirty": "Last 30 Days",
"page-views-last-day": "Last 24 hours",
"page-views-custom": "Custom Date Range",
"page-views-custom-start": "Range Start",
"page-views-custom-end": "Range End",
"page-views-custom-help": "Enter a date range of page views you would like to view. If no date picker is available, the accepted format is <code>YYYY-MM-DD</code>",
"page-views-custom-error": "Please enter a valid date range in the format <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.all": "All Time",
"updates": "Updates",
"running-version": "You are running <strong>NodeBB v<span id=\"version\">%1</span></strong>.",
"keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.",
"up-to-date": "<p>You are <strong>up-to-date</strong> <i class=\"fa fa-check\"></i></p>",
"upgrade-available": "<p>A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
"prerelease-upgrade-available": "<p>This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
"prerelease-warning": "<p>This is a <strong>pre-release</strong> version of NodeBB. Unintended bugs may occur. <i class=\"fa fa-exclamation-triangle\"></i></p>",
"running-in-development": "<span>Forum is running in development mode. The forum may be open to potential vulnerabilities; please contact your system administrator.</span>",
"latest-lookup-failed": "<p>Failed to look up latest available version of NodeBB</p>",
"notices": "Notices",
"restart-not-required": "Restart not required",
"restart-required": "Restart required",
"search-plugin-installed": "Search Plugin installed",
"search-plugin-not-installed": "Search Plugin not installed",
"search-plugin-tooltip": "Install a search plugin from the plugin page in order to activate search functionality",
"control-panel": "System Control",
"rebuild-and-restart": "Rebuild &amp; Restart",
"restart": "Restart",
"restart-warning": "Rebuilding or Restarting your NodeBB will drop all existing connections for a few seconds.",
"restart-disabled": "Rebuilding and Restarting your NodeBB has been disabled as you do not seem to be running it via the appropriate daemon.",
"maintenance-mode": "Maintenance Mode",
"maintenance-mode-title": "Click here to set up maintenance mode for NodeBB",
"realtime-chart-updates": "Realtime Chart Updates",
"active-users": "Active Users",
"active-users.users": "Users",
"active-users.guests": "Guests",
"active-users.total": "Total",
"active-users.connections": "Connections",
"anonymous-registered-users": "Anonymous vs Registered Users",
"anonymous": "Anonymous",
"registered": "Registered",
"user-presence": "User Presence",
"on-categories": "On categories list",
"reading-posts": "Reading posts",
"browsing-topics": "Browsing topics",
"recent": "Recent",
"unread": "Unread",
"high-presence-topics": "High Presence Topics",
"graphs.page-views": "Page Views",
"graphs.page-views-registered": "Page Views Registered",
"graphs.page-views-guest": "Page Views Guest",
"graphs.page-views-bot": "Page Views Bot",
"graphs.unique-visitors": "Unique Visitors",
"graphs.registered-users": "Registered Users",
"graphs.anonymous-users": "Anonymous Users",
"last-restarted-by": "Last restarted by",
"no-users-browsing": "No users browsing"
}

@ -1,8 +0,0 @@
{
"home-page": "Home Page",
"description": "Choose what page is shown when users navigate to the root URL of your forum.",
"home-page-route": "Home Page Route",
"custom-route": "Custom Route",
"allow-user-home-pages": "Allow User Home Pages",
"home-page-title": "Title of the home page (default \"Home\")"
}

@ -1,6 +0,0 @@
{
"language-settings": "Language Settings",
"description": "The default language determines the language settings for all users who are visiting your forum. <br />Individual users can override the default language on their account settings page.",
"default-language": "Default Language",
"auto-detect": "Auto Detect Language Setting for Guests"
}

@ -1,23 +0,0 @@
{
"icon": "Icon:",
"change-icon": "change",
"route": "Route:",
"tooltip": "Tooltip:",
"text": "Text:",
"text-class": "Text Class: <small>optional</small>",
"class": "Class: <small>optional</small>",
"id": "ID: <small>optional</small>",
"properties": "Properties:",
"groups": "Groups:",
"open-new-window": "Open in a new window",
"btn.delete": "Delete",
"btn.disable": "Disable",
"btn.enable": "Enable",
"available-menu-items": "Available Menu Items",
"custom-route": "Custom Route",
"core": "core",
"plugin": "plugin"
}

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

@ -1,9 +0,0 @@
{
"notifications": "Notifications",
"chat-messages": "Chat Messages",
"play-sound": "Play",
"incoming-message": "Incoming Message",
"outgoing-message": "Outgoing Message",
"upload-new-sound": "Upload New Sound",
"saved": "Settings Saved"
}

@ -13,6 +13,7 @@
"resent-single": "Manual digest resend completed",
"resent-day": "Daily digest resent",
"resent-week": "Weekly digest resent",
"resent-biweek": "Bi-Weekly digest resent",
"resent-month": "Monthly digest resent",
"null": "<em>Never</em>",
"manual-run": "Manual digest run:",

@ -47,6 +47,7 @@
"users.uid": "uid",
"users.username": "username",
"users.email": "email",
"users.no-email": "(no email)",
"users.ip": "IP",
"users.postcount": "postcount",
"users.reputation": "reputation",

@ -4,6 +4,7 @@
"dashboard/logins": "Logins",
"dashboard/users": "Users",
"dashboard/topics": "Topics",
"dashboard/searches": "Searches",
"section-general": "General",
"section-manage": "Manage",

@ -6,7 +6,7 @@
"from-help": "The from name to display in the email.",
"smtp-transport": "SMTP Transport",
"smtp-transport.enabled": "Use an external email server to send emails",
"smtp-transport.enabled": "Enable SMTP Transport",
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
"smtp-transport.service": "Select a service",
"smtp-transport.service-custom": "Custom Service",
@ -37,6 +37,10 @@
"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>",
"notifications.remove-images": "Remove images from email notifications",
"require-email-address": "Require new users to specify an email address",
"require-email-address-warning": "By default, users can opt-out of entering an email address. Enabling this option means they have to enter an email address in order to proceed with registration. <strong>It does not ensure user will enter a real email address, nor even an address they own.</strong>",
"include-unverified-emails": "Send emails to recipients who have not explicitly confirmed their emails",
"include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). <strong>Enable this setting at your own risk</strong> &ndash; sending emails to unverified addresses may be a violation of regional anti-spam laws."
}
"include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). <strong>Enable this setting at your own risk</strong> &ndash; sending emails to unverified addresses may be a violation of regional anti-spam laws.",
"prompt": "Prompt users to enter or confirm their emails",
"prompt-help": "If a user does not have an email set, or their email is not confirmed, a warning will be shown on screen."
}

@ -3,9 +3,9 @@
"title": "Site Title",
"title.short": "Short Title",
"title.short-placeholder": "If no short title is specified, the site title will be used",
"title.url": "URL",
"title.url": "Title Link URL",
"title.url-placeholder": "The URL of the site title",
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index.",
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
"title.name": "Your Community Name",
"title.show-in-header": "Show Site Title in Header",
"browser-title": "Browser Title",
@ -20,9 +20,9 @@
"logo.image": "Image",
"logo.image-placeholder": "Path to a logo to display on forum header",
"logo.upload": "Upload",
"logo.url": "URL",
"logo.url": "Logo Link URL",
"logo.url-placeholder": "The URL of the site logo",
"logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.",
"logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
"logo.alt-text": "Alt Text",
"log.alt-text-placeholder": "Alternative text for accessibility",
"favicon": "Favicon",
@ -47,4 +47,4 @@
"undo-timeout": "Undo Timeout",
"undo-timeout-help": "Some operations such as moving topics will allow for the moderator to undo their action within a certain timeframe. Set to 0 to disable undo completely.",
"topic-tools": "Topic Tools"
}
}

@ -11,6 +11,8 @@
"properties": "Properties:",
"groups": "Groups:",
"open-new-window": "Open in a new window",
"dropdown": "Dropdown",
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
"btn.delete": "Delete",
"btn.disable": "Disable",
@ -20,4 +22,4 @@
"custom-route": "Custom Route",
"core": "core",
"plugin": "plugin"
}
}

@ -2,5 +2,6 @@
"notifications": "Notifications",
"welcome-notification": "Welcome Notification",
"welcome-notification-link": "Welcome Notification Link",
"welcome-notification-uid": "Welcome Notification User (UID)"
"welcome-notification-uid": "Welcome Notification User (UID)",
"post-queue-notification-uid": "Post Queue User (UID)"
}

@ -40,6 +40,7 @@
"teaser.last-post": "Last &ndash; Show the latest post, including the original post, if no replies",
"teaser.last-reply": "Last &ndash; Show the latest reply, or a \"No replies\" placeholder if no replies",
"teaser.first": "First",
"showPostPreviewsOnHover": "Show a preview of posts when mouse overed",
"unread": "Unread Settings",
"unread.cutoff": "Unread cutoff days",
"unread.min-track-last": "Minimum posts in topic before tracking last read",
@ -56,6 +57,9 @@
"composer.show-help": "Show \"Help\" tab",
"composer.enable-plugin-help": "Allow plugins to add content to the help tab",
"composer.custom-help": "Custom Help Text",
"backlinks": "Backlinks",
"backlinks.enabled": "Enable topic backlinks",
"backlinks.help": "If a post references another topic, a link back to the post will be inserted into the referenced topic at that point in time.",
"ip-tracking": "IP Tracking",
"ip-tracking.each-post": "Track IP Address for each post",
"enable-post-history": "Enable Post History"

@ -71,6 +71,7 @@
"digest-freq.off": "Off",
"digest-freq.daily": "Daily",
"digest-freq.weekly": "Weekly",
"digest-freq.biweekly": "Bi-Weekly",
"digest-freq.monthly": "Monthly",
"email-chat-notifs": "Send an email if a new chat message arrives and I am not online",
"email-post-notif": "Send an email when replies are made to topics I am subscribed to",

@ -34,8 +34,9 @@
"email-invited": "Email was already invited",
"email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation email.",
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You won't be able to post or chat until your email is confirmed.",
"no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery. Please click here to enter an email.",
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You may not be able to post in some categories or chat until your email is confirmed.",
"no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery, and may be necessary for chatting and posting in some categories. Please click here to enter an email.",
"user-doesnt-have-email": "User \"%1\" does not have an email set.",
"email-confirm-failed": "We could not confirm your email, please try again later.",
"confirm-email-already-sent": "Confirmation email already sent, please wait %1 minute(s) to send another one.",
"sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
@ -103,6 +104,7 @@
"already-bookmarked": "You have already bookmarked this post",
"already-unbookmarked": "You have already unbookmarked this post",
"cant-ban-other-admins": "আপনি অন্য এ্যাডমিনদের নিষিদ্ধ করতে পারেন না!",
"cant-make-banned-users-admin": "You can't make banned users admin.",
"cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin",
"account-deletion-disabled": "Account deletion is disabled",
"cant-delete-admin": "Remove administrator privileges from this account before attempting to delete it.",

@ -54,7 +54,7 @@
"composer.formatting.strikethrough": "Strikethrough",
"composer.formatting.code": "Code",
"composer.formatting.link": "Link",
"composer.formatting.picture": "Picture",
"composer.formatting.picture": "Image Link",
"composer.upload-picture": "Upload Image",
"composer.upload-file": "Upload File",
"composer.zen_mode": "Zen Mode",

@ -0,0 +1,4 @@
{
"title": "Top",
"no_top_topics": "No top topics"
}

@ -47,6 +47,7 @@
"restored-by": "Restored by",
"moved-from-by": "Moved from %1 by",
"queued-by": "Post queued for approval &rarr;",
"backlink": "Referenced by",
"bookmark_instructions": "Click here to return to the last read post in this thread.",
"flag-post": "Flag this post",
"flag-user": "Flag this user",
@ -138,6 +139,7 @@
"composer.handle_placeholder": "Enter your name/handle here",
"composer.discard": "বাতিল",
"composer.submit": "সাবমিট",
"composer.additional-options": "Additional Options",
"composer.schedule": "Schedule",
"composer.replying_to": "%1 এর উত্তরে:",
"composer.new_topic": "নতুন টপিক",
@ -158,6 +160,7 @@
"newest_to_oldest": "নতুন থেকে পুরাতন",
"most_votes": "Most Votes",
"most_posts": "Most Posts",
"most_views": "Most Views",
"stale.title": "Create new topic instead?",
"stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?",
"stale.create": "Create a new topic",

@ -94,6 +94,7 @@
"digest_off": "বন্ধ",
"digest_daily": "দৈনিক",
"digest_weekly": "সাপ্তাহিক",
"digest_biweekly": "Bi-Weekly",
"digest_monthly": "মাসিক",
"has_no_follower": "এই সদস্যের কোন ফলোয়ার নেই :(",
"follows_no_one": "এই সদস্য কাউকে ফলো করছেন না :(",

@ -3,6 +3,7 @@
"no-events": "Žádné nové události",
"control-panel": "Ovládací panel událostí",
"delete-events": "Odstranit události",
"confirm-delete-all-events": "Are you sure you want to delete all logged events?",
"filters": "Filtry",
"filters-apply": "Použít filtry",
"filter-type": "Typ události",

@ -56,8 +56,8 @@
"active-users.total": "Celkově",
"active-users.connections": "Připojení",
"anonymous-registered-users": "Anonymní × registrovaní uživatelé",
"anonymous": "Anonymní",
"guest-registered-users": "Guest vs Registered Users",
"guest": "Guest",
"registered": "Registrovaní",
"user-presence": "Výskyt uživatele",
@ -68,6 +68,7 @@
"unread": "Nepřečtené",
"high-presence-topics": "Témata s vysokou účastí",
"popular-searches": "Popular Searches",
"graphs.page-views": "Zobrazení stránky",
"graphs.page-views-registered": "Zobrazených stránek/registrovaní",
@ -75,13 +76,14 @@
"graphs.page-views-bot": "Zobrazených stránek/bot",
"graphs.unique-visitors": "Jedineční návštěvníci",
"graphs.registered-users": "Registrovaní uživatelé",
"graphs.anonymous-users": "Anonymní uživatelé",
"graphs.guest-users": "Guest Users",
"last-restarted-by": "Poslední restart od",
"no-users-browsing": "Nikdo si nic neprohlíží",
"back-to-dashboard": "Back to Dashboard",
"details.no-users": "No users have joined within the selected timeframe",
"details.no-topics": "No topics have been posted within the selected timeframe",
"details.no-searches": "No searches have been made yet",
"details.no-logins": "No logins have been recorded within the selected timeframe",
"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
"details.logins-login-time": "Login Time"

@ -8,7 +8,11 @@
"nodejs": "nodejs",
"online": "připojen",
"git": "git",
"memory": "paměť",
"process-memory": "process memory",
"system-memory": "system memory",
"used-memory-process": "Used memory by process",
"used-memory-os": "Used system memory",
"total-memory-os": "Total system memory",
"load": "zatížení systému",
"cpu-usage": "využití CPU",
"uptime": "čas spuštění",

@ -8,8 +8,6 @@
"delete": "Odstranit",
"enable": "Povolit",
"disable": "Zakázat",
"control-panel": "Ovládací panel odměn",
"new-reward": "Nová odměna",
"alert.delete-success": "Odměna byla úspěšně smazána",
"alert.no-inputs-found": "Nepovolená odměna nebyl nalezen žádný záznam.",

@ -1,79 +0,0 @@
{
"forum-traffic": "Provoz fóra",
"page-views": "Zobrazení stránky",
"unique-visitors": "Jedineční návštěvníci",
"new-users": "Nový uživatelé",
"posts": "Příspěvky",
"topics": "Témata",
"page-views-seven": "Posledních 7 dnů",
"page-views-thirty": "Posledních 30 dní",
"page-views-last-day": "Posledních 24 hodin",
"page-views-custom": "Dle rozsahu data",
"page-views-custom-start": "Začátek rozsahu",
"page-views-custom-end": "Konec rozsahu",
"page-views-custom-help": "Zadejte rozsah data zobrazení stránek, které chcete vidět. Není-li datum nastaveno, výchozí formát je <code>YYYY-MM-DD</code>",
"page-views-custom-error": "Zadejte správný rozsah ve formátu <code>YYYY-MM-DD</code>",
"stats.yesterday": "Včera",
"stats.today": "Dnes",
"stats.last-week": "Poslední týden",
"stats.this-week": "Tento víkend",
"stats.last-month": "Poslední měsíc",
"stats.this-month": "Tento měsíc",
"stats.all": "Všechny časy",
"updates": "Aktualizace",
"running-version": "Fungujete na <strong>NodeBB v<span id=\"version\">%1</span></strong>.",
"keep-updated": "Vždy udržujte NodeBB aktuální kvůli bezpečnostním záplatám a opravám.",
"up-to-date": "<p>Máte <strong>aktuální verzi</strong><i class=\"fa fa-check\"></i></p>",
"upgrade-available": "<p>Nová verze (v%1) byla zveřejněna. Zvažte <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">aktualizaci vašeho NodeBB</a>.</p>",
"prerelease-upgrade-available": "<p>Toto je zastaralá testovací verze NodeBB. Nová verze (v%1) byla zveřejněna. Zvažte <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">aktualizaci vaší verze NodeBB</a>.</p>",
"prerelease-warning": "<p>Toto je <strong>zkušební</strong> verze NodeBB. Mohou se vyskytnout různé chyby.<i class=\"fa fa-exclamation-triangle\"></i></p>",
"running-in-development": "<span>Fórum běží ve vývojářském režimu a může být potencionálně zranitelné . Kontaktujte správce systému.</span>",
"latest-lookup-failed": "<p>Náhled na poslední dostupnou verzi NodeBB</p>",
"notices": "Oznámení",
"restart-not-required": "Restart není potřeba",
"restart-required": "Je potřeba restartovat",
"search-plugin-installed": "Rozšíření pro hledání je nainstalováno",
"search-plugin-not-installed": "Rozšíření pro hledání není nainstalováno",
"search-plugin-tooltip": "Pro aktivování funkce vyhledávání, nainstalujte rozšíření pro hledání ze stránky rozšíření.",
"control-panel": "Ovládání systému",
"rebuild-and-restart": "Znovu sestavit a restartovat",
"restart": "Restartovat",
"restart-warning": "Znovu sestavení nebo restartování NodeBB odpojí všechna existující připojení na několik vteřin.",
"restart-disabled": "Znovu sestavení a restartování vašeho NodeBB bylo zakázáno, protože se nezdá, že byste byl/a připojena přes příslušného „daemona”.",
"maintenance-mode": "Režim údržby",
"maintenance-mode-title": "Pro nastavení režimu údržby NodeBB, klikněte zde",
"realtime-chart-updates": "Aktualizace grafů v reálném čase",
"active-users": "Aktivní uživatelé",
"active-users.users": "Uživatelé",
"active-users.guests": "Hosté",
"active-users.total": "Celkově",
"active-users.connections": "Připojení",
"anonymous-registered-users": "Anonymní × registrovaní uživatelé",
"anonymous": "Anonymní",
"registered": "Registrovaní",
"user-presence": "Výskyt uživatele",
"on-categories": "V seznamu kategorii",
"reading-posts": "Čtení příspěvku",
"browsing-topics": "Prohlížení témat",
"recent": "Poslední",
"unread": "Nepřečtené",
"high-presence-topics": "Témata s vysokou účastí",
"graphs.page-views": "Zobrazení stránky",
"graphs.page-views-registered": "Zobrazených stránek/registrovaní",
"graphs.page-views-guest": "Zobrazených stránek/hosté",
"graphs.page-views-bot": "Zobrazených stránek/bot",
"graphs.unique-visitors": "Jedineční návštěvníci",
"graphs.registered-users": "Registrovaní uživatelé",
"graphs.anonymous-users": "Anonymní uživatelé",
"last-restarted-by": "Poslední restart od",
"no-users-browsing": "Nikdo si nic neprohlíží"
}

@ -1,8 +0,0 @@
{
"home-page": "Domovská stránka",
"description": "Vyberte, kterou stránku chcete zobrazit, jakmile uživatel přejde na výchozí URL vašeho fóra.",
"home-page-route": "Cesta k domovské stránce",
"custom-route": "Upravit cestu",
"allow-user-home-pages": "Povolit uživatelům domovské stránky",
"home-page-title": "Titulka domovské stránky (výchozí „Domů”)"
}

@ -1,6 +0,0 @@
{
"language-settings": "Nastavení jazyka",
"description": "Výchozí jazyk určuje nastavení jazyka pro všechny uživatele navštěvující vaše fórum. <br />Každý uživatel si může pak nastavit výchozí jazyk na stránce nastavení účtu.",
"default-language": "Výchozí jazyk",
"auto-detect": "Automaticky detekovat nastavení jazyka pro hosty"
}

@ -1,23 +0,0 @@
{
"icon": "Ikona:",
"change-icon": "změnit",
"route": "Cesta:",
"tooltip": "Tip:",
"text": "Text:",
"text-class": "Textová třída: <small>doporučené</small>",
"class": "Třída: <small>doporučené</small>",
"id": "ID: <small>doporučené</small>",
"properties": "Vlastnosti:",
"groups": "Skupiny:",
"open-new-window": "Otevřít v novém okně",
"btn.delete": "Odstranit",
"btn.disable": "Zakázat",
"btn.enable": "Povolit",
"available-menu-items": "Dostupné položky nabídky",
"custom-route": "Upravit cestu",
"core": "jádro",
"plugin": "rozšíření"
}

@ -1,5 +0,0 @@
{
"post-sharing": "Sdílení příspěvku",
"info-plugins-additional": "Rozšíření mohou přidat další dodatečné sítě pro sdílení příspěvků.",
"save-success": "Úspěšně uložené sítě sdílející příspěvky."
}

@ -1,9 +0,0 @@
{
"notifications": "Upozornění",
"chat-messages": "Zprávy konverzace",
"play-sound": "Přehrát",
"incoming-message": "Příchozí zpráva",
"outgoing-message": "Odchozí zpráva",
"upload-new-sound": "Nahrát nový zvuk",
"saved": "Nastavení bylo uloženo"
}

@ -13,6 +13,7 @@
"resent-single": "Manuální znovu poslání přehledu bylo dokončeno",
"resent-day": "Znovu odeslat denní přehled",
"resent-week": "Znovu odeslat týdenní přehled",
"resent-biweek": "Bi-Weekly digest resent",
"resent-month": "Znovu odeslat měsíční přehled",
"null": "<em>Nikdy</em>",
"manual-run": "Spustit manuálně přehled:",

@ -47,6 +47,7 @@
"users.uid": "uid",
"users.username": "jméno",
"users.email": "e-mail",
"users.no-email": "(no email)",
"users.ip": "IP",
"users.postcount": "počet příspěvků",
"users.reputation": "reputace",

@ -4,6 +4,7 @@
"dashboard/logins": "Logins",
"dashboard/users": "Users",
"dashboard/topics": "Topics",
"dashboard/searches": "Searches",
"section-general": "Všeobecné",
"section-manage": "Spravovat",

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

Loading…
Cancel
Save