* 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
2019-01-19 14:49:22 -05:00
2256 changed files with 40487 additions and 40374 deletions
"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.",
"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":"تفعيل إعادة التحميل المباشرة",
"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>",
"optional-clone-settings":"(Optional) Clone Settings From Category",
"optional-clone-settings":"(Optional) Clone Settings From Category",
"clone-children":"Clone Children Categories And Settings",
"clone-children":"Clone Children Categories And Settings",
@@ -29,12 +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. Select the domain of effect from the dropdown 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.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.",
@@ -43,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",
"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",
"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>"
"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",
"private-extensions":"File extensions to make private",
"private-extensions":"File extensions to make private",
"private-uploads-extensions-help":"Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
"private-uploads-extensions-help":"Enter comma-separated list of file extensions to make private here (e.g. <code>pdf,xls,doc</code>). An empty list means all files are private.",
"resize-image-width-threshold":"Resize images if they are wider than specified width",
"resize-image-width-threshold":"Resize images if they are wider than specified width",
"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> هذا الخيار يعمل فقط عند تحديد خيار \"بالدعوات فقط\"",
"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":"هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.",
"enter_email":"يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
"enter_email":"يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
"enter_email_address":"ادخل عنوان البريد الإلكتروني",
"enter_email_address":"ادخل عنوان البريد الإلكتروني",
"password_reset_sent":"A password reset email has been sent to the specified address. Please note that only one email will be sent per minute.",
"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":"كلمتا السر التي أدخلتهما غير متطابقتان",
"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":"Включване на моменталното презареждане",
"page-views-custom-help":"Въведете интервал от дати, за които искате да видите преглежданията на страниците. Ако не се появи календар за избор, можете да въведете датите във формат: <code>ГГГГ-ММ-ДД</code>",
"page-views-custom-help":"Въведете интервал от дати, за които искате да видите преглежданията на страниците. Ако не се появи календар за избор, можете да въведете датите във формат: <code>ГГГГ-ММ-ДД</code>",
"page-views-custom-error":"Моля, въведете правилен интервал от дати във формата: <code>ГГГГ-ММ-ДД</code>",
"page-views-custom-error":"Моля, въведете правилен интервал от дати във формата: <code>ГГГГ-ММ-ДД</code>",
"optional-clone-settings":"(Незадължително) Копиране на настройките от категория",
"optional-clone-settings":"(Незадължително) Копиране на настройките от категория",
"clone-children":"Клониране на дъщерните категории и настройки",
"clone-children":"Клониране на дъщерните категории и настройки",
@@ -29,12 +30,13 @@
"select-category":"Изберете категория",
"select-category":"Изберете категория",
"set-parent-category":"Задайте базова категория",
"set-parent-category":"Задайте базова категория",
"privileges.description":"В тази секция можете да настроите правомощията за достъп до тази категория. Правомощията могат да бъдат давани на отделни потребители или на цели групи. Изберете обхвата на приложение от падащото меню по-долу.",
"privileges.description":"В тази секция можете да настроите правомощията за достъп до различните части на уеб сайта Правомощията могат да бъдат давани на отделни потребители или на цели групи. Изберете обхвата на приложение от падащото меню по-долу.",
"privileges.category-selector":"Настройване на правомощията за ",
"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":"В тази категория няма правомощия за отделни потребители.",
@@ -43,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“",
"lead":"По-долу са показани статистики и времена за разпращането на резюмета.",
"disclaimer":"Имайте предвид, че при доставката на е-поща няма гаранции, поради същността на технологията за е-пощата. Много неща влияят на това дали едно изпратено е-писмо настина достига до получателя си, като: репутация на сървъра, блокирани IP адреси или това дали е настроено DKIM/SPF/DMARC.",
"disclaimer-continued":"Успешната доставка означава, че съобщението е изпратено успешно от NodeBB и потвърдено от сървъра на получателя. Това не означава, че писмото е достигнало до входящата кутия на получателя. За да имате по-добри резултати, препоръчвам използването на специализирана услуга за изпращане на е-писма, като <a href=\"https://sendgrid.com/why-sendgrid/\">SendGrid</a>.",
"user":"Потребител",
"subscription":"Вид на абонамента",
"last-delivery":"Последна успешна доставка",
"default":"По подразбиране за системата",
"default-help":"<em>По подразбиране за системата</em> означава, че потребителят не е избрал ръчно друга настройка за глобалния форум за резюметата, която в момента е;„%1</strong>“",
"resend":"Повторно изпращане на резюмето",
"resend-all-confirm":"Наистина ли искате да предизвикате ръчно изпращането на резюмето?",
"resent-single":"Ръчното повторно разпращане на резюмето е завършено",
"resent-day":"Дневното резюме беше изпратено повторно",
"resent-week":"Седмичното резюме беше изпратено повторно",
"resent-month":"Месечното резюме беше изпратено повторно",
"description":"Няма публикации в опашката. <br> За да включите тази функционалност, идете в <a href=\"%1\">Настройки → Публикуване → Ограничения за публикуването</a> и включете <strong>Опашката за публикации</strong>.",
"description":"Няма публикации в опашката. <br> За да включите тази функционалност, идете в <a href=\"%1\">Настройки → Публикуване → Опашка за публикации</a> и включете <strong>Опашката за публикации</strong>.",
"send-validation-email":"Изпращане на е-писмо за потвърждение",
"send-validation-email":"Изпращане на е-писмо за потвърждение",
"password-reset-email":"Изпращане на е-писмо за възстановяване на паролата",
"password-reset-email":"Изпращане на е-писмо за възстановяване на паролата",
"force-password-reset":"Принудително подновяване на паролата и отписване на потребителя",
"ban":"Блокиране на потребителя/ите",
"ban":"Блокиране на потребителя/ите",
"temp-ban":"Блокиране на потребителя/ите временно",
"temp-ban":"Блокиране на потребителя/ите временно",
"unban":"Деблокиране на потребителя/ите",
"unban":"Деблокиране на потребителя/ите",
@@ -14,6 +15,8 @@
"delete":"Изтриване на потребителя/ите",
"delete":"Изтриване на потребителя/ите",
"purge":"Изтриване на потребителя/ите и съдържанието",
"purge":"Изтриване на потребителя/ите и съдържанието",
"download-csv":"Сваляне във формат „CSV“",
"download-csv":"Сваляне във формат „CSV“",
"manage-groups":"Управление на групите",
"add-group":"Добавяне на група",
"invite":"Покана",
"invite":"Покана",
"new":"Нов потребител",
"new":"Нов потребител",
@@ -27,6 +30,11 @@
"pills.banned":"Блокиран",
"pills.banned":"Блокиран",
"pills.search":"Търсене на потребители",
"pills.search":"Търсене на потребители",
"50-per-page":"50 на страница",
"100-per-page":"100 на страница",
"250-per-page":"250 на страница",
"500-per-page":"500 на страница",
"search.uid":"По потребителски идентификатор",
"search.uid":"По потребителски идентификатор",
"search.uid-placeholder":"Въведете потребителски идентификатор, който да потърсите",
"search.uid-placeholder":"Въведете потребителски идентификатор, който да потърсите",
"search.username":"По име на потребител",
"search.username":"По име на потребител",
@@ -81,7 +89,9 @@
"alerts.confirm-remove-moderator":"Наистина ли искате да премахнете този модератор?",
"alerts.confirm-remove-moderator":"Наистина ли искате да премахнете този модератор?",
"alerts.remove-moderator-success":"Потребителят вече няма да бъде модератор.",
"alerts.remove-moderator-success":"Потребителят вече няма да бъде модератор.",
"alerts.confirm-validate-email":"Искате ли да проверите е-пощата/ите на този/тези потребител(и)?",
"alerts.confirm-validate-email":"Искате ли да проверите е-пощата/ите на този/тези потребител(и)?",
"alerts.confirm-force-password-reset":"Наистина ли искате принудително да подновите паролата и да отпишете потребителя или потребителите?",
"alerts.validate-email-success":"Е-пощите са проверени",
"alerts.validate-email-success":"Е-пощите са проверени",
"alerts.validate-force-password-reset-success":"Паролата на потребителя (или паролите на потребителите) беше подновена и сесията му беше прекратена.",
"alerts.password-reset-confirm":"Искате ли да изпратите е-писмо/а за възстановяване на паролата на този/тези потребител(и)?",
"alerts.password-reset-confirm":"Искате ли да изпратите е-писмо/а за възстановяване на паролата на този/тези потребител(и)?",
"alerts.confirm-delete":"<b>ВНИМАНИЕ!</b><br/>Наистина ли искате да изтриете потребителя/ите?<br/> Това действие е необратимо! Ще бъде изтрит само профилът на потребителя/ите, неговите/техните публикациите и теми ще останат.",
"alerts.confirm-delete":"<b>ВНИМАНИЕ!</b><br/>Наистина ли искате да изтриете потребителя/ите?<br/> Това действие е необратимо! Ще бъде изтрит само профилът на потребителя/ите, неговите/техните публикациите и теми ще останат.",
"maintenance-mode.help":"Когато форумът е в режим на профилактика, всички заявки ще бъдат пренасочвани към статична страница за изчакване, с изключение на администраторите, които ще могат да използват уеб сайта нормално.",
"maintenance-mode.help":"Когато форумът е в режим на профилактика, всички заявки ще бъдат пренасочвани към статична страница за изчакване, с изключение на администраторите, които ще могат да използват уеб сайта нормално.",
"maintenance-mode.status":"Код на състоянието за режима на профилактика",
"maintenance-mode.message":"Съобщение за профилактиката",
"maintenance-mode.message":"Съобщение за профилактиката",
"headers":"Заглавни части",
"headers":"Заглавни части",
"headers.allow-from":"Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
"headers.allow-from":"Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
"max-length":"Максимална дължина на съобщенията в разговорите",
"max-length":"Максимална дължина на съобщенията в разговорите",
"max-room-size":"Максимален брой потребители в стая за разговор",
"max-room-size":"Максимален брой потребители в стая за разговор",
"delay":"Време между съобщеният в разговорите (в милисекунди)",
"delay":"Време между съобщеният в разговорите (в милисекунди)",
"restrictions.seconds-edit-after":"Брой секунди, в които потребителите не могат да редактират съобщенията си в разговорите след публикуването им. (0 = изключено)",
"restrictions.seconds-edit-after":"Брой секунди, през които съобщенията в разговор могат да бъдат редактирани. (0 = изключено)",
"restrictions.seconds-delete-after":"Брой секунди, в които потребителите не могат да изтрият съобщенията си в разговорите след публикуването им. (0 = изключено)"
"restrictions.seconds-delete-after":"Брой секунди, през които съобщенията в разговор могат да бъдат изтривани. (0 = изключено)"
"address-help":"Следният адрес на е-поща е този, който получателят ще види в полетата „От“ и “Отговор до“.",
"address-help":"Следният адрес на е-поща е този, който получателят ще види в полетата „От“ и “Отговор до“.",
"from":"Име за полето „От“",
"from":"Име за полето „От“",
"from-help":"Името на изпращача, което да бъде показано в е-писмото.",
"from-help":"Името на изпращача, което да бъде показано в е-писмото.",
"sendmail-rate-limit":"Изпращане на <em>X</em> е-писма…",
"sendmail-rate-delta":"…на всеки <em>X</em> милисекунди",
"sendmail-rate-help":"Задава на програмата за изпращане на е-писма на NodeBB да ограничи броя едновременно изпращани съобщения, за да не се претоварват пощенските сървъри. Тези настройки не се вземат предвид, ако е включена настройката „Транспорт чрез SMTP“ (по-долу).",
"smtp-transport":"Транспорт чрез SMTP",
"smtp-transport":"Транспорт чрез SMTP",
"smtp-transport.enabled":"Използване на външен сървър за е-поща за изпращане на е-писма",
"smtp-transport.enabled":"Използване на външен сървър за е-поща за изпращане на е-писма",
@@ -30,8 +33,8 @@
"testing.select":"Изберете шаблон за е-писма",
"testing.select":"Изберете шаблон за е-писма",
"testing.send":"Изпращане на пробно е-писмо",
"testing.send":"Изпращане на пробно е-писмо",
"testing.send-help":"Пробното е-писмо ще бъде изпратено до е-пощата на текущо вписания потребител.",
"testing.send-help":"Пробното е-писмо ще бъде изпратено до е-пощата на текущо вписания потребител.",
"subscriptions":"Абонаменти зае-писма",
"subscriptions":"Резюмета пое-поща",
"subscriptions.disable":"Изключване на известията по е-поща за абонати",
"subscriptions.disable":"Изключване на резюметата по е-пощата",
"subscriptions.hour":"Време за разпращане",
"subscriptions.hour":"Време за разпращане",
"subscriptions.hour-help":"Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>"
"subscriptions.hour-help":"Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>"
"private-groups.help":"Ако е включено, присъединяването към групи ще изисква одобрение от собственик на групата. <em>(По подразбиране: включено)</em>",
"private-groups.help":"Ако е включено, присъединяването към групи ще изисква одобрение от собственик на групата. <em>(По подразбиране: включено)</em>",
"private-groups.warning":"<strong>Внимание!</strong> Ако това е изключено и имате частни групи, те автоматично ще станат публични.",
"private-groups.warning":"<strong>Внимание!</strong> Ако това е изключено и имате частни групи, те автоматично ще станат публични.",
"allow-creation":"Позволяване на създаването на групи",
"allow-creation-help":"Ако е включено, потребителите ще могат да създават групи. <em>(По подразбиране: изключено)</em>",
"allow-multiple-badges-help":"Това може да се използва, за да позволи на потребителите да избират множество значки за групите. Изисква поддържа на теми.",
"allow-multiple-badges-help":"Това може да се използва, за да позволи на потребителите да избират множество значки за групите. Изисква поддържа на теми.",
"max-name-length":"Минимална дължина на името на група",
"max-name-length":"Минимална дължина на името на група",
"max-title-length":"Максимална дължина на заглавието на група",
"cover-image":"Изображение на корицата за групата",
"cover-image":"Изображение на корицата за групата",
"default-cover":"Стандартни изображения на корицата",
"default-cover":"Стандартни изображения на корицата",
"default-cover-help":"Добавете стандартни изображения на корицата (разделени със запетаи) за групите, които нямат качено такова."
"default-cover-help":"Добавете стандартни изображения на корицата (разделени със запетаи) за групите, които нямат качено такова."
"sorting.most-posts":"Първо тези с най-много публикации",
"sorting.most-posts":"Първо тези с най-много публикации",
"sorting.topic-default":"Подредба по подразбиране на темите",
"sorting.topic-default":"Подредба по подразбиране на темите",
"length":"Дължина на публикациите",
"length":"Дължина на публикациите",
"post-queue":"Опашка за публикации",
"restrictions":"Ограничения за публикуването",
"restrictions":"Ограничения за публикуването",
"restrictions-new":"Ограничения за новите потребители",
"restrictions-new":"Ограничения за новите потребители",
"restrictions.post-queue":"Включване на опашката за публикации",
"restrictions.post-queue":"Включване на опашката за публикации",
"restrictions.post-queue-rep-threshold":"Нужна репутация за пропускане на опашката за публикации",
"restrictions.groups-exempt-from-post-queue":"Избиране на групи, които да пропускат опашката за публикации",
"restrictions-new.post-queue":"Включване на ограниченията за новите потребители",
"restrictions-new.post-queue":"Включване на ограниченията за новите потребители",
"restrictions.post-queue-help":"Ако опашката за публикации е включена, публикациите на новите потребители ще бъдат добавяни в опашка за одобрение.",
"restrictions.post-queue-help":"Ако опашката за публикации е включена, публикациите на новите потребители ще бъдат добавяни в опашка за одобрение",
"restrictions-new.post-queue-help":"Ако ограниченията за новите потребители са включени, това ще зададе някои ограничения за публикациите създадени от новите потребители.",
"restrictions-new.post-queue-help":"Ако ограниченията за новите потребители са включени, това ще зададе някои ограничения за публикациите създадени от новите потребители",
"restrictions.seconds-between":"Брой секунди между публикациите",
"restrictions.seconds-between":"Брой секунди между публикациите",
"restrictions.seconds-between-new":"Брой секунди между публикациите за нови потребители",
"restrictions.seconds-between-new":"Брой секунди между публикациите за нови потребители",
"restrictions.rep-threshold":"Необходима репутация за премахване на това ограничение",
"restrictions.rep-threshold":"Необходима репутация за премахване на това ограничение",
"restrictions.seconds-defore-new":"Брой секунди преди новите потребители да могат да публикуват",
"restrictions.seconds-before-new":"Брой секунди преди новите потребители да могат да публикуват за пръв път",
"restrictions.seconds-edit-after":"Брой секунди, в които потребителите не могат да редактират публикациите си след публикуването им. (0 = изключено)",
"restrictions.seconds-edit-after":"Брой секунди, през които публикациите могат да бъдат редактирани. (0 = изключено)",
"restrictions.seconds-delete-after":"Брой секунди, в които потребителите не могат да изтрият публикациите си след публикуването им. (0 = изключено)",
"restrictions.seconds-delete-after":"Брой секунди, през които публикациите могат да бъдат изтрити. (0 = изключено)",
"restrictions.replies-no-delete":"Брой отговори, след които потребителите вече не могат да изтриват собствените си теми. (0 = изключено)",
"restrictions.replies-no-delete":"Брой отговори, след които потребителите вече не могат да изтриват собствените си теми. (0 = изключено)",
"restrictions.min-title-length":"Минимална дължина на заглавието",
"restrictions.min-title-length":"Минимална дължина на заглавието",
"restrictions.max-title-length":"Максимална дължина на заглавието",
"restrictions.max-title-length":"Максимална дължина на заглавието",
@@ -29,6 +32,8 @@
"timestamp":"Време",
"timestamp":"Време",
"timestamp.cut-off":"Използване на дата след (в брой дни)",
"timestamp.cut-off":"Използване на дата след (в брой дни)",
"timestamp.cut-off-help":"Датите и времената ще бъдат показвани относително (напр. „преди 3 часа“ или „преди 5 дни“), и преведени на множество\n\\t\\t\\t\\t\\tезици. След определено време, този текст ще започне да показва самите дата и час, според езика на потребителя\n\\t\\t\\t\\t\\t(напр. „5 ноември 2016 15:30“).<br /><em>(По подразбиране: <code>30</code>, тоест един месец). Ако зададете 0, винаги ще се изписват дати, а ако оставите полето празно, времето ще бъде винаги относително.</em>",
"timestamp.cut-off-help":"Датите и времената ще бъдат показвани относително (напр. „преди 3 часа“ или „преди 5 дни“), и преведени на множество\n\\t\\t\\t\\t\\tезици. След определено време, този текст ще започне да показва самите дата и час, според езика на потребителя\n\\t\\t\\t\\t\\t(напр. „5 ноември 2016 15:30“).<br /><em>(По подразбиране: <code>30</code>, тоест един месец). Ако зададете 0, винаги ще се изписват дати, а ако оставите полето празно, времето ще бъде винаги относително.</em>",
"timestamp.necro-threshold":"Мъртва граница (в дни)",
"timestamp.necro-threshold-help":"Между публикациите ще бъде показано съобщение, ако времето между тях е по-дълго от мъртвата граница. (По подразбиране: <code>7</code>, или една седмица). Задайте 0 за изключване.</em>",
"teaser":"Представителна публикация",
"teaser":"Представителна публикация",
"teaser.last-post":"Последната – Показване на последната публикация, или първоначалната такава, ако няма отговори.",
"teaser.last-post":"Последната – Показване на последната публикация, или първоначалната такава, ако няма отговори.",
"teaser.last-reply":"Последната – Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
"teaser.last-reply":"Последната – Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
"allow-files":"Позволяване на потребителите да качват обикновени файлове",
"allow-files":"Позволяване на потребителите да качват обикновени файлове",
"private":"Качените файлове да бъдат частни",
"private":"Качените файлове да бъдат частни",
"strip-exif-data":"Премахване на данните EXIF",
"private-extensions":"Файлови разширения, които да бъдат частни",
"private-extensions":"Файлови разширения, които да бъдат частни",
"private-uploads-extensions-help":"Въведете списък от файлови разширения, разделени със запетаи, които искате да бъдат частни (например <code>pdf,xls,doc</code>). Ако оставите това поле празно, всички файлове ще бъдат частни.",
"private-uploads-extensions-help":"Въведете списък от файлови разширения, разделени със запетаи, които искате да бъдат частни (например <code>pdf,xls,doc</code>). Ако оставите това поле празно, всички файлове ще бъдат частни.",
"resize-image-width-threshold":"Преоразмеряване на изображенията, ако са по-широки от определената ширина",
"resize-image-width-threshold":"Преоразмеряване на изображенията, ако са по-широки от определената ширина",
"disable-email-changes":"Забраняване на промяната на е-пощата",
"disable-email-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":"Теми",
@@ -35,13 +34,15 @@
"online-cutoff-help":"Ако потребителят не извършва никакви действия през този период, ще бъде смятан за неактивен и няма да получава известия в реално време.",
"online-cutoff-help":"Ако потребителят не извършва никакви действия през този период, ще бъде смятан за неактивен и няма да получава известия в реално време.",
"registration":"Регистриране на потребителите",
"registration":"Регистриране на потребителите",
"registration-type":"Вид регистриране",
"registration-type":"Вид регистриране",
"registration-approval-type":"Вид одобрение на регистрацията",
"registration-type.normal":"Обикновено",
"registration-type.normal":"Обикновено",
"registration-type.admin-approval":"Одобрена от администратор",
"registration-type.admin-approval":"Одобрена от администратор",
"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":"Обикновена— Потребителите могат да се регистрират от страницата /register.<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":"Обикновена— Потребителите могат да се регистрират от страницата /register.<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-approval-type.help":"Обикновена — Потребителите се регистрират на момента.<br/>\nОдобрена от администратор — Потребителските регистрации се поставят в <a href=\"%1/admin/manage/registration\">опашка за одобрение</a>, която администраторите преглеждат.<br/>\nОдобрена от администратор по IP адрес — Новите потребители се регистрират по обикновения начин, а онези, от чиито IP адрес вече сасе регистрирали други акаунти, се нуждаят от одобрението на администратор.<br/>",
"registration.max-invites":"Максимален брой покани на потребител",
"registration.max-invites":"Максимален брой покани на потребител",
"max-invites":"Максимален брой покани на потребител",
"max-invites":"Максимален брой покани на потребител",
"max-invites-help":"0 = няма ограничение. Администраторите могат да разпращат неограничен брой покани.<br>Тази стойност се използва, само ако е избран режимът „Само с покана“.",
"max-invites-help":"0 = няма ограничение. Администраторите могат да разпращат неограничен брой покани.<br>Тази стойност се използва, само ако е избран режимът „Само с покана“.",
"welcome.cta":"Натиснете тук, за да потвърдите своята е-поща.",
"welcome.cta":"Натиснете тук, за да потвърдите своята е-поща.",
"invitation.text1":"%1 Ви покани да се присъедините към %2",
"invitation.text1":"%1 Ви покани да се присъедините към %2",
"invitation.text2":"Поканата Ви ще изтече след %1 дни.",
"invitation.text2":"Поканата Ви ще изтече след %1 дни.",
"invitation.ctr":"Натиснете тук, за да си създадете акаунт.",
"invitation.cta":"Натиснете тук, за да си създадете акаунт.",
"reset.text1":"Получихме заявка за подновяване на Вашата парола, най-вероятно защото сте я забравили. Ако това не е така, моля не обръщайте внимание на това е-писмо.",
"reset.text1":"Получихме заявка за подновяване на Вашата парола, най-вероятно защото сте я забравили. Ако това не е така, моля не обръщайте внимание на това е-писмо.",
"reset.text2":"За да продължите с процедурата по подновяване на паролата, моля последвайте следната връзка:",
"reset.text2":"За да продължите с процедурата по подновяване на паролата, моля последвайте следната връзка:",
"reset.cta":"Натиснете тук, за да нулирате паролата си",
"reset.cta":"Натиснете тук, за да нулирате паролата си",
"reset.notify.subject":"Паролата беше променена успешно",
"reset.notify.subject":"Паролата беше променена успешно",
"reset.notify.text1":"Известяваме Ви, че на %1, Вашата парола беше променена успешно.",
"reset.notify.text1":"Известяваме Ви, че на %1, Вашата парола беше променена успешно.",
"reset.notify.text2":"Ако не сте поискали това, моля, свържете се незабавно с администратор.",
"reset.notify.text2":"Ако не сте поискали това, моля, свържете се незабавно с администратор.",
"digest.notifications":"Имате непрочетени известия от %1:",
"digest.latest_topics":"Последни теми от %1",
"digest.latest_topics":"Последни теми от %1",
"digest.cta":"Натиснете тук, за да посетите %1",
"digest.cta":"Натиснете тук, за да посетите %1",
"digest.unsub.info":"Това резюме беше изпратено до Вас поради настройките Ви за абонаментите.",
"digest.unsub.info":"Това резюме беше изпратено до Вас поради настройките Ви за абонаментите.",
"digest.no_topics":"Нее имало дейност по темите в последните %1",
"digest.day":"ден",
"digest.day":"ден",
"digest.week":"месец",
"digest.week":"месец",
"digest.month":"година",
"digest.month":"година",
"digest.subject":"Резюме за %1",
"digest.subject":"Резюме за %1",
"digest.title.day":"Дневното Ви резюме",
"digest.title.week":"Седмичното Ви резюме",
"digest.title.month":"Месечното Ви резюме",
"notif.chat.subject":"Получено е ново съобщение от %1",
"notif.chat.subject":"Получено е ново съобщение от %1",
"notif.chat.cta":"Натиснете тук, за да продължите дискусията",
"notif.chat.cta":"Натиснете тук, за да продължите дискусията",
"notif.chat.unsub.info":"Това известие за разговор беше изпратено до Вас поради настройките Ви за абонаментите.",
"notif.chat.unsub.info":"Това известие за разговор беше изпратено до Вас поради настройките Ви за абонаментите.",
"notif.post.cta":"Натиснете тук, за да прочетете цялата тема",
"notif.post.unsub.info":"Това известие за публикация беше изпратено до Вас поради настройките Ви за абонаментите.",
"notif.post.unsub.info":"Това известие за публикация беше изпратено до Вас поради настройките Ви за абонаментите.",
"notif.cta":"Натиснете тук, за да преминете към форума",
"notif.post.unsub.one-click":"Или можете да се отпишете от подобни бъдещи съобщения, като натиснете",
"notif.cta":"Към форума",
"notif.cta-new-reply":"Преглед на публикацията",
"notif.cta-new-chat":"Преглед на разговора",
"notif.test.short":"Изпробване на известията",
"notif.test.long":"Това е пробно е-писмо за проверка на работата на известията.",
"test.text1":"Това е пробно е-писмо, за да потвърдим, че изпращачът на е-поща е правилно настроен за Вашия NodeBB.",
"test.text1":"Това е пробно е-писмо, за да потвърдим, че изпращачът на е-поща е правилно настроен за Вашия NodeBB.",
"unsub.cta":"Натиснете тук, за да промените тези настройки",
"unsub.cta":"Натиснете тук, за да промените тези настройки",
"unsubscribe":"отписване",
"unsub.success":"Повече няма да получавате е-писма от пощенския списък на <strong>%1</strong>",
"banned.subject":"Вие бяхте блокиран(а) от %1",
"banned.subject":"Вие бяхте блокиран(а) от %1",
"banned.text1":"Потребителят %1 беше блокиран от %2.",
"banned.text1":"Потребителят %1 беше блокиран от %2.",
"banned.text2":"Това блокиране ще е в сила до %1.",
"banned.text2":"Това блокиране ще е в сила до %1.",
"invalid-uid":"Грешен идентификатор на потребител",
"invalid-uid":"Грешен идентификатор на потребител",
"invalid-username":"Грешно потребителско име",
"invalid-username":"Грешно потребителско име",
"invalid-email":"Грешна е-поща",
"invalid-email":"Грешна е-поща",
"invalid-fullname":"Грешно пълно име",
"invalid-location":"Грешно местоположение",
"invalid-birthday":"Грешна рождена дата",
"invalid-title":"Грешно заглавие",
"invalid-title":"Грешно заглавие",
"invalid-user-data":"Грешни потребителски данни",
"invalid-user-data":"Грешни потребителски данни",
"invalid-password":"Грешна парола",
"invalid-password":"Грешна парола",
@@ -23,16 +26,18 @@
"invalid-pagination-value":"Грешен номер на странициране, трябва да бъде между %1 и %2",
"invalid-pagination-value":"Грешен номер на странициране, трябва да бъде между %1 и %2",
"username-taken":"Потребителското име е заето",
"username-taken":"Потребителското име е заето",
"email-taken":"Е-пощата е заета",
"email-taken":"Е-пощата е заета",
"email-not-confirmed":"Вашата е-поща все още не е потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed":"Няма да можете да публикувате съобщения, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed-chat":"Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed-chat":"Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed-email-sent":"Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение.",
"email-not-confirmed-email-sent":"Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Няма да можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
"no-email-to-confirm":"Този форум изисква потвърдена е-поща. Моля, натиснете тук, за да въведете е-поща",
"no-email-to-confirm":"Този форум изисква потвърдена е-поща. Моля, натиснете тук, за да въведете е-поща",
"email-confirm-failed":"Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
"email-confirm-failed":"Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
"confirm-email-already-sent":"Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
"confirm-email-already-sent":"Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
"sendmail-not-found":"Изпълнимият файл на „sendmail“ не може да бъде намерен. Моля, уверете се, че е инсталиран и изпълним за потребителя, чрез който е пуснат NodeBB.",
"sendmail-not-found":"Изпълнимият файл на „sendmail“ не може да бъде намерен. Моля, уверете се, че е инсталиран и изпълним за потребителя, чрез който е пуснат NodeBB.",
"digest-not-enabled":"Този потребител няма включени резюмета, или системната настройка по подразбиране е да не се изпращат резюмета",
"username-too-short":"Потребителското име е твърде кратко",
"username-too-short":"Потребителското име е твърде кратко",
"username-too-long":"Потребителското име е твърде дълго",
"username-too-long":"Потребителското име е твърде дълго",
"password-too-long":"Паролата е твърде дълга",
"password-too-long":"Паролата е твърде дълга",
"reset-rate-limited":"Твърде много подновявания на паролата (има ограничение на честотата)",
"user-banned":"Потребителят е блокиран",
"user-banned":"Потребителят е блокиран",
"user-banned-reason":"За съжаление, този акаунт е блокиран (Причина: %1)",
"user-banned-reason":"За съжаление, този акаунт е блокиран (Причина: %1)",
"user-banned-reason-until":"За съжаление, този акаунт е блокиран до %1 (Причина: %2)",
"user-banned-reason-until":"За съжаление, този акаунт е блокиран до %1 (Причина: %2)",
@@ -98,6 +103,8 @@
"group-needs-owner":"Тази група се нуждае от поне един собственик",
"group-needs-owner":"Тази група се нуждае от поне един собственик",
"group-already-invited":"Този потребител вече е бил поканен",
"group-already-invited":"Този потребител вече е бил поканен",
"group-already-requested":"Вашата заявка за членство вече е била изпратена",
"group-already-requested":"Вашата заявка за членство вече е била изпратена",
"group-join-disabled":"В момента не можете да се присъедините към тази група",
"group-leave-disabled":"В момента не можете да напуснете тази група",
"post-already-deleted":"Тази публикация вече е изтрита",
"post-already-deleted":"Тази публикация вече е изтрита",
"post-already-restored":"Тази публикация вече е възстановена",
"post-already-restored":"Тази публикация вече е възстановена",
"topic-already-deleted":"Тази тема вече е изтрита",
"topic-already-deleted":"Тази тема вече е изтрита",
@@ -143,7 +150,6 @@
"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":"Не можете да изритате себе си от групата",
"enter_email":"Моля, въведете <strong>адреса на е-пощата си</strong> и ще Ви изпратим е-писмо с инструкции за това как да достъпите акаунта си.",
"enter_email":"Моля, въведете <strong>адреса на е-пощата си</strong> и ще Ви изпратим е-писмо с инструкции за това как да достъпите акаунта си.",
"enter_email_address":"Въведете адрес на е-поща",
"enter_email_address":"Въведете адрес на е-поща",
"password_reset_sent":"Информацията за подновяване на паролата беше изпратена на посочения адрес. Имайте предвид, че може да бъде изпращано само по едно е-писмо на минута.",
"password_reset_sent":"Ако посоченият адрес съответства на съществуващ потребителски акаунт, то вече му е изпратено е-писмо за подновяване на паролата. Имайте предвид, че може да бъде изпращано само по едно е-писмо на минута.",
"invalid_email":"Грешна е-поща / е-пощата не съществува!",
"invalid_email":"Грешна е-поща / е-пощата не съществува!",
"password_too_short":"Паролата е твърде кратка. Моля, изберете друга парола.",
"password_too_short":"Паролата е твърде кратка. Моля, изберете друга парола.",
"passwords_do_not_match":"Двете пароли, които въведохте, са различни.",
"passwords_do_not_match":"Двете пароли, които въведохте, са различни.",
"guest-login-reply":"Впишете се, за да отговорите",
"guest-login-reply":"Впишете се, за да отговорите",
"login-to-view":"🔒 Впишете се, за да видите това",
"edit":"Редактиране",
"edit":"Редактиране",
"delete":"Изтриване",
"delete":"Изтриване",
"purge":"Изчистване",
"purge":"Изчистване",
"restore":"Възстановяване",
"restore":"Възстановяване",
"move":"Преместване",
"move":"Преместване",
"change-owner":"Промяна на собственика",
"fork":"Разделяне",
"fork":"Разделяне",
"link":"Връзка",
"link":"Връзка",
"share":"Споделяне",
"share":"Споделяне",
@@ -64,6 +66,7 @@
"thread_tools.move":"Преместване на темата",
"thread_tools.move":"Преместване на темата",
"thread_tools.move-posts":"Преместване на публикациите",
"thread_tools.move-posts":"Преместване на публикациите",
"thread_tools.move_all":"Преместване на всички",
"thread_tools.move_all":"Преместване на всички",
"thread_tools.change_owner":"Промяна на собственика",
"thread_tools.select_category":"Избиране на категория",
"thread_tools.select_category":"Избиране на категория",
"thread_tools.fork":"Разделяне на темата",
"thread_tools.fork":"Разделяне на темата",
"thread_tools.delete":"Изтриване на темата",
"thread_tools.delete":"Изтриване на темата",
@@ -98,6 +101,7 @@
"delete_posts_instruction":"Натиснете публикациите, които искате да изтриете/изчистите",
"delete_posts_instruction":"Натиснете публикациите, които искате да изтриете/изчистите",
"merge_topics_instruction":"Натиснете темите, които искате да слеете",
"merge_topics_instruction":"Натиснете темите, които искате да слеете",
"move_posts_instruction":"Натиснете публикациите, които искате да преместите",
"move_posts_instruction":"Натиснете публикациите, които искате да преместите",
"change_owner_instruction":"Натиснете публикациите, които искате да прехвърлите на друг потребител",
"composer.title_placeholder":"Въведете заглавието на темата си тук...",
"composer.title_placeholder":"Въведете заглавието на темата си тук...",
"composer.handle_placeholder":"Име",
"composer.handle_placeholder":"Име",
"composer.discard":"Отхвърляне",
"composer.discard":"Отхвърляне",
@@ -129,5 +133,7 @@
"diffs.description":"Тази публикация има <strong>%1</strong> варианта. Щракнете върху някоя от версиите по-долу, за да видите съдържанието ѝ в съответния момент.",
"diffs.description":"Тази публикация има <strong>%1</strong> варианта. Щракнете върху някоя от версиите по-долу, за да видите съдържанието ѝ в съответния момент.",
"diffs.no-revisions-description":"Тази публикация има <strong>%1</strong> варианта.",
"diffs.no-revisions-description":"Тази публикация има <strong>%1</strong> варианта.",
"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.",
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.