when admin is changing users emails check if its avaiable and remove old email of user first
upgrade script to cleanup email:uid, email:sorted, will remove entries if user doesn't exist or doesn't have email or if entry in user hash doesn't match entry in email:uid
fix missing ! in email interstitial
fix missing await in canSendValidation,
fix broken tests
dont pass sessionId to email.remove if admin is changing/removing email
for user flags-> admins + all users who have `admin:users` privilege
for post flags -> admins + global mods + moderators of the category the post is in
refactor getModeratorUids function so it can be used for different privileges
* breaking: remove `SocketUser.emailConfirm`, re: #10954
* chore: move email confirmation related configs to own section in Settings > Email
* feat: new user email method `getValidationExpiry`, returns expiration in ms.. probably.
* fix: bug where `user.email.isValidationPending` returned an u nexpected non-boolean value if there was no confirmation pending (only when checking email as well)
* fix: update getValidationExpiry to return ms
* test: use emailConfirmInterval for tests, for now
* fix: throw friendly error when attempting an email change within email confirmation window
* feat: new config option `emailConfirmExpiry` in days, governs how long the confirm link is good for
* test: additional tests for user email methods
* fix: add back missing handling of option
* test: fix tests
* feat: allow plugins to add to admin cache list
resolves #10820
plugins will have to use `filter:admin.cache.get` hook and just add their own cache to the object there.
* feat: add dump to ttlCache and expose properties
* feat: also expose properties under their current names
* feat: display TTL if set
* refactor: move src/cacheCreate.js to src/cache/lru.js
* fix: call new library location for lru cache creator
* feat: add ttl cache
* fix: update upload throttler to use ttl cache instead of lru cache
* chore: add missing dependency
* fix: avoid pubsub conflicts
* fix: use get instead of peek, which is not available in ttl-cache
* chore(deps): bump lru-cache from 6.0.0 to 7.13.1 in /install
Bumps [lru-cache](https://github.com/isaacs/node-lru-cache) from 6.0.0 to 7.13.1.
- [Release notes](https://github.com/isaacs/node-lru-cache/releases)
- [Changelog](https://github.com/isaacs/node-lru-cache/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-lru-cache/compare/v6.0.0...v7.13.1)
---
updated-dependencies:
- dependency-name: lru-cache
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* fix(lru-cache): remove unneeded `length` params for cache creation, as `maxSize` was not used in those init calls, also renamed some methods to match new method names in lru-cache [breaking]
Added deprecation notices for old params
* fix: replace three direct calls to lru-cache with call to cacheCreate, moved cache creation call in uploads to run on first init as config is not populated at lib init
* test: move configs init above cache reset calls in databasemock
* move some more code above cache clear
* refactor: remove unused
* test: lru
* test: more debug
* test: on more test
* use await helpers.uploadFile
* fix: tests remove logs
* fix: acp cache page
* fix: add in one more guard again cache instantiation with `length` prop but no `maxSize` prop
* fix(deps): bump markdown
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
* chore(deps): bump lru-cache from 6.0.0 to 7.13.1 in /install
Bumps [lru-cache](https://github.com/isaacs/node-lru-cache) from 6.0.0 to 7.13.1.
- [Release notes](https://github.com/isaacs/node-lru-cache/releases)
- [Changelog](https://github.com/isaacs/node-lru-cache/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-lru-cache/compare/v6.0.0...v7.13.1)
---
updated-dependencies:
- dependency-name: lru-cache
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* fix(lru-cache): remove unneeded `length` params for cache creation, as `maxSize` was not used in those init calls, also renamed some methods to match new method names in lru-cache [breaking]
Added deprecation notices for old params
* fix: replace three direct calls to lru-cache with call to cacheCreate, moved cache creation call in uploads to run on first init as config is not populated at lib init
* test: move configs init above cache reset calls in databasemock
* move some more code above cache clear
* refactor: remove unused
* test: lru
* test: more debug
* test: on more test
* use await helpers.uploadFile
* fix: tests remove logs
* fix: acp cache page
* fix: add in one more guard again cache instantiation with `length` prop but no `maxSize` prop
* fix(deps): bump markdown
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
* Revert "Revert "feat: cross origin opener policy options (#10710)""
This reverts commit 46050ace1a.
* Revert "Revert "chore(i18n): fallback strings for new resources: nodebb.admin-settings-advanced""
This reverts commit 9f291c07d3.
* feat: closes#10719, don't trim children if category is marked section
* feat: fire hook to allow plugins to filter the pids returned in a user profile
/cc julianlam/nodebb-plugin-support-forum#14
* fix: use `user.hidePrivateData();` more consistently across user retrieval endpoints
* fix: better looking placeholder text for ACP search
* fix: bug where fallback to forum search was not working due to client-side error
* feat: allow plugins to toggle whether IPs are shown in the users CSV export
* feat: Allow defining active plugins in config (#10767)
* Revert "Revert "feat: cross origin opener policy options (#10710)""
This reverts commit 46050ace1a.
* Revert "Revert "chore(i18n): fallback strings for new resources: nodebb.admin-settings-advanced""
This reverts commit 9f291c07d3.
* feat: closes#10719, don't trim children if category is marked section
* feat: fire hook to allow plugins to filter the pids returned in a user profile
/cc julianlam/nodebb-plugin-support-forum#14
* fix: use `user.hidePrivateData();` more consistently across user retrieval endpoints
* feat: Allow defining active plugins in config
resolves#10766
* fix: assign the db result to files properly
* test: add tests with plugins in config
* feat: better theme change handling
* feat: add visual indication that plugins can't be activated
* test: correct hooks
* test: fix test definitions
* test: remove instead of resetting nconf to avoid affecting other tests
* test: ... I forgot how nconf worked
* fix: remove negation
* docs: improve wording of error message
* feat: reduce code duplication
* style: remove a redundant space
* fix: remove unused imports
* fix: use nconf instead of requiring config.json
* fix: await...
* fix: second missed await
* fix: move back from getActiveIds to getActive
* fix: use paths again?
* fix: typo
* fix: move require into the function
* fix: forgot to change back to getActive
* test: getActive returns only id
* test: accedently commented out some stuff
* feat: added note to top of plugins page if \!canChangeState
Co-authored-by: Julian Lam <julian@nodebb.org>
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
* feat: show an informative message when no plugins are found after filtering
fixes#10771
* Latest translations and fallbacks
* Latest translations and fallbacks
* chore(deps): bump ace-builds from 1.7.1 to 1.8.1 in /install
Bumps [ace-builds](https://github.com/ajaxorg/ace-builds) from 1.7.1 to 1.8.1.
- [Release notes](https://github.com/ajaxorg/ace-builds/releases)
- [Changelog](https://github.com/ajaxorg/ace-builds/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ajaxorg/ace-builds/compare/v1.7.1...v1.8.1)
---
updated-dependencies:
- dependency-name: ace-builds
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* fix: swap out icons in ACP > Manage > Categories to more intuitive ones, remove extra placeholder div
* fix: hide expando button if no subcategories; remove attempt at establishing common vars, increased spacing between categories in list
* fix: buggy expando state on category drag/drop
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
Co-authored-by: Opliko <opliko.reg@protonmail.com>
Co-authored-by: Misty Release Bot <deploy@nodebb.org>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Revert "Revert "feat: cross origin opener policy options (#10710)""
This reverts commit 46050ace1a.
* Revert "Revert "chore(i18n): fallback strings for new resources: nodebb.admin-settings-advanced""
This reverts commit 9f291c07d3.
* feat: closes#10719, don't trim children if category is marked section
* feat: fire hook to allow plugins to filter the pids returned in a user profile
/cc julianlam/nodebb-plugin-support-forum#14
* fix: use `user.hidePrivateData();` more consistently across user retrieval endpoints
* feat: Allow defining active plugins in config
resolves#10766
* fix: assign the db result to files properly
* test: add tests with plugins in config
* feat: better theme change handling
* feat: add visual indication that plugins can't be activated
* test: correct hooks
* test: fix test definitions
* test: remove instead of resetting nconf to avoid affecting other tests
* test: ... I forgot how nconf worked
* fix: remove negation
* docs: improve wording of error message
* feat: reduce code duplication
* style: remove a redundant space
* fix: remove unused imports
* fix: use nconf instead of requiring config.json
* fix: await...
* fix: second missed await
* fix: move back from getActiveIds to getActive
* fix: use paths again?
* fix: typo
* fix: move require into the function
* fix: forgot to change back to getActive
* test: getActive returns only id
* test: accedently commented out some stuff
* feat: added note to top of plugins page if \!canChangeState
Co-authored-by: Julian Lam <julian@nodebb.org>
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
* docs: use the new form issue template
* docs: add codeblock to plugins command in issue template
* docs: remove labels
* docs: remove all labels from issue templates
* style: add new line at the end of issue template files
* docs: re-add issue template labels
* feat: webpack 5 part 1
* fix: gruntfile fixes
* fix: fix taskbar warning
add app.importScript
copy public/src/modules to build folder
* refactor: remove commented old code
* feat: reenable admin
* fix: acp settings pages, fix sortable on manage categories
embedded require in html not allowed
* fix: bundle serialize/deserizeli so plugins dont break
* test: fixe util tests
* test: fix require path
* test: more test fixes
* test: require correct utils module
* test: require correct utils
* test: log stack
* test: fix db require blowing up tests
* test: move and disable bundle test
* refactor: add aliases
* test: disable testing route
* fix: move webpack modules necessary for build, into `dependencies`
* test: fix one more test
remove 500-embed.tpl
* fix: restore use of assets/nodebb.min.js, at least for now
* fix: remove unnecessary line break
* fix: point to proper ACP bundle
* test: maybe fix build test
* test: composer
* refactor: dont need dist
* refactor: more cleanup
use everything from build/public folder
* get rid of conditional import in app.js
* fix: ace
* refactor: cropper alias
* test: lint and test fixes
* lint: fix
* refactor: rename function to app.require
* refactor: go back to using app.require
* chore: use github branch
* chore: use webpack branch
* feat: webpack webinstaller
* feat: add chunkFile name with contenthash
* refactor: move hooks to top
* refactor: get rid of template500Function
* fix(deps): use webpack5 branch of 2factor plugin
* chore: tagging v2.0.0-beta.0 pre-release version 💥 :shipit: 🎉🚀
* refactor: disable cache on templates
loadTemplate is called once by benchpress and the result is cache internally
* refactor: add server side helpers.js
* feat: deprecate /plugins shorthand route, closes#10343
* refactor: use build/public for webpack
* test: fix filename
* fix: more specific selector
* lint: ignore
* refactor: fix comments
* test: add debug for random failing test
* refactor: cleanup
remove test page, remove dupe functions in utils.common
* lint: use relative path for now
* chore: bump prerelease version
* feat: add translateKeys
* fix: optional params
* fix: get rid of extra timeago files
* refactor: cleanup, require timeago locale earlier
remove translator.prepareDOM, it is in header.tpl html tag
* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels (#10378)
* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels
- Existing hooks are preserved (to be deprecated at a later date, possibly)
- New init hooks are called on NodeBB start, and provide a one-stop shop to add new privileges, instead of having to add to four different hooks
* docs: fix typo in comment
* test: spec changes
* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels (#10378)
* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels
- Existing hooks are preserved (to be deprecated at a later date, possibly)
- New init hooks are called on NodeBB start, and provide a one-stop shop to add new privileges, instead of having to add to four different hooks
* docs: fix typo in comment
* test: spec changes
* feat: allow app.require('bootbox'/'benchpressjs')
* refactor: require server side utils
* test: jquery ready
* change istaller to use build/public
* test: use document.addEventListener
* refactor: closes#10301
* refactor: generateTopicClass
* fix: column counts for other privileges
* fix: #10443, regression where sorted-list items did not render into the DOM in the predicted order [breaking]
* fix: typo in hook name
* refactor: introduce a generic autocomplete.init() method that can be called to add nodebb-style autocompletion but using different data sources (e.g. not user/groups/tags)
* fix: crash if `delay` not passed in (as it cannot be destructured)
* refactor: replace substr
* feat: set --panel-offset style in html element based on stored value in localStorage
* refactor: addDropupHandler() logic to be less naive
- Take into account height of the menu
- Don't apply dropUp logic if there's nothing in the dropdown
- Remove 'hidden' class (added by default in Persona for post tools) when menu items are added
closes#10423
* refactor: simplify utils.params [breaking]
Retrospective analysis of the usage of this method suggests that the options passed in are superfluous, and that only `url` is required. Using a browser built-in makes more sense to accomplish what this method sets out to do.
* feat: add support for returning full URLSearchParams for utils.params
* fix: utils.params() fallback handling
* fix: default empty obj for params()
* fix: remove \'loggedin\' and \'register\' qs parameters once they have been used, delay invocation of messages until ajaxify.end
* fix: utils.params() not allowing relative paths to be passed in
* refactor(DRY): new assertPasswordValidity utils method
* fix: incorrect error message returned on insufficient privilege on flag edit
* fix: read/update/delete access to flags API should be limited for moderators to only post flags in categories they moderate
- added failing tests and patched up middleware.assert.flags to fix
* refactor: flag api v3 tests to create new post and flags on every round
* fix: missing error:no-flag language key
* refactor: flags.canView to check flag existence, simplify middleware.assert.flag
* feat: flag deletion API endpoint, #10426
* feat: UI for flag deletion, closes#10426
* chore: update plugin versions
* chore: up emoji
* chore: update markdown
* chore: up emoji-android
* fix: regression caused by utils.params() refactor, supports arrays and pipes all values through utils.toType, adjusts tests to type check
Co-authored-by: Julian Lam <julian@nodebb.org>
.substr() is deprecated so we replace it with .slice() which works similarily but isn't deprecated
Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
* test: add failing test for if package.json is non-existant, fix tests' beforeEach method
* Revert "fix: #10289, remove lodash dependency in src/cli/package-install.js"
This reverts commit 81fa2e22bc.
* fix: regression caused by 94b79ce402
`./nodebb setup` was no longer able to be called without arguments or env vars
* fix: .updatePackageFile() throwing if no package.json
* fix: removing unneeded code in src/cli/index.js that seemed to be used to handle cases where package.json was missing (initial install)
... However, as .updatePackageFile() now handled cases where there is no package.json, it should be ok to remove this code
* fix: handle missing package.json or node_modules/
* test: add test to verify that a sorted set is automatically deleted if its last element is removed
* fix: remote empty zsets when all elements have been removed #yolo
* Revert "fix: remote empty zsets when all elements have been removed #yolo"
This reverts commit 0ac73244bb.
* fix: altered behaviour in module.exists instead of zrem
fix upgrade script so posts with negative votes are stored, a post can have 10 upvotes and 2 downvotes
fix missing negative votes checks
remove unnecessary pids flters since the cids are only already filtered by topics:read
If a package manager is not explicitly set in config.json or passed-in via argv/env, NodeBB will now check for the presence of alternative package managers' lockfiles and adjust the package manager to-be-used accordingly. If the standard npm lockfile exists, npm will always be used.
* feat: remove colors in favour of chalk
* fix: bad conversion from colors to chalk in src/cli/index.js
* fix: padWidth calculation to account for control characters
* fix: termWidth calculation, but swapped one problem for another
* fix: formatItem, implement my own padRight to take control characters into account
* feat: wip user emails api
* fix: allow admins with manage-users access to email confirmation api as well
* fix: wrong route path
* docs: openapi spec
if recent is used as the homepage then changing the selected category or filters was redirecting the user to forum.com/recent?cid=1 instead of staying at forum.com/?cid=1
also fix unread page mark read button showing the selected category
* init - fullname notifications setting
* fullname in topic reply
* fullname for group-request-membership
* fullname for group-leave notification
* fullname for new-post-flag & new-user-flag
* removed log
* fullname for user follow
* fullname in message notification
* fullname in follow
* fullname for sendNotificationToPostOwner
* fullname in sendNotificationToTopicOwner
* fullname in doExport
* shorthand name set
* shorter name set
* fullname in notifications
* displayname for notifications
* removed unused require
allow regular users access to post queue
allow regular users to edit their queued post/topic title
allow regular users to remove their post from post queue
ability to send a notification to user without removing from post queue
allow accessing single post queue items from notifications
socket.emit('topics.delete') removed use `DELETE /api/v3/topics/state`
socket.emit('topics.restore') removed use `PUT /api/v3/topics/state`
socket.emit('topics.purge') removed use `DELETE /api/v3/topics`
socket.emit('topics.lock') removed use `PUT /api/v3/topics/lock`
socket.emit('topics.unlock') removed use `DELETE /api/v3/topics/lock`
socket.emit('topics.pin') removed use `PUT /api/v3/topics/pin`
socket.emit('topics.unpin') removed use `DELETE /api/v3/topics/pin`
Also updated the plugin hook call to `static:sockets.validateSession` to not return a result, because in static calls that result is always null anyway
* refactor: use routePrefixMap instead of routeRegexpMap, +tests
Currently tests fail because privilege pages resolve if passed garbage... hmm
* fix: priv check paths
remove /v3 from path as well
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
this hook only fires when loading the posts of a topic cold load + infinite scroll
do not remove posts if they have index =-1
use topics.getTopicPosts instead of getMainPostAndReplies
deprecate:
app.handleSearch, use search.init(options) instead
app.enableTopicSearch, use search.enableQuickSearch(options) instead
app.prepareSearch, use search.showAndFocusInput() instead
Removed continueLogin override in favour of a simpler `redirectAfterLogin` override
Use passport to authenticate username and password instead of duplicated logic.
1. meta.settings.set('name', values); // reloadRequired is set to true
2. meta.settings.set('otherName', values, false); // reloadRequired was set to false, even though it should stay true until restart due to step 1
* fix: some empty xml tag bodies
* fix: missing/wrong attributing of label tags
* fix: attribute fixes
* fix: misassociated label
* fix: missing alt attributes
* fix: some more missing associated labels
this fixes infinitescroll when url has custom query parameters
also fixes infinitescroll for plugins like QnA
fixes infinitescroll on tags page
deprecate topics.loadMoreSortedTopics
deprecate topics.loadMoreFromSet
* feat: WIP topic linkbacks, + failing tests
* test: don't accidentally comment out all of the post tests
* fix: rename to "backlinks"
* feat: more stub code, more failing tests
* feat: backend methods and passing tests for topic backlinks
* test: uncomment test/posts.js again
* fix: missing quotation mark in topic event helper
* fix: superfluous usage of Promise.all
* test: fix broken test -- used hardcoded (and incorrect) url
* test: parseInt shenanigans
* fix: privileges added by plugins
when copying a categories privileges, privileges added by plugins will be copied as well
when purging a category privileges added by plugins will be purged as well
show plugin privileges in privileges.<categories/admin/global>.get
show plugin privileges in privileges.<categories/admin/global>.userPrivileges
show plugin privileges in privileges.<categories/admin/global>.groupPrivileges
* fix: typo
* feat: column based view on wide priv. tables
* fix: add group/user
* feat: copy buttons to work on visible privs
* feat: show what's being copied in modal
* feat: optional title and message for category selector modal
* style: reformat list of helpers exported
* refactor: move topic events partial into a helper, invoke helper in topic.tpl (see persona), update how events are added to the DOM via addTopicEvents
closes#9731
* style: lint
* feat: new routes for flags API
+ flag get
+ flag creation, migration from socket method
+ flag update, migration from socket method
* fixed bug where you could not unassign someone from a flag
* feat: tests for new flags API
added missing files for schema update
* fix: flag tests to use Write API instead of sockets
* feat: flag notes API + tests
* chore: remove debug line
* test: fix breaking test on mongo
// identical to airbnb rule, except for allowing for..of, because we want to use it
"no-restricted-syntax": [
"error",
{
"selector": "ForInStatement",
"message": "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."
},
{
"selector": "LabeledStatement",
"message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
},
{
"selector": "WithStatement",
"message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
NodeBB's security policy is based around a private bug bounty program. Users are invited to explore NodeBB for vulnerabilities, and report them to the NodeBB team so that they can be patched.
NodeBB's security policy is based around a private bug bounty program. Users are invited to explore NodeBB for vulnerabilities, and report them to the NodeBB team so that they can be patched.
If you have found a security vulnerability, **do not post it onto our GitHub tracker**. Some security vulnerabilities are quite severe and discretion is recommended. Email the NodeBB Security Team at security@nodebb.org, instead.
If you have found a security vulnerability, **do not post it onto our GitHub tracker**. Some security vulnerabilities are quite severe and discretion is recommended. Email the NodeBB Security Team at security@nodebb.org, instead, even if you are not sure whether something qualifies.
# Bug Bounty Program
# Bug Bounty Program
Security vulnerability reports may be eligible for a bounty based on severity and confirmation from NodeBB team members. For full details regarding our bug bounty program, including the bounty amounts, please consult the following page: https://blog.nodebb.org/bounty
Security vulnerability reports may be eligible for a bounty based on severity and confirmation from NodeBB team members. For full details regarding our bug bounty program, including the bounty amounts, please consult the [dedicated page for our Bug Bounty Program](https://nodebb.org/bounty).
[**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.
[**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 takes the best of the modern web: real-time streaming discussions, mobile responsiveness, and rich RESTful read/write APIs, while staying true to the original bulletin board/forum format → categorical hierarchies, local user accounts, and asynchronous messaging.
Additional functionality is enabled through the use of third-party plugins.
NodeBB by itself contains a "common core" of basic functionality, while additional functionality and integrations are enabled through the use of third-party plugins.
* [Demo](https://try.nodebb.org)
### [Try it now](//try.nodebb.org) | [Documentation](//docs.nodebb.org)
* [Premium Hosting for NodeBB](http://www.nodebb.org/ "NodeBB")
* [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")
## Screenshots
## Screenshots
@@ -42,7 +35,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
* If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of [plugins](http://community.nodebb.org/category/7/nodebb-plugins) which would be a great starting point for learning the codebase.
* If you are a developer, feel free to check out the source and submit pull requests. We also have a wide array of [plugins](http://community.nodebb.org/category/7/nodebb-plugins) which would be a great starting point for learning the codebase.
* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether.
* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether.
* If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://www.transifex.com/projects/p/nodebb/) for internationalization.
* If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://explore.transifex.com/nodebb/nodebb/) for internationalization.
* Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development.
* Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development.
## Requirements
## Requirements
@@ -50,7 +43,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
NodeBB requires the following software to be installed:
NodeBB requires the following software to be installed:
* A version of Node.js at least 12 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* A version of Node.js at least 12 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* MongoDB, version 2.6 or greater **or** Redis, version 2.8.9 or greater
* MongoDB, version 3.6 or greater **or** Redis, version 2.8.9 or greater
* If you are using [clustering](https://docs.nodebb.org/configuring/scaling/) you need Redis installed and configured.
* If you are using [clustering](https://docs.nodebb.org/configuring/scaling/) you need Redis installed and configured.
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
@@ -78,3 +71,15 @@ Detailed upgrade instructions are listed in [Upgrading NodeBB](https://docs.node
NodeBB is licensed under the **GNU General Public License v3 (GPL-3)** (http://www.gnu.org/copyleft/gpl.html).
NodeBB is licensed under the **GNU General Public License v3 (GPL-3)** (http://www.gnu.org/copyleft/gpl.html).
Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive environment? Contact us at sales@nodebb.org.
Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive environment? Contact us at sales@nodebb.org.
// except for allowing for..in, because for..of is unavailable on some clients
"no-restricted-syntax": [
"error",
{
"selector": "ForOfStatement",
"message": "iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations."
},
{
"selector": "LabeledStatement",
"message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
},
{
"selector": "WithStatement",
"message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
"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 & 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",
"description":"تُحدد اللغة الافتراضية إعدادات اللغة لجميع المستخدمين الذين يزورون المنتدى. <br />يمكن للأعضاء تجاوز اللغة الافتراضية من خلال صفحة إعدادات الحساب الخاصة بهم.",
"default-language":"اللغة الافتراضية",
"auto-detect":"الكشف عن إعدادات اللغة للزوار بشكل آلي"
"alert.saved":"Privilege changes saved and applied",
"alert.saved":"Privilege changes saved and applied",
"alert.confirm-discard":"Are you sure you wish to discard your privilege changes?",
"alert.confirm-discard":"Are you sure you wish to discard your privilege changes?",
"alert.discarded":"Privilege changes discarded",
"alert.discarded":"Privilege changes discarded",
"alert.confirm-copyToAll":"Are you sure you wish to apply this privilege set to <strong>all categories</strong>?",
"alert.confirm-copyToAll":"Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
"alert.confirm-copyToAllGroup":"Are you sure you wish to apply this group's privilege set to <strong>all categories</strong>?",
"alert.confirm-copyToAllGroup":"Are you sure you wish to apply this group's set of <strong>%1</strong> to <strong>all categories</strong>?",
"alert.confirm-copyToChildren":"Are you sure you wish to apply this privilege set to <strong>all descendant (child) categories</strong>?",
"alert.confirm-copyToChildren":"Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all descendant (child) categories</strong>?",
"alert.confirm-copyToChildrenGroup":"Are you sure you wish to apply this group's privilege set to <strong>all descendant (child) categories</strong>?",
"alert.confirm-copyToChildrenGroup":"Are you sure you wish to apply this group's set of <strong>%1</strong> to <strong>all descendant (child) categories</strong>?",
"alert.no-undo":"<em>This action cannot be undone.</em>",
"alert.no-undo":"<em>This action cannot be undone.</em>",
"alert.admin-warning":"Administrators implicitly get all privileges"
"alert.admin-warning":"Administrators implicitly get all privileges",
"alert.copyPrivilegesFrom-title":"Select a category to copy from",
"alert.copyPrivilegesFrom-warning":"This will copy <strong>%1</strong> from the selected category.",
"alert.copyPrivilegesFromGroup-warning":"This will copy this group's set of <strong>%1</strong> from the selected category."
"alerts.confirm-delete":"<strong>Warning!</strong><p>Do you really want to delete <strong>user(s)</strong>?</p><p>This action is not reversible! Only the user account will be deleted, their posts and topics will remain.</p>",
"alerts.confirm-delete":"<strong>Warning!</strong><p>Do you really want to delete <strong>user(s)</strong>?</p><p>This action is not reversible! Only the user account will be deleted, their posts and topics will remain.</p>",
"alerts.delete-success":"User(s) Deleted!",
"alerts.delete-success":"User(s) Deleted!",
"alerts.confirm-delete-content":"<strong>Warning!</strong><p>Do you really want to delete these user(s) <strong>content</strong>?</p><p>This action is not reversible! The users' accounts will remain, but their posts and topics will be deleted.</p>",
"alerts.confirm-delete-content":"<strong>Warning!</strong><p>Do you really want to delete these user(s) <strong>content</strong>?</p><p>This action is not reversible! The users' accounts will remain, but their posts and topics will be deleted.</p>",
"maintenance-mode.help":"When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.help":"When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status":"Maintenance Mode Status Code",
"maintenance-mode.status":"Maintenance Mode Status Code",
"maintenance-mode.message":"Maintenance Message",
"maintenance-mode.message":"Maintenance Message",
"maintenance-mode.groups-exempt-from-maintenance-mode":"Select groups that should be exempt from maintenance mode",
"headers":"Headers",
"headers":"Headers",
"headers.allow-from":"Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.allow-from":"Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors":"Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors":"Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
"headers.permissions-policy-help":"Allows setting permissions policy header, for example \"geolocation=*, camera=()\", see <a href=\"https://github.com/w3c/webappsec-permissions-policy/blob/main/permissions-policy-explainer.md\">this</a> for more info.",
"from-help":"The from name to display in the email.",
"from-help":"The from name to display in the email.",
"confirmation-settings":"Confirmation",
"confirmation.expiry":"Hours to keep email confirmation link valid",
"smtp-transport":"SMTP Transport",
"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-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":"Select a service",
"smtp-transport.service-custom":"Custom Service",
"smtp-transport.service-custom":"Custom Service",
"smtp-transport.service-help":"Select a service name above in order to use the known information about it. Alternatively, select 'Custom Service' and enter the details below.",
"smtp-transport.service-help":"Select a service name above in order to use the known information about it. Alternatively, select "Custom Service" and enter the details below.",
"smtp-transport.gmail-warning1":"There have been reports of the Gmail service not working on accounts with heightened security. In those scenarios, you will have to <a href=\"https://www.google.com/settings/security/lesssecureapps\">configure your GMail account to allow less secure apps</a>.",
"smtp-transport.gmail-warning1":"If you are using GMail as your email provider, you will have to generate an "App Password" in order for NodeBB to authenticate successfully. You can generate one at the <a href=\"https://myaccount.google.com/apppasswords\">App Passwords <i class=\"fa fa-external-link\"></i></a> page.",
"smtp-transport.gmail-warning2":"For more information about this workaround, <a href=\"https://nodemailer.com/usage/using-gmail/\">please consult this NodeMailer article on the issue.</a> An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. <a href=\"../extend/plugins\">Browse available plugins here</a>.",
"smtp-transport.gmail-warning2":"For more information about this workaround, <a href=\"https://nodemailer.com/usage/using-gmail/\">please consult this NodeMailer article <i class=\"fa fa-external-link\"></i></a> on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. <a href=\"../extend/plugins\">Browse available plugins here</a>.",
"smtp-transport.auto-enable-toast":"It looks like you're configuring an SMTP transport. We enabled the \"SMTP Transport\" option for you.",
"smtp-transport.host":"SMTP Host",
"smtp-transport.host":"SMTP Host",
"smtp-transport.port":"SMTP Port",
"smtp-transport.port":"SMTP Port",
"smtp-transport.security":"Connection security",
"smtp-transport.security":"Connection security",
@@ -36,6 +40,13 @@
"subscriptions.disable":"Disable email digests",
"subscriptions.disable":"Disable email digests",
"subscriptions.hour":"Digest Hour",
"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>",
"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",
"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 by leaving the field blank. 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>",
"send-validation-email":"Send validation emails when an email is added or changed",
"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> – 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.",
"sendEmailToBanned":"Send emails to users even if they have been banned"
"title.short-placeholder":"ان لم تقم بكتابة عنوان مختصر, سيتم استخدام عنوان الموقع الكلي",
"title.short-placeholder":"ان لم تقم بكتابة عنوان مختصر, سيتم استخدام عنوان الموقع الكلي",
"title.url":"الرابط",
"title.url":"Title Link URL",
"title.url-placeholder":"The URL of the site title",
"title.url-placeholder":"The URL of the site title",
"title.url-help":"When the title is clicked, send users to this address. If left blank, user will be sent to the forum index.",
"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.name":"اسم المنتدي",
"title.show-in-header":"Show Site Title in Header",
"title.show-in-header":"Show Site Title in Header",
"browser-title":"عنوان المتصفح",
"browser-title":"عنوان المتصفح",
@@ -20,9 +20,9 @@
"logo.image":"صورة",
"logo.image":"صورة",
"logo.image-placeholder":"Path to a logo to display on forum header",
"logo.image-placeholder":"Path to a logo to display on forum header",
"logo.upload":"رفع",
"logo.upload":"رفع",
"logo.url":"الرابط",
"logo.url":"Logo Link URL",
"logo.url-placeholder":"The URL of the site logo",
"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":"نص بديل",
"logo.alt-text":"نص بديل",
"log.alt-text-placeholder":"Alternative text for accessibility",
"log.alt-text-placeholder":"Alternative text for accessibility",
"favicon":"صورة المفضله",
"favicon":"صورة المفضله",
@@ -35,7 +35,10 @@
"maskable-icon.help":"Recommended size and format: 512x512, PNG format only. If no maskable icon is specified, NodeBB will fall back to the Touch Icon.",
"maskable-icon.help":"Recommended size and format: 512x512, PNG format only. If no maskable icon is specified, NodeBB will fall back to the Touch Icon.",
"outgoing-links.whitelist":"Domains to whitelist for bypassing the warning page",
"outgoing-links.whitelist":"Domains to whitelist for bypassing the warning page",
"site-colors":"Site Color Metadata",
"site-colors":"Site Color Metadata",
"theme-color":"لون الثيم",
"theme-color":"لون الثيم",
@@ -44,4 +47,4 @@
"undo-timeout":"Undo Timeout",
"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.",
"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.",
"dropdown-placeholder":"Place your dropdown menu items below, ie: <br/><li><a href="https://myforum.com">Link 1</a></li>",
"composer-help":"The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.",
"composer-help":"The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.",
"composer.show-help":"Show \"Help\" tab",
"composer.show-help":"Show \"Help\" tab",
"composer.enable-plugin-help":"Allow plugins to add content to the help tab",
"composer.enable-plugin-help":"Allow plugins to add content to the help tab",
"composer.custom-help":"Custom Help Text",
"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":"IP Tracking",
"ip-tracking.each-post":"Track IP Address for each post",
"ip-tracking.each-post":"Track IP Address for each post",
"flags.limit-per-target-help":"When a post or user is flagged multiple times, each additional flag is considered a "report" and added to the original flag. Set this option to a number other than zero to limit the number of reports an item can receive.",
"flags.limit-per-target-help":"When a post or user is flagged multiple times, each additional flag is considered a "report" and added to the original flag. Set this option to a number other than zero to limit the number of reports an item can receive.",
"flags.auto-resolve-on-ban":"Automatically resolve all of a user's tickets when they are banned"
"flags.auto-flag-on-downvote-threshold":"Number of downvotes to auto flag posts (Set to 0 to disable, default: 0)",
"flags.auto-resolve-on-ban":"Automatically resolve all of a user's tickets when they are banned",
"flags.action-on-resolve":"Do the following when a flag is resolved",
"flags.action-on-reject":"Do the following when a flag is rejected",
"flags.action.nothing":"Do nothing",
"flags.action.rescind":"Rescind the notification send to moderators/administrators"
"preserve-orphaned-uploads":"Keep uploaded files on disk after a post is purged",
"orphanExpiryDays":"Days to keep orphaned files",
"orphanExpiryDays-help":"After this many days, orphaned uploads will be deleted from the file system.<br />Set 0 or leave blank to disable.",
"private-extensions":"File extensions to make private",
"private-extensions":"File extensions to make private",
"private-uploads-extensions-help":"Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
"private-uploads-extensions-help":"Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
"resize-image-width-threshold":"Resize images if they are wider than specified width",
"resize-image-width-threshold":"Resize images if they are wider than specified width",
"email-confirm-interval":"لا يمكن للمستخدم إعادة إرسال رسالة تأكيد البريد الالكتروني حتى مرور",
"email-confirm-interval":"لا يمكن للمستخدم إعادة إرسال رسالة تأكيد البريد الالكتروني حتى مرور",
"email-confirm-email2":"دقائق",
"email-confirm-interval2":"minutes have elapsed",
"allow-login-with":"السماح بتسجيل الدخول باستخدام",
"allow-login-with":"السماح بتسجيل الدخول باستخدام",
"allow-login-with.username-email":"اسم المستخدم أو البريد الالكتروني",
"allow-login-with.username-email":"اسم المستخدم أو البريد الالكتروني",
"allow-login-with.username":"اسم المستخدم فقط",
"allow-login-with.username":"اسم المستخدم فقط",
"allow-login-with.email":"البريد الالكتروني فقط",
"account-settings":"إعدادت الحساب",
"account-settings":"إعدادت الحساب",
"gdpr_enabled":"Enable GDPR consent collection",
"gdpr_enabled":"Enable GDPR consent collection",
"gdpr_enabled_help":"When enabled, all new registrants will be required to explicitly give consent for data collection and usage under the <a href=\"https://ec.europa.eu/info/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules/eu-data-protection-rules_en\">General Data Protection Regulation (GDPR)</a>. <strong>Note</strong>: Enabling GDPR does not force pre-existing users to provide consent. To do so, you will need to install the GDPR plugin.",
"gdpr_enabled_help":"When enabled, all new registrants will be required to explicitly give consent for data collection and usage under the <a href=\"https://ec.europa.eu/info/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules/eu-data-protection-rules_en\">General Data Protection Regulation (GDPR)</a>. <strong>Note</strong>: Enabling GDPR does not force pre-existing users to provide consent. To do so, you will need to install the GDPR plugin.",
@@ -71,6 +69,7 @@
"digest-freq.off":"Off",
"digest-freq.off":"Off",
"digest-freq.daily":"Daily",
"digest-freq.daily":"Daily",
"digest-freq.weekly":"Weekly",
"digest-freq.weekly":"Weekly",
"digest-freq.biweekly":"Bi-Weekly",
"digest-freq.monthly":"Monthly",
"digest-freq.monthly":"Monthly",
"email-chat-notifs":"Send an email if a new chat message arrives and I am not online",
"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",
"email-post-notif":"Send an email when replies are made to topics I am subscribed to",
"email.verify-your-email.subject":"Please verify your email",
"email.verify-your-email.subject":"Please verify your email",
"email.verify.text1":"Your email address has changed!",
"email.verify.text1":"You've requested that we change or confirm your email address",
"email.verify.text2":"For security purposes, we only change or confirm the email address on file once its ownership has been confirmed via email. <strong>If you did not request this, no action is required on your part.</strong>",
"email.verify.text3":"Once you confirm this email address, we will replace your current email address with this one (%1).",
"welcome.text1":"شكرًا على تسجيلك في %1!",
"welcome.text1":"شكرًا على تسجيلك في %1!",
"welcome.text2":"لتفعيل حسابك، نحتاج إلى التأكد من صحة عنوان البريد الإلكتروني الذي سجلت به.",
"welcome.text2":"لتفعيل حسابك، نحتاج إلى التأكد من صحة عنوان البريد الإلكتروني الذي سجلت به.",
"welcome.text3":"تم قبول نتسجيلك ، يمكنك الدخول باتسخدام اسم المستخدم و كلمة المرور.",
"welcome.text3":"تم قبول نتسجيلك ، يمكنك الدخول باتسخدام اسم المستخدم و كلمة المرور.",
@@ -46,6 +48,8 @@
"unsub.cta":"انقر هنا لتغيير تلك الإعدادات",
"unsub.cta":"انقر هنا لتغيير تلك الإعدادات",
"unsubscribe":"unsubscribe",
"unsubscribe":"unsubscribe",
"unsub.success":"You will no longer receive emails from the <strong>%1</strong> mailing list",
"unsub.success":"You will no longer receive emails from the <strong>%1</strong> mailing list",
"unsub.failure.title":"Unable to unsubscribe",
"unsub.failure.message":"Unfortunately, we were not able to unsubscribe you from the mailing list, as there was an issue with the link. However, you can alter your email preferences by going to <a href=\"%2\">your user settings</a>.<br /><br />(error: <code>%1</code>)",
"banned.subject":"You have been banned from %1",
"banned.subject":"You have been banned from %1",
"banned.text1":"The user %1 has been banned from %2.",
"banned.text1":"The user %1 has been banned from %2.",
"wrong-parameter-type":"A value of type %3 was expected for property `%1`, but %2 was received instead",
"required-parameters-missing":"Required parameters were missing from this API call: %1",
"not-logged-in":"لم تقم بتسجيل الدخول",
"not-logged-in":"لم تقم بتسجيل الدخول",
"account-locked":"تم حظر حسابك مؤقتًا.",
"account-locked":"تم حظر حسابك مؤقتًا.",
"search-requires-login":"البحث في المنتدى يتطلب حساب - الرجاء تسجيل الدخول أو التسجيل",
"search-requires-login":"البحث في المنتدى يتطلب حساب - الرجاء تسجيل الدخول أو التسجيل",
@@ -9,6 +11,7 @@
"invalid-tid":"موضوع غير متواجد",
"invalid-tid":"موضوع غير متواجد",
"invalid-pid":"رد غير موجود",
"invalid-pid":"رد غير موجود",
"invalid-uid":"مستخدم غير موجود",
"invalid-uid":"مستخدم غير موجود",
"invalid-mid":"Invalid Chat Message ID",
"invalid-date":"A valid date must be provided",
"invalid-date":"A valid date must be provided",
"invalid-username":"اسم المستخدم غير مقبول",
"invalid-username":"اسم المستخدم غير مقبول",
"invalid-email":"البريد الاكتروني غير مقبول",
"invalid-email":"البريد الاكتروني غير مقبول",
@@ -25,14 +28,18 @@
"invalid-event":"Invalid event: %1",
"invalid-event":"Invalid event: %1",
"local-login-disabled":"Local login system has been disabled for non-privileged accounts.",
"local-login-disabled":"Local login system has been disabled for non-privileged accounts.",
"csrf-invalid":"لم تتمكن من تسجيل الدخول. هنالك أحتمال ان جلستك انتهت. رجاءًا حاول مرة اخرى.",
"csrf-invalid":"لم تتمكن من تسجيل الدخول. هنالك أحتمال ان جلستك انتهت. رجاءًا حاول مرة اخرى.",
"invalid-path":"Invalid path",
"folder-exists":"Folder exists",
"invalid-pagination-value":"رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
"invalid-pagination-value":"رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
"username-taken":"اسم المستخدم مأخوذ",
"username-taken":"اسم المستخدم مأخوذ",
"email-taken":"البريد الالكتروني مأخوذ",
"email-taken":"البريد الالكتروني مأخوذ",
"email-nochange":"The email entered is the same as the email already on file.",
"email-invited":"Email was already invited",
"email-invited":"Email was already invited",
"email-not-confirmed":"You are unable to post until your email is confirmed, please click here to confirm your email.",
"email-not-confirmed":"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-chat":"لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
"email-not-confirmed-email-sent":"Your email has not been confirmed yet, please check your inbox for the confirmation email. You won't be able to post or chat until your email is confirmed.",
"email-not-confirmed-email-sent":"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":"هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.",
"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.",
"sendmail-not-found":"The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
"sendmail-not-found":"The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
@@ -54,6 +61,8 @@
"no-group":"مجموعة غير موجودة",
"no-group":"مجموعة غير موجودة",
"no-user":"اسم مستخدم غير موجود",
"no-user":"اسم مستخدم غير موجود",
"no-teaser":"مقتطف غير موجود",
"no-teaser":"مقتطف غير موجود",
"no-flag":"Flag does not exist",
"no-chat-room":"Chat room does not exist",
"no-privileges":"لاتملك الصلاحيات اللازمة للقيام بهذه العملية",
"no-privileges":"لاتملك الصلاحيات اللازمة للقيام بهذه العملية",
"category-disabled":"قائمة معطلة",
"category-disabled":"قائمة معطلة",
"topic-locked":"الموضوع مقفول",
"topic-locked":"الموضوع مقفول",
@@ -80,6 +89,7 @@
"category-not-selected":"Category not selected.",
"category-not-selected":"Category not selected.",
"too-many-posts":"يسمح لك بالنشر مرة كل %1 ثانية - يرجى الإنتظار قبل النشر مجدداً",
"too-many-posts":"يسمح لك بالنشر مرة كل %1 ثانية - يرجى الإنتظار قبل النشر مجدداً",
"too-many-posts-newbie":"As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
"too-many-posts-newbie":"As a new user, you can only post once every %1 second(s) until you have earned %2 reputation - please wait before posting again",
"already-posting":"You are already posting",
"tag-too-short":"Please enter a longer tag. Tags should contain at least %1 character(s)",
"tag-too-short":"Please enter a longer tag. Tags should contain at least %1 character(s)",
"tag-too-long":"Please enter a shorter tag. Tags can't be longer than %1 character(s)",
"tag-too-long":"Please enter a shorter tag. Tags can't be longer than %1 character(s)",
"not-enough-tags":"Not enough tags. Topics must have at least %1 tag(s)",
"not-enough-tags":"Not enough tags. Topics must have at least %1 tag(s)",
@@ -100,6 +110,10 @@
"already-bookmarked":"You have already bookmarked this post",
"already-bookmarked":"You have already bookmarked this post",
"already-unbookmarked":"You have already unbookmarked this post",
"already-unbookmarked":"You have already unbookmarked this post",
"cant-ban-other-admins":"لايمكن حظر مدبر نظام آخر.",
"cant-ban-other-admins":"لايمكن حظر مدبر نظام آخر.",
"cant-mute-other-admins":"You can't mute other admins!",
"user-muted-for-hours":"You have been muted, you will be able to post in %1 hour(s)",
"user-muted-for-minutes":"You have been muted, you will be able to post in %1 minute(s)",
"cant-make-banned-users-admin":"You can't make banned users admin.",
"cant-remove-last-admin":"رجاءًا ، أضف مدير أخر قبل حذف صلاحيات الإدارة من حسابك.",
"cant-remove-last-admin":"رجاءًا ، أضف مدير أخر قبل حذف صلاحيات الإدارة من حسابك.",
"account-deletion-disabled":"Account deletion is disabled",
"account-deletion-disabled":"Account deletion is disabled",
"cant-delete-admin":"رجاءًا أزل صلاحيات الإدارة قبل حذف الحساب. ",
"cant-delete-admin":"رجاءًا أزل صلاحيات الإدارة قبل حذف الحساب. ",
@@ -137,29 +151,35 @@
"invalid-chat-message":"الرسالة غير صالحة.",
"invalid-chat-message":"الرسالة غير صالحة.",
"chat-message-too-long":"Chat messages can not be longer than %1 characters.",
"chat-message-too-long":"Chat messages can not be longer than %1 characters.",
"cant-edit-chat-message":"غير مصرح لك بتعديل الرسالة.",
"cant-edit-chat-message":"غير مصرح لك بتعديل الرسالة.",
"cant-remove-last-user":"لأيمكنك إزالت اخر مستخدم.",
"cant-delete-chat-message":"غير مصرح لك بحذف الرسالة.",
"cant-delete-chat-message":"غير مصرح لك بحذف الرسالة.",
"chat-edit-duration-expired":"You are only allowed to edit chat messages for %1 second(s) after posting",
"chat-edit-duration-expired":"You are only allowed to edit chat messages for %1 second(s) after posting",
"chat-delete-duration-expired":"You are only allowed to delete chat messages for %1 second(s) after posting",
"chat-delete-duration-expired":"You are only allowed to delete chat messages for %1 second(s) after posting",
"chat-deleted-already":"This chat message has already been deleted.",
"chat-deleted-already":"This chat message has already been deleted.",
"chat-restored-already":"This chat message has already been restored.",
"chat-restored-already":"This chat message has already been restored.",
"chat-room-does-not-exist":"Chat room does not exist.",
"chat-room-does-not-exist":"Chat room does not exist.",
"cant-add-users-to-chat-room":"Can't add users to chat room.",
"cant-remove-users-from-chat-room":"Can't remove users from chat room.",
"chat-room-name-too-long":"Chat room name too long.",
"already-voting-for-this-post":"لقد شاركت بالتصويت ، ألا تذكر؟",
"already-voting-for-this-post":"لقد شاركت بالتصويت ، ألا تذكر؟",
"reputation-system-disabled":"نظام السمعة معطل",
"reputation-system-disabled":"نظام السمعة معطل",
"downvoting-disabled":"التصويتات السلبية معطلة",
"downvoting-disabled":"التصويتات السلبية معطلة",
"not-enough-reputation-to-downvote":"ليس لديك سمعة تكفي لإضافة صوت سلبي لهذا الموضوع",
"not-enough-reputation-to-chat":"You need %1 reputation to chat",
"not-enough-reputation-to-upvote":"You need %1 reputation to upvote",
"not-enough-reputation-min-rep-website":"You do not have enough reputation to add a website",
"not-enough-reputation-to-downvote":"You need %1 reputation to downvote",
"not-enough-reputation-min-rep-aboutme":"You do not have enough reputation to add an about me",
"not-enough-reputation-to-flag":"You need %1 reputation to flag this post",
"not-enough-reputation-min-rep-signature":"You do not have enough reputation to add a signature",
"not-enough-reputation-min-rep-website":"You need %1 reputation to add a website",
"not-enough-reputation-min-rep-profile-picture":"You do not have enough reputation to add a profile picture",
"not-enough-reputation-min-rep-aboutme":"You need %1 reputation to add an about me",
"not-enough-reputation-min-rep-cover-picture":"You do not have enough reputation to add a cover picture",
"not-enough-reputation-min-rep-signature":"You need %1 reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture":"You need %1 reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture":"You need %1 reputation to add a cover picture",
"post-already-flagged":"You have already flagged this post",
"post-already-flagged":"You have already flagged this post",
"user-already-flagged":"You have already flagged this user",
"user-already-flagged":"You have already flagged this user",
"post-flagged-too-many-times":"This post has been flagged by others already",
"post-flagged-too-many-times":"This post has been flagged by others already",
"user-flagged-too-many-times":"This user has been flagged by others already",
"user-flagged-too-many-times":"This user has been flagged by others already",
"cant-flag-privileged":"You are not allowed to flag the profiles or content of privileged users (moderators/global moderators/admins)",
"cant-flag-privileged":"You are not allowed to flag the profiles or content of privileged users (moderators/global moderators/admins)",
"self-vote":"You cannot vote on your own post",
"self-vote":"You cannot vote on your own post",
"too-many-upvotes-today":"You can only upvote %1 times a day",
"too-many-upvotes-today-user":"You can only upvote a user %1 times a day",
"too-many-downvotes-today":"You can only downvote %1 times a day",
"too-many-downvotes-today":"You can only downvote %1 times a day",
"too-many-downvotes-today-user":"You can only downvote a user %1 times a day",
"too-many-downvotes-today-user":"You can only downvote a user %1 times a day",
"reload-failed":"المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
"reload-failed":"المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
@@ -190,6 +210,8 @@
"no-connection":"There seems to be a problem with your internet connection",
"no-connection":"There seems to be a problem with your internet connection",
"socket-reconnect-failed":"Unable to reach the server at this time. Click here to try again, or try again later",
"socket-reconnect-failed":"Unable to reach the server at this time. Click here to try again, or try again later",
"plugin-not-whitelisted":"Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
"plugin-not-whitelisted":"Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
"plugins-set-in-configuration":"You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.",
"theme-not-set-in-configuration":"When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP",
"consent.export-uploads-success":"Exporting uploads, you will get a notification when it is complete.",
"consent.export-uploads-success":"Exporting uploads, you will get a notification when it is complete.",
"consent.export_posts":"Export Posts (.csv)",
"consent.export_posts":"Export Posts (.csv)",
"consent.export-posts-success":"Exporting posts, you will get a notification when it is complete."
"consent.export-posts-success":"Exporting posts, you will get a notification when it is complete.",
"emailUpdate.intro":"Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
"emailUpdate.optional":"<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email you will not be able to recover your account or login with your email.",
"emailUpdate.required":"<strong>This field is required</strong>.",
"emailUpdate.change-instructions":"A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page.",
"emailUpdate.password-challenge":"Please enter your password in order to verify account ownership."
"details.no-users":"В избрания период не сасе регистрирали нови потребители",
"details.no-users":"В избрания период не сасе регистрирали нови потребители",
"details.no-topics":"В избрания период не са публикувани нови теми",
"details.no-topics":"В избрания период не са публикувани нови теми",
"details.no-searches":"Все още не са правени търсения",
"details.no-logins":"В избрания период не са отчетени вписвания",
"details.no-logins":"В избрания период не са отчетени вписвания",
"details.logins-static":"NodeBB запазва данни за сесията в продължение на %1 дни, така че в следната таблица могат да се видят само последните активни сесии",
"details.logins-static":"NodeBB запазва данни за сесията в продължение на %1 дни, така че в следната таблица могат да се видят само последните активни сесии",
"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, за да се възползвате от последните подобрения на сигурността и поправки на проблеми.",
"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>",
"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":"Преглеждания на страниците от ботове",
"description":"Езикът по подразбиране определя езиковите настройки за всички потребители, които посещават Вашия форум. <br />Отделните потребители могат да сменят езика си от страницата с настройки на профила си.",
"default-language":"Език по подразбиране",
"auto-detect":"Автоматично разпознаване на езика за гостите"
"alert.saved":"Промените по правомощията са запазени и приложени",
"alert.saved":"Промените по правомощията са запазени и приложени",
"alert.confirm-discard":"Наистина ли искате да отхвърлите промените по правомощията?",
"alert.confirm-discard":"Наистина ли искате да отхвърлите промените по правомощията?",
"alert.discarded":"Промените по правомощията са отхвърлени",
"alert.discarded":"Промените по правомощията са отхвърлени",
"alert.confirm-copyToAll":"Наистина ли искате да приложите този набор от правомощия към <strong>всички категории</strong>?",
"alert.confirm-copyToAll":"Наистина ли искате да приложите този набор от <strong>%1</strong> към <strong>всички категории</strong>?",
"alert.confirm-copyToAllGroup":"Наистина ли искате да приложите набора от правомощия на таи група към <strong>всички категории</strong>?",
"alert.confirm-copyToAllGroup":"Наистина ли искате да приложите набора от <strong>%1</strong> на тази група към <strong>всички категории</strong>?",
"alert.confirm-copyToChildren":"Наистина ли искате да приложите този набор от правомощия към <strong>всички по-долни (дъщерни) категории</strong>?",
"alert.confirm-copyToChildren":"Наистина ли искате да приложите този набор от <strong>%1</strong> към <strong>всички по-долни (дъщерни) категории</strong>?",
"alert.confirm-copyToChildrenGroup":"Наистина ли искате да приложите набора от правомощия на таи група към <strong>всички по-долни (дъщерни) категории</strong>?",
"alert.confirm-copyToChildrenGroup":"Наистина ли искате да приложите набора от <strong>%1</strong> на тази група към <strong>всички по-долни (дъщерни) категории</strong>?",
"alert.no-undo":"<em>Това действие е необратимо.</em>",
"alert.no-undo":"<em>Това действие е необратимо.</em>",
"alert.admin-warning":"Администраторите имат всички правомощия по подразбиране"
"alert.admin-warning":"Администраторите имат всички правомощия по подразбиране",
"alert.copyPrivilegesFrom-title":"Изберете категория, от която да се копира",
"alert.copyPrivilegesFrom-warning":"Това ще копира <strong>%1</strong> от избраната категория.",
"alert.copyPrivilegesFromGroup-warning":"Това ще копира набора от <strong>%1</strong> на тези група от избраната категория."
"alerts.validate-email-success":"Е-пощите са проверени",
"alerts.validate-email-success":"Е-пощите са проверени",
"alerts.validate-force-password-reset-success":"Паролата на потребителя (или паролите на потребителите) беше подновена и сесията му беше прекратена.",
"alerts.validate-force-password-reset-success":"Паролата на потребителя (или паролите на потребителите) беше подновена и сесията му беше прекратена.",
"alerts.password-reset-confirm":"Искате ли да изпратите е-писмо/а за възстановяване на паролата на този/тези потребител(и)?",
"alerts.password-reset-confirm":"Искате ли да изпратите е-писмо/а за възстановяване на паролата на този/тези потребител(и)?",
"alerts.password-reset-email-sent":"Е-писмото за възстановяване на паролата е изпратено.",
"alerts.confirm-delete":"<strong>ВНИМАНИЕ!</strong><p>Наистина ли искате да изтриете <strong>потребителя/ите</strong>?</p> <p>Това действие е необратимо! Ще бъде изтрит само профилът на потребителя/ите, неговите/техните публикациите и теми ще останат.</p>",
"alerts.confirm-delete":"<strong>ВНИМАНИЕ!</strong><p>Наистина ли искате да изтриете <strong>потребителя/ите</strong>?</p> <p>Това действие е необратимо! Ще бъде изтрит само профилът на потребителя/ите, неговите/техните публикациите и теми ще останат.</p>",
"alerts.confirm-delete-content":"<strong>ВНИМАНИЕ!</strong><p>Наистина ли искате да изтриете <strong>съдържанието</strong> на този потребител или тези потребители?</p> <p>Това действие е необратимо! Профилите на потребителите ще останат, но всички техни публикации и теми ще бъдат изтрити.</p>",
"alerts.confirm-delete-content":"<strong>ВНИМАНИЕ!</strong><p>Наистина ли искате да изтриете <strong>съдържанието</strong> на този потребител или тези потребители?</p> <p>Това действие е необратимо! Профилите на потребителите ще останат, но всички техни публикации и теми ще бъдат изтрити.</p>",
"maintenance-mode.help":"Когато форумът е в режим на профилактика, всички заявки ще бъдат пренасочвани към статична страница за изчакване, с изключение на администраторите, които ще могат да използват уеб сайта нормално.",
"maintenance-mode.help":"Когато форумът е в режим на профилактика, всички заявки ще бъдат пренасочвани към статична страница за изчакване, с изключение на администраторите, които ще могат да използват уеб сайта нормално.",
"maintenance-mode.status":"Код на състоянието за режима на профилактика",
"maintenance-mode.status":"Код на състоянието за режима на профилактика",
"maintenance-mode.message":"Съобщение за профилактиката",
"maintenance-mode.message":"Съобщение за профилактиката",
"maintenance-mode.groups-exempt-from-maintenance-mode":"Изберете групи, които да бъдат изключени от режима на профилактика",
"headers":"Заглавни части",
"headers":"Заглавни части",
"headers.allow-from":"Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
"headers.allow-from":"Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
"headers.csp-frame-ancestors":"Задайте заглавката „Content-Security-Policy frame-ancestors“ за да поставите NodeBB „iFrame“",
"headers.csp-frame-ancestors":"Задайте заглавката „Content-Security-Policy frame-ancestors“ за да поставите NodeBB „iFrame“",
"headers.csp-frame-ancestors-help":"„none“ (нищо), „self“ (себе си – по подразбиране) или списък от позволени адреси.",
"headers.csp-frame-ancestors-help":"„none“ (нищо), „self“ (себе си – по подразбиране) или списък от позволени адреси.",
"headers.powered-by":"Персонализиране на заглавната част „Захранван от“, която се изпраща от NodeBB",
"headers.powered-by":"Персонализиране на заглавната част „Захранван от“, която се изпраща от NodeBB",
"headers.acao":"Произход за разрешаване на управлението на достъпа",
"headers.acao":"Access-Control-Allow-Origin",
"headers.acao-regex":"Регулярен израз за произхода за разрешаване на управлението на достъпа",
"headers.acao-regex":"Регулярен израз за „Access-Control-Allow-Origin“",
"headers.acao-help":"За да забраните достъпа до всички уеб сайтове, оставете празно",
"headers.acao-help":"За да забраните достъпа до всички уеб сайтове, оставете празно",
"headers.acao-regex-help":"Въведете регулярен израз за съвпадение с динамичните произходи. За да забраните достъпа на всички уеб сайтове, оставете това празно.",
"headers.acao-regex-help":"Въведете регулярен израз за съвпадение с динамичните произходи. За да забраните достъпа на всички уеб сайтове, оставете това празно.",
"headers.acac":"Удостоверителни данни за разрешаване на управлението на достъпа",
"headers.permissions-policy-help":"Позволява задаването на стойност в заглавката „permissions-policy“ (политика за разрешенията), като например „geolocation=*, camera=()“. Вижте <a href=\"https://github.com/w3c/webappsec-permissions-policy/blob/main/permissions-policy-explainer.md\">тук</a> за повече информация.",
"hsts":"Стриктна транспортна сигурност",
"hsts":"Стриктна транспортна сигурност",
"hsts.enabled":"Включване на HSTS (препоръчително)",
"hsts.enabled":"Включване на HSTS (препоръчително)",
"smtp-transport.service-help":"Изберете името на услугата по-горе, за да използвате известните данни за нея. Или изберете „Персонализирана услуга“ и въведете данните ѝ по-долу.",
"smtp-transport.service-help":"Изберете името на услугата по-горе, за да използвате известните данни за нея. Или изберете „Персонализирана услуга“ и въведете данните ѝ по-долу.",
"smtp-transport.gmail-warning1":"Има доклади, чеуслугатанаGmail не работи за акаунти с подсилена защита. В тези случаи ще трябва да <a href=\"https://www.google.com/settings/security/lesssecureapps\">настроите своя акаунт в GMail така, че да позволява използването на по-малко защитени приложения</a>.",
"smtp-transport.gmail-warning1":"Ако използвате GMail, щетрябвадасъздадете „Парола за приложение“, за да може NodeBB да използва данните за удостоверяване. Можете да създадете такава в страницата с <a href=\"https://myaccount.google.com/apppasswords\">Пароли за приложения<i class=\"fa fa-external-link\"></i></a>.",
"smtp-transport.gmail-warning2":"За повече информация относно това обиколно решение, <a href=\"https://nodemailer.com/usage/using-gmail/\">моля, прегледайте тази статия за проблема в „NodeMailer“.</a> Друго решение би било използването на добавка за е-поща от трета страна, като например „SendGrid“, „Mailgun“ и т.н. <a href=\"../extend/plugins\">Вижте наличните добавки тук</a>.",
"smtp-transport.gmail-warning2":"За повече информация относно това обиколно решение, <a href=\"https://nodemailer.com/usage/using-gmail/\">моля, прегледайте тази статия за проблема в „NodeMailer“<i class=\"fa fa-external-link\"></i></a>. Друго решение би било използването на добавка за е-поща от трета страна, като например „SendGrid“, „Mailgun“ и т.н. <a href=\"../extend/plugins\">Вижте наличните добавки тук</a>.",
"smtp-transport.auto-enable-toast":"Изглежда настройвате функционалност, която изисква транспорт чрез SMTP. Включихме настройката „Транспорт чрез SMTP“, за да не го правите Вие.",
"smtp-transport.host":"SMTP сървър",
"smtp-transport.host":"SMTP сървър",
"smtp-transport.port":"SMTP порт",
"smtp-transport.port":"SMTP порт",
"smtp-transport.security":"Сигурност на връзката",
"smtp-transport.security":"Сигурност на връзката",
@@ -36,6 +40,13 @@
"subscriptions.disable":"Изключване на резюметата по е-пощата",
"subscriptions.disable":"Изключване на резюметата по е-пощата",
"subscriptions.hour":"Време за разпращане",
"subscriptions.hour":"Време за разпращане",
"subscriptions.hour-help":"Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>",
"subscriptions.hour-help":"Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>",
"notifications.settings":"Настройки за известията по е-поща",
"notifications.remove-images":"Премахване на изображенията от известията по е-поща",
"notifications.remove-images":"Премахване на изображенията от известията пое-поща"
"require-email-address":"Новите потребители задължително трябва да предоставяте-поща",
}
"require-email-address-warning":"По подразбиране потребителите могат да не въвеждат адрес на е-поща, като оставят полето празно. Ако включите това, те задължително ще трябва да предоставят е-поща, за да могат да се регистрират. <strong>Това не означава, че потребителят ще въведе съществуваща е-поща, нито че тя ще е негова.</strong>",
"send-validation-email":"Изпращане на е-писма за потвърждение, когато бъде добавена или променена е-поща",
"include-unverified-emails":"Изпращане на е-писма към получатели, които не са потвърдили изрично е-пощата си",
"include-unverified-warning":"За потребителите, които имат свързана е-поща с регистрацията си, тя се смята за потвърдена. Но има ситуации, в които това не е така (например при ползване на регистрация от друга система, но и в други случаи), <strong>Включете тази настройка на собствен риск</strong> – изпращането на е-писма към непотвърдени адреси може да нарушава определени местни закони против нежеланата поща.",
"prompt":"Подсещане на потребителите да въведат или потвърдят е-пощата си",
"prompt-help":"Ако потребител няма зададена е-поща, или ако тя не е потвърдена, на екрана му ще се покаже предупредително съобщение.",
"sendEmailToBanned":"Изпращане на е-писма дори до блокираните потребители"
"title.short-placeholder":"Ако не е посочено кратко заглавие, ще бъде използвано заглавието на уеб сайта",
"title.short-placeholder":"Ако не е посочено кратко заглавие, ще бъде използвано заглавието на уеб сайта",
"title.url":"Адрес",
"title.url":"Адрес за заглавието",
"title.url-placeholder":"Адресът на заглавието на уеб сайта",
"title.url-placeholder":"Адресът за заглавието на уеб сайта",
"title.url-help":"При щракване върху заглавието, потребителите ще бъдат изпратени на този адрес. Ако бъде оставено празно, потребителите ще бъдат изпращани на началната страница на форума.",
"title.url-help":"Когато потребител щракне върху заглавието, той ще бъде прехвърлен към този адрес. Ако е празно, потребителят ще бъде изпратен към началната страница на форума. <br> Забележка: Това не е външният адрес, който се ползва в е-писмата. Той се задава от свойството <code>url</code> във файла config.json",
"title.name":"Името на общността Ви",
"title.name":"Името на общността Ви",
"title.show-in-header":"Показване на заглавието на уеб сайта в заглавната част",
"title.show-in-header":"Показване на заглавието на уеб сайта в заглавната част",
"browser-title":"Заглавие на браузъра",
"browser-title":"Заглавие на браузъра",
@@ -20,9 +20,9 @@
"logo.image":"Изображение",
"logo.image":"Изображение",
"logo.image-placeholder":"Път до логото, което да бъде показано в заглавната част на форума",
"logo.image-placeholder":"Път до логото, което да бъде показано в заглавната част на форума",
"logo.upload":"Качване",
"logo.upload":"Качване",
"logo.url":"Адрес",
"logo.url":"Адрес за логото",
"logo.url-placeholder":"Адресът на логото на уеб сайта",
"logo.url-placeholder":"Адресът за логото на уеб сайта",
"logo.url-help":"При щракване върху логото, потребителите ще бъдат изпратени на този адрес. Ако бъде оставено празно, потребителите ще бъдат изпращани на началната страница на форума.",
"logo.url-help":"Когато потребител щракне върху логото, той ще бъде прехвърлен към този адрес. Ако е празно, потребителят ще бъде изпратен към началната страница на форума. <br> Забележка: Това не е външният адрес, който се ползва в е-писмата. Той се задава от свойството <code>url</code> във файла config.json",
"logo.alt-text":"Алтернативен текст",
"logo.alt-text":"Алтернативен текст",
"log.alt-text-placeholder":"Алтернативен текст за достъпност",
"log.alt-text-placeholder":"Алтернативен текст за достъпност",
"favicon":"Иконка на уеб сайта",
"favicon":"Иконка на уеб сайта",
@@ -35,7 +35,10 @@
"maskable-icon.help":"Препоръчителен размер и формат: 512x512, само във формат „PNG“. Ако не е посочена маскируема иконка, NodeBB ще използва иконката за сензорен екран.",
"maskable-icon.help":"Препоръчителен размер и формат: 512x512, само във формат „PNG“. Ако не е посочена маскируема иконка, NodeBB ще използва иконката за сензорен екран.",
"outgoing-links":"Изходящи връзки",
"outgoing-links":"Изходящи връзки",
"outgoing-links.warning-page":"Показване на предупредителна страница при щракване върху външни връзки",
"outgoing-links.warning-page":"Показване на предупредителна страница при щракване върху външни връзки",
"search-default-sort-by":"Подредба по подразбиране при търсене",
"search":"Търсене",
"search-default-in":"Търсене в",
"search-default-in-quick":"Бързо търсене в",
"search-default-sort-by":"Подреждане по",
"outgoing-links.whitelist":"Домейни, за които да не се показва предупредителната страница",
"outgoing-links.whitelist":"Домейни, за които да не се показва предупредителната страница",
"site-colors":"Мета-данни за цвета на уеб сайта",
"site-colors":"Мета-данни за цвета на уеб сайта",
"theme-color":"Цвят на темата",
"theme-color":"Цвят на темата",
@@ -44,4 +47,4 @@
"undo-timeout":"Време за отмяна",
"undo-timeout":"Време за отмяна",
"undo-timeout-help":"Някои действия, като например преместването на теми, могат да бъдат отменени от модератора в рамките на определено време. Задайте 0, за да забраните изцяло отменянето.",
"undo-timeout-help":"Някои действия, като например преместването на теми, могат да бъдат отменени от модератора в рамките на определено време. Задайте 0, за да забраните изцяло отменянето.",
"teaser.last-post":"Последната – Показване на последната публикация, или първоначалната такава, ако няма отговори.",
"teaser.last-post":"Последната – Показване на последната публикация, или първоначалната такава, ако няма отговори.",
"teaser.last-reply":"Последната – Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
"teaser.last-reply":"Последната – Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
"teaser.first":"Първата",
"teaser.first":"Първата",
"showPostPreviewsOnHover":"Показване на кратък преглед на публикациите при посочване с мишката",
"unread":"Настройки за непрочетените",
"unread":"Настройки за непрочетените",
"unread.cutoff":"Възраст на публикациите, след която те не се показват в непрочетените (в брой дни)",
"unread.cutoff":"Възраст на публикациите, след която те не се показват в непрочетените (в брой дни)",
"unread.min-track-last":"Минимален брой публикации в темата, след което да започва следене на последно прочетената",
"unread.min-track-last":"Минимален брой публикации в темата, след което да започва следене на последно прочетената",
@@ -50,12 +51,16 @@
"signature.disable":"Забраняване на подписите",
"signature.disable":"Забраняване на подписите",
"signature.no-links":"Забраняване на поставянето на връзки в подписите",
"signature.no-links":"Забраняване на поставянето на връзки в подписите",
"signature.no-images":"Забраняване на поставянето на изображения в подписите",
"signature.no-images":"Забраняване на поставянето на изображения в подписите",
"signature.hide-duplicates":"Скриване на дублираните подписи в темите",
"signature.max-length":"Максимална дължина на подписите",
"signature.max-length":"Максимална дължина на подписите",
"composer":"Настройки за съставянето",
"composer":"Настройки за съставянето",
"composer-help":"Следващите настройки определят функционалностите и/или вида на елемента за съставяне на\n\\t\\t\\t\\tпубликация, който се използва от потребителите, когато те създават нови теми или отговорят в съществуващи.",
"composer-help":"Следващите настройки определят функционалностите и/или вида на елемента за съставяне на\n\\t\\t\\t\\tпубликация, който се използва от потребителите, когато те създават нови теми или отговорят в съществуващи.",
"composer.show-help":"Показване на раздела „Помощ“",
"composer.show-help":"Показване на раздела „Помощ“",
"composer.enable-plugin-help":"Позволяване на добавките да добавят съдържание в раздела за помощ",
"composer.enable-plugin-help":"Позволяване на добавките да добавят съдържание в раздела за помощ",
"composer.custom-help":"Персонализиран текст за помощ",
"composer.custom-help":"Персонализиран текст за помощ",
"backlinks":"Обратни връзки",
"backlinks.enabled":"Включване на обратните връзки в темите",
"backlinks.help":"Ако в публикацията има препратка към друга тема, там ще бъде поставена връзка към публикацията, с конкретното време.",
"ip-tracking":"Записване на IP адреса",
"ip-tracking":"Записване на IP адреса",
"ip-tracking.each-post":"Записване на IP адреса за всяка публикация",
"ip-tracking.each-post":"Записване на IP адреса за всяка публикация",
"enable-post-history":"Включване на историята на публикациите"
"enable-post-history":"Включване на историята на публикациите"
"flags.limit-per-target-help":"Когато публикация или потребител бъде докладван няколко пъти, това се добавя към един общ доклад. Задайте на тази настройка стойност по-голяма от нула, за да ограничите броя на докладванията, които могат да бъдат натрупани към една публикация или потребител.",
"flags.limit-per-target-help":"Когато публикация или потребител бъде докладван няколко пъти, това се добавя към един общ доклад. Задайте на тази настройка стойност по-голяма от нула, за да ограничите броя на докладванията, които могат да бъдат натрупани към една публикация или потребител.",
"flags.auto-resolve-on-ban":"Автоматично премахваненавсички доклади за потребител, когато той бъде блокиран"
"flags.auto-flag-on-downvote-threshold":"Брой отрицателни гласове, при които публикациитедабъдат докладвани автоматично (0 = изключено, по подразбиране: 0)",
"flags.auto-resolve-on-ban":"Автоматично премахване на всички доклади за потребител, когато той бъде блокиран",
"flags.action-on-resolve":"Когато докладване бъде разрешено, да се направи следното",
"flags.action-on-reject":"Когато докладване бъде отхвърлено, да се направи следното",
"flags.action.nothing":"Да не се прави нищо",
"flags.action.rescind":"Да се отмени известието, изпратено до модераторите/администраторите"
"allow-files":"Позволяване на потребителите да качват обикновени файлове",
"orphans":"Неизползвани файлове",
"private":"Качените файлове да бъдат частни",
"private":"Качените файлове да бъдат частни",
"strip-exif-data":"Премахване на данните EXIF",
"strip-exif-data":"Премахване на данните EXIF",
"preserve-orphaned-uploads":"Запазване на качените файлове на диска дори след изтриването на публикацията",
"orphanExpiryDays":"Брой дни за съхранение на неизползваните файлове",
"orphanExpiryDays-help":"След толкова на брой дни неизползваните качени файлове ще бъдат изтривани.<br />Задайте 0 или оставете празно, за да изключите тази функционалност.",
"private-extensions":"Файлови разширения, които да бъдат частни",
"private-extensions":"Файлови разширения, които да бъдат частни",
"private-uploads-extensions-help":"Въведете списък от файлови разширения, разделени със запетаи, които искате да бъдат частни (например <code>pdf,xls,doc</code>). Ако оставите това поле празно, всички файлове ще бъдат частни.",
"private-uploads-extensions-help":"Въведете списък от файлови разширения, разделени със запетаи, които искате да бъдат частни (например <code>pdf,xls,doc</code>). Ако оставите това поле празно, всички файлове ще бъдат частни.",
"resize-image-width-threshold":"Преоразмеряване на изображенията, ако са по-широки от определената ширина",
"resize-image-width-threshold":"Преоразмеряване на изображенията, ако са по-широки от определената ширина",
"gdpr_enabled":"Включване на искането за съгласие с ОРЗД",
"gdpr_enabled":"Включване на искането за съгласие с ОРЗД",
"gdpr_enabled_help":"Ако това е включено, всички новорегистрирани потребители ще бъдат задължени изрично да дадат съгласието си за събирането на данни и статистики за потреблението според <a href=\"https://ec.europa.eu/info/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules/eu-data-protection-rules_en\">Общия регламент относно защитата на данните (ОРЗД)</a>. <strong>Забележка</strong>: Включването на ОРЗД не задължава съществуващите потребители да дадат съгласието си. Ако искате това, ще трябва да инсталирате добавката за ОРЗД (GDPR).",
"gdpr_enabled_help":"Ако това е включено, всички новорегистрирани потребители ще бъдат задължени изрично да дадат съгласието си за събирането на данни и статистики за потреблението според <a href=\"https://ec.europa.eu/info/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules/eu-data-protection-rules_en\">Общия регламент относно защитата на данните (ОРЗД)</a>. <strong>Забележка</strong>: Включването на ОРЗД не задължава съществуващите потребители да дадат съгласието си. Ако искате това, ще трябва да инсталирате добавката за ОРЗД (GDPR).",
@@ -25,7 +23,7 @@
"login-attempts":"Брой опити за вписване на час",
"login-attempts":"Брой опити за вписване на час",
"login-attempts-help":"Ако опитите за вписване на потребител минат тази граница, акаунтът ще бъде заключен за определено време.",
"login-attempts-help":"Ако опитите за вписване на потребител минат тази граница, акаунтът ще бъде заключен за определено време.",
"lockout-duration":"Продължителност на заключването на акаунта (в минути)",
"lockout-duration":"Продължителност на заключването на акаунта (в минути)",
"login-days":"Продължителност на запомнянето на сесията за вписване на потребителя (в дни)",
"login-days":"Брой дни за помнене на сесията за вписване на потребителя",
"password-expiry-days":"Изискване на промяна на паролата през определен период от дни",
"password-expiry-days":"Изискване на промяна на паролата през определен период от дни",
"session-time":"Продължителност на сесията",
"session-time":"Продължителност на сесията",
"session-time-days":"Дни",
"session-time-days":"Дни",
@@ -71,6 +69,7 @@
"digest-freq.off":"Изключено",
"digest-freq.off":"Изключено",
"digest-freq.daily":"Ежедневно",
"digest-freq.daily":"Ежедневно",
"digest-freq.weekly":"Ежеседмично",
"digest-freq.weekly":"Ежеседмично",
"digest-freq.biweekly":"На всеки две седмици",
"digest-freq.monthly":"Ежемесечно",
"digest-freq.monthly":"Ежемесечно",
"email-chat-notifs":"Изпращане на е-писмо, ако получа ново съобщение в разговор, а не съм на линия",
"email-chat-notifs":"Изпращане на е-писмо, ако получа ново съобщение в разговор, а не съм на линия",
"email-post-notif":"Изпращане на е-писмо, когато се появи отговор в темите, за които съм абониран(а).",
"email-post-notif":"Изпращане на е-писмо, когато се появи отговор в темите, за които съм абониран(а).",
"email.verify.text1":"Адресът на е-пощата Вие променен!",
"email.verify.text1":"Вие поискахте да променим или потвърдим адреса на е-пощата Ви",
"email.verify.text2":"Поради причини, свързани със сигурността, можем да променим или потвърдим адреса на е-поща, само когато притежанието ѝ вече е било установено чрез е-писмо. <strong>Ако не сте поискали това, няма нужда да правите нищо.</strong>",
"email.verify.text3":"След като потвърдите адреса на тази е-поща, ще променим текущия Ви адрес с този (%1).",
"welcome.text1":"Благодарим Ви, че се регистрирахте в %1",
"welcome.text1":"Благодарим Ви, че се регистрирахте в %1",
"welcome.text2":"За да активирате напълно акаунта си, трябва да потвърдите е-пощата, с която сте се регистрирали.",
"welcome.text2":"За да активирате напълно акаунта си, трябва да потвърдите е-пощата, с която сте се регистрирали.",
"welcome.text3":"Вашата заявка за регистрация беше приета от администратор. Вече можете да се впишете със своето потребителско име и парола.",
"welcome.text3":"Вашата заявка за регистрация беше приета от администратор. Вече можете да се впишете със своето потребителско име и парола.",
@@ -46,6 +48,8 @@
"unsub.cta":"Натиснете тук, за да промените тези настройки",
"unsub.cta":"Натиснете тук, за да промените тези настройки",
"unsubscribe":"отписване",
"unsubscribe":"отписване",
"unsub.success":"Повече няма да получавате е-писма от пощенския списък на <strong>%1</strong>",
"unsub.success":"Повече няма да получавате е-писма от пощенския списък на <strong>%1</strong>",
"unsub.failure.title":"Отписването не може да се извърши",
"unsub.failure.message":"За съжаление не успяхме да Ви отпишем от пощенския списък, поради проблем с връзката. Можете, обаче, да промените предпочитанията си за е-писмата в <a href=\"%2\">потребителските си настройки</a>.<br /><br />(грешка: <code>%1</code>)",
"banned.subject":"Вие бяхте блокиран(а) от %1",
"banned.subject":"Вие бяхте блокиран(а) от %1",
"banned.text1":"Потребителят %1 беше блокиран от %2.",
"banned.text1":"Потребителят %1 беше блокиран от %2.",
"banned.text2":"Това блокиране ще е в сила до %1.",
"banned.text2":"Това блокиране ще е в сила до %1.",
"wrong-parameter-type":"За свойството `%1` се очакваше стойност от тип %3, но вместо това беше получено %2",
"required-parameters-missing":"Липсват задължителни параметри от това извикване към ППИ: %1",
"not-logged-in":"Изглежда не сте се вписали в системата.",
"not-logged-in":"Изглежда не сте се вписали в системата.",
"account-locked":"Вашият акаунт беше заключен временно",
"account-locked":"Вашият акаунт беше заключен временно",
"search-requires-login":"Търсенето изисква регистриран акаунт! Моля, впишете се или се регистрирайте!",
"search-requires-login":"Търсенето изисква регистриран акаунт! Моля, впишете се или се регистрирайте!",
@@ -9,6 +11,7 @@
"invalid-tid":"Грешен идентификатор на тема",
"invalid-tid":"Грешен идентификатор на тема",
"invalid-pid":"Грешен идентификатор на публикация",
"invalid-pid":"Грешен идентификатор на публикация",
"invalid-uid":"Грешен идентификатор на потребител",
"invalid-uid":"Грешен идентификатор на потребител",
"invalid-mid":"Грешен идентификатор на съобщение в разговор",
"invalid-date":"Трябва да бъде посочена правилна дата",
"invalid-date":"Трябва да бъде посочена правилна дата",
"invalid-username":"Грешно потребителско име",
"invalid-username":"Грешно потребителско име",
"invalid-email":"Грешна е-поща",
"invalid-email":"Грешна е-поща",
@@ -25,14 +28,18 @@
"invalid-event":"Грешно събитие: %1",
"invalid-event":"Грешно събитие: %1",
"local-login-disabled":"Системата за местно вписване е изключена за непривилегированите акаунти.",
"local-login-disabled":"Системата за местно вписване е изключена за непривилегированите акаунти.",
"csrf-invalid":"Не успяхме да Ви впишем, най-вероятно защото сесията Ви е изтекла. Моля, опитайте отново",
"csrf-invalid":"Не успяхме да Ви впишем, най-вероятно защото сесията Ви е изтекла. Моля, опитайте отново",
"invalid-path":"Грешен път",
"folder-exists":"Вече има папка с това име",
"invalid-pagination-value":"Грешен номер на странициране, трябва да бъде между %1 и %2",
"invalid-pagination-value":"Грешен номер на странициране, трябва да бъде между %1 и %2",
"username-taken":"Потребителското име е заето",
"username-taken":"Потребителското име е заето",
"email-taken":"Е-пощата е заета",
"email-taken":"Е-пощата е заета",
"email-nochange":"Въведената е-поща е същата като съществуващата.",
"email-invited":"На тази е-поща вече е била изпратена покана",
"email-invited":"На тази е-поща вече е била изпратена покана",
"email-not-confirmed":"Няма да можете да публикувате съобщения, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed":"Публикуването в някои категории и теми ще бъде възможно едва след като е-пощата Ви бъде потвърдена. Щръкнете тук, за да Ви изпратим е-писмо за потвърждение.",
"email-not-confirmed-chat":"Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed-chat":"Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed-email-sent":"Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Няма да можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
"email-not-confirmed-email-sent":"Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Възможно е да не можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
"no-email-to-confirm":"Този форум изисква потвърдена е-поща. Моля, натиснете тук, за да въведете е-поща",
"no-email-to-confirm":"Нямате зададена е-поща. Тя е необходима за възстановяването на акаунта в случай на проблем, а може и да се изисква, за да пишете в някои категории. Натиснете тук, за да въведете е-поща.",
"user-doesnt-have-email":"Потребителят „%1“ няма зададена е-поща.",
"email-confirm-failed":"Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
"email-confirm-failed":"Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
"confirm-email-already-sent":"Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
"confirm-email-already-sent":"Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
"sendmail-not-found":"Изпълнимият файл на „sendmail“ не може да бъде намерен. Моля, уверете се, че е инсталиран и изпълним за потребителя, чрез който е пуснат NodeBB.",
"sendmail-not-found":"Изпълнимият файл на „sendmail“ не може да бъде намерен. Моля, уверете се, че е инсталиран и изпълним за потребителя, чрез който е пуснат NodeBB.",
@@ -54,6 +61,8 @@
"no-group":"Групата не съществува",
"no-group":"Групата не съществува",
"no-user":"Потребителят не съществува",
"no-user":"Потребителят не съществува",
"no-teaser":"Резюмето не съществува",
"no-teaser":"Резюмето не съществува",
"no-flag":"Докладът не съществува",
"no-chat-room":"Chat room does not exist",
"no-privileges":"Нямате достатъчно права за това действие.",
"no-privileges":"Нямате достатъчно права за това действие.",
"category-disabled":"Категорията е изключена",
"category-disabled":"Категорията е изключена",
"topic-locked":"Темата е заключена",
"topic-locked":"Темата е заключена",
@@ -80,6 +89,7 @@
"category-not-selected":"Нее избрана категория.",
"category-not-selected":"Нее избрана категория.",
"too-many-posts":"Можете да публикувате веднъж на %1 секунда/и – моля, изчакайте малко, преди да опитате да публикувате отново",
"too-many-posts":"Можете да публикувате веднъж на %1 секунда/и – моля, изчакайте малко, преди да опитате да публикувате отново",
"too-many-posts-newbie":"Като нов потребител, Вие можете да публикувате веднъж на %1 секунда/и, докато не натрупате %2 репутация – моля, изчакайте малко, преди да опитате да публикувате отново",
"too-many-posts-newbie":"Като нов потребител, Вие можете да публикувате веднъж на %1 секунда/и, докато не натрупате %2 репутация – моля, изчакайте малко, преди да опитате да публикувате отново",
"already-posting":"You are already posting",
"tag-too-short":"Моля, въведете по-дълъг етикет. Етикетите трябва да съдържат поне %1 символ(а)",
"tag-too-short":"Моля, въведете по-дълъг етикет. Етикетите трябва да съдържат поне %1 символ(а)",
"tag-too-long":"Моля, въведете по-кратък етикет. Етикетите трябва да съдържат не повече от %1 символ(а)",
"tag-too-long":"Моля, въведете по-кратък етикет. Етикетите трябва да съдържат не повече от %1 символ(а)",
"not-enough-tags":"Недостатъчно етикети. Темите трябва да имат поне %1 етикет(а)",
"not-enough-tags":"Недостатъчно етикети. Темите трябва да имат поне %1 етикет(а)",
@@ -100,6 +110,10 @@
"already-bookmarked":"Вече имате отметка към тази публикация",
"already-bookmarked":"Вече имате отметка към тази публикация",
"already-unbookmarked":"Вече сте премахнали отметката си от тази публикация",
"already-unbookmarked":"Вече сте премахнали отметката си от тази публикация",
"cant-ban-other-admins":"Не можете да блокирате другите администратори!",
"cant-ban-other-admins":"Не можете да блокирате другите администратори!",
"cant-mute-other-admins":"Не можете да заглушавате другите администратори!",
"user-muted-for-hours":"Вие бяхте заглушен(а). Ще можете да пускате публикации отново след %1 час(а)",
"user-muted-for-minutes":"Вие бяхте заглушен(а). Ще можете да пускате публикации отново след %1 минута/и",
"cant-make-banned-users-admin":"Не можете да давате администраторски права на блокирани потребители.",
"cant-remove-last-admin":"Вие сте единственият администратор. Добавете друг потребител като администратор, преди да премахнете себе си като администратор",
"cant-remove-last-admin":"Вие сте единственият администратор. Добавете друг потребител като администратор, преди да премахнете себе си като администратор",
"account-deletion-disabled":"Изтриването на акаунт е забранено",
"account-deletion-disabled":"Изтриването на акаунт е забранено",
"cant-delete-admin":"Премахнете администраторските права от този акаунт, преди да го изтриете.",
"cant-delete-admin":"Премахнете администраторските права от този акаунт, преди да го изтриете.",
@@ -137,29 +151,35 @@
"invalid-chat-message":"Неправилно съобщение",
"invalid-chat-message":"Неправилно съобщение",
"chat-message-too-long":"Съобщенията в разговор не може да бъдат по-дълги от %1 знака.",
"chat-message-too-long":"Съобщенията в разговор не може да бъдат по-дълги от %1 знака.",
"cant-edit-chat-message":"Нямате право да редактирате това съобщение",
"cant-edit-chat-message":"Нямате право да редактирате това съобщение",
"cant-remove-last-user":"Не можете да премахнете последния потребител",
"cant-delete-chat-message":"Нямате право да изтриете това съобщение",
"cant-delete-chat-message":"Нямате право да изтриете това съобщение",
"chat-edit-duration-expired":"Можете да редактирате съобщенията си в разговорите до %1 секунда/и, след като ги пуснете",
"chat-edit-duration-expired":"Можете да редактирате съобщенията си в разговорите до %1 секунда/и, след като ги пуснете",
"chat-delete-duration-expired":"Можете да изтривате съобщенията си в разговорите до %1 секунда/и след пускането им",
"chat-delete-duration-expired":"Можете да изтривате съобщенията си в разговорите до %1 секунда/и след пускането им",
"chat-deleted-already":"Това съобщение вече е изтрито.",
"chat-deleted-already":"Това съобщение вече е изтрито.",
"chat-restored-already":"Това съобщение вече е възстановено.",
"chat-restored-already":"Това съобщение вече е възстановено.",
"chat-room-does-not-exist":"Стаята за разговори не съществува.",
"chat-room-does-not-exist":"Стаята за разговори не съществува.",
"cant-add-users-to-chat-room":"Can't add users to chat room.",
"cant-remove-users-from-chat-room":"Can't remove users from chat room.",
"chat-room-name-too-long":"Chat room name too long.",
"already-voting-for-this-post":"Вече сте дали глас за тази публикация.",
"already-voting-for-this-post":"Вече сте дали глас за тази публикация.",
"reputation-system-disabled":"Системата за репутация е изключена.",
"reputation-system-disabled":"Системата за репутация е изключена.",
"downvoting-disabled":"Отрицателното гласуване е изключено",
"downvoting-disabled":"Отрицателното гласуване е изключено",
"not-enough-reputation-to-downvote":"Нямате достатъчно репутация, за да гласувате отрицателно за тази публикация",
"not-enough-reputation-to-chat":"Репутацията Ви трябва да бъде поне %1, за да участвате в разговори",
"not-enough-reputation-to-flag":"Нямате достатъчно репутация, за да докладвате тази публикация",
"not-enough-reputation-to-upvote":"Репутацията Ви трябва да бъде поне %1, за да гласувате положително",
"not-enough-reputation-min-rep-website":"Нямате достатъчно репутация, за да добавите уеб сайт",
"not-enough-reputation-to-downvote":"Репутацията Ви трябва да бъде поне %1, за да гласувате отрицателно",
"not-enough-reputation-min-rep-aboutme":"Нямате достатъчно репутация, за да добавите информация за себе си",
"not-enough-reputation-to-flag":"Репутацията Ви трябва да бъде поне %1, за да докладвате тази публикация",
"not-enough-reputation-min-rep-signature":"Нямате достатъчно репутация, за да добавите подпис",
"not-enough-reputation-min-rep-website":"Репутацията Ви трябва да бъде поне %1, за да добавите уеб сайт",
"not-enough-reputation-min-rep-profile-picture":"Нямате достатъчно репутация, за да добавите снимка на профила си",
"not-enough-reputation-min-rep-aboutme":"Репутацията Ви трябва да бъде поне %1, за да добавите информация за себе си",
"not-enough-reputation-min-rep-cover-picture":"Нямате достатъчно репутация, за да добавите снимка на корицата",
"not-enough-reputation-min-rep-signature":"Репутацията Ви трябва да бъде поне %1, за да добавите подпис",
"not-enough-reputation-min-rep-profile-picture":"Репутацията Ви трябва да бъде поне %1, за да добавите снимка на профила си",
"not-enough-reputation-min-rep-cover-picture":"Репутацията Ви трябва да бъде поне %1, за да добавите снимка на корицата",
"post-already-flagged":"Вече сте докладвали тази публикация",
"post-already-flagged":"Вече сте докладвали тази публикация",
"user-already-flagged":"Вече сте докладвали този потребител",
"user-already-flagged":"Вече сте докладвали този потребител",
"post-flagged-too-many-times":"Тази публикация вече е докладвана от други хора",
"post-flagged-too-many-times":"Тази публикация вече е докладвана от други хора",
"user-flagged-too-many-times":"Този потребител вече е докладван от други хора",
"user-flagged-too-many-times":"Този потребител вече е докладван от други хора",
"cant-flag-privileged":"Не можете да докладвате профилите или съдържанието от потребители с по-високи правомощия (модератори, глобални модератори, администратори)",
"cant-flag-privileged":"Не можете да докладвате профилите или съдържанието от потребители с по-високи правомощия (модератори, глобални модератори, администратори)",
"self-vote":"Не можете да гласувате за собствената си публикация",
"self-vote":"Не можете да гласувате за собствената си публикация",
"too-many-upvotes-today":"Можете да гласувате положително не повече от %1 пъти на ден",
"too-many-upvotes-today-user":"Можете да гласувате положително за потребител не повече от %1 пъти на ден",
"too-many-downvotes-today":"Можете да гласувате отрицателно не повече от %1 пъти на ден",
"too-many-downvotes-today":"Можете да гласувате отрицателно не повече от %1 пъти на ден",
"too-many-downvotes-today-user":"Можете да гласувате отрицателно за потребител не повече от %1 пъти на ден",
"too-many-downvotes-today-user":"Можете да гласувате отрицателно за потребител не повече от %1 пъти на ден",
"reload-failed":"NodeBB срещна проблем при презареждането: „%1“. NodeBB ще продължи да поддържа съществуващите клиентски ресурси, но Вие трябва да отмените последните си действия преди презареждането.",
"reload-failed":"NodeBB срещна проблем при презареждането: „%1“. NodeBB ще продължи да поддържа съществуващите клиентски ресурси, но Вие трябва да отмените последните си действия преди презареждането.",
@@ -190,6 +210,8 @@
"no-connection":"Изглежда има проблем с връзката Ви с Интернет",
"no-connection":"Изглежда има проблем с връзката Ви с Интернет",
"socket-reconnect-failed":"В момента сървърът е недостъпен. Натиснете тук, за да опитате отново, или опитайте пак по-късно.",
"socket-reconnect-failed":"В момента сървърът е недостъпен. Натиснете тук, за да опитате отново, или опитайте пак по-късно.",
"plugin-not-whitelisted":"Добавката не може да бъде инсталирана – само добавки, одобрени от пакетния мениджър на NodeBB могат да бъдат инсталирани чрез ACP",
"plugin-not-whitelisted":"Добавката не може да бъде инсталирана – само добавки, одобрени от пакетния мениджър на NodeBB могат да бъдат инсталирани чрез ACP",
"plugins-set-in-configuration":"Не можете да променяте състоянието на добавката, тъй като то се определя по време на работата ѝ (чрез config.json, променливи на средата или аргументи при изпълнение). Вместо това може да промените конфигурацията.",
"theme-not-set-in-configuration":"Когато определяте активните добавки в конфигурацията, промяната на темите изисква да се добави новата тема към активните добавки, преди актуализирането ѝ в ACP",
"topic-event-unrecognized":"Събитието „%1“ на темата е неизвестно",
"topic-event-unrecognized":"Събитието „%1“ на темата е неизвестно",
"cant-set-child-as-parent":"Дъщерна категория не може да се зададе като базова такава",
"cant-set-child-as-parent":"Дъщерна категория не може да се зададе като базова такава",
"cant-set-self-as-parent":"Категорията не може да се зададе като базова категория на себе си",
"cant-set-self-as-parent":"Категорията не може да се зададе като базова категория на себе си",
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.