turns [[notifications:upvoted_your_post_in, test1, Vote *for* NodeBB :ballot_box_with_ballot:]] into <strong>test1</strong> has upvoted your post in <strong>Vote *for* NodeBB :ballot_box_with_ballot:</strong>. so emoji plugin can parse emojis and they don't get escaped by translator client side
Apparently Docker Meta Actions overrides, not merely adds, handlebars helpers. So `#if` just doesn't exist and errors out...
As such here is an equivalent using GitHub Actions expression (and this time I tested that it works...)
The initial commit for the change had the socket methods removed,
causing it to become a breaking change. Those methods have been restored,
but are deprecated, and now slated for removal in an as-yet-unannounced v4.
`latest` tag is currently v2. That happened because of the backported change which is newer than any commits to `master`.
However, this logically shouldn't happen. The expectation for latest would be that it has the, well, the code from the highest version released, not literally the latest commit no matter where it came from. Thankfully metadata action allows for conditional tags and even has a helper for default branch making it not hard-coded (so if NodeBB decided to migrate to `main` or someone in their fork did it'd still work).
The result would be that latest is the latest code in `master`, which I see as similar to the default git workflow (`master` is just latest code, `vX.Y` branches or tags are for using proper releases).
The old behaviour would require that an email be entered, but did not block access to the forum (nor did it ensure that the email was verified).
The new behaviour (if the setting is enabled) will ensure that only those users with a confirmed email can continue through.
The only exceptions are super admins (so they don't get locked out).
The following socket calls have been removed:
* `posts.getRawPost`
* `posts.getPostSummaryByPid`
Two new Write API routes have been added:
- `GET /api/v3/posts/:pid/raw`
- `GET /api/v3/posts/:pid/summary`
1. with scheduled topics, pid is no longer reliable, lower pid can have higher timestamp(scheduled in the future) so use timestamp for sorting teasers
2. when restoring/deleting topics, update the teaser tid as the last step because it checks topicData.deleted
* ci: multi-platform build
* ci: remove riscv as node doesn't support it
* ci: correct step name
it's no longer logging in to docker hub
* ci: remove less common architectures
* ci: github actions cache for docker builds
* fix: use `--omit` flag to actually avoid installing dev dependencies
* feat: two-stage build
* feat: add platform-specific rebuild
* fix: run install if target arch is different from build arch
* fix: whitespace
* fix: correct build order
* fix: remove unnecessary conditional
* fix: remove unnecessary platofm specifier
* fix: correct copy
don't display scheduled posts in group page
when topic is rescheduled update post sorted sets with new timestamp
when post is published update group posts zset
fix markTopicRead if topic was read while it was still hidden
* fix: NodeBB#11482 thumbs Post Can not upload a thumbnail, only multiple uploads
* Modify upload thumbnail test
* Modify upload thumbnail test +,
* Get rid of v2 uploads test
* edit times
* Modify amount of files associated post test
* edit post file amount
The underlying API call was updated to v3 style (with standard status/response object in response body), so the existing code always falls back to the default error instead of showing the more specific error sent back by the backend.
Also, the fallback wasn't internationalized, so that's done to.
instead of checking if user is online in the past x minutes, check if the user has read the room, if they have already marked the chat as read don't send notification
if 2 deps were updated only one of them was cleared from require.cache. ie commander & lru-cache both has major version bump then only commander would be cleared from cache since it throws first
* chore: up deps
* chore: up composer
* fix(deps): bump 2factor to v7
* chore: up harmony
* chore: up harmony
* fix: missing await
* feat: allow middlewares to pass in template values via res.locals
* feat: buildAccountData middleware automatically added ot all account routes
* fix: properly allow values in res.locals.templateValues to be added to the template data
* refactor: user/blocks
* refactor(accounts): categories and consent
* feat: automatically 404 if exposeUid or exposeGroupName come up empty
* refactor: remove calls to getUserDataByUserSlug for most account routes, since it is populated via middleware now
* fix: allow exposeUid and exposeGroupName to work with slugs with mixed capitalization
* fix: move reputation removal check to accountHelpers method
* test: skip i18n tests if ref branch when present is not develop
* fix(deps): bump theme versions
* fix(deps): bump ntfy and 2factor
* chore: up harmony
* fix: add missing return
* fix: #11191, only focus on search input on md environments and up
* feat: allow file uploads on mobile chat
closes https://github.com/NodeBB/NodeBB/issues/11217
* chore: up themes
* chore: add lang string
* fix(deps): bump ntfy to 1.0.15
* refactor: use new if/each syntax
* chore: up composer
* fix: regression from user helper refactor
* chore: up harmony
* chore: up composer
* chore: up harmony
* chore: up harmony
* chore: up harmony
* chore: fix composer version
* feat: add increment helper
* chore: up harmony
* fix: #11228 no timestamps in future ⌛
* chore: up harmony
* check config.theme as well
fire action:posts.loaded after processing dom
* chore: up harmony
* chore: up harmony
* chore: up harmony
* chore: up themes
* chore: up harmony
* remove extra class
* refactor: move these to core from harmony
* chore: up widgets
* chore: up widgets
* height auto
* fix: closes#11238
* dont focus inputs, annoying on mobile
* fix: dont focus twice, only focus on chat input on desktop
dont wrap widget footer in row
* chore: up harmony
* chore: up harmony
* update chat window
* chore: up themes
* fix cache buster for skins
* chat fixes
* chore: up harmony
* chore: up composer
* refactor: change hook logs to debug
* fix: scroll to post right after adding to dom
* fix: hash scrolling and highlighting correct post
* test: re-enable read API schema tests
* fix: add back schema changes for 179faa2270 and c3920ccb10
* fix: schema changes from 488f0978a4
* fix: schema changes for f4cf482a87
* fix: schema update for be6bbabd0e
* fix: schema changes for 69c96078ea
* fix: schema changes for d1364c3130
* fix: schema changes for 84ff1152f7
* fix: schema changes for b860c2605c
* fix: schema changes for 23cb67a112
* fix: schema changes for b916e42f40
* fix: schema change for a9bbb586fc
* fix: schema changes for 4b738c8cd3
* fix: schema changes for 58b5781cea
* fix: schema changes for 794bf01b21
* fix: schema changes for 80ea12c1c1, e368feef51, and 52ead114be
* fix: composer-default object in config?
* fix: schema changes for 9acdc6808c and 0930934200
* fix: schema changes for c0a52924f1
* fix: schema change for aba420a3f3, move loggedInUser to optional props
* fix: schema changes for 8c67031609
* fix: schema changes for 27e53b42f3
* fix: schema changes for 2835966518
* fix: breaking test for email confirmation API call
* fix: schema changes for refactored search page
* fix: schema changes for user object
* fix: schema changes for 9f531f957e
* fix: schema changes for c4042c70de and 23175110a2
* fix: schema changes for 9b3616b103
* fix: schema changes for 5afd5de07d
* fix: schema change for 1d7baf1217
* fix: schema changes for 57bfb37c55 and be6bbabd0e
* fix: schema changes for 6e86b4afa2 and 3efad2e13b and 68f66223e7
* fix: allowing optional qs prop in pagination keys (not sure why this didn't break before)
* fix: re-login on email change
* fix: schema changes for c926358d73
* fix: schema changes for 388a8270c9
* fix: schema change for 2658bcc821
* fix: no need to call account middlewares for chats routes
* fix: schema changes for 71743affc3
* fix: final schema changes
* test: support for anyOf and oneOf
* fix: check thumb
* dont scroll to top on back press
* remove group log
* fix: add top margin to merged and deleted alerts
* chore: up widgets
* fix: improve fix-lists mixin
* chore: up harmony/composer
* feat: allow hiding quicksearch results during search
* dont record searches made by composer
* chore: up 54
* chore: up spam be gone
* feat: add prev/next page and page count into mobile paginator
* chore: up harmony
* chore: up harmony
* use old style for IS
* fix: hide entire toolbar row if no posts or not singlePost
* fix: updated messaging for post-queue template, #11206
* fix: btn-sm on post queue back button
* fix: bump harmony, closes#11206
* fix: remove unused alert module import
* fix: bump harmony
* fix: bump harmony
* chore: up harmony
* refactor: IS scrolltop
* fix: update users:search-user-for-chat source string
* feat: support for mark-read toggle on chats dropdown and recent chats list
* feat: api v3 calls to mark chat read/unread
* feat: send event:chats.mark socket event on mark read or unread
* refactor: allow frontend to mark chats as unread, use new API v3 routes instead of socket calls, better frontend event handling
* docs: openapi schema updates for chat marking
* fix: allow unread state toggling in chats dropdown too
* fix: issue where repeated openings of the chats dropdown would continually add events for mark-read/unread
* fix: debug log
* refactor: move userSearch filter to a module
* feat(routes): allow remounting /categories (#11230)
* feat: send flags count to frontend on flags list page
* refactor: filter form client-side js to extract out some logic
* fix: applyFilters to not take any arguments, update selectedCids in updateButton instead of onHidden
* fix: use userFilter module for assignee, reporterId, targetUid
* fix(openapi): schema changes for updated flags page
* fix: dont allow adding duplicates to userFilter
* use same var
* remove log
* fix: closes#11282
* feat: lang key for x-topics
* chore: up harmony
* chore: up emoji
* chore: up harmony
* fix: update userFilter to allow new option `selectedBlock`
* fix: wrong block name passed to userFilter
* fix: https://github.com/NodeBB/NodeBB/issues/11283
* fix: chats, allow multiple dropdowns like in harmony
* chore: up harmony
* refactor: flag note adding/editing, closes#11285
* fix: remove old prepareEdit logic
* chore: add caveat about hacky code block in userFilter module
* fix: placeholders for userFilter module
* refactor: navigator so it works with multiple thumbs/navigators
* chore: up harmony
* fix: closes#11287, destroy quick reply autocomplete
on navigation
* fix: filter disabled categories on user categories page count
* chore: up harmony
* docs: update openapi spec to include info about passing in timestamps for topic creation, removing timestamp as valid request param for topic replying
* fix: send back null values on ACP search dashboard for startDate and endDate if not expicitly passed in, fix tests
* fix: tweak table order in ACP dash searches
* fix: only invoke navigator click drag on left mouse button
* feat: add back unread indicator to navigator
* clear bookmark on mark unread
* fix: navigator crash on ajaxify
* better thumb top calculation
* fix: reset user bookmark when topic is marked unread
* Revert "fix: reset user bookmark when topic is marked unread"
This reverts commit 9bcd85c2c6.
* fix: update unread indicator on scroll, add unread count
* chore: bump harmony
* fix: crash on navigator unread update when backing out of a topic
* fix: closes#11183
* fix: update topics:recent zset when rescheduling a topic
* fix: dupe quote button, increase delay, hide immediately on empty selection
* fix: navigator not showing up on first load
* refactor: remove glance
assorted fixes to navigator
dont reduce remaning count if user scrolls down and up quickly
only call topic.navigatorCallback when index changes
* more sanity checks for bookmark
dont allow setting bookmark higher than topic postcount
* closes#11218, 🚋
* Revert "fix: update topics:recent zset when rescheduling a topic"
This reverts commit 737973cca9.
* fix: #11306, show proper error if queued post doesn't exist
was showing no-privileges if someone else accepted the post
* https://github.com/NodeBB/NodeBB/issues/11307
dont use li
* chore: up harmony
* chore: bump version string
* fix: copy paste fail
* feat: closes#7382, tag filtering
add client side support for filtering by tags on /category, /recent and /unread
* chore: up harmony
* chore: up harmony
* Revert "fix: add back req.query fallback for backwards compatibility" [breaking]
This reverts commit cf6cc2c454.
This commit is no longer required as passing in a CSRF token via query parameter is no longer supported as of NodeBB v3.x
This is a breaking change.
* fix: pass csrf token in form data, re: NodeBB/NodeBB#11309
* chore: up deps
* fix: tests, use x-csrf-token query param removed
* test: fix csrf_token
* lint: remove unused
* feat: add itemprop="image" to avatar helper
* fix: get chat upload button in chat modal
* breaking: remove deprecated socket.io methods
* test: update messaging tests to not use sockets
* fix: parent post links
* fix: prevent post tooltip if mouse leaves before data/tpl is loaded
* chore: up harmony
* chore: up harmony
* chore: up harmony
* chore: up harmony
* fix: nested replies indices
* fix(deps): bump 2factor
* feat: add loggedIn user to all api routes
* chore: up themes
* refactor: audit admin v3 write api routes as per #11321
* refactor: audit category v3 write api routes as per #11321 [breaking]
docs: fix open api spec for #11321
* refactor: audit chat v3 write api routes as per #11321
* refactor: audit files v3 write api routes as per #11321
* refactor: audit flags v3 write api routes as per #11321
* refactor: audit posts v3 write api routes as per #11321
* refactor: audit topics v3 write api routes as per #11321
* refactor: audit users v3 write api routes as per #11321
* fix: lang string
* remove min height
* fix: empty topic/labels taking up space
* fix: tag filtering when changing filter to watched topics
or changing popular time limit to month
* chore: up harmony
* fix: closes#11354, show no post error if queued post already accepted/rejected
* test: #11354
* test: #11354
* fix(deps): bump 2factor
* fix: #11357 clear cache on thumb remove
* fix: thumb remove on windows, closes#11357
* test: openapi for thumbs
* test: fix openapi
---------
Co-authored-by: Julian Lam <julian@nodebb.org>
Co-authored-by: Opliko <opliko.reg@protonmail.com>
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
* fix: convert loginDays and loginSeconds to number inputs
* feat: configurable session timeout for when "Remember Me" is not checked
closes#11124
* test: addition tests to check loginDays and sessionDuration settings
* test: also test loginSeconds override
* chore: incrementing version number - v2.8.1
* chore: update changelog for v2.8.1
* fix: accidental clearing of reset rate limiting on reset send
* test: move user reset tests to its own file, add failing test for user reset locks
* fix: #11119, counter attempted flooding of user reset route
* test: fix password reset socket test to check for error now
* test: same user sending multiple reset emails
should work after waiting the correct amount of time
* lint: fixes
* chore: rename outdated `cleanTokensAndUids` method
* test: no need to create user for new test
Co-authored-by: Misty Release Bot <deploy@nodebb.org>
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
* 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
[**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.
@@ -23,25 +24,22 @@ NodeBB's theming engine is highly flexible and does not restrict your design cho
Our minimalist "Harmony" theme gets you going right away, no coding experience required.

## How can I follow along/contribute?
* 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 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 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 SCSS or CSS. NodeBB's base theme utilizes [Bootstrap 5](http://getbootstrap.com/) as a frontend toolkit.
* 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.
## Requirements
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 16 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* 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.
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
@@ -75,10 +73,10 @@ Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive
"mongo.unauthorized":"NodeBB was unable to query the MongoDB database for relevant statistics. Please ensure that the user in use by NodeBB contains the "clusterMonitor" role for the "admin" database.",
"mongo.mapped-memory":"الذاكرة المعينة",
"mongo.bytes-in":"البايتات الواردة",
"mongo.bytes-out":"البايتات الصادرة",
"mongo.num-requests":"عدد الطلبات",
"mongo.raw-info":"معلومات MongoDB الأولية",
"mongo.unauthorized":"لم يستطع NodeBB من الاستعلام عن احصاءات قواعد البيانات ل MongoDB. الرجاء التأكد من أن المستخدم في NodeBB يحتوي على دور "clusterMonitor" ال "admin" لقواعد البيانات.",
"custom-css.description":"Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
"custom-css.enable":"Enable Custom CSS/LESS",
"custom-css":"Custom CSS/SASS",
"custom-css.description":"Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
"custom-css.enable":"Enable Custom CSS/SASS",
"custom-js":"Javascript مخصصة",
"custom-js.description":"أدخل Javascript الخاص بك هنا. سيتم تنفيذها بعد تحميل الصفحة بالكامل.",
"custom-js.enable":"تفعيل Javascript المخصصة",
"custom-header":"ترويسة مخصصة",
"custom-header.description":"Enter custom HTML here (ex. Meta Tags, etc.), which will be appended to the <code><head></code> section of your forum's markup. Script tags are allowed, but are discouraged, as the <a href=\"#custom-js\" data-toggle=\"tab\">Custom Javascript</a> tab is available.",
"custom-header.description":"أدخل وسوم HTML المخصصة هنا (مثل: Meta Tags, وغيرها)، والتي سيتم تضمينها لجزئية <code><head></code> من ترميز المنتدى. يُسمح بعلامات البرمجة النصية، ولكن لا يُنصح بها ، نظرًا لأن علامة التبويب <a href=\"#custom-js\" data-toggle=\"tab\">Custom Javascript</a> متاحة.",
"custom-header.enable":"تفعيل الترويسة المخصصة",
"custom-css.livereload":"تفعيل إعادة التحميل المباشرة",
"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.yesterday":"الأمس",
"stats.today":"اليوم",
"stats.last-week":"الاسبوع الماضي",
"stats.this-week":"هذا الاسبوع",
"stats.last-month":"الشهر الماضي",
"stats.this-month":"هذا الشهر",
"stats.all":"كل الوقت",
"updates":"تحديثات",
"running-version":"المنتدى يعمل حاليا على <strong>NodeBB الإصدار<span id=\"version\">%1</span></strong>.",
"keep-updated":"تأكد دائما من أن NodeBB يعمل على احدث إصدار للحصول على أحدث التصحيحات الأمنية وإصلاحات الأخطاء.",
"up-to-date":"<p>المنتدى <strong>يعمل على أحدث إصدار</strong> <i class=\"fa fa-check\"></i></p>",
"upgrade-available":"<p>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>",
"upgrade-available":"<p> هناك إصدار جديد برقم (v%1). خذ بعين الاعتبار <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\"> ترقية NodeBB</a>.</p>",
"prerelease-upgrade-available":"<p>هذا إصدار منتهي من الاصدارات المسبقة من NodeBB. هناك إصدار جديد برقم (v٪ 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>",
"fallback-emailer-not-found":"Fallback emailer not found!",
"fallback-emailer-not-found":"مرسل البريد الإلكتروني الاحتياطي غير موجود!",
"running-in-development":"المنتدى قيد التشغيل في وضع \"المطورين\". وقد تكون هناك ثغرات أمنية مفتوحة؛ من فضلك تواصل مع مسؤول نظامك.",
"latest-lookup-failed":"<p>Failed to look up latest available version of NodeBB</p>",
"latest-lookup-failed":"<p>فشل البحث عن أحدث إصدار متوفر من NodeBB</p>",
"notices":"إشعارات",
"restart-not-required":"إعادة التشغيل غير مطلوب",
@@ -42,10 +42,10 @@
"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.",
"rebuild-and-restart":"أعد البناء & وأعد التشغيل",
"restart":"أعد التشغيل",
"restart-warning":"ستؤدي إعادة بناء أو إعادة تشغيل NodeBB إلى إنقطاع الاتصال بالمنتدى لبضع ثوان.",
"restart-disabled":"تم تعطيل إعادة بناء NodeBB وإعادة تشغيله حيث لا يبدو أنك تقوم بتشغيله عبر البرنامج الخفي المناسب.",
"maintenance-mode":"وضع الصيانة",
"maintenance-mode-title":"انقر هنا لإعداد وضع الصيانة لـNodeBB",
"description":"By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.",
"explanation":"Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.",
"enable-http":"Enable HTTP logging",
"enable-socket":"Enable socket.io event logging",
"file-path":"Path to log file",
"file-path-placeholder":"/path/to/log/file.log ::: leave blank to log to your terminal",
"logger-settings":"إعدادات المسجِّل",
"description":"من خلال تمكين مربعات الاختيار ، ستتلقى سجلات إلى جهازك الطرفي. إذا حددت مسارًا ، فسيتم بعد ذلك حفظ السجلات في ملف بدلاً من ذلك. يعد تسجيل HTTP مفيدًا لجمع الإحصائيات حول من ومتى وماذا يصل الأشخاص في المنتدى. بالإضافة إلى تسجيل طلبات HTTP ، يمكننا أيضًا تسجيل أحداث socket.io. يمكن أن يكون تسجيل Socket.io ، جنبًا إلى جنب مع شاشة redis-cli ، مفيدًا جدًا في تعلم العناصر الداخلية لـ NodeBB.",
"explanation":"ما عليك سوى تحديدأو/ إلغاء تحديد إعدادات التسجيل لتمكين أو تعطيل التسجيل أثناء التنقل. لا حاجة لإعادة التشغيل.",
"alert.confirm-moderate":"<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
"alert.confirm-admins-mods":"<strong>Are you sure you wish to grant the "Admins & Mods" privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
"alert.confirm-save":"Please confirm your intention to save these privileges",
"alert.saved":"Privilege changes saved and applied",
"alert.confirm-discard":"Are you sure you wish to discard your privilege changes?",
"alert.discarded":"Privilege changes discarded",
"alert.confirm-copyToAll":"Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
"description":"There are no users in the registration queue. <br> To enable this feature, go to <a href=\"%1\">Settings → User → User Registration</a> and set <strong>Registration Type</strong> to \"Admin Approval\".",
"invitations.description":"Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username. <br><br>The username will be displayed to the right of the emails for users who have redeemed their invitations.",
"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.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.status":"Maintenance Mode Status Code",
"maintenance-mode.message":"Maintenance Message",
"maintenance-mode.groups-exempt-from-maintenance-mode":"Select groups that should be exempt from maintenance mode",
"headers":"Headers",
"headers.allow-from":"Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors":"Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
@@ -17,7 +18,10 @@
"headers.acah":"Access-Control-Allow-Headers",
"headers.coep":"Cross-Origin-Embedder-Policy",
"headers.coep-help":"When enabled (default), will set the header to <code>require-corp</code>",
"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.",
"lead-text":"From this page you can configure access to the Write API in NodeBB.",
"intro":"By default, the Write API authenticates users based on their session cookie, but NodeBB also supports Bearer authentication via tokens generated via this page.",
"warning":"<strong>Be advised</strong> — treat tokens like passwords. If they are leaked, your account should be considered compromised.",
"docs":"Click here to access the full API specification",
"require-https":"Require API usage via HTTPS only",
"require-https-caveat":"<strong>Note</strong>: Some installations involving load balancers may proxy their requests to NodeBB using HTTP, in which case this option should remain disabled.",
"uid":"User ID",
"token":"Token",
"uid-help-text":"Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
"description":"Description",
"last-seen":"Last seen",
"created":"Created",
"create-token":"Create Token",
"update-token":"Update Token",
"master-token":"Master token",
"last-seen-never":"This key has never been used.",
"no-description":"No description specified.",
"token-on-save":"Token will be generated once form is saved"
"actions":"Actions",
"delete-confirm":"Are you sure you wish to delete this token? It will not be recoverable.",
"roll-confirm":"Are you sure you wish to regenerate this token? The old token will be immediately revoked and will not be recoverable."
"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.enabled":"Enable SMTP Transport",
"smtp-transport-help":"You can select from a list of well-known services or enter a custom one.",
"smtp-transport.service":"Select a service",
"smtp-transport.service-custom":"Custom Service",
"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-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.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":"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 <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.port":"SMTP Port",
"smtp-transport.security":"Connection security",
@@ -38,7 +42,7 @@
"subscriptions.hour-help":"Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>",
"notifications.remove-images":"Remove images from email notifications",
"require-email-address":"Require new users to specify an email address",
"require-email-address-warning":"By default, users can opt-out of entering an email address 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>",
"require-email-address-warning":"By default, users can opt-out of entering an email address by leaving the field blank. Enabling this option means new users will have to enter <strong>and confirm</strong> an email address in order to proceed with registration and subsequent access to the forum. <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.",
"dropdown-placeholder":"Place your dropdown menu items below, ie: <br/><li><a href="https://myforum.com">Link 1</a></li>",
"dropdown-placeholder":"Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" 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.",
"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-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.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-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",
"email-confirm-interval":"لا يمكن للمستخدم إعادة إرسال رسالة تأكيد البريد الالكتروني حتى مرور",
"email-confirm-email2":"دقائق",
"email-confirm-interval2":"minutes have elapsed",
"allow-login-with":"السماح بتسجيل الدخول باستخدام",
"allow-login-with.username-email":"اسم المستخدم أو البريد الالكتروني",
"allow-login-with.username":"اسم المستخدم فقط",
@@ -29,6 +29,8 @@
"session-time-days":"Days",
"session-time-seconds":"Seconds",
"session-time-help":"These values are used to govern how long a user stays logged in when they check "Remember Me" on login. Note that only one of these values will be used. If there is no <i>seconds</i> value we fall back to <i>days</i>. If there is no <i>days</i> value we default to <i>14 days</i>.",
"session-duration":"Session length if \"Remember Me\" is not checked (seconds)",
"session-duration-help":"By default — or if set to <code>0</code> — a user will stay logged in for the duration of the session (e.g. however long the browser window/tab remains open). Set this value to explicitly invalidate the session after the specified number of seconds.",
"online-cutoff":"Minutes after user is considered inactive",
"online-cutoff-help":"If user performs no actions for this duration, they are considered inactive and they do not receive realtime updates.",
"no-privileges":"لاتملك الصلاحيات اللازمة للقيام بهذه العملية",
"category-disabled":"قائمة معطلة",
"topic-locked":"الموضوع مقفول",
@@ -88,8 +89,10 @@
"category-not-selected":"Category not selected.",
"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",
"already-posting":"You are already posting",
"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-not-allowed":"Tag not allowed",
"not-enough-tags":"Not enough tags. Topics must have at least %1 tag(s)",
"too-many-tags":"Too many tags. Topics can't have more than %1 tag(s)",
"cant-use-system-tag":"You can not use this system tag.",
@@ -99,6 +102,7 @@
"guest-upload-disabled":"خاصية رفع الملفات غير مفعلة للزوار.",
"cors-error":"Unable to upload image due to misconfigured CORS",
"upload-ratelimit-reached":"You have uploaded too many files at one time. Please try again later.",
"upload-error-fallback":"Unable to upload image — %1",
"scheduling-to-past":"Please select a date in the future.",
"invalid-schedule-date":"Please enter a valid date and time.",
"cant-pin-scheduled":"Scheduled topics cannot be (un)pinned.",
@@ -132,6 +136,8 @@
"group-already-requested":"سبق وتم تسجيل طلب العضوية",
"group-join-disabled":"You are not able to join this group at this time",
"group-leave-disabled":"You are not able to leave this group at this time",
"group-user-not-pending":"User does not have a pending request to join this group.",
"gorup-user-not-invited":"User has not been invited to join this group.",
"post-already-deleted":"سبق وتم حذف هذا الرد",
"post-already-restored":"سبق وتم إلغاء حذف هذا الرد",
"topic-already-deleted":"سبق وتم حذف هذا الموضوع",
@@ -155,6 +161,9 @@
"chat-deleted-already":"This chat message has already been deleted.",
"chat-restored-already":"This chat message has already been restored.",
"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":"لقد شاركت بالتصويت ، ألا تذكر؟",
"reputation-system-disabled":"نظام السمعة معطل",
"downvoting-disabled":"التصويتات السلبية معطلة",
@@ -205,6 +214,8 @@
"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",
"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",
"403.message":"يبدو أنك قد تعثرت على صفحة لا تمتلك الصلاحية للدخول إليها",
"403.login":"ربما يجب عليك <a href='%1/login'>تسجل دخولك</a>.",
"403.login":"Perhaps you should <a class=\"alert-link\" href='%1/login'>try logging in</a>?",
"404.title":"لم يتم العثور",
"404.message":"الصفحة غير موجودة. العودة لـ <a href='%1/'>الرئيسية</a>",
"404.message":"You seem to have stumbled upon a page that does not exist.<br/><div class=\"text-sm text-muted\">Return to the <a href='%1/'>home page</a>.</div>",
"500.title":"خطأ داخلي",
"500.message":"عفوا! يبدو وكأنه شيء ذهب على نحو خاطئ!",
"400.title":"طلب سيئ",
"400.message":"الرابط غير صحيح. رجاءًا تأكد من الرابط أو ارجع لـ <a href='%1/'>الرئيسية</a>",
"400.message":"It looks like this link is malformed, please double-check and try again.<br/><div class=\"text-sm text-muted\">Return to the <a href='%1/'>home page</a>.</div>",
"register":"تسجيل",
"login":"دخول",
"please_log_in":"الرجاء تسجيل الدخول",
@@ -20,6 +20,7 @@
"you_have_successfully_logged_in":"تم سجيل الدخول بنجاح",
"save_changes":"حفظ التغييرات",
"save":"حفظ",
"cancel":"Cancel",
"close":"أغلق",
"pagination":"الصفحات",
"pagination.out_of":"%1 من %2",
@@ -37,9 +38,13 @@
"header.notifications":"التنبيهات",
"header.search":"بحث",
"header.profile":"ملف",
"header.account":"Account",
"header.navigation":"الاستكشاف",
"header.manage":"Manage",
"header.drafts":"Drafts",
"notifications.loading":"تحميل التنبيهات",
"chats.loading":"تحميل الدردشات",
"drafts.loading":"Loading Drafts",
"motd.welcome":"مرحبا بكم في NodeBB، منصة المناقشة المستقبلية.",
"description":"There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings → Post → Post Queue</a> and enable <strong>Post Queue</strong>.",
"no-queued-posts":"There are no posts in the post queue.",
"no-single-post":"The topic or post you are looking for is no longer in the queue. It has likely been approved or deleted already.",
"enabling-help":"To enable this feature, go to <a href=\"%1\">Settings → Post → Post Queue</a> and enable <strong>Post Queue</strong>.",
"back-to-list":"Back to Post Queue",
"user":"User",
"when":"When",
"category":"Category",
"title":"Title",
"content":"Content",
@@ -19,6 +23,7 @@
"notify":"Notify",
"notify-user":"Notify User",
"confirm-reject":"Do you want to reject this post?",
"confirm-remove":"Do you want to remove this post?",
"bulk-actions":"Bulk Actions",
"accept-all":"Accept All",
"accept-selected":"Accept Selected",
@@ -26,6 +31,10 @@
"reject-all-confirm":"Do you want to reject all posts?",
"reject-selected":"Reject Selected",
"reject-selected-confirm":"Do you want to reject %1 selected posts?",
"remove-all":"Remove all",
"remove-all-confirm":"Do you want to remove all posts?",
"remove-selected":"Remove Selected",
"remove-selected-confirm":"Do you want to remove %1 selected posts?",
"settings.intro":"You can customise your theme settings here. Settings are stored on a per-device basis, so you are able to have different settings on different devices (phone, tablet, desktop, etc.)",
"settings.mobile-menu-side":"Switch which side each mobile menu is on",
"settings.autoHidingNavbar":"Automatically hide the navbar on scroll",
"settings.autoHidingNavbar-xs":"Very small screens (e.g. phones in portrait mode)",
"settings.autoHidingNavbar-sm":"Smaller screens (e.g. phones, some tablets)",
"settings.autoHidingNavbar-md":"Medium sized screens (e.g. tablets in landscape mode)",
"delete_account_content_confirm":"Are you sure you want to delete this account's content (posts/topics/uploads)? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
"delete_all_confirm":"Are you sure you want to delete this account and all of its content (posts/topics/uploads)? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
"info.moderation-note.success":"تم حفظ ملاحظة الإشراف",
"info.moderation-note.add":"إضافة ملاحظة",
"sessions.description":"This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
"revoke-session":"Revoke Session",
"browser-version-on-platform":"%1 %2 on %3",
"consent.title":"Your Rights & Consent",
"consent.lead":"This community forum collects and processes your personal information.",
"consent.intro":"We use this information strictly to personalise your experience in this community, as well as to associate the posts you make to your user account. During the registration step you were asked to provide a username and email address, you can also optionally provide additional information to complete your user profile on this website.<br /><br />We retain this information for the life of your user account, and you are able to withdraw consent at any time by deleting your account. At any time you may request a copy of your contribution to this website, via your Rights & Consent page.<br /><br />If you have any questions or concerns, we encourage you to reach out to this forum's administrative team.",
@@ -194,5 +200,7 @@
"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.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.",
"emailUpdate.pending":"Your email address has not yet been confirmed, but an email has been sent out requesting confirmation. If you wish to invalidate that request and send a new confirmation request, please fill in the form below."
"details.no-users":"В избрания период не сасе регистрирали нови потребители",
"details.no-topics":"В избрания период не са публикувани нови теми",
"details.no-searches":"Все още не са правени търсения",
"details.no-searches":"В избрания период не са правени търсения",
"details.no-logins":"В избрания период не са отчетени вписвания",
"details.logins-static":"NodeBB запазва данни за сесията в продължение на %1 дни, така че в следната таблица могат да се видят само последните активни сесии",
"alert.confirm-moderate":"<strong>Наистина ли искате да дадете правомощието за модериране на тази потребителска група?</strong> Тази група е публична и всеки може свободно да се присъедини към нея.",
"alert.confirm-admins-mods":"<strong>Наистина ли искате да дадете правото „Администратори и модератори“ на този потребител/група?</strong> Потребителите с това право могат да променят правомощията на други групи, <em>включително да им дават правото на супер администратори</em>",
"alert.confirm-save":"Моля, потвърдете желанието си да запазите тези правомощия",
"alert.saved":"Промените по правомощията са запазени и приложени",
"alert.confirm-discard":"Наистина ли искате да отхвърлите промените по правомощията?",
"alert.discarded":"Промените по правомощията са отхвърлени",
"alert.confirm-copyToAll":"Наистина ли искате да приложите този набор от <strong>%1</strong> към <strong>всички категории</strong>?",
"alerts.validate-email-success":"Е-пощите са проверени",
"alerts.validate-force-password-reset-success":"Паролата на потребителя (или паролите на потребителите) беше подновена и сесията му беше прекратена.",
"alerts.password-reset-confirm":"Искате ли да изпратите е-писмо/а за възстановяване на паролата на този/тези потребител(и)?",
"alerts.password-reset-email-sent":"Е-писмото за възстановяване на паролата е изпратено.",
"alerts.confirm-delete":"<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.status":"Код на състоянието за режима на профилактика",
"maintenance-mode.message":"Съобщение за профилактиката",
"maintenance-mode.groups-exempt-from-maintenance-mode":"Изберете групи, които да бъдат изключени от режима на профилактика",
"headers":"Заглавни части",
"headers.allow-from":"Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
"headers.csp-frame-ancestors":"Задайте заглавката „Content-Security-Policy frame-ancestors“ за да поставите NodeBB „iFrame“",
@@ -17,7 +18,10 @@
"headers.acah":"Access-Control-Allow-Headers",
"headers.coep":"Cross-Origin-Embedder-Policy",
"headers.coep-help":"Когато е включено (по подразбиране), стойността на заглавката ще бъде <code>require-corp</code>",
"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.enabled":"Включване на HSTS (препоръчително)",
"lead-text":"На тази страница можете да настроите достъпа до ППИ за писане в NodeBB.",
"intro":"По подразбиране ППИ за писане удостоверява потребителите чрез бисквитката им за сесията, но NodeBB поддържа и удостоверяване чрез метода „Bearer“, използвайки кодовете от тази страница.",
"intro":"По подразбиране ППИ за писане удостоверява потребителите чрез бисквитката им за сесията, но NodeBB поддържа и удостоверяване чрез метода „Bearer“, използвайки идентификаторите от тази страница.",
"warning":"<strong>Внимавайте</strong> – отнасяйте сес идентификаторите като с пароли. Ако някой се сдобие с тях, може да получи достъп до акаунта Ви.",
"docs":"Щракнете тук за достъп до пълната документация на ППИ",
"require-https":"Ползването на ППИ да работи само чрез HTTPS",
"require-https-caveat":"<strong>Забележка</strong>: В някои случаи, когато се ползват програми за балансиране на натоварването, е възможно заявките към NodeBB да се препращат чрез HTTP – тогава тази настройка трябва да остане изключена.",
"uid":"Потребителски ИД",
"token":"Идентификатор",
"uid-help-text":"Посочете потребителски ИД, който да бъде свързан с този код. Ако ИД е <code>0</code>, това ще се счита за <em>главен</em> код, който може да приема идентичността на всеки от другите потребители чрез параметъра <code>_uid</code>",
"description":"Описание",
"last-seen":"Последно видян",
"created":"Създаден",
"create-token":"Създаване на идентификатор",
"update-token":"Промяна на идентификатора",
"master-token":"Главен идентификатор",
"last-seen-never":"Този ключ не е използван никога.",
"no-description":"Няма описание.",
"token-on-save":"Кодът ще бъде създаден след като данните бъдат запазени"
"actions":"Действия",
"delete-confirm":"Наистина ли искате да изтриете този идентификатор? След това няма да може да го възстановите.",
"roll-confirm":"Наистина ли искате да пресъздадете този идентификатор? Старият ще бъде премахнат незабавно и няма да може да бъде възстановен."
"smtp-transport.service-help":"Изберете името на услугата по-горе, за да използвате известните данни за нея. Или изберете „Персонализирана услуга“ и въведете данните ѝ по-долу.",
"smtp-transport.gmail-warning1":"Има доклади, чеуслугатанаGmail не работи за акаунти с подсилена защита. В тези случаи ще трябва да <a href=\"https://www.google.com/settings/security/lesssecureapps\">настроите своя акаунт в GMail така, че да позволява използването на по-малко защитени приложения</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-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“<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.port":"SMTP порт",
"smtp-transport.security":"Сигурност на връзката",
@@ -38,7 +42,7 @@
"subscriptions.hour-help":"Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>",
"notifications.remove-images":"Премахване на изображенията от известията по е-поща",
"require-email-address":"Новите потребители задължително трябва да предоставят е-поща",
"require-email-address-warning":"По подразбиране потребителите могат да не въвеждат адрес на е-поща, като оставят полето празно. Ако включите това, те задължително ще трябва да предоставят е-поща, за да могат да се регистрират. <strong>Това не означава, че потребителят ще въведе съществуващае-поща, нито че тя ще е негова.</strong>",
"require-email-address-warning":"По подразбиране потребителите могат да не въвеждат адрес на е-поща, като оставят полето празно. Ако включите това, новите потребители задължително ще трябва да предоставят <strong>и потвърдят</strong>е-поща, за да могат да се регистрират и да получат достъп до форума. <strong>Това не означава, че потребителят ще въведе истинскае-поща, нито че тя ще е негова.</strong>",
"send-validation-email":"Изпращане на е-писма за потвърждение, когато бъде добавена или променена е-поща",
"include-unverified-emails":"Изпращане на е-писма към получатели, които не са потвърдили изрично е-пощата си",
"include-unverified-warning":"За потребителите, които имат свързана е-поща с регистрацията си, тя се смята за потвърдена. Но има ситуации, в които това не е така (например при ползване на регистрация от друга система, но и в други случаи), <strong>Включете тази настройка на собствен риск</strong> – изпращането на е-писма към непотвърдени адреси може да нарушава определени местни закони против нежеланата поща.",
"signature.no-links":"Забраняване на поставянето на връзки в подписите",
"signature.no-images":"Забраняване на поставянето на изображения в подписите",
"signature.hide-duplicates":"Скриване на дублираните подписи в темите",
"signature.max-length":"Максимална дължина на подписите",
"composer":"Настройки за съставянето",
"composer-help":"Следващите настройки определят функционалностите и/или вида на елемента за съставяне на\n\\t\\t\\t\\tпубликация, който се използва от потребителите, когато те създават нови теми или отговорят в съществуващи.",
"flags.limit-per-target-help":"Когато публикация или потребител бъде докладван няколко пъти, това се добавя към един общ доклад. Задайте на тази настройка стойност по-голяма от нула, за да ограничите броя на докладванията, които могат да бъдат натрупани към една публикация или потребител.",
"flags.auto-flag-on-downvote-threshold":"Брой отрицателни гласове, при които публикациите да бъдат докладвани автоматично (0 = изключено, по подразбиране: 0)",
"flags.auto-resolve-on-ban":"Автоматично премахване на всички доклади за потребител, когато той бъде блокиран"
"flags.auto-resolve-on-ban":"Автоматично премахване на всички доклади за потребител, когато той бъде блокиран",
"flags.action-on-resolve":"Когато докладване бъде разрешено, да се направи следното",
"flags.action-on-reject":"Когато докладване бъде отхвърлено, да се направи следното",
"flags.action.nothing":"Да не се прави нищо",
"flags.action.rescind":"Да се отмени известието, изпратено до модераторите/администраторите"
"preserve-orphaned-uploads":"Запазване на качените файлове на диска дори след изтриването на публикацията",
"orphanExpiryDays":"Брой дни за съхранение на неизползваните файлове",
"orphanExpiryDays-help":"След толкова на брой дни неизползваните качени файлове ще бъдат изтривани.<br />Задайте 0 или оставете празно, за да изключите тази функционалност.",
"private-extensions":"Файлови разширения, които да бъдат частни",
"private-uploads-extensions-help":"Въведете списък от файлови разширения, разделени със запетаи, които искате да бъдат частни (например <code>pdf,xls,doc</code>). Ако оставите това поле празно, всички файлове ще бъдат частни.",
"resize-image-width-threshold":"Преоразмеряване на изображенията, ако са по-широки от определената ширина",
"login-attempts-help":"Ако опитите за вписване на потребител минат тази граница, акаунтът ще бъде заключен за определено време.",
"lockout-duration":"Продължителност на заключването на акаунта (в минути)",
"login-days":"Продължителност на запомнянето на сесията за вписване на потребителя (в дни)",
"login-days":"Брой дни за помнене на сесията за вписване на потребителя",
"password-expiry-days":"Изискване на промяна на паролата през определен период от дни",
"session-time":"Продължителност на сесията",
"session-time-days":"Дни",
"session-time-seconds":"Секунди",
"session-time-help":"Тези стойности се използват за определяне на дължината на периода, през който потребителите ще останат вписани в системата, ако поставят отметка в полето „Запомнете ме“ при вписването. Имайте предвид, че ще се използва само една от тези стойности. Ако няма стойност за <i>секунди</i>, ще се използва стойността за <i>дни</i>. Ако няма и стойност за <i>дни</i>, то ще се използва стандартната стойност от <i>14 дни</i>.",
"session-duration":"Продължителност на сесията, ако „Запомнете ме“ не е отбелязано (в секунди)",
"session-duration-help":"По подразбиране (или ако стойността е <code>0</code>) потребителят ще остане вписан докато не изтече сесията му (обикновено докато браузърът или разделът не бъде затворен). Използвайте тази настройка, ако искате да определите точно време (в секунди), след което сесията на потребителя да бъде прекратена.",
"online-cutoff":"Брой минути, след които потребителят ще бъде смятан за неактивен",
"online-cutoff-help":"Ако потребителят не извършва никакви действия през този период, ще бъде смятан за неактивен и няма да получава известия в реално време.",
"no-chat-room":"Стаята за разговори не съществува",
"no-privileges":"Нямате достатъчно права за това действие.",
"category-disabled":"Категорията е изключена",
"topic-locked":"Темата е заключена",
@@ -88,8 +89,10 @@
"category-not-selected":"Нее избрана категория.",
"too-many-posts":"Можете да публикувате веднъж на %1 секунда/и – моля, изчакайте малко, преди да опитате да публикувате отново",
"too-many-posts-newbie":"Като нов потребител, Вие можете да публикувате веднъж на %1 секунда/и, докато не натрупате %2 репутация – моля, изчакайте малко, преди да опитате да публикувате отново",
"already-posting":"В момента публикувате",
"tag-too-short":"Моля, въведете по-дълъг етикет. Етикетите трябва да съдържат поне %1 символ(а)",
"tag-too-long":"Моля, въведете по-кратък етикет. Етикетите трябва да съдържат не повече от %1 символ(а)",
"tag-not-allowed":"Етикетът не е разрешен",
"not-enough-tags":"Недостатъчно етикети. Темите трябва да имат поне %1 етикет(а)",
"too-many-tags":"Твърде много етикети. Темите не могат да имат повече от %1 етикет(а)",
"cant-use-system-tag":"Не можете да използвате този системен етикет.",
@@ -99,6 +102,7 @@
"guest-upload-disabled":"Качването не е разрешено за гости",
"cors-error":"Изображението не може да бъде качено поради неправилни настройки на CORS",
"upload-ratelimit-reached":"Качили сте твърде много файлове наведнъж. Моля, опитайте отново по-късно.",
"upload-error-fallback":"Изображението не може да бъде качено – %1",
"scheduling-to-past":"Изберете дата в бъдещето.",
"invalid-schedule-date":"Въведете правилна дата и час.",
"cant-pin-scheduled":"Насрочените теми не могат да бъдат закачени или разкачени.",
@@ -132,6 +136,8 @@
"group-already-requested":"Вашата заявка за членство вече е била изпратена",
"group-join-disabled":"В момента не можете да се присъедините към тази група",
"group-leave-disabled":"В момента не можете да напуснете тази група",
"group-user-not-pending":"Потребителят няма изчакваща заявка за присъединяване към тази група.",
"gorup-user-not-invited":"Потребителят не е бил поканен да се присъедини към тази група.",
"post-already-deleted":"Тази публикация вече е изтрита",
"post-already-restored":"Тази публикация вече е възстановена",
"topic-already-deleted":"Тази тема вече е изтрита",
@@ -155,6 +161,9 @@
"chat-deleted-already":"Това съобщение вече е изтрито.",
"chat-restored-already":"Това съобщение вече е възстановено.",
"chat-room-does-not-exist":"Стаята за разговори не съществува.",
"cant-add-users-to-chat-room":"Към стаята за разговори не могат да бъдат добавяни потребители.",
"cant-remove-users-from-chat-room":"От стаята за разговори не могат да бъдат премахвани потребители.",
"chat-room-name-too-long":"Името на стаята за разговори е твърде дълго.",
"already-voting-for-this-post":"Вече сте дали глас за тази публикация.",
"reputation-system-disabled":"Системата за репутация е изключена.",
"downvoting-disabled":"Отрицателното гласуване е изключено",
@@ -205,10 +214,12 @@
"no-connection":"Изглежда има проблем с връзката Ви с Интернет",
"socket-reconnect-failed":"В момента сървърът е недостъпен. Натиснете тук, за да опитате отново, или опитайте пак по-късно.",
"plugin-not-whitelisted":"Добавката не може да бъде инсталирана – само добавки, одобрени от пакетния мениджър на NodeBB могат да бъдат инсталирани чрез ACP",
"plugins-set-in-configuration":"Не можете да променяте състоянието на добавката, тъй като то се определя по време на работата ѝ (чрез config.json, променливи на средата или аргументи при изпълнение). Вместо това може да промените конфигурацията.",
"theme-not-set-in-configuration":"Когато определяте активните добавки в конфигурацията, промяната на темите изисква да се добави новата тема към активните добавки, преди актуализирането ѝ в ACP",
"topic-event-unrecognized":"Събитието „%1“ на темата е неизвестно",
"cant-set-child-as-parent":"Дъщерна категория не може да се зададе като базова такава",
"cant-set-self-as-parent":"Категорията не може да се зададе като базова категория на себе си",
"api.master-token-no-uid":"Беше получен главен код без съответстващо поле `_uid` в тялото на заявката",
"api.master-token-no-uid":"Беше получен главен идентификатор без съответстващо поле `_uid` в тялото на заявката",
"api.400":"Нещо не беше наред с данните в заявката, които подадохте.",
"api.401":"Няма намерена сесия. Моля, впишете се и опитайте отново.",
"api.403":"Нямате право да изпълните тази команда",
@@ -217,5 +228,6 @@
"api.429":"Направили сте твърде много заявки. Моля, опитайте отново по-късно.",
"api.500":"При обработката на заявката Ви възникна неочаквана грешка.",
"api.501":"Пътят, който се опитвате да извикате, все още не съществува. Моля, опитайте отново утре.",
"api.503":"Пътят, който се опитвате да извикате, в момента не е достъпен, поради настройките на сървъра."
"api.503":"Пътят, който се опитвате да извикате, в момента не е достъпен, поради настройките на сървъра.",
"api.reauth-required":"Ресурсът, който се опитвате да достъпите, изисква (повторно) удостоверяване."
"403.message":"Изглежда сте посетили страница, до която нямате достъп.",
"403.login":"Може би трябва да <a href='%1/login'>опитате да се впишете</a>?",
"403.login":"Може би трябва да <a class=\"alert-link\" href='%1/login'>опитате да се впишете</a>?",
"404.title":"Нее намерена",
"404.message":"Изглежда сте се опитали да посетите страница, която не съществува.Върнете се към <a href='%1/'>началната страница</a>.",
"404.message":"Изглежда сте се опитали да посетите страница, която не съществува.<br/><div class=\"text-sm text-muted\">Върнете се към <a href='%1/'>началната страница</a>.</div>",
"500.title":"Вътрешна грешка.",
"500.message":"Опа! Изглежда нещо се обърка!",
"400.title":"Грешна заявка.",
"400.message":"Тази връзка изглежда повредена. Моля, проверете я и опитайте отново.В противен случайсе върнете на <a href='%1/'>началната страница</a>.",
"400.message":"Тази връзка изглежда повредена. Моля, проверете я и опитайте отново.<br/><div class=\"text-sm text-muted\">Илисе върнете към <a href='%1/'>началната страница</a>.</div>",
"description":"Няма публикации в опашката. <br> За да включите тази функционалност, идете в <a href=\"%1\">Настройки → Публикуване → Опашка за публикации</a> и включете <strong>Опашката за публикации</strong>.",
"no-queued-posts":"В опашката за публикации няма нищо.",
"no-single-post":"Темата или публикацията, която търсите, вече не се намира в опашката. Вероятно или е била одобрена, или изтрита.",
"enabling-help":"За да включите тази функционалност, идете в <a href=\"%1\">Настройки → Публикуване → Опашка за публикации</a> и включете <strong>Опашката за публикации</strong>.",
"back-to-list":"Назад към Опашката за публикации",
"user":"Потребител",
"when":"Кога",
"category":"Категория",
"title":"Заглавие",
"content":"Съдържание",
@@ -19,6 +23,7 @@
"notify":"Известяване",
"notify-user":"Известяване на потребителя",
"confirm-reject":"Искате ли да отхвърлите тази публикация?",
"confirm-remove":"Искате ли да премахнете тази публикация?",
"bulk-actions":"Групови действия",
"accept-all":"Приемане на всички",
"accept-selected":"Приемане на избраните",
@@ -26,6 +31,10 @@
"reject-all-confirm":"Наистина ли искате да отхвърлите всички публикации?",
"reject-selected":"Отхвърляне на избраните",
"reject-selected-confirm":"Наистина ли искате да отхвърлите %1 избрани публикации?",
"remove-all":"Премахване на всички",
"remove-all-confirm":"Наистина ли искате да премахнете всички публикации?",
"remove-selected":"Премахване на избраните",
"remove-selected-confirm":"Наистина ли искате да премахнете избраните %1 публикации?",
"help.email":"По подразбиране, Вашата е-поща ще бъде скрита за останалите.",
"help.username_restrictions":"Уникално потребителско име с дължина между %1 и %2 символа. Другите ще могат да Ви споменават чрез @<span id='yourUsername'>потребител</span>.",
"settings.intro":"Тук може да промените настройките на темата. Тези настройки се съхраняват отделно на всяко устройство, така че може да имате различни настройки на различните си устройства (телефон, таблет, настолен компютър и т.н.)",
"settings.mobile-menu-side":"Превключване на страната, от която да бъде всяко меню на мобилно устройство",
"settings.autoHidingNavbar":"Автоматично скриване на навигационната лента при превъртане",
"settings.autoHidingNavbar-xs":"Много малки екрани (напр. телефон в портретна ориентация)",
"settings.autoHidingNavbar-sm":"По-малки екрани (напр. телефони, някои таблети)",
"settings.autoHidingNavbar-md":"Средно големи екрани (напр. таблети в пейзажна ориентация)",
"settings.autoHidingNavbar-lg":"По-големи екрани (напр. лаптопи и настолни компютри)"
"upload_new_picture_from_url":"Качване на нова снимка от адрес",
"current_password":"Текуща парола",
"new_password":"Нова парола",
"change_password":"Промяна на паролата",
"change_password_error":"Грешна парола!",
"change_password_error_wrong_current":"Текущата Ви парола е грешна!",
@@ -115,6 +117,8 @@
"paginate_description":"Разделяне на темите и публикациите на страници, вместо да се превърта безкрайно",
"topics_per_page":"Теми на страница",
"posts_per_page":"Публикации на страница",
"category-topic-sort":"Подреждане на темите в категория",
"topic-post-sort":"Подреждане на публикациите в тема",
"max_items_per_page":"Най-много %1",
"acp_language":"Език на администраторската страница",
"notifications":"Известия",
@@ -168,6 +172,8 @@
"info.moderation-note.success":"Модераторската бележка е запазена",
"info.moderation-note.add":"Добавяне на бележка",
"sessions.description":"На тази страница можете да видите активните си сесии на този форум и да ги анулирате, ако желаете. Можете да анулирате текущата си сесия, като се отпишете от акаунта си.",
"revoke-session":"Анулиране на сесията",
"browser-version-on-platform":"%1 %2 на %3",
"consent.title":"Вашите права и съгласие",
"consent.lead":"Този обществен форум събира и обработва лична информация.",
"consent.intro":"Използваме тази информация, само за да персонализираме взаимодействието Ви с форума, както и за да свържем публикациите Ви с Вашия потребителски акаунт. По време на регистрацията ще трябва да въведете потребителско име и е-поща, но ако искате, можете да предоставите и допълнителна информация, за да завършите потребителския си профил в уеб сайта.<br /><br />Ние съхраняваме тази информация докато съществува потребителският Ви акаунт. Във всеки един момент можете да оттеглите съгласието си за това, като изтриете акаунта си. Във всеки един момент можете да изискате копие на въведеното от Вас в уеб сайт, чрез страницата за „Права и съгласие“.<br /><br />Ако имате въпроси или притеснения, можете да се свържете с екипа от администратори на форума.",
@@ -194,5 +200,7 @@
"emailUpdate.intro":"Въведете е-пощата си по-долу. Този форум използва е-пощата за планирани резюмета и известия, както и за възстановяване на акаунта, в случай на забравена парола.",
"emailUpdate.optional":"<strong>Това поле не е задължително</strong>. Не сте длъжен/на да предоставяте адрес на е-поща, но без проверена е-поща, няма да можете да възстановите акаунта си в случай на проблем, нито ще можете да се вписвате се-пощата си.",
"emailUpdate.required":"<strong>Това поле е задължително</strong>.",
"emailUpdate.change-instructions":"Ще Ви изпратим е-писмо за потвърждение на посочената е-поща, което ще съдържа уникална връзка. Щом последвате тази връзка, притежанието Ви на тази е-поща ще бъде потвърдено и тя ще бъде свързана с акаунта Ви. Ще можете да промените тази е-поща по всяко време, от страницата на акаунта си."
"emailUpdate.change-instructions":"Ще Ви изпратим е-писмо за потвърждение на посочената е-поща, което ще съдържа уникална връзка. Щом последвате тази връзка, притежанието Ви на тази е-поща ще бъде потвърдено и тя ще бъде свързана с акаунта Ви. Ще можете да промените тази е-поща по всяко време, от страницата на акаунта си.",
"emailUpdate.password-challenge":"Въведете паролата си, за да потвърдите, че акаунтът е Ваш.",
"emailUpdate.pending":"Вашата е-поща все още не е била потвърдена, въпреки че до нея вече е било изпратено е-писмо за потвърждение. Ако искате да го анулирате и да заявите ново, попълнете формуляра по-долу."
"enter_username":"Въведете потребителско име, което да потърсите",
"search-user-for-chat":"Потърсете потребител, с когото да започнете разговор",
"search-user-for-chat":"Search for a user to start chat",
"load_more":"Зареждане на още",
"users-found-search-took":"Намерени са %1 потребител(и)! Търсенето отне %2 секунди.",
"filter-by":"Филтриране",
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.