* use yarn and debian slim build
* feat: update Dockerfile to use multistage builds
* Create main.yml
* remove some useless things from docker context and assume yarn by default
* remove all dotfiles in docker context
* no need for extra build tools, complain to the module author if there is no alpine build
(cherry picked from commit 90516a3c8399e74c38be7115edb39411ba0d86b9)
* specify the config file location instead of creating it
(cherry picked from commit 38e4295d70682f1049fe671ade96eeccd669d908)
* set explicit config path
(cherry picked from commit 8dcc6f249d099cb8939a95511ec13702491958bc)
* fix docker-compose example to use the exposed volumes
* dockerfile: upgrade alpine to 3.16
* dockerignore: add more ignorable entries
* docker-compose: change the way the docker startup process works
* install: pass config path to child process as well
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* setup: move config file resolution up before setup
This fixes issue with different config file location, which will otherwise default on 'config.json', which means the config save won't save to the file we specified
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-entrypoint: don't fix CONFIG_DIR location but fix default location
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-entrypoint: handle missing config file logic
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* README: add simple notice on how to use it
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* add missing semicolons
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-compose: remove multi override, use one big profile instead
However, Docker Compose doesn't support profile-based dependency and this would probably means we have less guarantee about the liveness of the database. But since this is just a sample configuration it should be fine
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* workflows: remove main.yml, add platforms to buildx matrix in docker.yml
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* workflows: set docker buildx to build for amd64 and arm64 only
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-entrypoint: don't force build everytime before start
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-entrypoint: implement init verb
This would allow you to change between "setup" (automated setup using environmental variables which is the current preferred way to run containerized NodeBB) or "install" (web install that guides user to fill in connection information, which is similar to WordPress)
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* README: mention caveat with MongoDB
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* README: add Docker section placeholder for doc migration
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-entrypoint: add SETUP variable support
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-compose: add force flag to ln on setup
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* docker-compose: fix permission issue; docker-compose: fast exit if still no permission on config dir
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
* fix: remove redundant FROM
* docs: remove docker stuff (in favour of docs entry, nodebb/docs#78) but add link to cloud install docs
* fix: correctly check if directory is writable
* fix: ignore .docker directory
* fix: multi-arch docker builds and chown performance
* chore: bump database image versions
* fix: move from alpine to slim image
* fix: use omit=dev instead of only=prod
* feat: move entrypoint to install directory
* feat: initialize mongodb user
* feat: use separate rebuild stage
* fix: disable eslint for mongodb script
* fix: remove node_modules bind mount
bind mounts don't save data from container, resulting in a LOONG startup
* feat: prepopulate database defaults for installation
* feat: enable persistence in redis container
* docs: add some comments to the compose file
---------
Signed-off-by: steve <29133953+stevefan1999-personal@users.noreply.github.com>
Co-authored-by: Steve Fan <29133953+stevefan1999-personal@users.noreply.github.com>
Co-authored-by: Steve Fan <19037626d@connect.polyu.hk>
Co-authored-by: Julian Lam <julian@nodebb.org>
* feat: add direct message link
/message/:mid
add /:index? to chat routes
add copy link to chat messages
add messageCount to each room object
add infinitescroll in both directions to chat
* fix more tests
* test: more text fixes
* test: fix tests
* remove async
* dont crash if element not in dom
clamp scrollToIndex values to 0, msgCount
when changing a theme save all locations that have widgets in them, after restart go through these locations and if they don't exist anymore move those widgets to drafts
* Update headers.js
Fixes X-Upstream-Hostname header for os hostnames with invalid characters
* Added missing period in allowed hostname chars
Allowed hostname chars should include A-Za-z0-9-. based on https://man7.org/linux/man-pages/man7/hostname.7.html
* feat: add chat:privileged global privilege
to only allow chatting with privileged users
* test: fix priv test
* test: one more fix
---------
Co-authored-by: chadjw <chad.warner@gmail.com>
- Removed payload from event:nodebb.ready event (ready to remove for v4 in favour)
- Send hostname/cache-buster payload in meta.reconnected method instead
* feat: tag follow
* on tag delete remove it from following users
* feat: on tag rename update user followed tags
and move the
* add new filter on /notifications
* feat: openapi updates
* chore: up themes
* chore: up peace
* refactor: remove unused title
Now will judiciously check whether the target category or topic is restricted to verified users before redirecting unverified users to the email confirmation interstitial
* feat: add type to privilege maps
deprecate old hooks that are used for adding new privileges, new hooks are static:privileges.global.init/static:privileges.categories.init
* deprecate admin priv hooks
* fix: if type doesnt exist default to 'other'
* remove filter
* fix: copy privilege functions to use new filter instead of indices
allow static hooks to use sync functions
* fix: openapi
* test: fix template helper
Async function xhr use a mixture of await and callback, which is not correct when an exception is thrown before callback happens. Use only async/await for it and create a new callback-style wrapper.
* refactor: how admins change emails
ability for admins to change emails from acp
ability for admins to change passwords from acp
only users themselves can use /user/<slug>/edit/email
group actions in manage users dropdown
admins can use the same modal from profile page instead of interstitial to update email
add missing checks to addEmail, if email take throw error
add targetUid to email change event
* test: bunch of baloney
* test: remove old test
so async checks can be made by plugins
like showing custom dialogs before login etc.
setting cancel=true in plugin returns back to login page
throwing errors will show it once #11969 is fixed
new reputation limit to post links
if post queue is enabled and user doesn't have enough reputation to post links, queue their posts
if post queue is NOT enabled and user doesn't have enough reputation to post links show error
check content on topic post, topic reply, post edit
change notification text to display more users
* user1 wrote in general
* user1 and user2 wrote in general
* user1, user2 and user3 wrote in general
* user1. user2 and 2 others wrote in general
* feat: move to npm fontawesome dependency
* feat: move shims to a separate file
* fix: thin style prefix
* feat: proper style and FA pro handling in icon selector
* docs: add fontawesome properties to openAPI
* fix: default for styles
* feat: select all styles by default
Turns out browsers lazy-load fonts.
So since the actual CSS for each style is small, there is no perf reason for defaulting to free styles for FA pro users.
This means they'll have to only change one setting.
Still, the option to select styles remains for those who want it.
* fix: remove console.log
* feat: filter:password.check hook
As requested on Discord, hopefully including all relevant user data
* fix: don't use caller uid
* feat: don't forward username separately
* first part of chat refactor
remove per user chat zsets & store all mids in chat:room:<roomId>:mids
reverse uids in getUidsInRoom
* feat: create room button
public groups wip
* feat: public rooms
create chats:room zset
chat room deletion
* join socket.io room
* get rid of some calls that load all users in room
* dont load all users when loadRoom is called
* mange room users infinitescroll
dont load all members in api call
* IS for user list
ability to change groups field for public rooms
update groups field if group is renamed
* test: test fixes
* wip
* keep 150 messages
* fix extra awaits
fix dupe code in chat toggleReadState
* unread state for public rooms
* feat: faster push unread
* test: spec
* change base to harmony
* test: lint fixes
* fix language of chat with message
* add 2 methods for perf
messaging.getTeasers and getUsers(roomIds)
instead of loading one by one
* refactor: cleaner conditional
* test fix upgrade script fix
save timestamp of room creation in room object
* set progress.total
* don't check for guests/spiders
* public room unread fix
* add public unread counts
* mark read on send
* ignore instead of throwing
* doggy.gif
* fix: restore delete
* prevent entering chat rooms with
meta.enter
* fix self message causing mark unread
* ability to sort public rooms
* dont init sortable on mobile
* move chat-loaded class to core
* test: fix spec
* add missing keys
* use ajaxify
* refactor: store some refs
* fix: when user is deleted remove from public rooms as well
* feat: change how unread count is calculated
* get rid of cleaned content
get rid of mid
* add help text
* test: fix tests, add back mid
to prevent breaking change
* ability to search members of chat rooms
* remove
* derp
* perf: switch with partial data
fix tests
* more fixes
if user leaves a group leave public rooms is he is no longer part of any of the groups that have access
fix the cache key used to get all public room ids
dont allow joining chat socket.io room if user is no longer part of group
* fix: lint
* fix: js error when trying to delete room after switching
* add isRoomPublic
Currently, only objects can be passed in, and it is automatically serialized into json and sent via jQuery .ajax().
This PR extends the module so a FormData object can be passed in, and updates the module so it uses Fetch API instead of jQuery.
At this time regular requests continue to use jQuery for backwards compatibility.
Use case: file uploads via API.
pass in postData array to getPostReplies which has the indices already
look at the passed in array of posts to find the index of nested replies before calling getPidIndex, most of the time the direct replies are close to the target so they are already in postData array.
only load indices if direct reply count is1
to override bootstrap vars.
dont crash if scss fails to compile, just use empty css and log the error, this allows accessing the acp if client scss has errors
* confirmObj changes
dont expire confirm:<code>, add a expires field instead
dont expire confirm:byUid:<uid>
on admin manage users display the users email status
1. verified
2. verify email sent (pending)
3. verify email sent (expired)
4. no email entered
fix validate email in acp to use
email in user:<uid> if they have one
if not check if its in confirm:<code>
if its not in above cant validate throw error
fix send validate email to use
email in user:<uid> if they have one
if not check if its in confirm:<code>
if its not in above too cant validate throw error
* add back socket.io tests
* test: fix confirm tests
no longer using pexpire
return correct time left on token
* chore: update openapi
* fix: delete call
* test: mget test fixes
* test: fix tests
* acp sidebar
* gap in nav
* remove shadow
* label fixes
* color fixes
* feat: settings page wip
* feat: scroll spy 👓
move social into general, store social in meta.config like other settings
write upgrade script
* remove social
* rermove openapi routes
* cleanup, highlight selected nav item
* more cleanup
* advanced margin top
* derp
* match design
* bring back version alert
fix homepage js, since it moved to general settings
* remove unused tpls
these moved to general settings
* remove more css
* offcanvas for mobile
fix search
* add timeout
* add new props
* manage categories
* small fixes
* category-edit
* feat category page fixes
* add title to settings pages
add user settings page
* small fixes
* some more settings pages
* fix: plugin page titles
* more settings pages
* more padding
* more pages, add acp paginator.tpl
so it doesn't change when active theme changes
* remove placeholder
* dashboard table
* fix: openapi
* fix: controller tests
* use fonts from core
* some small fixes
* fix rep page
* refactor: fix name of upgrade script
* create category modal
group edit
* group/groups pages
* admins mods
* privs
* uploads
* missing margin
* more acp pages
* more pages
* plugins/rewards/widgets
* wrap rewards
* fix widgets
* fix widget clone button
* fix group acp edit link
* update search dropdown
* remove display block from tbody
* use less css
* remove some derp links
* remove striped tables
* remove p tags from lang files
* update email settings
* Update api.tpl
* move tag-whitelist
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
* 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>
* 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>
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 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.
@@ -42,14 +39,15 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
NodeBB requires the following software to be installed:
* A version of Node.js at least 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)
## Installation
[Please refer to platform-specific installation documentation](https://docs.nodebb.org/installing/os)
[Please refer to platform-specific installation documentation](https://docs.nodebb.org/installing/os).
If installing via the cloud (or using Docker), [please see cloud-based installation documentation](https://docs.nodebb.org/installing/cloud/).
## Securing NodeBB
@@ -62,6 +60,7 @@ It is important to ensure that your NodeBB and database servers are secured. Bea
2. Use `iptables` to secure your server from unintended open ports. In Ubuntu, `ufw` provides a friendlier interface to working with `iptables`.
* e.g. If your NodeBB is proxied, no ports should be open except 80 (and possibly 22, for SSH access)
## Upgrading NodeBB
Detailed upgrade instructions are listed in [Upgrading NodeBB](https://docs.nodebb.org/configuring/upgrade/)
@@ -76,10 +75,10 @@ Interested in a sublicense agreement for use of NodeBB in a non-free/restrictive
This is what a topic and post looks like. As an administrator, you can edit the post\'s title and content.
To customise your forum, go to the [Administrator Control Panel](../../admin). You can modify all aspects of your forum there, including installation of third-party plugins.
## Additional Resources
#### Additional Resources
* [NodeBB Documentation](https://docs.nodebb.org)
* [Community Support Forum](https://community.nodebb.org)
"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.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",
"customise":"Customise",
"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":"تفعيل إعادة التحميل المباشرة",
"custom-css.livereload.description":"فعل هذا الخيار لإجبار جميع الجلسات في الأجهزة التي قمت بتسجيل الدخول فيها بحسابك على التحديث عند النقر على زر الحفظ"
"custom-css.livereload.description":"فعل هذا الخيار لإجبار جميع الجلسات في الأجهزة التي قمت بتسجيل الدخول فيها بحسابك على التحديث عند النقر على زر الحفظ",
"bsvariables":"_variables.scss",
"bsvariables.description":"Override bootstrap variables here. You can also use a tool like <a href=\"https://bootstrap.build/app\">bootstrap.build</a> and paste the output here.<br/>Changes require a rebuild & restart.",
"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>",
"prerelease-warning":"<p>هذه نسخة <strong>ماقبل الإصدار</strong> من NodeBB. قد تحدث أخطاء غير مقصودة. <i class=\"fa fa-exclamation-triangle\"></i></p>",
"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>",
"up-to-date":"You are <strong>up-to-date</strong> <i class=\"fa fa-check\"></i>",
"upgrade-available":"A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.",
"prerelease-upgrade-available":"This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.",
"prerelease-warning":"This is a <strong>pre-release</strong> version of NodeBB. Unintended bugs may occur. <i class=\"fa fa-exclamation-triangle\"></i>",
"fallback-emailer-not-found":"مرسل البريد الإلكتروني الاحتياطي غير موجود!",
"running-in-development":"Forum is running in development mode. The forum may be open to potential vulnerabilities; please contact your system administrator",
"latest-lookup-failed":"Failed to look up latest available version of NodeBB",
"notices":"إشعارات",
"restart-not-required":"إعادة التشغيل غير مطلوب",
@@ -42,22 +42,23 @@
"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":"Logger",
"logger-settings":"إعدادات المسجِّل",
"description":"من خلال تمكين مربعات الاختيار ، ستتلقى سجلات إلى جهازك الطرفي. إذا حددت مسارًا ، فسيتم بعد ذلك حفظ السجلات في ملف بدلاً من ذلك. يعد تسجيل HTTP مفيدًا لجمع الإحصائيات حول من ومتى وماذا يصل الأشخاص في المنتدى. بالإضافة إلى تسجيل طلبات HTTP ، يمكننا أيضًا تسجيل أحداث socket.io. يمكن أن يكون تسجيل Socket.io ، جنبًا إلى جنب مع شاشة redis-cli ، مفيدًا جدًا في تعلم العناصر الداخلية لـ NodeBB.",
"explanation":"ما عليك سوى تحديدأو/ إلغاء تحديد إعدادات التسجيل لتمكين أو تعطيل التسجيل أثناء التنقل. لا حاجة لإعادة التشغيل.",
"set-order-help":"Setting the order of the category will move this category to that order and update the order of other categories as necessary. Minimum order is 1 which puts the category at the top.",
"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.",
"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",
"edit":"Edit",
"roll":"Roll",
"delete-confirm":"Are you sure you wish to delete this token? It will not be recoverable.",
"roll-confirm":"Are you sure you wish to regenerate this token? The old token will be immediately revoked and will not be recoverable."
"disable-editing-help":"Administrators and global moderators are exempt from this restriction",
"max-length":"Maximum length of chat messages",
"max-chat-room-name-length":"Maximum length of chat room names",
"max-room-size":"Maximum number of users in chat rooms",
"delay":"Time between chat messages in milliseconds",
"notification-delay":"Notification delay for chat messages. (0 for no delay)",
"restrictions.seconds-edit-after":"Number of seconds a chat message will remain editable. (0 disabled)",
"restrictions.seconds-delete-after":"Number of seconds a chat message will remain deletable. (0 disabled)"
"delay":"Time between chat messages (ms)",
"notification-delay":"Notification delay for chat messages",
"notification-delay-help":"Additional messages sent between this time are collated, and the user is notified once per delay period. Set this to 0 to disable the delay.",
"restrictions.seconds-edit-after":"Number of seconds a chat message will remain editable.",
"restrictions.seconds-delete-after":"Number of seconds a chat message will remain deletable."
"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.",
"title.short-placeholder":"ان لم تقم بكتابة عنوان مختصر, سيتم استخدام عنوان الموقع الكلي",
"title.url":"Title Link URL",
"title.url-placeholder":"The URL of the site title",
"title.url-help":"When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
"title.url-help":"When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
"title.name":"اسم المنتدي",
"title.show-in-header":"Show Site Title in Header",
"browser-title":"عنوان المتصفح",
@@ -16,7 +18,7 @@
"description":"وصف الموقع",
"keywords":"الكلمات الدليله للموقع",
"keywords-placeholder":"Keywords describing your community, comma-separated",
"logo":"شعار الموقع",
"logo-and-icons":"Site Logo & Icons",
"logo.image":"صورة",
"logo.image-placeholder":"Path to a logo to display on forum header",
"handles.enabled-help":"This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
"topic-views.enabled":"Allow guests to increase topic view counts",
"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>",
"restrictions.post-queue-rep-threshold":"Reputation required to bypass post queue",
"restrictions.groups-exempt-from-post-queue":"Select groups that should be exempt from the post queue",
@@ -17,18 +17,13 @@
"restrictions.post-queue-help":"Enabling post queue will put the posts of new users in a queue for approval",
"restrictions-new.post-queue-help":"Enabling new user restrictions will set restrictions on posts created by new users",
"restrictions.seconds-between":"Number of seconds between posts",
"restrictions.seconds-between-new":"Seconds between posts for new users",
"restrictions.rep-threshold":"Reputation threshold before these restrictions are lifted",
"restrictions.seconds-before-new":"Seconds before a new user can make their first post",
"restrictions.seconds-edit-after":"Number of seconds a post remains editable (set to 0 to disable)",
"restrictions.seconds-delete-after":"Number of seconds a post remains deletable (set to 0 to disable)",
"restrictions.replies-no-delete":"Number of replies after users are disallowed to delete their own topics (set to 0 to disable)",
"restrictions.min-title-length":"Minimum Title Length",
"restrictions.max-title-length":"Maximum Title Length",
"restrictions.min-post-length":"Minimum Post Length",
"restrictions.max-post-length":"Maximum Post Length",
"restrictions.title-length":"Title Length",
"restrictions.post-length":"Post Length",
"restrictions.days-until-stale":"Days until topic is considered stale",
"restrictions.stale-help":"If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.",
"restrictions.stale-help":"If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic. (set to 0 to disable)",
"timestamp":"Timestamp",
"timestamp.cut-off":"Date cut-off (in days)",
"timestamp.cut-off-help":"Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).<br /><em>(Default: <code>30</code>, or one month). Set to 0 to always display dates, leave blank to always display relative times.</em>",
@@ -41,10 +36,9 @@
"teaser.last-reply":"Last – Show the latest reply, or a \"No replies\" placeholder if no replies",
"teaser.first":"First",
"showPostPreviewsOnHover":"Show a preview of posts when mouse overed",
"unread":"Unread Settings",
"unread-and-recent":"Unread & Recent Settings",
"unread.cutoff":"Unread cutoff days",
"unread.min-track-last":"Minimum posts in topic before tracking last read",
"recent":"Recent Settings",
"recent.max-topics":"Maximum topics on /recent",
"recent.categoryFilter.disable":"Disable filtering of topics in ignored categories on the /recent page",
"allow-login-with.username-email":"اسم المستخدم أو البريد الالكتروني",
"allow-login-with.username":"اسم المستخدم فقط",
"account-settings":"إعدادت الحساب",
"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":"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.",
"disable-username-changes":"عدم السماح بتغيير اسم المستخدم",
"disable-password-changes":"عدم السماح بتغيير كلمة المرور",
@@ -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.",
"registration":"تسجيل المستخدم",
@@ -57,7 +59,7 @@
"max-about-me-length":"الحد الأعلى من الأحرف في حقل \"عني\"",
"terms-of-use":"شروط استخدام المنتدى <small>(تترك فارغة لتعطيلها)</small>",
"user-search":"بحث الأعضاء",
"user-search-results-per-page":"عدد النتائج المراد عرضها",
"user-search-results-per-page":"Number of users to display in search results",
"default-user-settings":"إعدادات الأعضاء الافتراضية",
"show-email":"عرض البريد الإلكتروني",
"show-fullname":"عرض الاسم الكامل",
@@ -77,7 +79,14 @@
"follow-replied-topics":"Follow topics that you reply to",
"email.verify-your-email.subject":"Please verify your email",
"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>",
@@ -22,7 +22,9 @@
"reset.notify.subject":"تم تغيير كلمة المرور بنجاح",
"reset.notify.text1":"نحيطك علما أن كلمة مرورك قد تم تغييرها في %1",
"reset.notify.text2":"إن لم يكن لديك علم بهذا، المرجو إشعار مدبر النظام بأسرع مايمكن.",
"digest.latest_topics":"آخر المستجدات من %1",
"digest.unread-rooms":"Unread rooms",
"digest.room-name-unreadcount":"%1 (%2 unread)",
"digest.latest-topics":"آخر المستجدات من %1",
"digest.top-topics":"Top topics from %1",
"digest.popular-topics":"Popular topics from %1",
"digest.cta":"انقر هنا لمشاهدة %1",
@@ -34,7 +36,8 @@
"digest.title.day":"Your Daily Digest",
"digest.title.week":"Your Weekly Digest",
"digest.title.month":"Your Monthly Digest",
"notif.chat.subject":"هناك محادثة جديدة من %1",
"notif.chat.new-message-from-user":"New message from \"%1\"",
"notif.chat.new-message-from-user-in-room":"New message from %1 in room %2",
"notif.chat.cta":"انقر هنا لمتابعة المحادثة",
"notif.chat.unsub.info":"تم إرسال هذا الإشعار بوجودة محادثة جديدة وفقا لخيارات تسجيلك.",
"notif.post.unsub.info":"تم إشعارك بهذه المشاركة بناءً على الخيارات التي سبق وأن حددتها.",
"sendmail-not-found":"The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
"digest-not-enabled":"This user does not have digests enabled, or the system default is not configured to send digests",
"username-too-short":"اسم المستخدم قصير.",
@@ -54,6 +55,7 @@
"user-banned-reason-until":"Sorry, this account has been banned until %1 (Reason: %2)",
"user-too-new":"عذرا, يجب أن تنتظر 1% ثواني قبل قيامك بأول مشاركة",
"blacklisted-ip":"نأسف، لقد تم حظرك من استخدام وتصفح المنتدى. إذا كنت تعتقد أن هذا خطأ رجاءًا اتصل بالإدارة.",
"cant-blacklist-self-ip":"You can't blacklist your own IP",
"ban-expiry-missing":"رجاءًا ضع تاريخ نهاية الحظر.",
"no-category":"قائمة غير موجودة",
"no-topic":"موضوع غير موجود",
@@ -89,9 +91,11 @@
"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",
"too-many-posts-newbie-minutes":"As a new user, you can only post once every %1 minute(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.",
@@ -101,6 +105,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.",
@@ -134,6 +139,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":"سبق وتم حذف هذا الموضوع",
@@ -159,13 +166,14 @@
"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.",
"chat-room-name-too-long":"Chat room name too long. Names can't be longer than %1 characters.",
"already-voting-for-this-post":"لقد شاركت بالتصويت ، ألا تذكر؟",
"reputation-system-disabled":"نظام السمعة معطل",
"downvoting-disabled":"التصويتات السلبية معطلة",
"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-to-downvote":"You need %1 reputation to downvote",
"not-enough-reputation-to-post-links":"You need %1 reputation to post links",
"not-enough-reputation-to-flag":"You need %1 reputation to flag this post",
"not-enough-reputation-min-rep-website":"You need %1 reputation to add a website",
"not-enough-reputation-min-rep-aboutme":"You need %1 reputation to add an about me",
@@ -177,6 +185,7 @@
"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",
"cant-flag-privileged":"You are not allowed to flag the profiles or content of privileged users (moderators/global moderators/admins)",
"cant-locate-flag-report":"Cannot locate flag report",
"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",
@@ -194,6 +203,7 @@
"not-in-room":"المستخدم غير موجود في الغرفة.",
"cant-kick-self":"لا يمكنك طرد نفسك من المجموعة.",
"no-users-selected":"لا يوجد مستخدم محدد.",
"no-groups-selected":"No group(s) selected",
"invalid-home-page-route":"Invalid home page route",
"invalid-session":"Invalid Session",
"invalid-session-text":"It looks like your login session is no longer active. Please refresh this page.",
@@ -224,5 +234,6 @@
"api.429":"You have made too many requests, please try again later",
"api.500":"An unexpected error was encountered while attempting to service your request.",
"api.501":"The route you are trying to call is not implemented yet, please try again tomorrow",
"api.503":"The route you are trying to call is not currently available due to a server configuration"
"api.503":"The route you are trying to call is not currently available due to a server configuration",
"api.reauth-required":"The resource you are trying to access requires (re-)authentication."
"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":"الرجاء تسجيل الدخول",
"please-log-in":"الرجاء تسجيل الدخول",
"logout":"تسجيل الخروج",
"posting_restriction_info":"إضافة مشاركات جديد حكر على الأعضاء المسجلين، انقر هنا لتسجيل الدخول.",
"welcome_back":"مرحبًا بعودتك",
"you_have_successfully_logged_in":"تم سجيل الدخول بنجاح",
"save_changes":"حفظ التغييرات",
"posting-restriction-info":"إضافة مشاركات جديد حكر على الأعضاء المسجلين، انقر هنا لتسجيل الدخول.",
"welcome-back":"مرحبًا بعودتك",
"you-have-successfully-logged-in":"تم سجيل الدخول بنجاح",
"save-changes":"حفظ التغييرات",
"save":"حفظ",
"create":"Create",
"cancel":"Cancel",
"close":"أغلق",
"pagination":"الصفحات",
"pagination.out_of":"%1 من %2",
"pagination.enter_index":"Go to post index",
"pagination.out-of":"%1 من %2",
"pagination.enter-index":"Go to post index",
"header.admin":"مدير النظام",
"header.categories":"الأقسام",
"header.recent":"حديث",
@@ -37,14 +39,20 @@
"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، منصة المناقشة المستقبلية.",
"previouspage":"الصفحة السابقة",
"nextpage":"الصفحة التالية",
"alert.success":"نجاح",
"alert.error":"خطأ",
"alert.warning":"Warning",
"alert.info":"Info",
"alert.banned":"محظور",
"alert.banned.message":"You have just been banned, your access is now restricted.",
"chat.add-user-help":"Search for users here. When selected, the user will be added to the chat. The new user will not be able to see chat messages written before they were added to the conversation. Only room owners (<i class=\"fa fa-star text-warning\"></i>) may remove users from chat rooms.",
"chat.confirm-chat-with-dnd-user":"This user has set their status to DnD(Do not disturb). Do you still want to chat with them?",
"chat.room-name-optional":"Room Name (Optional)",
"chat.rename-room":"Rename Room",
"chat.rename-placeholder":"Enter your room name here",
"chat.rename-help":"The room name set here will be viewable by all participants in the room.",
"chat.leave":"Leave Chat",
"chat.leave":"Leave",
"chat.leave-room":"Leave Room",
"chat.leave-prompt":"Are you sure you wish to leave this chat?",
"chat.leave-help":"Leaving this chat will remove you from future correspondence in this chat. If you are re-added in the future, you will not see any chat history from prior to your re-joining.",
"chat.delete":"Delete",
"chat.delete-room":"Delete Room",
"chat.delete-prompt":"Are you sure you wish to delete this chat room?",
"chat.in-room":"In this room",
"chat.kick":"Kick",
"chat.show-ip":"Show IP",
"chat.copy-text":"Copy Text",
"chat.copy-link":"Copy Link",
"chat.owner":"Room Owner",
"chat.system.user-join":"%1 has joined the room",
"chat.system.user-leave":"%1 has left the room",
"chat.system.room-rename":"%2 has renamed this room: %1",
"composer.textarea.placeholder":"Enter your post content here, drag and drop images",
"composer.post-queue-alert":"Hello👋!<br/>This forum uses a post queue system, since you are a new user your post will be hidden until it is approved by our moderation team.",
"composer.schedule-for":"Schedule topic for",
"composer.schedule-date":"Date",
"composer.schedule-time":"Time",
"composer.cancel-scheduling":"Cancel Scheduling",
"composer.change-schedule-date":"Change Date",
"composer.set-schedule-date":"Set Date",
"composer.discard-all-drafts":"Discard all drafts",
"composer.no-drafts":"You have no drafts",
"composer.discard-draft-confirm":"Do you want to discard this draft?",
"bootbox.ok":"OK",
"bootbox.cancel":"إلغاء",
"bootbox.confirm":"تأكيد",
"bootbox.submit":"Submit",
"bootbox.send":"Send",
"cover.dragging_title":"Cover Photo Positioning",
"cover.dragging_message":"Drag the cover photo to the desired position and click \"Save\"",
"cover.dragging-title":"Cover Photo Positioning",
"cover.dragging-message":"Drag the cover photo to the desired position and click \"Save\"",
"cover.saved":"Cover photo image and position saved",
"user_edited_post":"<strong>%1</strong> has edited a post in <strong>%2</strong>",
"user_started_following_you":"<strong>%1</strong> صار يتابعك.",
"user_started_following_you_dual":"<strong>%1</strong> and <strong>%2</strong> started following you.",
"user_started_following_you_multiple":"<strong>%1</strong> and %2 others started following you.",
"new_register":"<strong>%1</strong> sent a registration request.",
"new_register_multiple":"There are <strong>%1</strong> registration requests awaiting review.",
"flag_assigned_to_you":"تم تخصيص العلامة 1% لك",
"post_awaiting_review":"Post awaiting review",
"new-message-from":"رسالة جديدة من <strong>%1</strong>",
"new-messages-from":"%1 new messages from <strong>%2</strong>",
"new-message-in":"New message in <strong>%1</strong>",
"new-messages-in":"%1 new messages in <strong>%2</strong>",
"user-posted-in-public-room":"<strong>%1</strong> wrote in <strong class=\"text-nowrap\"><i class=\"fa %2\"></i>%3</strong>",
"user-posted-in-public-room-dual":"<strong>%1</strong> and <strong>%2</strong> wrote in <strong class=\"text-nowrap\"><i class=\"fa %3\"></i>%4</strong>",
"user-posted-in-public-room-triple":"<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> wrote in <strong class=\"text-nowrap\"><i class=\"fa %4\"></i>%5</strong>",
"user-posted-in-public-room-multiple":"<strong>%1</strong>, <strong>%2</strong> and %3 others wrote in <strong class=\"text-nowrap\"><i class=\"fa %4\"></i>%5</strong>",
"upvoted-your-post-in":"<strong>%1</strong> أضاف صوتًا إيجابيا إلى مشاركتك في <strong>%2</strong>.",
"upvoted-your-post-in-dual":"<strong>%1</strong> and <strong>%2</strong> have upvoted your post in <strong>%3</strong>.",
"upvoted-your-post-in-triple":"<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> have upvoted your post in <strong>%4</strong>.",
"upvoted-your-post-in-multiple":"<strong>%1</strong>, <strong>%2</strong> and %3 others have upvoted your post in <strong>%4</strong>.",
"moved-your-post":"<strong>%1</strong> has moved your post to <strong>%2</strong>",
"moved-your-topic":"<strong>%1</strong> has moved <strong>%2</strong>",
"user-flagged-post-in":"<strong>%1</strong> أشعَرَ بمشاركة مخلة في <strong>%2</strong>",
"user-flagged-post-in-dual":"<strong>%1</strong> and <strong>%2</strong> flagged a post in <strong>%3</strong>",
"user-flagged-post-in-triple":"<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> flagged a post in <strong>%4</strong>",
"user-flagged-post-in-multiple":"<strong>%1</strong>, <strong>%2</strong> and %3 others flagged a post in <strong>%4</strong>",
"user-flagged-user":"<strong>%1</strong> flagged a user profile (%2)",
"user-flagged-user-dual":"<strong>%1</strong> and <strong>%2</strong> flagged a user profile (%3)",
"user-flagged-user-triple":"<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> flagged a user profile (%4)",
"user-flagged-user-multiple":"<strong>%1</strong>, <strong>%2</strong> and %3 others flagged a user profile (%4)",
"user-edited-post":"<strong>%1</strong> has edited a post in <strong>%2</strong>",
"user-posted-topic-with-tag":"<strong>%1</strong> has posted a new topic with tag <strong>%2</strong>",
"user-posted-topic-with-tag-dual":"<strong>%1</strong> has posted a new topic with tags <strong>%2</strong> and <strong>%3</strong>",
"user-posted-topic-with-tag-triple":"<strong>%1</strong> has posted a new topic with tags <strong>%2</strong>, <strong>%3</strong> and <strong>%4</strong>",
"user-posted-topic-with-tag-multiple":"<strong>%1</strong> has posted a new topic with tags <strong>%2</strong>",
"user-posted-topic-in-category":"<strong>%1</strong> has posted a new topic in <strong>%2</strong>",
"user-started-following-you":"<strong>%1</strong> صار يتابعك.",
"user-started-following-you-dual":"<strong>%1</strong> and <strong>%2</strong> started following you.",
"user-started-following-you-triple":"<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> started following you.",
"user-started-following-you-multiple":"<strong>%1</strong>, <strong>%2</strong> and %3 others started following you.",
"new-register":"<strong>%1</strong> sent a registration request.",
"new-register-multiple":"There are <strong>%1</strong> registration requests awaiting review.",
"flag-assigned-to-you":"تم تخصيص العلامة 1% لك",
"post-awaiting-review":"Post awaiting review",
"profile-exported":"<strong>%1</strong> profile exported, click to download",
"posts-exported":"<strong>%1</strong> posts exported, click to download",
"uploads-exported":"<strong>%1</strong> uploads exported, click to download",
@@ -56,21 +77,25 @@
"email-confirm-error-message":"حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
"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":"The post queue is currently <strong>disabled</strong>. 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",
"public-intro":"If you have any queued posts, they will be shown here.",
"public-description":"This forum is configured to automatically queue posts from new accounts, pending moderator approval.<br />If you have queued posts awaiting approval, you will be able to see them here.",
"user":"User",
"when":"When",
"category":"Category",
"title":"Title",
"content":"Content",
@@ -19,6 +25,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 +33,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?",
"password_changed.message":"<p>تم تغير كلمة المرور بنجاح، الرجاء <a href='/login'>إعادة الدخول</a></p>",
"wrong_reset_code.title":"رمز إعادة التعيين غير صحيح",
"wrong_reset_code.message":"رمز إعادة التعين غير صحيح، يرجى المحاولة مرة أخرى أو <a href='/reset'>اطلب رمزا جديدا</a>",
"new_password":"كلمة المرور الجديدة",
"repeat_password":"تأكيد كلمة المرور",
"changing_password":"Changing Password",
"enter_email":"يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
"enter_email_address":"ادخل عنوان البريد الإلكتروني",
"password_reset_sent":"If the specified address corresponds to an existing user account, a password reset email was sent. Please note that only one email will be sent per minute.",
"invalid_email":"بريد إلكتروني غير صالح أو غير موجود",
"password_too_short":"كلمة المرور التي أدخلتها قصيرة، الرجاء اختر كلمة مرور مختلفة",
"passwords_do_not_match":"كلمتا السر التي أدخلتهما غير متطابقتان",
"password_expired":"لقد انتهت صلاحية كلمة المرور الخاصة بك، الرجاء اختيار كلمة مرور جديدة"
"reset-password":"إعادة تعيين كلمة المرور",
"update-password":"تحديث كلمة المرور",
"password-changed.title":"تم تغير كلمة المرور",
"password-changed.message":"<p>تم تغير كلمة المرور بنجاح، الرجاء <a href='/login'>إعادة الدخول</a></p>",
"wrong-reset-code.title":"رمز إعادة التعيين غير صحيح",
"wrong-reset-code.message":"رمز إعادة التعين غير صحيح، يرجى المحاولة مرة أخرى أو <a href='/reset'>اطلب رمزا جديدا</a>",
"new-password":"كلمة المرور الجديدة",
"repeat-password":"تأكيد كلمة المرور",
"changing-password":"Changing Password",
"enter-email":"يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
"enter-email-address":"ادخل عنوان البريد الإلكتروني",
"password-reset-sent":"If the specified address corresponds to an existing user account, a password reset email was sent. Please note that only one email will be sent per minute.",
"invalid-email":"بريد إلكتروني غير صالح أو غير موجود",
"password-too-short":"كلمة المرور التي أدخلتها قصيرة، الرجاء اختر كلمة مرور مختلفة",
"passwords-do-not-match":"كلمتا السر التي أدخلتهما غير متطابقتان",
"password-expired":"لقد انتهت صلاحية كلمة المرور الخاصة بك، الرجاء اختيار كلمة مرور جديدة"
"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)",
"replied-to-user-on":"replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <a href=\"%4\" class=\"timeago text-muted\" title=\"%5\"></a>",
"user-locked-topic-ago":"%1 locked this topic %2",
"user-locked-topic-on":"%1 locked this topic on %2",
"user-unlocked-topic-ago":"%1 unlocked this topic %2",
"user-unlocked-topic-on":"%1 unlocked this topic on %2",
"user-pinned-topic-ago":"%1 pinned this topic %2",
"user-pinned-topic-on":"%1 pinned this topic on %2",
"user-unpinned-topic-ago":"%1 unpinned this topic %2",
"user-unpinned-topic-on":"%1 unpinned this topic on %2",
"user-deleted-topic-ago":"%1 deleted this topic %2",
"user-deleted-topic-on":"%1 deleted this topic on %2",
"user-restored-topic-ago":"%1 restored this topic %2",
"user-restored-topic-on":"%1 restored this topic on %2",
"user-moved-topic-from-ago":"%1 moved this topic from %2 %3",
"user-moved-topic-from-on":"%1 moved this topic from %2 on %3",
"user-queued-post-ago":"%1 <a href=\"%2\">queued</a> post for approval %3",
"user-queued-post-on":"%1 <a href=\"%2\">queued</a> post for approval on %3",
"user-referenced-topic-ago":"%1 <a href=\"%2\">referenced</a> this topic %3",
"user-referenced-topic-on":"%1 <a href=\"%2\">referenced</a> this topic on %3",
"user-forked-topic-ago":"%1 <a href=\"%2\">forked</a> this topic %3",
"user-forked-topic-on":"%1 <a href=\"%2\">forked</a> this topic on %3",
"bookmark-instructions":"اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
"flag-post":"Flag this post",
"flag-user":"Flag this user",
"already-flagged":"Already Flagged",
"view-flag-report":"View Flag Report",
"resolve-flag":"Resolve Flag",
"merged_message":"This topic has been merged into <a href=\"%1\">%2</a>",
"deleted_message":"هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
"following_topic.message":"ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
"not_following_topic.message":"You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.",
"ignoring_topic.message":"You will no longer see this topic in the unread topics list. You will be notified when you are mentioned or your post is up voted.",
"login_to_subscribe":"المرجو إنشاء حساب أو تسجيل الدخول حتى يمكنك متابعة هذا الموضوع.",
"merged-message":"This topic has been merged into <a href=\"%1\">%2</a>",
"forked-message":"This topic was forked from <a href=\"%1\">%2</a>",
"deleted-message":"هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
"following-topic.message":"ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
"not-following-topic.message":"You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.",
"ignoring-topic.message":"You will no longer see this topic in the unread topics list. You will be notified when you are mentioned or your post is up voted.",
"login-to-subscribe":"المرجو إنشاء حساب أو تسجيل الدخول حتى يمكنك متابعة هذا الموضوع.",
"markAsUnreadForAll.success":"تم تحديد الموضوع على أنه غير مقروء.",
"mark_unread":"حدده كغير مقروء",
"mark_unread.success":"الموضوع حدد على أنه غير مقروء",
"mark-unread":"حدده كغير مقروء",
"mark-unread.success":"الموضوع حدد على أنه غير مقروء",
"watch":"مراقبة",
"unwatch":"الغاء المراقبة",
"watch.title":"استلم تنبيها بالردود الجديدة في هذا الموضوع",
"unwatch.title":"ألغ مراقبة هذا الموضوع",
"share_this_post":"انشر هذا الموضوع",
"share-this-post":"انشر هذا الموضوع",
"watching":"مراقبة",
"not-watching":"غير مراقب",
"ignoring":"تجاهل",
"watching.description":"بلغني بالردود الجديدة<br/>\nاظهر الموضوع في غير مقروء",
"not-watching.description":"Do not notify me of new replies.<br/>Show topic in unread if category is not ignored.",
"ignoring.description":"Do not notify me of new replies.<br/>Do not show topic in unread.",
"thread_tools.title":"أدوات الموضوع",
"thread_tools.markAsUnreadForAll":"Mark Unread For All",
"thread_tools.pin":"علق الموضوع",
"thread_tools.unpin":"إلغاء تعليق الموضوع",
"thread_tools.lock":"أقفل الموضوع",
"thread_tools.unlock":"إلغاء إقفال الموضوع",
"thread_tools.move":"نقل الموضوع",
"thread_tools.move-posts":"Move Posts",
"thread_tools.move_all":"نقل الكل",
"thread_tools.change_owner":"Change Owner",
"thread_tools.select_category":"Select Category",
"thread_tools.fork":"إنشاء فرع الموضوع",
"thread_tools.delete":"حذف الموضوع",
"thread_tools.delete-posts":"مشاركات محذوفة",
"thread_tools.delete_confirm":"هل أنت متأكد أنك تريد حذف هذا الموضوع؟",
"thread_tools.restore":"استعادة الموضوع",
"thread_tools.restore_confirm":"هل أنت متأكد أنك تريد استعادة هذا الموضوع؟",
"thread_tools.purge":"تطهير الموضوع",
"thread_tools.purge_confirm":"هل أنت متأكد أنك تريد تطهير هذا الموضوع؟",
"thread_tools.merge_topics":"Merge Topics",
"thread_tools.merge":"Merge",
"topic_move_success":"This topic will be moved to \"%1\" shortly. Click here to undo.",
"topic_move_multiple_success":"These topics will be moved to \"%1\" shortly. Click here to undo.",
"topic_move_all_success":"All topics will be moved to \"%1\" shortly. Click here to undo.",
"topic_move_undone":"Topic move undone",
"topic_move_posts_success":"Posts will be moved shortly. Click here to undo.",
"topic_move_posts_undone":"Post move undone",
"post_delete_confirm":"هل أنت متأكد أنك تريد حذف هذه المشاركة؟",
"post_restore_confirm":"هل أنت متأكد أنك تريد استعادة هذه المشاركة؟",
"post_purge_confirm":"هل أنت متأكد أنك تريد تطهير هذه المشاركة؟",
"thread-tools.title":"أدوات الموضوع",
"thread-tools.markAsUnreadForAll":"Mark Unread For All",
"thread-tools.pin":"علق الموضوع",
"thread-tools.unpin":"إلغاء تعليق الموضوع",
"thread-tools.lock":"أقفل الموضوع",
"thread-tools.unlock":"إلغاء إقفال الموضوع",
"thread-tools.move":"نقل الموضوع",
"thread-tools.move-posts":"Move Posts",
"thread-tools.move-all":"نقل الكل",
"thread-tools.change-owner":"Change Owner",
"thread-tools.select-category":"Select Category",
"thread-tools.fork":"إنشاء فرع الموضوع",
"thread-tools.tag":"Tag Topic",
"thread-tools.delete":"حذف الموضوع",
"thread-tools.delete-posts":"مشاركات محذوفة",
"thread-tools.delete-confirm":"هل أنت متأكد أنك تريد حذف هذا الموضوع؟",
"thread-tools.restore":"استعادة الموضوع",
"thread-tools.restore-confirm":"هل أنت متأكد أنك تريد استعادة هذا الموضوع؟",
"thread-tools.purge":"تطهير الموضوع",
"thread-tools.purge-confirm":"هل أنت متأكد أنك تريد تطهير هذا الموضوع؟",
"thread-tools.merge-topics":"Merge Topics",
"thread-tools.merge":"Merge Topic",
"topic-move-success":"This topic will be moved to \"%1\" shortly. Click here to undo.",
"topic-move-multiple-success":"These topics will be moved to \"%1\" shortly. Click here to undo.",
"topic-move-all-success":"All topics will be moved to \"%1\" shortly. Click here to undo.",
"topic-move-undone":"Topic move undone",
"topic-move-posts-success":"Posts will be moved shortly. Click here to undo.",
"topic-move-posts-undone":"Post move undone",
"post-delete-confirm":"هل أنت متأكد أنك تريد حذف هذه المشاركة؟",
"post-restore-confirm":"هل أنت متأكد أنك تريد استعادة هذه المشاركة؟",
"post-purge-confirm":"هل أنت متأكد أنك تريد تطهير هذه المشاركة؟",
"pin-modal-expiry":"Expiration Date",
"pin-modal-help":"You can optionally set an expiration date for the pinned topic(s) here. Alternatively, you can leave this field blank to have the topic stay pinned until it is manually unpinned.",
"load_categories":"تحميل الفئات",
"confirm_move":"انقل",
"confirm_fork":"فرع",
"load-categories":"تحميل الفئات",
"confirm-move":"انقل",
"confirm-fork":"فرع",
"bookmark":"Bookmark",
"bookmarks":"Bookmarks",
"bookmarks.has_no_bookmarks":"You haven't bookmarked any posts yet.",
"bookmarks.has-no-bookmarks":"You haven't bookmarked any posts yet.",
"copy-permalink":"Copy Permalink",
"loading_more_posts":"تحميل المزيد من المشاركات",
"move_topic":"نقل الموضوع",
"move_topics":"نقل المواضيع",
"move_post":"نقل المشاركة",
"post_moved":"تم نقل المشاركة",
"fork_topic":"فرع الموضوع",
"loading-more-posts":"تحميل المزيد من المشاركات",
"move-topic":"نقل الموضوع",
"move-topics":"نقل المواضيع",
"move-post":"نقل المشاركة",
"post-moved":"تم نقل المشاركة",
"fork-topic":"فرع الموضوع",
"enter-new-topic-title":"Enter new topic title",
"fork_topic_instruction":"إضغط على المشاركات التي تريد تفريعها",
"fork_no_pids":"لم تختر أي مشاركة",
"fork-topic-instruction":"Click the posts you want to fork, enter a title for the new topic and click fork topic",
"fork-no-pids":"لم تختر أي مشاركة",
"no-posts-selected":"No posts selected!",
"x-posts-selected":"%1 post(s) selected",
"x-posts-will-be-moved-to-y":"%1 post(s) will be moved to \"%2\"",
"fork_pid_count":"1% مشاركة محددة",
"fork_success":"تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
"delete_posts_instruction":"Click the posts you want to delete/purge",
"merge_topics_instruction":"Click the topics you want to merge or search for them",
"fork-pid-count":"1% مشاركة محددة",
"fork-success":"تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
"delete-posts-instruction":"Click the posts you want to delete/purge",
"merge-topics-instruction":"Click the topics you want to merge or search for them",
"merge-topic-list-title":"List of topics to be merged",
"merge-options":"Merge options",
"merge-select-main-topic":"Select the main topic",
"merge-new-title-for-topic":"New title for topic",
"topic-id":"Topic ID",
"move_posts_instruction":"Click the posts you want to move then enter a topic ID or go to the target topic",
"change_owner_instruction":"Click the posts you want to assign to another user",
"composer.title_placeholder":"أدخل عنوان موضوعك هنا...",
"composer.handle_placeholder":"Enter your name/handle here",
"move-posts-instruction":"Click the posts you want to move then enter a topic ID or go to the target topic",
"move-topic-instruction":"Select the target category and then click move",
"change-owner-instruction":"Click the posts you want to assign to another user",
"composer.title-placeholder":"أدخل عنوان موضوعك هنا...",
"composer.handle-placeholder":"Enter your name/handle here",
"delete_all":"Delete <strong>Account</strong> and <strong>Content</strong>",
"delete_account_confirm":"Are you sure you want to anonymize your posts and delete your account?<br /><strong>This action is irreversible and you will not be able to recover any of your data</strong><br /><br />Enter your password to confirm that you wish to destroy this account.",
"delete_this_account_confirm":"Are you sure you want to delete this account while leaving its contents behind?<br /><strong>This action is irreversible, posts will be anonymized, and you will not be able to restore post associations with the deleted account</strong><br /><br />",
"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 />",
"delete-all":"Delete <strong>Account</strong> and <strong>Content</strong>",
"delete-account-confirm":"Are you sure you want to anonymize your posts and delete your account?<br /><strong>This action is irreversible and you will not be able to recover any of your data</strong><br /><br />Enter your password to confirm that you wish to destroy this account.",
"delete-this-account-confirm":"Are you sure you want to delete this account while leaving its contents behind?<br /><strong>This action is irreversible, posts will be anonymized, and you will not be able to restore post associations with the deleted account</strong><br /><br />",
"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 />",
"open_links_in_new_tab":"فتح الروابط الخارجية في نافدة جديدة",
"enable_topic_searching":"تفعيل خاصية البحث داخل المواضيع",
"topic_search_help":"إذا قمت بتفعيل ميزة البحث في-الموضوع، سيتم تجاوز الخيار الافتراضي للمتصفح مما يؤدي للبحث بكامل الموضوع بدلا عن البحث في الجزء الظاهر في الشاشة.",
"update_url_with_post_index":"Update url with post index while browsing topics",
"scroll_to_my_post":"بعد اضافة رد على المشاركة, قم بإظهار المشاركة",
"follow_topics_you_reply_to":"متابعة المواضيع التي تقوم بالرد عليها",
"follow_topics_you_create":"متابعة المواضيع التي تقوم بإنشائها",
"open-links-in-new-tab":"فتح الروابط الخارجية في نافدة جديدة",
"enable-topic-searching":"تفعيل خاصية البحث داخل المواضيع",
"topic-search-help":"إذا قمت بتفعيل ميزة البحث في-الموضوع، سيتم تجاوز الخيار الافتراضي للمتصفح مما يؤدي للبحث بكامل الموضوع بدلا عن البحث في الجزء الظاهر في الشاشة.",
"update-url-with-post-index":"Update url with post index while browsing topics",
"scroll-to-my-post":"بعد اضافة رد على المشاركة, قم بإظهار المشاركة",
"follow-topics-you-reply-to":"متابعة المواضيع التي تقوم بالرد عليها",
"follow-topics-you-create":"متابعة المواضيع التي تقوم بإنشائها",
"grouptitle":"عنوان المجموعة",
"group-order-help":"Select a group and use the arrows to order titles",
"no-group-title":"لا يوجد عنوان للمجموعة",
"select-skin":"إختر سمة",
"default":"Default (%1)",
"no-skin":"No Skin",
"select-homepage":"إختر الصفحة الرئيسية",
"homepage":"الصفحة الرئيسية",
"homepage_description":"حدد صفحة لاستخدامها كصفحة رئيسية للمنتدى أو \"لا شيء\" لاستخدام الصفحة الرئيسية الافتراضية.",
"custom_route":"مسار الصفحة الرئيسية المخصصة",
"custom_route_help":"Enter a route name here, without any preceding slash (e.g. \"recent\" or \"category/2/general-discussion\")",
"homepage-description":"حدد صفحة لاستخدامها كصفحة رئيسية للمنتدى أو \"لا شيء\" لاستخدام الصفحة الرئيسية الافتراضية.",
"custom-route":"مسار الصفحة الرئيسية المخصصة",
"custom-route-help":"Enter a route name here, without any preceding slash (e.g. \"recent\" or \"category/2/general-discussion\")",
"sso.title":"خدمات تسجيل الدخول الموحد",
"sso.associated":"مرتبط مع",
"sso.not-associated":"انقر هنا لربط مع",
@@ -168,32 +176,35 @@
"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.",
"consent.email_intro":"Occasionally, we may send emails to your registered email address in order to provide updates and/or to notify you of new activity that is pertinent to you. You can customise the frequency of the community digest (including disabling it outright), as well as select which types of notifications to receive via email, via your user settings page.",
"consent.digest_frequency":"Unless explicitly changed in your user settings, this community delivers email digests every %1.",
"consent.digest_off":"Unless explicitly changed in your user settings, this community does not send out email digests",
"consent.email-intro":"Occasionally, we may send emails to your registered email address in order to provide updates and/or to notify you of new activity that is pertinent to you. You can customise the frequency of the community digest (including disabling it outright), as well as select which types of notifications to receive via email, via your user settings page.",
"consent.digest-frequency":"Unless explicitly changed in your user settings, this community delivers email digests every %1.",
"consent.digest-off":"Unless explicitly changed in your user settings, this community does not send out email digests",
"consent.received":"You have provided consent for this website to collect and process your information. No additional action is required.",
"consent.not_received":"You have not provided consent for data collection and processing. At any time this website's administration may elect to delete your account in order to become compliant with the General Data Protection Regulation.",
"consent.not-received":"You have not provided consent for data collection and processing. At any time this website's administration may elect to delete your account in order to become compliant with the General Data Protection Regulation.",
"consent.give":"Give consent",
"consent.right_of_access":"You have the Right of Access",
"consent.right_of_access_description":"You have the right to access any data collected by this website upon request. You can retrieve a copy of this data by clicking the appropriate button below.",
"consent.right_to_rectification":"You have the Right to Rectification",
"consent.right_to_rectification_description":"You have the right to change or update any inaccurate data provided to us. Your profile can be updated by editing your profile, and post content can always be edited. If this is not the case, please contact this site's administrative team.",
"consent.right_to_erasure":"You have the Right to Erasure",
"consent.right_to_erasure_description":"At any time, you are able to revoke your consent to data collection and/or processing by deleting your account. Your individual profile can be deleted, although your posted content will remain. If you wish to delete both your account <strong>and</strong> your content, please contact the administrative team for this website.",
"consent.right_to_data_portability":"You have the Right to Data Portability",
"consent.right_to_data_portability_description":"You may request from us a machine-readable export of any collected data about you and your account. You can do so by clicking the appropriate button below.",
"consent.right-of-access":"You have the Right of Access",
"consent.right-of-access-description":"You have the right to access any data collected by this website upon request. You can retrieve a copy of this data by clicking the appropriate button below.",
"consent.right-to-rectification":"You have the Right to Rectification",
"consent.right-to-rectification-description":"You have the right to change or update any inaccurate data provided to us. Your profile can be updated by editing your profile, and post content can always be edited. If this is not the case, please contact this site's administrative team.",
"consent.right-to-erasure":"You have the Right to Erasure",
"consent.right-to-erasure-description":"At any time, you are able to revoke your consent to data collection and/or processing by deleting your account. Your individual profile can be deleted, although your posted content will remain. If you wish to delete both your account <strong>and</strong> your content, please contact the administrative team for this website.",
"consent.right-to-data-portability":"You have the Right to Data Portability",
"consent.right-to-data-portability-description":"You may request from us a machine-readable export of any collected data about you and your account. You can do so by clicking the appropriate button below.",
"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.",
"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."
"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."
"custom-css.description":"Въведете своите собствени декларации на CSS/LESS, те ще бъдат приложени след всички останали стилове.",
"custom-css.enable":"Включване на персонализиран CSS/LESS",
"customise":"Персонализиране",
"custom-css":"Персонализиран CSS/SASS",
"custom-css.description":"Въведете своите собствени декларации на CSS/SASS. Те ще бъдат приложени след всички останали стилове.",
"custom-css.enable":"Включване на персонализиран CSS/SASS",
"custom-js":"Персонализиран код на Javascript",
"custom-js.description":"Въведете свой собствен код на javascript тук. Той ще бъде изпълнен след като страницата се зареди напълно.",
@@ -12,5 +13,8 @@
"custom-header.enable":"Включване на персонализирана заглавна част",
"custom-css.livereload":"Включване на моменталното презареждане",
"custom-css.livereload.description":"Ако включите това, всички сесии на всяко устройство, където използвате акаунта си, ще се презареждат, когато натискате „Запазване“."
"custom-css.livereload.description":"Ако включите това, всички сесии на всяко устройство, където използвате акаунта си, ще се презареждат, когато натискате „Запазване“.",
"bsvariables":"_variables.scss",
"bsvariables.description":"Тук може да промените променливите на bootstrap. Можете също да използвате и инструмент като <a href=\"https://bootstrap.build/app\">bootstrap.build</a> и да копирате резултата от него тук.<br/>Промените изискват повторно изграждане и рестартиране.",
"bsvariables.enable":"Включване на _variables.scss"
"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>",
"upgrade-available":"Има нова версия (%1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.",
"prerelease-upgrade-available":"Това е остаряла предварителна версия на NodeBB. Има нова версия (%1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.",
"prerelease-warning":"Това е <strong>предварителна версия</strong> на NodeBB. Възможно е да има неочаквани неизправности. <i class=\"fa fa-exclamation-triangle\"></i>",
"fallback-emailer-not-found":"Нее намерен резервен изпращач на е-поща",
"running-in-development":"<span>Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.</span>",
"latest-lookup-failed":"<p>Не може да бъде извършена проверка за последната налична версия на NodeBB</p>",
"running-in-development":"Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.",
"latest-lookup-failed":"Не може да бъде извършена проверка за последната налична версия на NodeBB",
"restart-disabled":"Възможностите за повторно изграждане и рестартиране на NodeBB са изключени, тъй като изглежда, че NodeBB не се изпълнява чрез подходящия демон.",
"maintenance-mode":"Режим на профилактика",
"maintenance-mode-title":"Щракнете тук, за да зададете режим на профилактика на NodeBB",
"dark-mode":"Тъмен режим",
"realtime-chart-updates":"Актуализации на таблиците в реално време",
"active-users":"Дейни потребители",
@@ -83,8 +84,15 @@
"back-to-dashboard":"Назад към таблото",
"details.no-users":"В избрания период не сасе регистрирали нови потребители",
"details.no-topics":"В избрания период не са публикувани нови теми",
"details.no-searches":"Все още не са правени търсения",
"details.no-searches":"В избрания период не са правени търсения",
"details.no-logins":"В избрания период не са отчетени вписвания",
"details.logins-static":"NodeBB запазва данни за сесията в продължение на %1 дни, така че в следната таблица могат да се видят само последните активни сесии",
"details.logins-login-time":"Време на вписване"
"details.logins-login-time":"Време на вписване",
"start":"Начало",
"end":"Край",
"filter":"Филтриране",
"view-as-json":"Преглед като JSON",
"expand-analytics":"Разгъване на данните за анализ",
"clear-search-history":"Изчистване на историята на търсенията",
"clear-search-history-confirm":"Наистина ли искате да изчистите историята на търсенията?"
"description":"Ако поставите отметки тук, Вие ще виждате журнала в терминала си. Ако посочите пътечка, то вместо това журналите ще бъдат записвани във файл. Журналът чрез HTTP е удобен за получаване на статистика за това кога, кои и какви хора посещават форума Ви. В допълнение към следенето на заявките чрез HTTP, можем също да следим и събитията на socket.io. Журналът на Socket.io, в комбинация с redis-cli, може да Ви бъде много полезно, ако искате да разучите как работи NodeBB.",
"explanation":"За да включите или изключите журналите в реално време, просто поставете или премахнете отметките в настройките на журнала. Няма нужда от рестартиране.",
"set-order-help":"Задаването на позиция за категорията ще я премести на желаното място и ще промени местата на другите категории, ако е необходимо. Най-малкият възможен номер е 1, което ще постави категорията най-отгоре.",
"select-clear-all":"Избиране/изчистване на всичко",
"chat":"Разговор",
"chat-with-privileged":"Разговор с някого с по-високи правомощия",
"upload-images":"Качване на изображения",
"upload-files":"Качване на файлове",
"signature":"Подпис",
@@ -31,7 +34,7 @@
"edit-posts":"Редактиране на публикации",
"view-edit-history":"Преглед на историята на редакциите",
"delete-posts":"Изтриване на публикации",
"view_deleted":"Преглед на изтритите публикации",
"view-deleted":"Преглед на изтритите публикации",
"upvote-posts":"Положително гласуване за публикации",
"downvote-posts":"Отрицателно гласуване за публикации",
"delete-topics":"Изтриване на теми",
@@ -49,7 +52,6 @@
"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>?",
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.