* also reordered the menu in ACP so plugins come first
* added muted headers in desktop version to distinguish both lists
* fixes julianlam/nodebb-plugin-sso-google#21
* closes#8066
* refactor postgres upgrade function to use async
* add function wrapper for getting the elements of a sorted set to avoid postgres planning the query with a nested sequential scan
* fix fatal(?!) lint errors
* add missing await
* bump PostgreSQL version on Travis CI to one that isn't over 3 years out of date
* feat: wip, better digest handling (+ eventual digest resend logic)
- await emailer.send call in digest.send method
- save send success to a new sorted set digest:{interval}:byUid
* feat: continuing work on digest tools
- Added ACP page to view digest settings and delivery times per user
* feat: added paginator and stub buttons for resending digest
* feat: wrapping up digest revamp
- New language strings in ACP digest page
- Client-side ACP script for digest ACP page
- Websocket call for ACP page to execute digests
- Broke out logic to retrieve user digest settings to getUsersInterval
* fix: minor cleanup
* fix: #8010 and some style suggestions from baris
* fix: resolve confusing comment
* Add filter:topic.delete
* Don't return undefined data
* add topic.restore and pass canRestore to filter
* fix some bugs created by conflict resolution and new changes
* more readable hook
* fix styling for TravisCI
* literally just two newlines so that TravisCI builds again
* adding filter:login.check and loginFormEntry[] for the filter:login.build hook, related to nodebb-plugin-spam-be-gone/issues/32
* do not exceed 50 lines per function
* spam-be-gone@0.6.4
* feat: add failing test for pagination
* feat: test
* fix: redis tests
* refactor: remove logs
* fix: add new test
* feat: make sortedSetRangeByScore work with keys on redis
* fix: hardcoded set name
* feat: show topics from readable categories on recent/popular/top
* feat: rewrite unread topics
respect watched categories and followed topics
* fix: term + watched
* Add view users info global privilege
* Show user ip only to global mods and admins
* fix missing comma
* Hide link for users without correct privilege
* move getting privilege information to getAllData
* Hide the link from Global Moderators as well
* Give Global Moderator view:users:info privilege
* Restrict ip in post menu to view:users:info
* add some trailing commas....
* Add privilege to categories test
* Add group privilege to categories test
* add upgrade script
* fix style for TravisCI
* more styling - change spaces to tabs
* some more styling fixes (hopefully final one)
* fix style for Travis CI
* hide ip in chat messages
* Don't show even hidden ips on user profile page
* add filter:manifest.build
Added a hook that lets plugins modify manifest.json, as suggested in https://community.nodebb.org/post/59670
* Added error handling
Thanks barisusakli
* Define next
* Pass data as an object
* Remove multiple spaces
* feat: test psql without defineProperty
* feat: refactor psql
remove .bind calls, use module.pool.query directly
move requires to top of file
move promisify to bottom so .init etc are promisified
* feat: mongodb
move requires to bottom
* feat: redis
A use-case was presented that called for a theme to disable the
registration interstitials. However, the plugin hooks were always
fired first, and so the core interstitials could not be removed
at that time because they hadn't been added yet.
This change moved the interstitial adding to the earliest point
possible, right after plugins.loadedHooks is emptied in preparation
for plugin initialisation.
* fix: removed duplicate checkContent call in addMessage
addMessage is called in one place (sendMessage), and the checks
are already contained there. addMessage is the lower level call
and so should be called only from within core itself.
* feat: #7330 chat system messages for join, leave, rename
* fix: add back content checking in .addMessage();
* fix: tests, and added .addSystemMessage() method
Tests were relying on message indices that changed due to the
new system messages.
* feat: add tests for system chat messages
* refactor: rewrite half of src/messaging/rooms.js, fix tests
* feat: #7743 messaging/room.js
* fix: tests for messaging/room.js, #7743
* fix: trying to fix tests
* fix: omg :rage2:
This is an old check back when the sorted set that messages were
appended to depended on what users were in the chat room. Once
messages were refactored (in 2017) to use roomIds, this is no
longer a limitation of the platform and users should be free to
talk to themselves all they want.
* feat: added new admin option newbiePostEditDuration
Also:
- Grammar-checked a couple language strings
- Moved a couple form inputs around in new user restrictions
- Added a test for the new option
- fix: 'defore' typo
* feat: added API route for retrieving analytics via REST API
* feat: sets is now optional, can pass in multiple sets
* fix: moved expand and added json button to panel header
* fix: matching api params to socket method
* fix: update json api button url on graph change
* fix: updated default counts based on passed in units
In not-so-rare circumstances, the avatar generated is wrapped in
an anchor so that when clicked, it goes to the user profile.
Unfortunately, html 4 spec doesn't like block level elements
inside anchors (since an anchor is an inline element), and even
though we define html5 doctype, browsers still reorder the div
and anchor, beats me as to why.
So I can trick the browser by using a span. The css already styles
it as inline-block so no further fixes are required.
There's reason to believe that upgrade scripts will run faster
if the system isn't spending a non-insignificant amount of
resources simply drawing the progress bar. Closes#7711
Some context: https://github.com/npm/npm/issues/11283
* feat: helper for building avatars
* feat: benchpress truefalse globals, componentPrefix in buildAvatar
* refactor: remove componentPrefix
* feat: changes to buildAvatar helper
- removed extra .avatar-xl class in generics.less
- added support for component override
- "size" can be a number now
* fix: prevent overflow of alt text in avatars
* fix: update doc on buildAvatar helper
* feat: only watch active plugins/themes
* fix: remove log
* fix: remove left over glob
* fix: remove test glob
* feat: watch baseThemes as well
* feat: dont watch upgrade scripts
* feat: awaitable websockets
Adding in conditionals to check the method to call, and handling
it as a promise vs. a regular function depending on whether the
method itself is an asynchronous function.
* fix: switch to .then-checking for awaitable check
* fix: proper use of .then check
* feat: add enable/disable checkbox for plugin usage
* feat: submit plugin data to packages.nodebb.org
only submit in production mode
submit once every 24 hours
dont submit for plugins that have "private": true in plugin.json
enabled on new installs
disabled on existing installs
* fix: hash not working after first send
fix statusCode
* fix: remove url
* feat: show compatibilty
* feat: add install question for submit plugin usage
* feat: design revamp of ACP events page
- minor UX changes
- new filter controls, filters moved to sidebar
- form usable without js
- start/end filters NOT programmed yet
* feat: events ACP limit by date and perPage
* feat: pre-fill applied filters on template render
* fix: missing translation for ACP events perPage filter
* fix: added some comments to explain setHours behaviour
* fix: stop - start + 1
* fix: socket tests
* fix: +inf, not just inf
* fix: tests, because I am an idiot
* feat: add upgrade script to give mods privs
* feat: give all privileges when making a moderator
* feat: remove implicit privs
* feat: give global mods default privs
* feat: more priv fixes
* feat: use lodash
* fix: remove implicit mod priv from topic delete
* fix: more privs
* fix: posts.canEdit
* fix: canDelete and canEdit
* fix: tests, remove console.log
* feat: shorter functions
* feat: add tests
* fix: uids
* fix: redis random test fail
sets.groupNames is an array that contains other arrays of groupnames so passing it to getMembersOfGroups returned wrong results when there were more than 1 element in it.
* fix: #7604 shortened CTA text and added custom text for some notifs
Specifically, new-reply and new-chat have different CTA text as they
do not go to the forum home like other email templates send users to.
* fix: minor optimization as suggested by @barisusakli
* feat: wip -- refresh meta tags on ajaxify
* feat: wrapped up meta tags update on ajaxify feature
* fix: removed commented-out line
* fix: removed another commented-out line
* feat: ability to copy a groups privileges
ability to copy a group's privileges to all categories, or children of current category
* feat: switch to dropdown
added copy from category to groups
* fix: indents
* fix: cache refactor
db.getObjectField no longer loads entire object
db.getObjectsFields only clones data once
more tests
* feat: add back cache to redis
db.getObjectField no longer loads entire object
* auto unban when User.getUsersFields is called and the user is banned but has expired
* cleanups and removal of expiry_readable
* expiry_readable make an alias for backward compatibility
* User.bans.func vs User.*ban*Func
* console.log cleanups, plus todo message added
* use code util.deprecate
* fix: remove ununsed winston require
On uploading a new profile picture via URL, a CORS error presents
itself during the .toDataUrl() call due to misconfigured CORS
handling in the library. The change here allows cropper.js to
check crossorigin attribute in image and handle appropriately.
Also, the error handling is improved so the error is caught on
Firefox, as it sends a different error message than on Chrome.
* fix: display proper site logo or og-image with sizes in head
* fix: refactor og:image logic, #7444
- Updated logic to set additional og:image tags based on more
factors
- logo.png fallback
* feat: save image sizes on post upload, re: #7444
* fix: awaiting addTags in topic controller
* fix: pass strings to meta tags object
* fix: sending absolute image url to meta tag
* fix: removed unneeded async and requiring sync db
* feat: upgrade to calculate image sizes for all post uploads tracked
* fix: tests
* feat: re-designed digest
Updated design, logic no longer shows "no topics", just doesn't
show the list at all, teaser re-retrieved for digest so that it
always grabs a teaser even if there is no reply, changed default
email background to a light grey.
* fix: minor padding issues in digest
* fix: banned template
* fix: invitation.tpl
* fix: removed unused notif_chat and notif_post email templates
* fix: notification template
* fix: registration_accepted template
* fix: reset tpl
* fix: test tpl
* fix: email verify tpl
* fix: reset notify tpl
* fix: welcome tpl
* fix: additional minor font fixes
* fix: removed unused email header image assets
* fix: internationalised 'your daily digest' string
* fix: broken url in digest 🤦
* feat: added RTL support for emailer
/cc @PostMidnight
related to julianlam/nodebb-plugin-session-sharing#73
These three lines haven't changed in two years, but it makes more
sense for them to be called against the relative path router,
otherwise req.originalUrl contains the relative path, which is
not necessary.
Used in authentication middleware. Instead of firing an action
hook, it now fires a response hook.
Response hooks are invoked serially, and if headers are sent from
one of the hook listeners, all subsequent hook methods are not
called.
Response hooks should only be used in situations where res.send
(or other like methods) are invoked. Existing plugin hooks that
pass in res purely for data retrieval purposes have not changed).
fixesnodebb/nodebb-plugin-write-api#101
A regression was identified where the skin was not shown in the
body class. This resolves the issue and adds a workaround so that
the fix does not become breaking for custom themes.
* fix: removal of timeago fallback middleware
Instead of loading English fallback on missing language, we opt
to not send a script tag for a missing language to begin with.
Timeago already loads with English as default, so it will just
continue to use English.
* fix: check userLang against supported language codes
* fix: cleaned up code as per @pitaj
* fix: added comments
* fix: more fixes as per @pitaj
* feat: added addl. test for timeago locales, fixed broken test
* feat: added new hook
* fix: improper .bind() call, +req in static:sockets.validateSession
* fix: restored original sessionStore logic, +hook
original logic to retrieve the sessionStore was not faulty, but
was changed for the sake of changing things, which ultimately
led to issues with tests, etc.
- RTL is applied (or unapplied) on login and logout depending on
user language/guest-detected language.
- config is automatically saved into res.locals.config whenever
loadConfig is called
- On login/logout, buildHeader is called instead of getting config
- On logout, req.uid is deleted instead of set to 0
* fix: closes#6784
* #6784 also fix homepage + subfolder installs
* #6784 fixes suburls as well (ex. /tags/x and /groups/y)
* #6784 more elegant solution @pitaj
and the last time I touch this function, lol
* #6784 regis, final answer
I lied in that last commit
* feat: wip, category watch change
* feat: pass data to client
* feat: allow changing state
* fix: account page categories
* fix: show in unread if topic is followed or category is watched
* feat: add default watch state to acp
* feat: save user category watch state
* feat: update unread recent pages
* fix: remove dupe code
* fix: flip conditions
* fix: handle empty arrays
* fix: ignore/watch on others profile
* feat: upgrade script for category states
if there are any users ignoring categories set their state in new zset and delete cid:<cid>:ignorers
* fix: upgrade
* fix: tests
* fix: redis count
* fix: more tests
* fix: #7038, autoLocale logic not playing nicely with no-refresh auths
- on login, req.query.lang is deleted (since it seems to be left over)
- on logout, the middleware.autoLocale is executed, which resets
req.query.lang
- middleware.autoLocale is new, just refactored existing logic in
webserver.js into new middleware method.
* style: tests, use lodash
* fix: timeago strings not switching languages on login or out
- do not call $.timeago twice on topic load and for widgets
- do not use toLocaleString for each timeago string, use a single
Intl.DateTimeFormat instance instead
- do not call format for empty timeago strings, ie a post that isnt
edited doesnt have a timeago string
- do not call isTouchDevice for every element
- remove app.replaceSelfLinks, this is superceded with /me route
- store references to jquery objects in navigator instead of creating
them on every scroll
During regular processing, a timestamp is prepended to the filename
for any uploaded files. We don't want this to be part of the filename
if an end-user elects to download the file.
This commit adds a middleware to strip out that portion of the
basename and adds the appropriate Content-Disposition header for
files in /uploads/files
Fixes#6953
Made the dropdown an MDL button fab with better positioning via
a p.lead so that it is more easily discoverable and obvious that
it is a button that can be pressed.
Fixes#6899
Fixed an issue where the flags detail page would crash if the
reporting user flagged a post and then proceeded to block the
post author.
Retrieval of a flag's target data should be irrespective of
block status.
fixes#6925
* add cache to redis
move out cache module from mongo
* fix redis tests
* add callback noop
* fix typo
* del cache on field delete
* make redis/mongo caches separate
* WIP
* using bootswatch from npm instead of bootswatch CDN url
* feat: on-demand client css building for skins
* added ability for client-side to select a skin
* updated loading and saving logic of bootstrapSkin on client side user settings
* fix: broken test for #6849
* no-refresh login as well, plus lots of fixes for missing config on login
* replace config with new set on logout as well
* passing new payload data into new action:app.loggedIn hook, and old action:app.loggedOut hook
* fixed issues with socket.io not properly representing uid on server
* some light refactoring and cleanup
* minor cleanup, fixed spa logout not working after login
* have reconnection handler for socket.io wait 2s to confirm disconnection before reporting -- stops flicker if reconnecting immediately
* Dynamically replace chat and slideout menu on updateHeader()
... instead of just the menu items.
* more efficient calls to Benchpress and translator /cc @pitaj
* fix: chats and notification handlers not working after login
* fix: accidentally calling cb multiple times
- on category setParent dialog do not show children of current category
- break recursion if category parentCid is equal to child cid to prevent
infinite loop
- dont allow setting the parentCid of a category to one of it's children
* Store config fields as JSON in the db
Fewer parseInts
* Remove unnecessary parseInts
* remove some dupe code add tests
* remove console.log
* remove more parseInts
* WIP: read meta.configs defaults from defaults.json
remove more parseInts
* more work
* add log for failing test
* update admin pwd
* fix tests, dont require posts/cache before configs are initialized
* handle saves
* Test boolean conditions
* remove more parseInts
* Fix boolean values
* remove lots more parseInts
* removed json parsing
* renamed var to number
* categories dont have timestamp
* allow groups.join to take an array of group names
* pass an array to groups.join/leave in privileges
* split up groups/membership
* add hits/miss to group cache
* fix typo
* WIP
* more unread work
* faster teaser block handling
if user doesn't have anyone blocked don't check
* much faster filtering of blocked posts
* add missing uid
* add tidsByFilter to return
* dont load all pids to find previous non-blocked teaser
* fix unread filters
they no longer use unread/new unread/watched etc they are query strings now
* shorter nav item code
* add unreplied to filters
fix icons not clearing to 0
dont increment unread counters if there is a reply in a topic where you ignored the topic creator
* add probe image size and max image size
* replace jimp and image-probe with sharp
* better name for test
* resize with just path
* resize thumb inplace
* use filename
* flag notifications will go to the flag details page instead of the post or user that was flag
* if you assign a flag to yourself you won't get a notification about it
@benlubar
-moved user.blocks.filter from unread controller to getUnreadTopics so
topics are filtered at other places this function is called
- when a new post is made do not send it to uids that have blocked the
poster
- update getUnreadTids so it does not return topics that have new posts
from blocked users
- update hasReadTopics so it does not return false data if topic has new
posts from blocked users
* DRY req props that depend on auth (fix#6727)
authentication leads to req.loggedIn and req.uid being set. However, a
later authentication event might outdate them. Here, I create one
function for setting those properties, and make sure it also is called
on the `action:middleware.authenticate` hook, which would be such an
authentication event. If there are other places, those should be added
as well.
* fix lint errors
* fix lint error
* change exports
- Sets session ID to be a constant-sized character field inline in the
table instead of a variable-length character field compressed outside
of the row.
- Changes the session data from "json" to "jsonb" which is faster and
smaller on disk with the drawback of not maintaining key order and
whitespace (which we don't care about at all)
- Adds a clustered index on the session expiration timestamp, which will
make periodic session purging much faster.
(For an example, WTDWTF currently has 482355 sessions in the table, and
because there is no index on the expiration timestamp, PostgreSQL must
check all the rows in the table every time.)
This upgrade script can run concurrently with a live NodeBB instance,
but any action that touches sessions will wait until the upgrade script
is done.
Does not touch the database if the database driver is not set to
PostgreSQL or if there is a Redis database configured.
* WIP promisify
* promisify psql
* ability to skip some keys
* dont promisify client object
* remove async
* clone entire module so it has all properties
* add shim for node 6
* ignore sessionStore as well
* ignore pool on psql
* [test/database/list] Fix test list 4 being used in two different tests
* [database/postgres] PostgreSQL database driver
* [database/postgres] Make transactions work based on continuation scope.
* [database/postgres] Implement nested transactions
* eslint --fix
* Add database changes from earlier this week to the PostgreSQL driver.
* Fix typo
* Fix postgres.incrObjectFieldBy returning undefined instead of null when given NaN
* [database/postgres] Fix sortedSetsCard returning an array of strings.
* Update socket.io postgres adapter
* Fix PostgreSQL erroring when multiple updates are made to the same sorted set entry in a single operation.
Add a test case to catch this error.
* Fix lint errors.
* Only prune sessions on one instance in a cluster to avoid deadlocks.
They're caught and handled by the database server, but they spam the logs.
* Fix arguments.slice.
- Benchpress compilation is 33x faster now
- Native module with JS fallback and pre-built binaries
- Dev template build is <1sec now
- Minified template build is ~5sec (uglify accounts for almost all)
isPrimary was undefined if you are using clustering by adding
isCluster:true to config.json, run 1 nodebb process on each virtual
machine and use app.js instead of loader.js
* Fix PostCSS warning message
* Fix disconnect indicator styling
Would increase size of quick actions when active
* Use same alert system in ACP and client
- Remove snackbar
- Add styling and fix template for ACP (based on Persona)
* ACP quick actions
- Moved restart, build & restart, and logout into separate buttons
- Moved buttons on mobile into the side menu
- Added version and upgrade alert to header / mobile menu
- Moved version checking to server-side with a cache for rate limiting
- Changed "reload" translations to "rebuild and restart"
* Change info alert to black-on-white to match focused search bar
* Fix tests
* Fallback for failed fetch of latest version
Groups.destroy can take an array of groupnames
Groups.leave can take an array of groupnames
db.incrObjectField/decrObjectField can take an array of keys
db.sortedSetRemove can take an array of keys and values
db.setRemove can take an array of keys
While not the most elegant solution, I'm only really interested in
stopping registrations that contain two emails in one field.
The only separators I know of are the comma and semicolon. If
there are more, please let me know.
* Set the user's bookmark if their current bookmark is past the end of the topic.
* Optimize forked topic bookmark updating.
Remove support for updating bookmarks for users who sort by votes.
Don't even consider updating bookmarks for users who have not read the posts being removed.
Only compute post indices once per fork operation instead of once per user that has ever read the topic.
- Moved account info to within the profile menu hook, so it can be
better filtered and shown to mods
- Also serves as a nice template for plugins that wish to listen
to the profileMenu hook!
* [database/*] Allow databases other than Redis to provide pubsub for clustering if Redis is not present
* [pubsub] Delay messages sent before the database is ready until the database is ready.
* [pubsub] Restore old behavior of not using the database in non-clustered NodeBB instances.
See comment: https://github.com/NodeBB/NodeBB/pull/6233#issuecomment-357814968
- Removed unused .createTagsInput method
- Firing action:chat.loaded client-side hook in all cases of chat now
- New chat window (modal)
- New chat page load
- Chat switch event
- Fixed issue where clicking into a chat didn't update unread state
- Fixed issue where receiving new messages in chat page didn't mark chat
unread
- Fixed issue where chat title sets were broken in modal and page
- Removed chat leave toggle in chat list (is now in chat dropdown)
- Added chat room management (instead of tagsinput)
- Chat leave button in chat options dropdown
- Refreshing participants when user is added
- Updated autocomplete module so that it can be shown above a modal
(z-index 100005 > 20000)
- Using cant-chat-with-yourself source string, which wasn't defined
before, but was still used
[**NodeBB Forum Software**](https://nodebb.org) is powered by Node.js and built on either a Redis or MongoDB database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB has many modern features out of the box such as social network integration and streaming discussions, while still making sure to be compatible with older browsers.
[**NodeBB Forum Software**](https://nodebb.org) is powered by Node.js and built on either a Redis or MongoDB database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB has many modern features out of the box such as social network integration and streaming discussions, while still making sure to be compatible with older browsers.
@@ -42,7 +40,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
## How can I follow along/contribute?
## 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 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 extention of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether.
* If you are a designer, [NodeBB needs themes](http://community.nodebb.org/category/10/nodebb-themes)! NodeBB's theming system allows extension of the base templates as well as styling via LESS or CSS. NodeBB's base theme utilizes [Bootstrap 3](http://getbootstrap.com/) but themes can choose to use a different framework altogether.
* If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://www.transifex.com/projects/p/nodebb/) for internationalization.
* If you know languages other than English you can help us translate NodeBB. We use [Transifex](https://www.transifex.com/projects/p/nodebb/) for internationalization.
* Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development.
* Please don't forget to **like**, **follow**, and **star our repo**! Join our growing [community](http://community.nodebb.org) to keep up to date with the latest NodeBB development.
@@ -50,7 +48,7 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
NodeBB requires the following software to be installed:
NodeBB requires the following software to be installed:
* A version of Node.js at least 6 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* A version of Node.js at least 8 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
"mongo.unauthorized":"NodeBB was unable to query the MongoDB database for relevant statistics. Please ensure that the user in use by NodeBB contains the "clusterMonitor" role for the "admin" database.",
"redis":"Redis",
"redis":"Redis",
"redis.version":"Redis Version",
"redis.version":"Redis Version",
"redis.keys":"Keys",
"redis.expires":"Expires",
"redis.avg-ttl":"Average TTL",
"redis.connected-clients":"Connected Clients",
"redis.connected-clients":"Connected Clients",
"redis.connected-slaves":"Connected Slaves",
"redis.connected-slaves":"Connected Slaves",
"redis.blocked-clients":"Blocked Clients",
"redis.blocked-clients":"Blocked Clients",
@@ -30,7 +37,16 @@
"redis.total-connections-recieved":"إجمالي الاتصالات المستلمة",
"redis.total-connections-recieved":"إجمالي الاتصالات المستلمة",
"redis.total-commands-processed":"إجمالي الأوامر التي تمت معالجتها",
"redis.total-commands-processed":"إجمالي الأوامر التي تمت معالجتها",
"redis.iops":"Instantaneous Ops. Per Second",
"redis.iops":"Instantaneous Ops. Per Second",
"redis.iinput":"Instantaneous Input Per Second",
"redis.ioutput":"Instantaneous Output Per Second",
"custom-header.description":"أدخل HTML الخاصة بك هنا (مثل العلامات الوصفية، وما إلى ذلك)، والتي سيتم إلحاقها الى<code><head></code> في تصميم المنتدى. يسمح باستخدام علامات النص البرمجي، ولكن سيتم تعطيلها؛ لتوفر تبويبة\n<a href=\"#custom-header\" data-toggle=\"tab\">Javascript المخصصة</a>",
"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.enable":"تفعيل الترويسة المخصصة",
"custom-header.enable":"تفعيل الترويسة المخصصة",
"custom-css.livereload":"تفعيل إعادة التحميل المباشرة",
"custom-css.livereload":"تفعيل إعادة التحميل المباشرة",
"alert.suggest-error":"<p>NodeBB could not reach the package manager, proceed with installation of latest version?</p><div class=\"alert alert-danger\"><strong>Server returned (%1)</strong>: %2</div>",
"alert.suggest-error":"<p>NodeBB could not reach the package manager, proceed with installation of latest version?</p><div class=\"alert alert-danger\"><strong>Server returned (%1)</strong>: %2</div>",
"alert.package-manager-unreachable":"<p>NodeBB could not reach the package manager, an upgrade is not suggested at this time.</p>",
"alert.package-manager-unreachable":"<p>NodeBB could not reach the package manager, an upgrade is not suggested at this time.</p>",
"alert.incompatible":"<p>Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.</p>",
"alert.incompatible":"<p>Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.</p>",
"alert.possibly-incompatible":"<div class=\"alert alert-warning\"><p><strong>No Compatibility Information Found</strong></p><p>This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.</p></div><p>In the event that NodeBB cannot boot properly:</p><pre><code>$ ./nodebb reset plugin=\"%1\"</code></pre><p>Continue installation of latest version of this plugin?</p>",
"alert.possibly-incompatible":"<div class=\"alert alert-warning\"><p><strong>No Compatibility Information Found</strong></p><p>This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.</p></div><p>In the event that NodeBB cannot boot properly:</p><pre><code>$ ./nodebb reset plugin=\"%1\"</code></pre><p>Continue installation of latest version of this plugin?</p>",
"alert.reorder":"Plugins Re-ordered",
"alert.reorder-success":"Please rebuild and restart your NodeBB to fully complete the process.",
"license.title":"معلومات ترخيص الإضافة",
"license.title":"معلومات ترخيص الإضافة",
"license.intro":"The plugin <strong>%1</strong> is licensed under the %2. Please read and understand the license terms prior to activating this plugin.",
"license.intro":"The plugin <strong>%1</strong> is licensed under the %2. Please read and understand the license terms prior to activating this plugin.",
"page-views-custom-help":"أدخل نطاقا زمنيا لمرات مشاهدة الصفحات التي ترغب في عرضها. إذا لم يظهر منتقي التاريخ، فإن التنسيق المقبول هو <code>YYYY-MM-DD</code>",
"page-views-custom-help":"أدخل نطاقا زمنيا لمرات مشاهدة الصفحات التي ترغب في عرضها. إذا لم يظهر منتقي التاريخ، فإن التنسيق المقبول هو <code>YYYY-MM-DD</code>",
"page-views-custom-error":"الرجاء إدخال نطاق تاريخ صالح بالتنسيق <code>YYYY-MM-DD</code>",
"page-views-custom-error":"الرجاء إدخال نطاق تاريخ صالح بالتنسيق <code>YYYY-MM-DD</code>",
"stats.day":"يوم",
"stats.yesterday":"Yesterday",
"stats.week":"إسبوع",
"stats.today":"Today",
"stats.month":"شهر",
"stats.last-week":"Last Week",
"stats.this-week":"This Week",
"stats.last-month":"Last Month",
"stats.this-month":"This Month",
"stats.all":"كل الوقت",
"stats.all":"كل الوقت",
"updates":"تحديثات",
"updates":"تحديثات",
"running-version":"المنتدى يعمل حاليا على <strong>NodeBB الإصدار<span id=\"version\">%1</span></strong>.",
"running-version":"المنتدى يعمل حاليا على <strong>NodeBB الإصدار<span id=\"version\">%1</span></strong>.",
"keep-updated":"تأكد دائما من أن NodeBB يعمل على احدث إصدار للحصول على أحدث التصحيحات الأمنية وإصلاحات الأخطاء.",
"keep-updated":"تأكد دائما من أن NodeBB يعمل على احدث إصدار للحصول على أحدث التصحيحات الأمنية وإصلاحات الأخطاء.",
"up-to-date":"<p>المنتدى <strong>يعمل على أحدث إصدار</strong> <i class=\"fa fa-check\"></i></p>",
"up-to-date":"<p>المنتدى <strong>يعمل على أحدث إصدار</strong> <i class=\"fa fa-check\"></i></p>",
"upgrade-available":"<p>نسخة جديدة (الإصدار %1) تم إصدارها. خذ بعين الاعتبار <a href=\"https://docs.nodebb.org/configuring/upgrade/\">ترقية NodeBB الخاص بك</a>.</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>نسخة ما قبل الإصدار من NodeBB هذه قديمة. إصدار أحدث (الإصدار %1) تم إصداره. خذ بعين الاعتبار <a href=\"https://docs.nodebb.org/configuring/upgrade/\">ترقية 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>",
"prerelease-warning":"<p>هذه نسخة <strong>ماقبل الإصدار</strong> من NodeBB. قد تحدث أخطاء غير مقصودة. <i class=\"fa fa-exclamation-triangle\"></i></p>",
"running-in-development":"المنتدى قيد التشغيل في وضع \"المطورين\". وقد تكون هناك ثغرات أمنية مفتوحة؛ من فضلك تواصل مع مسؤول نظامك.",
"running-in-development":"المنتدى قيد التشغيل في وضع \"المطورين\". وقد تكون هناك ثغرات أمنية مفتوحة؛ من فضلك تواصل مع مسؤول نظامك.",
"latest-lookup-failed":"<p>Failed to look up latest available version of NodeBB</p>",
"notices":"إشعارات",
"notices":"إشعارات",
"restart-not-required":"إعادة التشغيل غير مطلوب",
"restart-not-required":"إعادة التشغيل غير مطلوب",
@@ -36,9 +40,10 @@
"search-plugin-tooltip":"نصب إضافة البحث من صفحة الإضافات البرمجية لتنشيط وظيفة البحث",
"search-plugin-tooltip":"نصب إضافة البحث من صفحة الإضافات البرمجية لتنشيط وظيفة البحث",
"control-panel":"التحكم بالنظام",
"control-panel":"التحكم بالنظام",
"reload":"إعادة تحمبل",
"rebuild-and-restart":"Rebuild & Restart",
"restart":"إعادة تشغيل",
"restart":"Restart",
"restart-warning":"إعادة تحميل او تشغيل NodeBB سوف يؤدي لقطع جميع الإتصالات لبضع ثواني.",
"restart-warning":"Rebuilding or Restarting your NodeBB will drop all existing connections for a few seconds.",
"restart-disabled":"Rebuilding and Restarting your NodeBB has been disabled as you do not seem to be running it via the appropriate daemon.",
"maintenance-mode":"وضع الصيانة",
"maintenance-mode":"وضع الصيانة",
"maintenance-mode-title":"انقر هنا لإعداد وضع الصيانة لـNodeBB",
"maintenance-mode-title":"انقر هنا لإعداد وضع الصيانة لـNodeBB",
"optional-clone-settings":"(Optional) Clone Settings From Category",
"optional-clone-settings":"(Optional) Clone Settings From Category",
"clone-children":"Clone Children Categories And Settings",
"purge":"Purge Category",
"purge":"Purge Category",
"enable":"Enable",
"enable":"Enable",
@@ -28,11 +30,13 @@
"select-category":"Select Category",
"select-category":"Select Category",
"set-parent-category":"Set Parent Category",
"set-parent-category":"Set Parent Category",
"privileges.description":"You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.",
"privileges.description":"You can configure the access control privileges for portions of the site in this section. Privileges can be granted on a per-user or a per-group basis. Select the domain of effect from the dropdown below.",
"privileges.category-selector":"Configuring privileges for ",
"privileges.warning":"<strong>Note</strong>: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.",
"privileges.warning":"<strong>Note</strong>: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.",
"privileges.no-users":"No user-specific privileges in this category.",
"privileges.no-users":"No user-specific privileges in this category.",
@@ -41,7 +45,12 @@
"privileges.search-group":"Add Group",
"privileges.search-group":"Add Group",
"privileges.copy-to-children":"Copy to Children",
"privileges.copy-to-children":"Copy to Children",
"privileges.copy-from-category":"Copy from Category",
"privileges.copy-from-category":"Copy from Category",
"privileges.copy-privileges-to-all-categories":"Copy to All Categories",
"privileges.copy-group-privileges-to-children":"Copy this group's privileges to the children of this category.",
"privileges.copy-group-privileges-to-all-categories":"Copy this group's privileges to all categories.",
"privileges.copy-group-privileges-from":"Copy this group's privileges from another category.",
"privileges.inherit":"If the <code>registered-users</code> group is granted a specific privilege, all other groups receive an <strong>implicit privilege</strong>, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the <code>registered-users</code> user group, and so, privileges for additional groups need not be explicitly granted.",
"privileges.inherit":"If the <code>registered-users</code> group is granted a specific privilege, all other groups receive an <strong>implicit privilege</strong>, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the <code>registered-users</code> user group, and so, privileges for additional groups need not be explicitly granted.",
"privileges.copy-success":"Privileges copied!",
"analytics.back":"Back to Categories List",
"analytics.back":"Back to Categories List",
"analytics.title":"Analytics for \"%1\" category",
"analytics.title":"Analytics for \"%1\" category",
@@ -65,5 +74,8 @@
"alert.find-user":"Find a User",
"alert.find-user":"Find a User",
"alert.user-search":"Search for a user here...",
"alert.user-search":"Search for a user here...",
"alert.find-group":"Find a Group",
"alert.find-group":"Find a Group",
"alert.group-search":"Search for a group here..."
"alert.group-search":"Search for a group here...",
"lead":"A listing of digest delivery stats and times is displayed below.",
"disclaimer":"Please be advised that email delivery is not guaranteed, due to the nature of email technology. Many variables factor into whether an email sent to the recipient server is ultimately delivered into the user's inbox, including server reputation, blacklisted IP addresses, and whether DKIM/SPF/DMARC is configured.",
"disclaimer-continued":"A successful delivery means the message was sent successfully by NodeBB and acknowledged by the recipient server. It does not mean the email landed in the inbox. For best results, we recommend using a third-party email delivery service such as <a href=\"https://sendgrid.com/why-sendgrid/\">SendGrid</a>.",
"user":"User",
"subscription":"Subscription Type",
"last-delivery":"Last successful delivery",
"default":"System default",
"default-help":"<em>System default</em> means the user has not explicitly overridden the global forum setting for digests, which is currently: "<strong>%1</strong>"",
"resend":"Resend Digest",
"resend-all-confirm":"Are you sure you wish to mnually execute this digest run?",
"description":"There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings → Post → Posting Restrictions</a> and enable <strong>Post Queue</strong>.",
"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>.",
"alerts.validate-force-password-reset-success":"User(s) passwords have been reset and their existing sessions have been revoked.",
"alerts.password-reset-confirm":"Do you want to send password reset email(s) to these user(s)?",
"alerts.password-reset-confirm":"Do you want to send password reset email(s) to these user(s)?",
"alerts.confirm-delete":"<b>Warning!</b><br/>Do you really want to delete user(s)?<br/> This action is not reversable! Only the user account will be deleted, their posts and topics will remain.",
"alerts.confirm-delete":"<b>Warning!</b><br/>Do you really want to delete user(s)?<br/> This action is not reversable! Only the user account will be deleted, their posts and topics will remain.",
"maintenance-mode.help":"When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.help":"When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.",
"maintenance-mode.status":"Maintenance Mode Status Code",
"maintenance-mode.message":"Maintenance Message",
"maintenance-mode.message":"Maintenance Message",
"headers":"Headers",
"headers":"Headers",
"headers.allow-from":"Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.allow-from":"Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.powered-by":"Customise the \"Powered By\" header sent by NodeBB",
"headers.powered-by":"Customise the \"Powered By\" header sent by NodeBB",
"hsts.subdomains":"Include subdomains in HSTS header",
"hsts.preload":"Allow preloading of HSTS header",
"hsts.help":"If enabled, an HSTS header will be set for this site. You can elect to include subdomains and preloading flags in your header. If in doubt, you can leave these unchecked. <a href=\"%1\">More information <i class=\"fa fa-external-link\"></i></a>",
"traffic-management":"Traffic Management",
"traffic-management":"Traffic Management",
"traffic.help":"NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.",
"traffic.help":"NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.",
"sendmail-rate-delta":"... every <em>X</em> milliseconds",
"sendmail-rate-help":"Instructs the NodeBB mailer to limit the number of messages sent at once in order to not overwhelm email receiving services. These options do not apply if SMTP Transport is enabled (below).",
"smtp-transport":"SMTP Transport",
"smtp-transport":"SMTP Transport",
"smtp-transport.enabled":"Use an external email server to send emails",
"smtp-transport.enabled":"Use an external email server to send emails",
@@ -30,8 +33,8 @@
"testing.select":"Select Email Template",
"testing.select":"Select Email Template",
"testing.send":"Send Test Email",
"testing.send":"Send Test Email",
"testing.send-help":"The test email will be sent to the currently logged in user's email address.",
"testing.send-help":"The test email will be sent to the currently logged in user's email address.",
"subscriptions.hour-help":"Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>"
"subscriptions.hour-help":"Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>"
"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\"",
"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\""
"privileges":"Guest Privileges",
"privileges.can-search":"Allow guests to search without logging in",
"privileges.can-search-users":"Allow guests to search users without logging in"
"restrictions.post-queue-rep-threshold":"Reputation required to bypass post queue",
"restrictions.groups-exempt-from-post-queue":"Select groups that should be exempt from the post queue",
"restrictions-new.post-queue":"Enable new user restrictions",
"restrictions-new.post-queue":"Enable new user restrictions",
"restrictions.post-queue-help":"Enabling post queue will put the posts of new users in a queue for approval.",
"restrictions.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-new.post-queue-help":"Enabling new user restrictions will set restrictions on posts created by new users",
"restrictions.seconds-between":"Seconds between posts",
"restrictions.seconds-between":"Number of seconds between posts",
"restrictions.seconds-between-new":"Seconds between posts for new users",
"restrictions.seconds-between-new":"Seconds between posts for new users",
"restrictions.rep-threshold":"Reputation threshold before these restrictions are lifted",
"restrictions.rep-threshold":"Reputation threshold before these restrictions are lifted",
"restrictions.seconds-defore-new":"Seconds before new user can post",
"restrictions.seconds-before-new":"Seconds before a new user can make their first post",
"restrictions.seconds-edit-after":"Number of seconds before users are allowed to edit posts after posting. (0 disabled)",
"restrictions.seconds-edit-after":"Number of seconds a post remains editable (set to 0 to disable)",
"restrictions.seconds-delete-after":"Number of seconds before users are allowed to delete posts after posting. (0 disabled)",
"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. (0 disabled)",
"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.min-title-length":"Minimum Title Length",
"restrictions.max-title-length":"Maximum Title Length",
"restrictions.max-title-length":"Maximum Title Length",
"restrictions.min-post-length":"Minimum Post Length",
"restrictions.min-post-length":"Minimum Post Length",
@@ -29,6 +32,8 @@
"timestamp":"Timestamp",
"timestamp":"Timestamp",
"timestamp.cut-off":"Date cut-off (in days)",
"timestamp.cut-off":"Date cut-off (in days)",
"timestamp.cut-off-help":"Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).<br /><em>(Default: <code>30</code>, or one month). Set to 0 to always display dates, leave blank to always display relative times.</em>",
"timestamp.cut-off-help":"Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).<br /><em>(Default: <code>30</code>, or one month). Set to 0 to always display dates, leave blank to always display relative times.</em>",
"timestamp.necro-threshold":"Necro Threshold (in days)",
"timestamp.necro-threshold-help":"A message will be shown between posts if the time between them is longer than the necro threshold. (Default: <code>7</code>, or one week). Set to 0 to disable.</em>",
"teaser":"Teaser Post",
"teaser":"Teaser Post",
"teaser.last-post":"Last – Show the latest post, including the original post, if no replies",
"teaser.last-post":"Last – Show the latest post, including the original post, if no replies",
"teaser.last-reply":"Last – Show the latest reply, or a \"No replies\" placeholder if no replies",
"teaser.last-reply":"Last – Show the latest reply, or a \"No replies\" placeholder if no replies",
@@ -49,5 +54,6 @@
"composer.enable-plugin-help":"Allow plugins to add content to the help tab",
"composer.enable-plugin-help":"Allow plugins to add content to the help tab",
"composer.custom-help":"Custom Help Text",
"composer.custom-help":"Custom Help Text",
"ip-tracking":"IP Tracking",
"ip-tracking":"IP Tracking",
"ip-tracking.each-post":"Track IP Address for each post"
"ip-tracking.each-post":"Track IP Address for each post",
"max-image-width":"تغيير حجم الصور إلى عرض محدد (بالبكسل)",
"strip-exif-data":"Strip EXIF Data",
"max-image-width-help":"(بالبكسل، الافتراضي: 760 بكسل، ضع إلى 0 لتعطيل الخاصية)",
"private-extensions":"File extensions to make private",
"private-uploads-extensions-help":"Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
"resize-image-width-threshold":"Resize images if they are wider than specified width",
"resize-image-width-threshold-help":"(in pixels, default: 1520 pixels, set to 0 to disable)",
"resize-image-width":"Resize images down to specified width",
"resize-image-width-help":"(in pixels, default: 760 pixels, set to 0 to disable)",
"resize-image-quality":"Quality to use when resizing images",
"resize-image-quality-help":"Use a lower quality setting to reduce the file size of resized images.",
"email-confirm-interval":"لا يمكن للمستخدم إعادة إرسال رسالة تأكيد البريد الالكتروني حتى مرور",
"email-confirm-interval":"لا يمكن للمستخدم إعادة إرسال رسالة تأكيد البريد الالكتروني حتى مرور",
"email-confirm-email2":"دقائق",
"email-confirm-email2":"دقائق",
@@ -9,11 +8,12 @@
"allow-login-with.username":"اسم المستخدم فقط",
"allow-login-with.username":"اسم المستخدم فقط",
"allow-login-with.email":"البريد الالكتروني فقط",
"allow-login-with.email":"البريد الالكتروني فقط",
"account-settings":"إعدادت الحساب",
"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://eugdpr.org/the-regulation/gdpr-faqs/\">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-username-changes":"عدم السماح بتغيير اسم المستخدم",
"disable-password-changes":"عدم السماح بتغيير كلمة المرور",
"disable-password-changes":"عدم السماح بتغيير كلمة المرور",
"allow-account-deletion":"السماح بحذف الحساب",
"allow-account-deletion":"السماح بحذف الحساب",
"user-info-private":"إخفاء قائمة المستخدم والبيانات عن الزوار",
"hide-fullname":"إخفاء الإسم الكامل عن المستخدمين",
"hide-fullname":"إخفاء الإسم الكامل عن المستخدمين",
"hide-email":"إخفاء البريد الإلكتروني عن المستخدمين",
"hide-email":"إخفاء البريد الإلكتروني عن المستخدمين",
"themes":"القوالب",
"themes":"القوالب",
@@ -26,15 +26,23 @@
"lockout-duration":"مدة تأمين الحساب (دقائق)",
"lockout-duration":"مدة تأمين الحساب (دقائق)",
"login-days":"عدد الأيام لتذكر جلسات تسجيل دخول المستخدم",
"login-days":"عدد الأيام لتذكر جلسات تسجيل دخول المستخدم",
"password-expiry-days":"فرض عملية تغيير كلمة المرور بعد مرور عدد محدد من الأيام",
"password-expiry-days":"فرض عملية تغيير كلمة المرور بعد مرور عدد محدد من الأيام",
"session-time":"Session Time",
"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>.",
"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-type.admin-approval-ip":"بموافقة الإدارة لعناوين IP",
"registration-type.admin-approval-ip":"بموافقة الإدارة لعناوين IP",
"registration-type.invite-only":"بالدعوات فقط",
"registration-type.invite-only":"بالدعوات فقط",
"registration-type.admin-invite-only":"بالدعوات من قبل الإدارة فقط",
"registration-type.admin-invite-only":"بالدعوات من قبل الإدارة فقط",
"registration-type.disabled":"لا يوجد تسجيل",
"registration-type.disabled":"لا يوجد تسجيل",
"registration-type.help":"عادي - بإمكان المستخدمين التسجيل من خلال صفحة /التسجيل.<br/>\nبموافقة الإدارة - يتم وضع قائمة تسجيلات المستخدمين في <a href=\"%1/admin/manage/registration\">قائمة إنتظار موافقة</a> الإدارة.<br/>\nبموافقة الإدارة لعناوين IP - عادي بالنسبة للمستخدمين الجدد، ويتطلب موافقة الإدارة للتسجيل من عناوين IP تم التسجيل بإستخدامها مسبقاً.<br/>\nبالدعوات فقط - بإمكان المستخدمين إرسال دعوات من خلال صفحة <a href=\"%1/users\" target=\"_blank\">الأعضاء</a>.<br/>\nبالدعوات من قبل الإدارة فقط - فقط المراء بإمكانهم إرسال الدعوات من خلال صفحة <a href=\"%1/users\" target=\"_blank\">الأعضاء</a> و صفحات <a href=\"%1/admin/manage/users\">الإدارة/المشرفين/الأعضاء</a>.<br/>\nلا يوجد تسجيل - إغلاق خيار التسجيل بالكامل.<br/>",
"registration-type.help":"Normal - Users can register from the /register page.<br/>\nInvite Only - Users can invite others from the <a href=\"%1/users\" target=\"_blank\">users</a> page.<br/>\nAdmin Invite Only - Only administrators can invite others from <a href=\"%1/users\" target=\"_blank\">users</a> and <a href=\"%1/admin/manage/users\">admin/manage/users</a> pages.<br/>\nNo registration - No user registration.<br/>",
"registration-approval-type.help":"Normal - Users are registered immediately.<br/>\nAdmin Approval - User registrations are placed in an <a href=\"%1/admin/manage/registration\">approval queue</a> for administrators.<br/>\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.<br/>",
"registration.max-invites":"الحد الأقصى للدعوات لكل عضو",
"registration.max-invites":"الحد الأقصى للدعوات لكل عضو",
"max-invites":"الحد الأقصى للدعوات لكل عضو",
"max-invites":"الحد الأقصى للدعوات لكل عضو",
"max-invites-help":"0 لعدم تحديد قيود، الإدارة تحصل على دعوات لامحدودة <br> هذا الخيار يعمل فقط عند تحديد خيار \"بالدعوات فقط\"",
"max-invites-help":"0 لعدم تحديد قيود، الإدارة تحصل على دعوات لامحدودة <br> هذا الخيار يعمل فقط عند تحديد خيار \"بالدعوات فقط\"",
@@ -62,5 +70,10 @@
"email-chat-notifs":"Send an email if a new chat message arrives and I am not online",
"email-chat-notifs":"Send an email if a new chat message arrives and I am not online",
"email-post-notif":"Send an email when replies are made to topics I am subscribed to",
"email-post-notif":"Send an email when replies are made to topics I am subscribed to",
"follow-created-topics":"Follow topics you create",
"follow-created-topics":"Follow topics you create",
"follow-replied-topics":"Follow topics that you reply to"
"follow-replied-topics":"Follow topics that you reply to",
"invalid-username-or-password":"المرجود تحديد اسم مستخدم و كلمة مرور",
"invalid-username-or-password":"المرجود تحديد اسم مستخدم و كلمة مرور",
"invalid-search-term":"كلمة البحث غير صحيحة",
"invalid-search-term":"كلمة البحث غير صحيحة",
"invalid-url":"Invalid URL",
"invalid-url":"Invalid URL",
"local-login-disabled":"Local login system has been disabled for non-privileged accounts.",
"csrf-invalid":"لم تتمكن من تسجيل الدخول. هنالك أحتمال ان جلستك انتهت. رجاءًا حاول مرة اخرى.",
"csrf-invalid":"لم تتمكن من تسجيل الدخول. هنالك أحتمال ان جلستك انتهت. رجاءًا حاول مرة اخرى.",
"invalid-pagination-value":"رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
"invalid-pagination-value":"رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
"username-taken":"اسم المستخدم مأخوذ",
"username-taken":"اسم المستخدم مأخوذ",
"email-taken":"البريد الالكتروني مأخوذ",
"email-taken":"البريد الالكتروني مأخوذ",
"email-not-confirmed":"عنوان بريدك الإلكتروني غير مفعل بعد. انقر هنا لتفعيله من فضلك.",
"email-not-confirmed":"You are unable to post until your email is confirmed, please click here to confirm your email.",
"email-not-confirmed-chat":"لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
"email-not-confirmed-chat":"لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
"email-not-confirmed-email-sent":"بريدك الإلكتروني غير مفعل. رجاءًا تفحص صندوق البريد عن رسالة التفعيل.",
"email-not-confirmed-email-sent":"Your email has not been confirmed yet, please check your inbox for the confirmation email. You won't be able to post or chat until your email is confirmed.",
"no-email-to-confirm":"هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.",
"no-email-to-confirm":"هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.",
"guest-upload-disabled":"خاصية رفع الملفات غير مفعلة للزوار.",
"guest-upload-disabled":"خاصية رفع الملفات غير مفعلة للزوار.",
"cors-error":"Unable to upload image due to misconfigured CORS",
"already-bookmarked":"You have already bookmarked this post",
"already-bookmarked":"You have already bookmarked this post",
"already-unbookmarked":"You have already unbookmarked this post",
"already-unbookmarked":"You have already unbookmarked this post",
"cant-ban-other-admins":"لايمكن حظر مدبر نظام آخر.",
"cant-ban-other-admins":"لايمكن حظر مدبر نظام آخر.",
@@ -86,6 +93,7 @@
"invalid-image-type":"نوع الصورة غير مدعوم. الأنواع المدعومة هي : %1",
"invalid-image-type":"نوع الصورة غير مدعوم. الأنواع المدعومة هي : %1",
"invalid-image-extension":"امتداد الصورة غير مدعوم.",
"invalid-image-extension":"امتداد الصورة غير مدعوم.",
"invalid-file-type":"صيغة الملف غير مدعومة. الأنواع المدعومة هي: %1",
"invalid-file-type":"صيغة الملف غير مدعومة. الأنواع المدعومة هي: %1",
"invalid-image-dimensions":"Image dimensions are too big",
"group-name-too-short":"اسم المجموعة قصير",
"group-name-too-short":"اسم المجموعة قصير",
"group-name-too-long":"اسم المجموعة طويل.",
"group-name-too-long":"اسم المجموعة طويل.",
"group-already-exists":"المجموعة موجودة مسبقا",
"group-already-exists":"المجموعة موجودة مسبقا",
@@ -95,6 +103,8 @@
"group-needs-owner":"هذه المجموعة تتطلب مالك واحد على اﻷقل",
"group-needs-owner":"هذه المجموعة تتطلب مالك واحد على اﻷقل",
"group-already-invited":"المستخدم سبق وأن تمت دعوته",
"group-already-invited":"المستخدم سبق وأن تمت دعوته",
"group-already-requested":"سبق وتم تسجيل طلب العضوية",
"group-already-requested":"سبق وتم تسجيل طلب العضوية",
"group-join-disabled":"You are not able to join this group at this time",
"group-leave-disabled":"You are not able to leave this group at this time",
"post-already-deleted":"سبق وتم حذف هذا الرد",
"post-already-deleted":"سبق وتم حذف هذا الرد",
"post-already-restored":"سبق وتم إلغاء حذف هذا الرد",
"post-already-restored":"سبق وتم إلغاء حذف هذا الرد",
"topic-already-deleted":"سبق وتم حذف هذا الموضوع",
"topic-already-deleted":"سبق وتم حذف هذا الموضوع",
@@ -116,6 +126,8 @@
"cant-delete-chat-message":"غير مصرح لك بحذف الرسالة.",
"cant-delete-chat-message":"غير مصرح لك بحذف الرسالة.",
"chat-edit-duration-expired":"You are only allowed to edit chat messages for %1 second(s) after posting",
"chat-edit-duration-expired":"You are only allowed to edit chat messages for %1 second(s) after posting",
"chat-delete-duration-expired":"You are only allowed to delete chat messages for %1 second(s) after posting",
"chat-delete-duration-expired":"You are only allowed to delete chat messages for %1 second(s) after posting",
"chat-deleted-already":"This chat message has already been deleted.",
"chat-restored-already":"This chat message has already been restored.",
"already-voting-for-this-post":"لقد شاركت بالتصويت ، ألا تذكر؟",
"already-voting-for-this-post":"لقد شاركت بالتصويت ، ألا تذكر؟",
"reputation-system-disabled":"نظام السمعة معطل",
"reputation-system-disabled":"نظام السمعة معطل",
"downvoting-disabled":"التصويتات السلبية معطلة",
"downvoting-disabled":"التصويتات السلبية معطلة",
@@ -124,6 +136,8 @@
"not-enough-reputation-min-rep-website":"You do not have enough reputation to add a website",
"not-enough-reputation-min-rep-website":"You do not have enough reputation to add a website",
"not-enough-reputation-min-rep-aboutme":"You do not have enough reputation to add an about me",
"not-enough-reputation-min-rep-aboutme":"You do not have enough reputation to add an about me",
"not-enough-reputation-min-rep-signature":"You do not have enough reputation to add a signature",
"not-enough-reputation-min-rep-signature":"You do not have enough reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture":"You do not have enough reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture":"You do not have enough reputation to add a cover picture",
"already-flagged":"لقد بلغت عن هذه المشاركة من قبل.",
"already-flagged":"لقد بلغت عن هذه المشاركة من قبل.",
"self-vote":"You cannot vote on your own post",
"self-vote":"You cannot vote on your own post",
"reload-failed":"المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
"reload-failed":"المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
@@ -132,14 +146,21 @@
"wrong-login-type-email":"الرجاء استعمال بريدك اﻹلكتروني للدخول",
"wrong-login-type-email":"الرجاء استعمال بريدك اﻹلكتروني للدخول",
"wrong-login-type-username":"الرجاء استعمال اسم المستخدم الخاص بك للدخول",
"wrong-login-type-username":"الرجاء استعمال اسم المستخدم الخاص بك للدخول",
"sso-registration-disabled":"Registration has been disabled for %1 accounts, please register with an email address first",
"sso-registration-disabled":"Registration has been disabled for %1 accounts, please register with an email address first",
"sso-multiple-association":"You cannot associate multiple accounts from this service to your NodeBB account. Please dissociate your existing account and try again.",
"invite-maximum-met":"لقد قمت بدعوة الحد الأقصى من الأشخاص (%1 من %2)",
"invite-maximum-met":"لقد قمت بدعوة الحد الأقصى من الأشخاص (%1 من %2)",
"no-session-found":"لم دخول مسجل!",
"no-session-found":"لم دخول مسجل!",
"not-in-room":"المستخدم غير موجود في الغرفة.",
"not-in-room":"المستخدم غير موجود في الغرفة.",
"no-users-in-room":"لا يوجد مستخدمين في الغرفة.",
"cant-kick-self":"لا يمكنك طرد نفسك من المجموعة.",
"cant-kick-self":"لا يمكنك طرد نفسك من المجموعة.",
"no-users-selected":"لا يوجد مستخدم محدد.",
"no-users-selected":"لا يوجد مستخدم محدد.",
"invalid-home-page-route":"Invalid home page route",
"invalid-home-page-route":"Invalid home page route",
"invalid-session":"Session Mismatch",
"invalid-session":"Session Mismatch",
"invalid-session-text":"يبدو أن فترة التسجيل لم تعد قائمة او هي غير مطابقة مع الخادم. يرجى إعادة تحميل هذه الصفحة.",
"invalid-session-text":"يبدو أن فترة التسجيل لم تعد قائمة او هي غير مطابقة مع الخادم. يرجى إعادة تحميل هذه الصفحة.",
"no-topics-selected":"No topics selected!"
"no-topics-selected":"No topics selected!",
"cant-move-to-same-topic":"Can't move post to same topic!",
"cannot-block-self":"You cannot block yourself!",
"cannot-block-privileged":"You cannot block administrators or global moderators",
"cannot-block-guest":"Guest are not able to block other users",
"already-blocked":"This user is already blocked",
"already-unblocked":"This user is already unblocked",
"no-connection":"There seems to be a problem with your internet connection"
"chat.chatting_with":"الدردشة مع <span id=\"chat-with-name\"></span>",
"chat.chatting_with":"Chatwith",
"chat.placeholder":"أكتب رسالة دردشة هنا، اضغط ENTER للإرسال",
"chat.placeholder":"أكتب رسالة دردشة هنا، اضغط ENTER للإرسال",
"chat.send":"أرسل",
"chat.send":"أرسل",
"chat.no_active":"لا يوجد لديك دردشات نشطة.",
"chat.no_active":"لا يوجد لديك دردشات نشطة.",
@@ -12,6 +12,7 @@
"chat.recent-chats":"آخر الدردشات",
"chat.recent-chats":"آخر الدردشات",
"chat.contacts":"الأصدقاء",
"chat.contacts":"الأصدقاء",
"chat.message-history":"تاريخ الرسائل",
"chat.message-history":"تاريخ الرسائل",
"chat.options":"Chat options",
"chat.pop-out":"افتح الدردشة في نافذة خاصة",
"chat.pop-out":"افتح الدردشة في نافذة خاصة",
"chat.minimize":"Minimize",
"chat.minimize":"Minimize",
"chat.maximize":"تكبير",
"chat.maximize":"تكبير",
@@ -19,8 +20,23 @@
"chat.thirty_days":"30 يومًا",
"chat.thirty_days":"30 يومًا",
"chat.three_months":"3 أشهر",
"chat.three_months":"3 أشهر",
"chat.delete_message_confirm":"هل أنت متأكد من أنك تريد حذف هذه الرسالة؟",
"chat.delete_message_confirm":"هل أنت متأكد من أنك تريد حذف هذه الرسالة؟",
"chat.add-users-to-room":"Add users to room",
"chat.retrieving-users":"Retrieving users...",
"chat.manage-room":"Manage Chat Room",
"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.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.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-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.in-room":"In this room",
"chat.kick":"Kick",
"chat.show-ip":"Show IP",
"chat.owner":"Room Owner",
"chat.system.user-join":"%1 has joined the room",
"chat.system.user-leave":"%1 has left the room",
"chat.system.room-rename":"%2 has renamed this room: %1",
"enter_email":"يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
"enter_email":"يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
"enter_email_address":"ادخل عنوان البريد الإلكتروني",
"enter_email_address":"ادخل عنوان البريد الإلكتروني",
"password_reset_sent":"إعادة تعيين كلمة السر أرسلت",
"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":"بريد إلكتروني غير صالح أو غير موجود",
"invalid_email":"بريد إلكتروني غير صالح أو غير موجود",
"password_too_short":"كلمة المرور التي أدخلتها قصيرة، الرجاء اختر كلمة مرور مختلفة",
"password_too_short":"كلمة المرور التي أدخلتها قصيرة، الرجاء اختر كلمة مرور مختلفة",
"passwords_do_not_match":"كلمتا السر التي أدخلتهما غير متطابقتان",
"passwords_do_not_match":"كلمتا السر التي أدخلتهما غير متطابقتان",
"bookmark_instructions":"اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
"bookmark_instructions":"اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
"flag_title":"إشعار بمشاركة مخلة.",
"flag_title":"إشعار بمشاركة مخلة.",
"merged_message":"This topic has been merged into <a href=\"/topic/%1\">%2</a>",
"deleted_message":"هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
"deleted_message":"هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
"following_topic.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.",
"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.",
@@ -58,7 +64,9 @@
"thread_tools.lock":"أقفل الموضوع",
"thread_tools.lock":"أقفل الموضوع",
"thread_tools.unlock":"إلغاء إقفال الموضوع",
"thread_tools.unlock":"إلغاء إقفال الموضوع",
"thread_tools.move":"نقل الموضوع",
"thread_tools.move":"نقل الموضوع",
"thread_tools.move-posts":"Move Posts",
"thread_tools.move_all":"نقل الكل",
"thread_tools.move_all":"نقل الكل",
"thread_tools.change_owner":"Change Owner",
"thread_tools.select_category":"Select Category",
"thread_tools.select_category":"Select Category",
"thread_tools.fork":"إنشاء فرع الموضوع",
"thread_tools.fork":"إنشاء فرع الموضوع",
"thread_tools.delete":"حذف الموضوع",
"thread_tools.delete":"حذف الموضوع",
@@ -92,6 +100,8 @@
"fork_success":"تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
"fork_success":"تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
"delete_posts_instruction":"Click the posts you want to delete/purge",
"delete_posts_instruction":"Click the posts you want to delete/purge",
"merge_topics_instruction":"Click the topics you want to merge",
"merge_topics_instruction":"Click the topics you want to merge",
"move_posts_instruction":"Click the posts you want to move",
"change_owner_instruction":"Click the posts you want to assign to another user",
"composer.title_placeholder":"أدخل عنوان موضوعك هنا...",
"composer.title_placeholder":"أدخل عنوان موضوعك هنا...",
"composer.handle_placeholder":"اﻹسم",
"composer.handle_placeholder":"اﻹسم",
"composer.discard":"نبذ التغييرات",
"composer.discard":"نبذ التغييرات",
@@ -112,11 +122,18 @@
"sort_by":"ترتيب حسب",
"sort_by":"ترتيب حسب",
"oldest_to_newest":"من الأقدم إلى الأحدث",
"oldest_to_newest":"من الأقدم إلى الأحدث",
"newest_to_oldest":"من الأحدث إلى الأقدم",
"newest_to_oldest":"من الأحدث إلى الأقدم",
"most_votes":"الأكثر تصويتًا",
"most_votes":"Most Votes",
"most_posts":"اﻷكثر رداً",
"most_posts":"Most Posts",
"stale.title":"Create new topic instead?",
"stale.title":"Create new topic instead?",
"stale.warning":"The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?",
"stale.warning":"The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?",
"stale.create":"موضوع جديد",
"stale.create":"موضوع جديد",
"stale.reply_anyway":"الرد على هذا الموضوع ",
"stale.reply_anyway":"الرد على هذا الموضوع ",
"link_back":"رد: [%1](%2)"
"link_back":"رد: [%1](%2)",
"diffs.title":"Post Edit History",
"diffs.description":"This post has <strong>%1</strong> revisions. Click one of the revisions below to see the post content at that point in time.",
"diffs.no-revisions-description":"This post has <strong>%1</strong> revisions.",
"delete_account_confirm":"هل أن متأكد أنك تريد حذف حسابك؟<br /><strong> هذه العملية غير قابلة للإلغاء ولن يكون بالإمكان استعادة بياناتك</strong><br /><br />أدخل اسم المستخدم الخاص بك لتأكيد عملية الحذف",
"delete_account_confirm":"Are you sure you want to 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":"هل انت متأكد من رغبتك بحذف هذا الحساب؟ <br /> <strong>هذا الإجراء لا رجعة فيه ولن تتمكن من استرداد أي بيانات</strong><br /><br />",
"delete_this_account_confirm":"هل انت متأكد من رغبتك بحذف هذا الحساب؟ <br /> <strong>هذا الإجراء لا رجعة فيه ولن تتمكن من استرداد أي بيانات</strong><br /><br />",
"open_links_in_new_tab":"فتح الروابط الخارجية في نافدة جديدة",
"open_links_in_new_tab":"فتح الروابط الخارجية في نافدة جديدة",
"enable_topic_searching":"تفعيل خاصية البحث داخل المواضيع",
"enable_topic_searching":"تفعيل خاصية البحث داخل المواضيع",
"topic_search_help":"إذا قمت بتفعيل ميزة البحث في-الموضوع، سيتم تجاوز الخيار الافتراضي للمتصفح مما يؤدي للبحث بكامل الموضوع بدلا عن البحث في الجزء الظاهر في الشاشة.",
"topic_search_help":"إذا قمت بتفعيل ميزة البحث في-الموضوع، سيتم تجاوز الخيار الافتراضي للمتصفح مما يؤدي للبحث بكامل الموضوع بدلا عن البحث في الجزء الظاهر في الشاشة.",
"delay_image_loading":"تأخير عرض الصور",
"image_load_delay_help":"إذا تم تمكينه، فلن يتم تحميل الصور في المواضيع حتى يتم تمريرها في الشاشة",
"scroll_to_my_post":"بعد اضافة رد على المشاركة, قم بإظهار المشاركة",
"scroll_to_my_post":"بعد اضافة رد على المشاركة, قم بإظهار المشاركة",
"follow_topics_you_reply_to":"متابعة المواضيع التي تقوم بالرد عليها",
"follow_topics_you_reply_to":"متابعة المواضيع التي تقوم بالرد عليها",
"follow_topics_you_create":"متابعة المواضيع التي تقوم بإنشائها",
"follow_topics_you_create":"متابعة المواضيع التي تقوم بإنشائها",
"grouptitle":"عنوان المجموعة",
"grouptitle":"عنوان المجموعة",
"group-order-help":"Select a group and use the arrows to order titles",
"no-group-title":"لا يوجد عنوان للمجموعة",
"no-group-title":"لا يوجد عنوان للمجموعة",
"select-skin":"إختر سمة",
"select-skin":"إختر سمة",
"select-homepage":"إختر الصفحة الرئيسية",
"select-homepage":"إختر الصفحة الرئيسية",
@@ -141,5 +151,26 @@
"info.email-history":"سجل البريد الإلكتروني",
"info.email-history":"سجل البريد الإلكتروني",
"info.moderation-note":"ملاحظة الإشراف",
"info.moderation-note":"ملاحظة الإشراف",
"info.moderation-note.success":"تم حفظ ملاحظة الإشراف",
"info.moderation-note.success":"تم حفظ ملاحظة الإشراف",
"info.moderation-note.add":"إضافة ملاحظة"
"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.",
"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.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.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.",
"mongo.unauthorized":"NodeBB не успя да получи нужните статистики от MongoDB. Моля, уверете се, че потребителят, който се използва от NodeBB, включва ролята „clusterMonitor“ за базата данни „admin“.",
"custom-js.enable":"Включване на персонализирания код на Javascript",
"custom-js.enable":"Включване на персонализирания код на Javascript",
"custom-header":"Персонализирана заглавна част",
"custom-header":"Персонализирана заглавна част",
"custom-header.description":"Въведете своя персонализиран код HTML тук (напр. елементи „meta“ и т.н.), те ще бъдат добавени към секцията <code><head></code> в кода на Вашия форум. Ползването на елементи „script“ е позволено, но непрепоръчително, тъй като за това можете да ползвате раздела <a href=\"#custom-header\" data-toggle=\"tab\">Персонализиран код на Javascript</a>.",
"custom-header.description":"Въведете своя персонализиран код HTML тук (напр. елементи „meta“ и т.н.), те ще бъдат добавени към секцията <code><head></code> в кода на Вашия форум. Ползването на елементи „script“ е позволено, но непрепоръчително, тъй като за това можете да ползвате раздела <a href=\"#custom-js\" data-toggle=\"tab\">Персонализиран код на Javascript</a>.",
"custom-header.enable":"Включване на персонализирана заглавна част",
"custom-header.enable":"Включване на персонализирана заглавна част",
"custom-css.livereload":"Включване на моменталното презареждане",
"custom-css.livereload":"Включване на моменталното презареждане",
"plugin-search-placeholder":"Търсене на добавка…",
"plugin-search-placeholder":"Търсене на добавка…",
"submit-anonymous-usage":"Изпращане на анонимни данни за употребата на добавката",
"reorder-plugins":"Пренареждане на добавките",
"reorder-plugins":"Пренареждане на добавките",
"order-active":"Подреждане на включените добавки",
"order-active":"Подреждане на включените добавки",
"dev-interested":"Искате ли да пишете добавки за NodeBB?",
"dev-interested":"Искате ли да пишете добавки за NodeBB?",
@@ -29,6 +30,8 @@
"plugin-item.more-info":"За повече информация",
"plugin-item.more-info":"За повече информация",
"plugin-item.unknown":"Неизвестно",
"plugin-item.unknown":"Неизвестно",
"plugin-item.unknown-explanation":"Състоянието на тази добавка не може да бъде определено, може би поради грешка в конфигурацията.",
"plugin-item.unknown-explanation":"Състоянието на тази добавка не може да бъде определено, може би поради грешка в конфигурацията.",
"plugin-item.compatible":"Тази добавка работи с NodeBB %1",
"plugin-item.not-compatible":"Тази добавка няма информация за съвместимост. Уверете се, че работи, преди да я инсталирате на истинския си сървър.",
"alert.enabled":"Добавката е включена",
"alert.enabled":"Добавката е включена",
"alert.disabled":"Добавката е изключена",
"alert.disabled":"Добавката е изключена",
@@ -37,13 +40,15 @@
"alert.uninstalled":"Добавката е деинсталирана",
"alert.uninstalled":"Добавката е деинсталирана",
"alert.activate-success":"Моля, рестартирайте NodeBB, за да включите тази добавка напълно.",
"alert.activate-success":"Моля, рестартирайте NodeBB, за да включите тази добавка напълно.",
"alert.deactivate-success":"Добавката е изключена успешно.",
"alert.deactivate-success":"Добавката е изключена успешно.",
"alert.upgrade-success":"Моля, презаредете NodeBB, за да обновите тази добавка напълно.",
"alert.upgrade-success":"Моля, изградете повторно и презаредете NodeBB, за да обновите тази добавка напълно.",
"alert.install-success":"Добавката е инсталирана успешно, моля, включете я",
"alert.install-success":"Добавката е инсталирана успешно, моля, включете я",
"alert.uninstall-success":"Добавката беше изключена и деинсталирана успешно.",
"alert.uninstall-success":"Добавката беше изключена и деинсталирана успешно.",
"alert.suggest-error":"<p>NodeBB не може да се свърже с пакетния мениджър. Искате ли да продължите с инсталацията на най-новата версия?</p><div class=\"alert alert-danger\"><strong>Сървърът върна (%1)</strong>: %2</div>",
"alert.suggest-error":"<p>NodeBB не може да се свърже с пакетния мениджър. Искате ли да продължите с инсталацията на най-новата версия?</p><div class=\"alert alert-danger\"><strong>Сървърът върна (%1)</strong>: %2</div>",
"alert.package-manager-unreachable":"<p>NodeBB не може да се свърже с пакетния мениджър. Несе препоръчва обновяване в момента.</p>",
"alert.package-manager-unreachable":"<p>NodeBB не може да се свърже с пакетния мениджър. Несе препоръчва обновяване в момента.</p>",
"alert.incompatible":"<p>Вашата версия на NodeBB (версия %1) може да използва най-много версия %2 на тази добавка. Моля, обновете NodeBB, ако искате да инсталирате по-нова версия на тази добавка.</p>",
"alert.incompatible":"<p>Вашата версия на NodeBB (версия %1) може да използва най-много версия %2 на тази добавка. Моля, обновете NodeBB, ако искате да инсталирате по-нова версия на тази добавка.</p>",
"alert.possibly-incompatible":"<div class=\"alert alert-warning\"><p><strong>Няма информация за съвместимостта</strong></p><p>Тази добавка не е посочила конкретна версия за инсталация, съвместима с Вашата версия на NodeBB. Не можем да гарантираме пълна съвместимост и има възможност Вашият NodeBB да не може да стартира правилно.</p></div><p>Ако NodeBB не може да стартира, използвайте следната команда:</p><pre><code>$ ./nodebb reset plugin=\"%1\"</code></pre><p>Искате ли да продължите с инсталацията на най-новата версия на тази добавка?</p>",
"alert.possibly-incompatible":"<div class=\"alert alert-warning\"><p><strong>Няма информация за съвместимостта</strong></p><p>Тази добавка не е посочила конкретна версия за инсталация, съвместима с Вашата версия на NodeBB. Не можем да гарантираме пълна съвместимост и има възможност Вашият NodeBB да не може да стартира правилно.</p></div><p>Ако NodeBB не може да стартира, използвайте следната команда:</p><pre><code>$ ./nodebb reset plugin=\"%1\"</code></pre><p>Искате ли да продължите с инсталацията на най-новата версия на тази добавка?</p>",
"alert.reorder":"Добавките са пренаредени",
"alert.reorder-success":"Моля, изградете повторно и рестартирайте NodeBB, за да завърши този процес напълно.",
"license.title":"Информация за лиценза на добавката",
"license.title":"Информация за лиценза на добавката",
"license.intro":"Добавката „<strong>%1</strong>“ използва лиценза „%2“. Моля, прочетете условията на лиценза и се уверете, че ги разбирате, преди да включите добавката.",
"license.intro":"Добавката „<strong>%1</strong>“ използва лиценза „%2“. Моля, прочетете условията на лиценза и се уверете, че ги разбирате, преди да включите добавката.",
"page-views-custom-help":"Въведете интервал от дати, за които искате да видите преглежданията на страниците. Ако не се появи календар за избор, можете да въведете датите във формат: <code>ГГГГ-ММ-ДД</code>",
"page-views-custom-help":"Въведете интервал от дати, за които искате да видите преглежданията на страниците. Ако не се появи календар за избор, можете да въведете датите във формат: <code>ГГГГ-ММ-ДД</code>",
"page-views-custom-error":"Моля, въведете правилен интервал от дати във формата: <code>ГГГГ-ММ-ДД</code>",
"page-views-custom-error":"Моля, въведете правилен интервал от дати във формата: <code>ГГГГ-ММ-ДД</code>",
"stats.day":"Ден",
"stats.yesterday":"Вчера",
"stats.week":"Седмица",
"stats.today":"Днес",
"stats.month":"Месец",
"stats.last-week":"Миналата седмица",
"stats.this-week":"Тази седмица",
"stats.last-month":"Миналия месец",
"stats.this-month":"Този месец",
"stats.all":"От началото",
"stats.all":"От началото",
"updates":"Обновления",
"updates":"Обновления",
"running-version":"Вие използвате <strong>NodeBB версия <span id=\"version\">%1</span></strong>.",
"running-version":"Вие използвате <strong>NodeBB версия <span id=\"version\">%1</span></strong>.",
"keep-updated":"Стремете се винаги да използвате най-новата версия на NodeBB, за да се възползвате от последните подобрения на сигурността и поправки на проблеми.",
"keep-updated":"Стремете се винаги да използвате най-новата версия на NodeBB, за да се възползвате от последните подобрения на сигурността и поправки на проблеми.",
"upgrade-available":"<p>Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\">обновете NodeBB</a>.</p>",
"upgrade-available":"<p>Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>",
"prerelease-upgrade-available":"<p>Това е остаряла предварителна версия на NodeBB. Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\">обновете 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>",
"prerelease-warning":"<p>Това е версия за <strong>предварителен преглед</strong> на NodeBB. Възможно е да има неочаквани неизправности. <i class=\"fa fa-exclamation-triangle\"></i></p>",
"running-in-development":"<span>Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.</span>",
"running-in-development":"<span>Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.</span>",
"latest-lookup-failed":"<p>Не може да бъде извършена проверка за последната налична версия на NodeBB</p>",
"search-plugin-tooltip":"Инсталирайте добавка за търсене от страницата с добавките, за да включите функционалността за търсене",
"search-plugin-tooltip":"Инсталирайте добавка за търсене от страницата с добавките, за да включите функционалността за търсене",
"control-panel":"Системен контрол",
"control-panel":"Системен контрол",
"reload":"Презареждане",
"rebuild-and-restart":"Повторно изграждане и рестартиране",
"restart":"Рестартиране",
"restart":"Рестартиране",
"restart-warning":"Презареждането и рестартирането на NodeBB ще прекъсне всички връзки за няколко секунди.",
"restart-warning":"Повторното изграждане и рестартирането на NodeBB ще прекъснат всички връзки за няколко секунди.",
"restart-disabled":"Възможностите за повторно изграждане и рестартиране на NodeBB са изключени, тъй като изглежда, че NodeBB не се изпълнява чрез подходящия демон.",
"maintenance-mode":"Режим на профилактика",
"maintenance-mode":"Режим на профилактика",
"maintenance-mode-title":"Щракнете тук, за да зададете режим на профилактика на NodeBB",
"maintenance-mode-title":"Щракнете тук, за да зададете режим на профилактика на NodeBB",
"realtime-chart-updates":"Актуализации на таблиците в реално време",
"realtime-chart-updates":"Актуализации на таблиците в реално време",
@@ -63,7 +68,12 @@
"high-presence-topics":"Теми с най-голяма присъственост",
"high-presence-topics":"Теми с най-голяма присъственост",
"graphs.page-views":"Преглеждания на страниците",
"graphs.page-views":"Преглеждания на страниците",
"graphs.page-views-registered":"Преглеждания на страниците от регистрирани потребители",
"graphs.page-views-guest":"Преглеждания на страниците от гости",
"graphs.page-views-bot":"Преглеждания на страниците от ботове",
"optional-clone-settings":"(Незадължително) Копиране на настройките от категория",
"optional-clone-settings":"(Незадължително) Копиране на настройките от категория",
"clone-children":"Клониране на дъщерните категории и настройки",
"purge":"Изтриване на категорията",
"purge":"Изтриване на категорията",
"enable":"Включване",
"enable":"Включване",
@@ -28,11 +30,13 @@
"select-category":"Изберете категория",
"select-category":"Изберете категория",
"set-parent-category":"Задайте базова категория",
"set-parent-category":"Задайте базова категория",
"privileges.description":"В тази секция можете да настроите правомощията за достъп до тази категория. Правомощията могат да бъдат давани на отделни потребители или на цели групи. Можете да добавите нов потребител в тази таблица като го потърсите чрез формуляра по-долу.",
"privileges.description":"В тази секция можете да настроите правомощията за достъп до различните части на уеб сайта Правомощията могат да бъдат давани на отделни потребители или на цели групи. Изберете обхвата на приложение от падащото меню по-долу.",
"privileges.category-selector":"Настройване на правомощията за ",
"privileges.warning":"<strong>Забележка</strong>: Настройките за правомощията влизат в сила моментално. Нее нужно да запазвате категорията след като промените тези настройки.",
"privileges.warning":"<strong>Забележка</strong>: Настройките за правомощията влизат в сила моментално. Нее нужно да запазвате категорията след като промените тези настройки.",
"privileges.section-viewing":"Правомощия за преглед",
"privileges.section-viewing":"Правомощия за преглед",
"privileges.section-posting":"Правомощия за публикуване",
"privileges.section-posting":"Правомощия за публикуване",
"privileges.section-moderation":"Правомощия за модериране",
"privileges.section-moderation":"Правомощия за модериране",
"privileges.section-other":"Други",
"privileges.section-user":"Потребител",
"privileges.section-user":"Потребител",
"privileges.search-user":"Добавяне на потребител",
"privileges.search-user":"Добавяне на потребител",
"privileges.no-users":"В тази категория няма правомощия за отделни потребители.",
"privileges.no-users":"В тази категория няма правомощия за отделни потребители.",
@@ -41,7 +45,12 @@
"privileges.search-group":"Добавяне на група",
"privileges.search-group":"Добавяне на група",
"privileges.copy-to-children":"Копиране в наследниците",
"privileges.copy-to-children":"Копиране в наследниците",
"privileges.copy-from-category":"Копиране от категория",
"privileges.copy-from-category":"Копиране от категория",
"privileges.copy-privileges-to-all-categories":"Копиране във всички категории",
"privileges.copy-group-privileges-to-children":"Копиране на правомощията на тази група в поделементите на тази категория.",
"privileges.copy-group-privileges-to-all-categories":"Копиране на правомощията на тази група във всички категории.",
"privileges.copy-group-privileges-from":"Копиране на правомощията на тази група от друга категория.",
"privileges.inherit":"Ако групата на <code>регистрираните потребители</code> получи дадено правомощие, всички останали групи го получават като <strong>подразбиращо се правомощие</strong>, дори то да не им е специално дадено. Вие виждате това подразбиращо се правомощие, защото всички потребители са членове на групата на <code>регистрираните потребители</code>, така че няма нужда да се дават едни и същи правомощия на още групи.",
"privileges.inherit":"Ако групата на <code>регистрираните потребители</code> получи дадено правомощие, всички останали групи го получават като <strong>подразбиращо се правомощие</strong>, дори то да не им е специално дадено. Вие виждате това подразбиращо се правомощие, защото всички потребители са членове на групата на <code>регистрираните потребители</code>, така че няма нужда да се дават едни и същи правомощия на още групи.",
"privileges.copy-success":"Правомощията са копирани!",
"analytics.back":"Назад към списъка с категориите",
"analytics.back":"Назад към списъка с категориите",
"analytics.title":"Аналитични данни за категорията „%1“",
"analytics.title":"Аналитични данни за категорията „%1“",
@@ -65,5 +74,8 @@
"alert.find-user":"Търсене на потребител",
"alert.find-user":"Търсене на потребител",
"alert.user-search":"Потърсете потребител тук…",
"alert.user-search":"Потърсете потребител тук…",
"alert.find-group":"Търсене на група",
"alert.find-group":"Търсене на група",
"alert.group-search":"Потърсете група тук…"
"alert.group-search":"Потърсете група тук…",
"collapse-all":"Свиване на всички",
"expand-all":"Разгъване на всички",
"disable-on-create":"Изключване при създаване"
}
}
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.