The deleted upgrade scripts were intended to be run on servers running pre-release versions of v4.
Now that it has been merged into `develop`, those scripts are no longer needed.
on login page show login form if at least one user group has local:login privilege, for example local:login might be removed from registered-users but verified-users can have login privilege so login form should be still visible
- Added setting to disable probe completely
- Added setting to configure timeout
- Updated probe logic so that if probe times out, it retries in the background with 60s timeout for caching purposes
- `validate` is now renamed `assertPayload`
- HTTP signature checking is now in new middleware `verify`
- `verify` is now called on all routes in activitypub controller
- Rejects on signature failure for POST requests
- Entering a webfinger handle in search bar will override default
`searchIn` to `users`
- When an activitypub uri is entered, it is fetched and its `type`
is checked. If `type` is `user`, a user search is conducted
instead. If `type` is not post-like or user-like, a regular
full-text search is performed (prior, it just threw an
exception!)
When a category is retrieved via activitypub, NodeBB will now
generate an SVG and PNG representation of the category utilising
the "icon", "color", and "bgColor" values.
closes#12507
There was some internal logic in ajaxify that handled special links that
should explicitly not be ajaxified (either it is a null href or should be
loaded as a direct page load, etc.) - this was moved out to an exported
method so it can be consumed by the service worker onmessage listener.
Also since this logic evolved over many years, there were some
duplications and so those have been amended (though I will not guarantee
that it was done bug/regression free!!)
Changes logic so that the new `escape` option escapes HTML,
whereas the old behaviour had `parse: false` escape HTML.
Now, when `parse` is `false`, the content is unchanged.
Defaults are `{ parse: true, escape: false, stripTags: false }`
Pixelfed supplies an object _url_ instead of the expected _id_ in the `inReplyTo` field, and that tripped up NodeBB because we don't store a backreference for those.
The ideal solution here would be to set up a backreference for urls to pids, but in the meantime, this shortcut will function (it assumes that the object that it is in reply to is in the chain/context).
- Generation of a context collection digest via object ids
- Sending of said digest in ETag header
- Parsing of digests via If-None-Match header
- Update note assertion logic to handle 304 response
These two steps were removed because a `type` property is passed to `filter:post.parse` now, and thus plugins themselves can handle independently.
Core also now strips all html when `type` is plaintext, so plugins don't have to (or if they still pass html back).
This change means that a remote user's post count is only the number
of posts they have stored locally. This is easier to reconcile with
the profile UI since showing the artificial number could cause issues
if the local instance contains fewer or no posts by that user.
fixes#12646
- sanitize-html invocation was stripping out images by default, now added as an exception
- only post content was passsed into filter:parse.post, but hook expects post summary
store number of announces on post hash, show announces like votes, with tooltip and a way to see all, remove them from topic.events so they dont load all tid:<tid>:posts everytime topic is loaded
Remove re-assertion set as it is expensive to re-assert all old user accounts.
Update actor assertion logic to always re-assert a passed-in id if their account's last crawl date is older than the configurable pruning threshold.
fixes#12636
commit 4e0e792232
Merge: 24d0999fb570b4a0e2ae
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date: Fri Jun 7 19:26:49 2024 -0400
Merge branch 'master' into develop
commit 70b4a0e2ae
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date: Fri Jun 7 19:14:13 2024 -0400
feat: allow passing min,max to sortedSetsCardSum
to get rid of multiple db calls in profile page
commit 6bbe3d1c4c
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date: Fri Jun 7 14:08:48 2024 -0400
fix: dont show error alert when user user mouse overs votes
if they dont have permission to view votes
commit 24d0999fb5
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu Jun 6 13:49:14 2024 -0400
fix(deps): update dependency pg-cursor to v2.11.0 (#12617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
commit bee05fe212
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu Jun 6 13:28:59 2024 -0400
fix(deps): update dependency pg to v8.12.0 (#12616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
getCategoriesFields was returning full pseudo-category object even if fields were specific, now it only returns fields requested.
navigating to /category/-1 now redirects to /world
This prevents the superfluous "/1" being appended to all topics you've never been into.
This looks to be a change in the public API but the documented API lists this property as nullable already, so it looks like this commit is actually *restoring* proper behaviour.
"handle.help":"Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.",
"description":"Category Description",
"bg-color":"Background Colour",
"text-color":"Text Colour",
@@ -37,6 +39,7 @@
"disable":"Disable",
"edit":"Edit",
"analytics":"Analytics",
"federation":"Federation",
"view-category":"View category",
"set-order":"Set order",
@@ -76,6 +79,22 @@
"analytics.topics-daily":"<strong>Figure 3</strong> – Daily topics created in this category</small>",
"analytics.posts-daily":"<strong>Figure 4</strong> – Daily posts made in this category</small>",
"federation.title":"Federation settings for \"%1\" category",
"federation.disabled":"Federation is disabled site-wide, so category federation settings are currently unavailable.",
"federation.syncing-intro":"A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.",
"federation.syncing-caveat":"N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.",
"federation.syncing-none":"This category is not currently following anybody.",
"federation.syncing-add":"Synchronize with...",
"federation.syncing-actorUri":"Actor",
"federation.syncing-follow":"Follow",
"federation.syncing-unfollow":"Unfollow",
"federation.followers":"Remote users following this category",
"intro-body":"NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called <a href=\"https://activitypub.rocks/\">ActivityPub</a>. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)",
"general":"General",
"pruning":"Content Pruning",
"content-pruning":"Days to keep remote content",
"content-pruning-help":"Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)",
"user-pruning":"Days to cache remote user accounts",
"user-pruning-help":"Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)",
"enabled":"Enable Federation",
"enabled-help":"If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.",
"allowLoopback":"Allow loopback processing",
"allowLoopback-help":"Useful for debugging purposes only. You should probably leave this disabled.",
"probe":"Open in App",
"probe-enabled":"Try to open ActivityPub-enabled resources in NodeBB",
"probe-enabled-help":"If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.",
"probe-timeout":"Lookup Timeout (milliseconds)",
"probe-timeout-help":"(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.",
"server-filtering":"Filtering",
"count":"This NodeBB is currently aware of <strong>%1</strong> server(s)",
"server.filter-help":"Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively <em>allow</em> federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
"server.filter-help-hostname":"Enter just the instance hostname below (e.g. <code>example.org</code>), separated by line breaks.",
"server.filter-allow-list":"Use this as an Allow List instead"
"title-layout-help":"Define how the browser title will be structured ie. {pageTitle} | {browserTitle}",
"description.placeholder":"A short description about your community",
"description":"وصف الموقع",
"description":"Choose what page is shown when users navigate to the root URL of your forum.",
"keywords":"الكلمات الدليله للموقع",
"keywords-placeholder":"Keywords describing your community, comma-separated",
"logo-and-icons":"Site Logo & Icons",
@@ -48,5 +48,15 @@
"background-color-help":"Color used for splash screen background when website is installed as a PWA",
"undo-timeout":"Undo Timeout",
"undo-timeout-help":"Some operations such as moving topics will allow for the moderator to undo their action within a certain timeframe. Set to 0 to disable undo completely.",
"topic-tools":"Topic Tools"
}
"topic-tools":"Topic Tools",
"home-page":"Home Page",
"home-page-route":"Home Page Route",
"custom-route":"Custom Route",
"allow-user-home-pages":"Allow User Home Pages",
"home-page-title":"Title of the home page (default \"Home\")",
"default-language":"اللغة الافتراضية",
"auto-detect":"الكشف عن إعدادات اللغة للزوار بشكل آلي",
"default-language-help":"تُحدد اللغة الافتراضية إعدادات اللغة لجميع المستخدمين الذين يزورون المنتدى. <br />يمكن للأعضاء تجاوز اللغة الافتراضية من خلال صفحة إعدادات الحساب الخاصة بهم.",
"post-sharing":"Post Sharing",
"info-plugins-additional":"Plugins can add additional networks for sharing posts."
"handles.enabled-help":"This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
"topic-views.enabled":"Allow guests to increase topic view counts",
"reply-notifications.enabled":"Allow guests to generate reply notifications"
"description":"تُحدد اللغة الافتراضية إعدادات اللغة لجميع المستخدمين الذين يزورون المنتدى. <br />يمكن للأعضاء تجاوز اللغة الافتراضية من خلال صفحة إعدادات الحساب الخاصة بهم.",
"default-language":"اللغة الافتراضية",
"auto-detect":"الكشف عن إعدادات اللغة للزوار بشكل آلي"
"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-threshold-help":"(in pixels, default: 2000 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-keep-original":"Keep original image after resize",
"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.",
"restrictions.seconds-before-new":"Seconds before a new user can make their first post",
"restrictions.seconds-edit-after-new":"Number of seconds a post remains editable for new users (set to 0 to disable)",
"restrictions.milliseconds-between-messages":"Time between chat messages for new users (ms)",
"restrictions.groups-exempt-from-new-user-restrictions":"Select groups that should be exempt from the new user restrictions"
}
"restrictions.groups-exempt-from-new-user-restrictions":"Select groups that should be exempt from the new user restrictions",
"guest-settings":"Guest Settings",
"handles.enabled":"Allow guest handles",
"handles.enabled-help":"This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
"topic-views.enabled":"Allow guests to increase topic view counts",
"reply-notifications.enabled":"Allow guests to generate reply notifications"
"not-enough-reputation-min-rep-signature":"You need %1 reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture":"You need %1 reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture":"You need %1 reputation to add a cover picture",
"not-enough-reputation-custom-field":"You need %1 reputation for %2",
"custom-user-field-value-too-long":"Custom field value too long, %1",
"custom-user-field-select-value-invalid":"Custom field selected option is invalid, %1",
"custom-user-field-invalid-text":"Custom field text is invalid, %1",
"custom-user-field-invalid-link":"Custom field link is invalid, %1",
"custom-user-field-invalid-number":"Custom field number is invalid, %1",
"custom-user-field-invalid-date":"Custom field date is invalid, %1",
"invalid-custom-user-field":"Invalid custom user field, \"%1\" is already used by NodeBB",
"post-already-flagged":"You have already flagged this post",
"user-already-flagged":"You have already flagged this user",
"post-flagged-too-many-times":"This post has been flagged by others already",
@@ -227,6 +235,7 @@
"plugins-set-in-configuration":"You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.",
"theme-not-set-in-configuration":"When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP",
"notificationType-post-queue":"When a new post is queued",
"notificationType-new-post-flag":"When a post is flagged",
"notificationType-new-user-flag":"When a user is flagged",
"notificationType-new-reward":"When you earn a new reward"
"notificationType-new-reward":"When you earn a new reward",
"activitypub.announce":"<strong>%1</strong> shared your post in <strong>%2</strong> to their followers.",
"activitypub.announce-dual":"<strong>%1</strong> and <strong>%2</strong> shared your post in <strong>%3</strong> to their followers.",
"activitypub.announce-triple":"<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> shared your post in <strong>%4</strong> to their followers.",
"activitypub.announce-multiple":"<strong>%1</strong>, <strong>%2</strong> and %3 others shared your post in <strong>%4</strong> to their followers."
"uncategorized.intro":"This page shows a chronological listing of every topic that this forum has received.<br />The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website."
"help.intro":"Welcome to your corner of the fediverse.",
"help.fediverse":"The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users <strong>you</strong> follow.",
"help.build":"There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.",
"help.federating":"Likewise, if users from outside of this forum start following <em>you</em>, then your posts will start appearing on those apps and websites as well.",
"help.next-generation":"This is the next generation of social media, start contributing today!",
"onboard.title":"Your window to the fediverse...",
"onboard.what":"This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.",
"onboard.why":"There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.",
"onboard.how":"In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!"
"handle.help":"Идентификаторът на категорията се ползва за представяне на тази категория в други мрежи, подобно на потребителското име. Този идентификатор не трябва да съвпада със съществуващо потребителско име или потребителска група.",
"description":"Описание на категорията",
"bg-color":"Цвят на фона",
"text-color":"Цвят на текста",
@@ -37,6 +39,7 @@
"disable":"Изключване",
"edit":"Редактиране",
"analytics":"Анализи",
"federation":"Федериране",
"view-category":"Преглед на категорията",
"set-order":"Запазване на реда",
@@ -76,6 +79,22 @@
"analytics.topics-daily":"<strong>Фигура 3</strong> – Брой теми в тази категория на ден</small>",
"analytics.posts-daily":"<strong>Фигура 4</strong> – Брой публикации в тази категория на ден</small>",
"federation.title":"Настройки за федерирането на категорията „%1“",
"federation.disabled":"Федерирането е изключено за целия уеб сайт, така че настройките за федерирането на категорията са недостъпни.",
"federation.disabled-cta":"Настройки за федерирането →",
"federation.syncing-header":"Синхронизиране",
"federation.syncing-intro":"Една категория може да следва „група от източници“ чрез протокола ActivityPub. Ако бъде получено съдържание от който и да е източник от посочените по-долу, то ще бъде автоматично добавено в тази категория.",
"federation.syncing-caveat":"Забележка: настройките за синхронизиране тук установяват еднопосочна синхронизация. NodeBB ще се опита да се абонира/следва източника, но обратното не бива да се подразбира.",
"federation.syncing-none":"Тази категория в момента не следва никого.",
"federation.syncing-add":"Синхронизиране с…",
"federation.syncing-actorUri":"Източник",
"federation.syncing-follow":"Следване",
"federation.syncing-unfollow":"Спиране на следването",
"federation.followers":"Отдалечени потребители, които следват тази категория",
"intro-body":"NodeBB може да осъществява връзка с други инсталации на NodeBB, които поддържат това. Това се постига чрез протокол наречен <a href=\"https://activitypub.rocks/\">ActivityPub</a>. Ако е включено, NodeBB ще може да осъществява връзка и с други приложения и уеб сайтове, които ползват ActivityPub (например Мастодон, Peertube и т.н.)",
"general":"Общи",
"pruning":"Премахване на съдържанието",
"content-pruning":"Брой дни за съхранение на отдалечено съдържание",
"content-pruning-help":"Имайте предвид, че отдалеченото съдържание, за което е имало някакви действия (отговори или положителни/отрицателни гласове) ще бъде запазено. (0 = изключено)",
"user-pruning":"Брой дни за кеширане на отдалечените потребителски акаунти",
"user-pruning-help":"Отдалечените потребителски акаунти ще бъдат премахнати, само ако не са публикували нищо. Иначе ще бъдат извличани повторно. (0 = изключено)",
"enabled":"Включване на федерирането",
"enabled-help":"Ако е включено, този NodeBB ще може да осъществява връзка с всички клиенти ползващи ActivityPub в цялата федивселена.",
"allowLoopback":"Разрешаване на обработката на локална обратна връзка",
"allowLoopback-help":"Полезно само за дебъгване. Най-добре е това да бъде изключено",
"probe":"Отваряне в приложението",
"probe-enabled":"Дали да се опитва отваряне на нещата поддържащи ActivityPub в NodeBB",
"probe-enabled-help":"Ако е включено, NodeBB ще проверява всяка външна връзка дали поддържа ActivityPub и ако е така – ще я зарежда направо в NodeBB.",
"probe-timeout":"Време за изчакване на проверката (милисекунди)",
"probe-timeout-help":"(По подразбиране: 2000) Ако проверката не получи отговор в рамките на зададеното време, потребителят ще бъде изпратен директно на адреса на връзката. Задайте по-голямо число, ако уеб сайтовете отговарят по-бавно и искате да им дадете повече време.",
"server-filtering":"Филтриране",
"count":"Този NodeBB в момента знае за наличието на <strong>%1</strong> сървър(а)",
"server.filter-help":"Посочете сървърите, с които не искате Вашият NodeBB да осъществява връзка. Или можете вместо това да посочите конкретни сървъри, с които <em>разрешавате</em> връзката. И двете възможности са налични, но може да изберете само една от тях.",
"server.filter-help-hostname":"Въведете само имената на сървърите по-долу (например <code>example.org</code>), като всеки сървър трябва да е на отделен ред.",
"server.filter-allow-list":"Това да се ползва като списък с разрешените сървъри"
"title-layout-help":"Определете как ще бъде структурирано заглавието на браузъра, например: {pageTitle} | {browserTitle}",
"description.placeholder":"Кратко описание на общността Ви",
"description":"Описание на уеб сайта",
"description":"Изберете коя страница да бъде показана, когато потребителите отидат на главния адрес на форума.",
"keywords":"Ключови думи на уеб сайта",
"keywords-placeholder":"Ключови думи, описващи общността Ви. Трябва да бъдат разделени със запетаи.",
"logo-and-icons":"Лого и иконки на уеб сайта",
@@ -48,5 +48,15 @@
"background-color-help":"Цвят, който да се използва като фон за началния екран, когато уеб сайтът е инсталиран като приложение",
"undo-timeout":"Време за отмяна",
"undo-timeout-help":"Някои действия, като например преместването на теми, могат да бъдат отменени от модератора в рамките на определено време. Задайте 0, за да забраните изцяло отменянето.",
"topic-tools":"Инструменти за темите"
}
"topic-tools":"Инструменти за темите",
"home-page":"Начална страница",
"home-page-route":"Път на началната страница",
"custom-route":"Персонализиран път",
"allow-user-home-pages":"Разрешаване на потребителските начални страници",
"home-page-title":"Заглавие на началната страница (по подразбиране: „Начало“)",
"default-language":"Език по подразбиране",
"auto-detect":"Автоматично разпознаване на езика за гостите",
"default-language-help":"Езикът по подразбиране определя езиковите настройки за всички потребители, които посещават Вашия форум. <br />Отделните потребители могат да сменят езика си от страницата с настройки на профила си.",
"post-sharing":"Споделяне на публикации",
"info-plugins-additional":"Добавките могат да добавят допълнителни мрежи за споделяне на публикации."
"handles.enabled":"Позволяване на имената за гостите",
"handles.enabled-help":"Тази възможност предоставя ново поле, което позволява на гостите да си изберат име, което да се използва за всяка публикация, която правят. Ако е изключено, всички те просто ще имат името „Гост“.",
"topic-views.enabled":"Гостите да допринасят за броя на преглеждания на темите",
"reply-notifications.enabled":"Гостите да могат да предизвикват изпращането на известия за отговорите си"
"description":"Езикът по подразбиране определя езиковите настройки за всички потребители, които посещават Вашия форум. <br />Отделните потребители могат да сменят езика си от страницата с настройки на профила си.",
"default-language":"Език по подразбиране",
"auto-detect":"Автоматично разпознаване на езика за гостите"
"private-extensions":"Файлови разширения, които да бъдат частни",
"private-uploads-extensions-help":"Въведете списък от файлови разширения, разделени със запетаи, които искате да бъдат частни (например <code>pdf,xls,doc</code>). Ако оставите това поле празно, всички файлове ще бъдат частни.",
"resize-image-width-threshold":"Преоразмеряване на изображенията, ако са по-широки от определената ширина",
"resize-image-width-threshold-help":"(в пиксели; по подразбиране: 1520 пиксела. 0 = изключено)",
"resize-image-width-threshold-help":"(в пиксели; по подразбиране: 2000 пиксела. 0 = изключено)",
"resize-image-width":"Намаляване на размера на изображенията до определена ширина",
"resize-image-width-help":"(в пиксели; по подразбиране: 760 пиксела. 0 = изключено)",
"resize-image-keep-original":"Запазване на оригиналното изображение след преоразмеряване",
"resize-image-quality":"Качество при преоразмеряване на изображенията",
"resize-image-quality-help":"Използване на по-ниско качество за намаляване на размера на файловете за преоразмерените изображения.",
"max-file-size":"Максимален размер на файловете (в КиБ)",
"restrictions.seconds-before-new":"Брой секунди преди новите потребители да могат да публикуват за пръв път",
"restrictions.seconds-edit-after-new":"Брой секунди, през които публикациите могат да бъдат редактирани от нови потребители. (0 = изключено)",
"restrictions.milliseconds-between-messages":"Време между съобщенията в разговорите за нови потребители (мсек)",
"restrictions.groups-exempt-from-new-user-restrictions":"Избиране на групи, за които да не важат ограниченията за нови потребители"
}
"restrictions.groups-exempt-from-new-user-restrictions":"Избиране на групи, за които да не важат ограниченията за нови потребители",
"guest-settings":"Настройки за гостите",
"handles.enabled":"Позволяване на имената за гостите",
"handles.enabled-help":"Тази възможност предоставя ново поле, което позволява на гостите да си изберат име, което да се използва за всяка публикация, която правят. Ако е изключено, всички те просто ще имат името „Гост“.",
"topic-views.enabled":"Гостите да допринасят за броя на преглеждания на темите",
"reply-notifications.enabled":"Гостите да могат да предизвикват изпращането на известия за отговорите си"
"not-enough-reputation-min-rep-signature":"Репутацията Ви трябва да бъде поне %1, за да добавите подпис",
"not-enough-reputation-min-rep-profile-picture":"Репутацията Ви трябва да бъде поне %1, за да добавите снимка на профила си",
"not-enough-reputation-min-rep-cover-picture":"Репутацията Ви трябва да бъде поне %1, за да добавите снимка на корицата",
"not-enough-reputation-custom-field":"Репутацията Ви трябва да бъде поне %1 за %2",
"custom-user-field-value-too-long":"Стойността в персонализираното поле е твърде дълга, %1",
"custom-user-field-select-value-invalid":"Избраната опция в персонализираното поле е твърде неправилна, %1",
"custom-user-field-invalid-text":"Текстът в персонализираното поле е неправилен, %1",
"custom-user-field-invalid-link":"Връзката в персонализираното поле е неправилна, %1",
"custom-user-field-invalid-number":"Числото в персонализираното поле е неправилно, %1",
"custom-user-field-invalid-date":"Датата в персонализираното поле е неправилна, %1",
"invalid-custom-user-field":"Неправилно персонализирано поле. „%1“ вече се ползва от NodeBB",
"post-already-flagged":"Вече сте докладвали тази публикация",
"user-already-flagged":"Вече сте докладвали този потребител",
"post-flagged-too-many-times":"Тази публикация вече е докладвана от други хора",
@@ -227,6 +235,7 @@
"plugins-set-in-configuration":"Не можете да променяте състоянието на добавката, тъй като то се определя по време на работата ѝ (чрез config.json, променливи на средата или аргументи при изпълнение). Вместо това може да промените конфигурацията.",
"theme-not-set-in-configuration":"Когато определяте активните добавки в конфигурацията, промяната на темите изисква да се добави новата тема към активните добавки, преди актуализирането ѝ в ACP",
"topic-event-unrecognized":"Събитието „%1“ на темата е неизвестно",
"category.handle-taken":"Идентификаторът на категорията е зает. Моля, изберете друг.",
"cant-set-child-as-parent":"Дъщерна категория не може да се зададе като базова такава",
"cant-set-self-as-parent":"Категорията не може да се зададе като базова категория на себе си",
"api.master-token-no-uid":"Беше получен главен идентификатор без съответстващо поле `_uid` в тялото на заявката",
@@ -239,5 +248,12 @@
"api.500":"При обработката на заявката Ви възникна неочаквана грешка.",
"api.501":"Пътят, който се опитвате да извикате, все още не съществува. Моля, опитайте отново утре.",
"api.503":"Пътят, който се опитвате да извикате, в момента не е достъпен, поради настройките на сървъра.",
"api.reauth-required":"Ресурсът, който се опитвате да достъпите, изисква (повторно) удостоверяване."
"api.reauth-required":"Ресурсът, който се опитвате да достъпите, изисква (повторно) удостоверяване.",
"activitypub.not-enabled":"Federation is not enabled on this server",
"activitypub.invalid-id":"Входният идентификатор не може да бъде разпознат – може да е неправилен.",
"activitypub.get-failed":"Посоченият материал не може да бъде получен.",
"activitypub.pubKey-not-found":"Публичният ключ не може да бъде разпознат, така че потвърждението на данните не може да бъде извършено.",
"activitypub.origin-mismatch":"Произходът на получения обект не съвпада с произхода на подателя",
"activitypub.actor-mismatch":"Полученото действие се изпълнява от източник, който е различен от очаквания.",
"activitypub.not-implemented":"Заявката беше отказана, тъй като тя или част от нея не се поддържа от сървъра, към който е насочена"
"composer.discard-all-drafts":"Изтриване на всички чернови",
"composer.no-drafts":"Нямате никакви чернови",
"composer.discard-draft-confirm":"Искате ли да изтриете тази чернова?",
"composer.remote-pid-editing":"Редактиране на отдалечена публикация",
"composer.remote-pid-content-immutable":"Съдържанието на отдалечени публикации не може да бъде редактирано. Може да промените само заглавието на темата и етикетите.",
"notificationType-post-queue":"Когато бъде добавена нова публикация в опашката",
"notificationType-new-post-flag":"Когато публикация бъде докладвана",
"notificationType-new-user-flag":"Когато потребител бъде докладван",
"notificationType-new-reward":"Когато получите нова награда"
"notificationType-new-reward":"Когато получите нова награда",
"activitypub.announce":"<strong>%1</strong> сподели Вашата публикация в <strong>%2</strong> със своите последователи.",
"activitypub.announce-dual":"<strong>%1</strong> и <strong>%2</strong> споделиха Вашата публикация в <strong>%3</strong> със своите последователи.",
"activitypub.announce-triple":"<strong>%1</strong>, <strong>%2</strong> и <strong>%3</strong> споделиха Вашата публикация в <strong>%4</strong> със своите последователи.",
"activitypub.announce-multiple":"<strong>%1</strong>, <strong>%2</strong> и %3 други споделиха Вашата публикация в <strong>%4</strong> със своите последователи."
"load-new-posts":"Зареждане на новите публикации",
"uncategorized.title":"Всички познати теми",
"uncategorized.intro":"Тази страница показва хронологичен списък от всички теми, които този форум е получил.<br />Гледните точки и мненията в темите по-долу не са филтрирани по никакъв начин и може да не съвпадат с гледните точки и мненията на този уеб сайт."
"help.intro":"Добре дошли в своя ъгъл от федивселената.",
"help.fediverse":"„Федивселената“ е мрежа от взаимно свързани приложения и уеб сайтове, които говорят помежду си и чиито потребители могат да се виждат. Този форум е федериран и може да взаимодейства с тази социална мрежа (т.нар. „федивселена“). Тази страница е Вашият ъгъл от федивселената. В него ще виждате само темите създадени или споделени от потребители, които <strong>Вие</strong> следвате.",
"help.build":"В началото тук може да няма много теми. Това е нормално. Ще започнете да виждате повече съдържание тук, когато започнете да следвате други потребители.",
"help.federating":"По същия начин, ако потребители извън този форум започнат да следват <em>Вас</em>, тогава Вашите публикации ще започнат да се появяват в техните приложения и уеб сайтове.",
"help.next-generation":"Това е новото поколение социална мрежа. Започнете да допринасяте още днес!",
"onboard.title":"Вашият прозорец към федивселената…",
"onboard.what":"Това е Вашата персонализирана категория съставена само от съдържание извън този форум. Тук се появяват неща от хора, които следвате, както и такива споделени от тях.",
"onboard.why":"Много неща се случват извън този форум, и не всичко отговаря на Вашите интереси. Затова следването на конкретни хорае най-добрият начин да покажете, че искате да виждате повече от тях.",
"onboard.how":"Междувременно можете да използвате бутоните в горната част, за да видите до какво има достъп този форум. Така може да започнете да откривате ново съдържание!"
"handle.help":"Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.",
"description":"Category Description",
"bg-color":"Background Colour",
"text-color":"Text Colour",
@@ -37,6 +39,7 @@
"disable":"Disable",
"edit":"Edit",
"analytics":"Analytics",
"federation":"Federation",
"view-category":"View category",
"set-order":"Set order",
@@ -76,6 +79,22 @@
"analytics.topics-daily":"<strong>Figure 3</strong> – Daily topics created in this category</small>",
"analytics.posts-daily":"<strong>Figure 4</strong> – Daily posts made in this category</small>",
"federation.title":"Federation settings for \"%1\" category",
"federation.disabled":"Federation is disabled site-wide, so category federation settings are currently unavailable.",
"federation.syncing-intro":"A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.",
"federation.syncing-caveat":"N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.",
"federation.syncing-none":"This category is not currently following anybody.",
"federation.syncing-add":"Synchronize with...",
"federation.syncing-actorUri":"Actor",
"federation.syncing-follow":"Follow",
"federation.syncing-unfollow":"Unfollow",
"federation.followers":"Remote users following this category",
"intro-body":"NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called <a href=\"https://activitypub.rocks/\">ActivityPub</a>. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)",
"general":"General",
"pruning":"Content Pruning",
"content-pruning":"Days to keep remote content",
"content-pruning-help":"Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)",
"user-pruning":"Days to cache remote user accounts",
"user-pruning-help":"Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)",
"enabled":"Enable Federation",
"enabled-help":"If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.",
"allowLoopback":"Allow loopback processing",
"allowLoopback-help":"Useful for debugging purposes only. You should probably leave this disabled.",
"probe":"Open in App",
"probe-enabled":"Try to open ActivityPub-enabled resources in NodeBB",
"probe-enabled-help":"If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.",
"probe-timeout":"Lookup Timeout (milliseconds)",
"probe-timeout-help":"(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.",
"server-filtering":"Filtering",
"count":"This NodeBB is currently aware of <strong>%1</strong> server(s)",
"server.filter-help":"Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively <em>allow</em> federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
"server.filter-help-hostname":"Enter just the instance hostname below (e.g. <code>example.org</code>), separated by line breaks.",
"server.filter-allow-list":"Use this as an Allow List instead"
"title-layout-help":"Define how the browser title will be structured ie. {pageTitle} | {browserTitle}",
"description.placeholder":"A short description about your community",
"description":"Site Description",
"description":"Choose what page is shown when users navigate to the root URL of your forum.",
"keywords":"Site Keywords",
"keywords-placeholder":"Keywords describing your community, comma-separated",
"logo-and-icons":"Site Logo & Icons",
@@ -48,5 +48,15 @@
"background-color-help":"Color used for splash screen background when website is installed as a PWA",
"undo-timeout":"Undo Timeout",
"undo-timeout-help":"Some operations such as moving topics will allow for the moderator to undo their action within a certain timeframe. Set to 0 to disable undo completely.",
"topic-tools":"Topic Tools"
}
"topic-tools":"Topic Tools",
"home-page":"Home Page",
"home-page-route":"Home Page Route",
"custom-route":"Custom Route",
"allow-user-home-pages":"Allow User Home Pages",
"home-page-title":"Title of the home page (default \"Home\")",
"default-language":"Default Language",
"auto-detect":"Auto Detect Language Setting for Guests",
"default-language-help":"The default language determines the language settings for all users who are visiting your forum. <br />Individual users can override the default language on their account settings page.",
"post-sharing":"Post Sharing",
"info-plugins-additional":"Plugins can add additional networks for sharing posts."
"handles.enabled-help":"This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
"topic-views.enabled":"Allow guests to increase topic view counts",
"reply-notifications.enabled":"Allow guests to generate reply notifications"
"description":"The default language determines the language settings for all users who are visiting your forum. <br />Individual users can override the default language on their account settings page.",
"default-language":"Default Language",
"auto-detect":"Auto Detect Language Setting for Guests"
"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-threshold-help":"(in pixels, default: 2000 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-keep-original":"Keep original image after resize",
"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.",
"restrictions.seconds-before-new":"Seconds before a new user can make their first post",
"restrictions.seconds-edit-after-new":"Number of seconds a post remains editable for new users (set to 0 to disable)",
"restrictions.milliseconds-between-messages":"Time between chat messages for new users (ms)",
"restrictions.groups-exempt-from-new-user-restrictions":"Select groups that should be exempt from the new user restrictions"
}
"restrictions.groups-exempt-from-new-user-restrictions":"Select groups that should be exempt from the new user restrictions",
"guest-settings":"Guest Settings",
"handles.enabled":"Allow guest handles",
"handles.enabled-help":"This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
"topic-views.enabled":"Allow guests to increase topic view counts",
"reply-notifications.enabled":"Allow guests to generate reply notifications"
"not-enough-reputation-min-rep-signature":"You need %1 reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture":"You need %1 reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture":"You need %1 reputation to add a cover picture",
"not-enough-reputation-custom-field":"You need %1 reputation for %2",
"custom-user-field-value-too-long":"Custom field value too long, %1",
"custom-user-field-select-value-invalid":"Custom field selected option is invalid, %1",
"custom-user-field-invalid-text":"Custom field text is invalid, %1",
"custom-user-field-invalid-link":"Custom field link is invalid, %1",
"custom-user-field-invalid-number":"Custom field number is invalid, %1",
"custom-user-field-invalid-date":"Custom field date is invalid, %1",
"invalid-custom-user-field":"Invalid custom user field, \"%1\" is already used by NodeBB",
"post-already-flagged":"You have already flagged this post",
"user-already-flagged":"You have already flagged this user",
"post-flagged-too-many-times":"This post has been flagged by others already",
@@ -227,6 +235,7 @@
"plugins-set-in-configuration":"You are not allowed to change plugin state as they are defined at runtime (config.json, environmental variables or terminal arguments), please modify the configuration instead.",
"theme-not-set-in-configuration":"When defining active plugins in configuration, changing themes requires adding the new theme to the list of active plugins before updating it in the ACP",
"notificationType-post-queue":"When a new post is queued",
"notificationType-new-post-flag":"When a post is flagged",
"notificationType-new-user-flag":"When a user is flagged",
"notificationType-new-reward":"When you earn a new reward"
"notificationType-new-reward":"When you earn a new reward",
"activitypub.announce":"<strong>%1</strong> shared your post in <strong>%2</strong> to their followers.",
"activitypub.announce-dual":"<strong>%1</strong> and <strong>%2</strong> shared your post in <strong>%3</strong> to their followers.",
"activitypub.announce-triple":"<strong>%1</strong>, <strong>%2</strong> and <strong>%3</strong> shared your post in <strong>%4</strong> to their followers.",
"activitypub.announce-multiple":"<strong>%1</strong>, <strong>%2</strong> and %3 others shared your post in <strong>%4</strong> to their followers."
"no-popular-topics":"There are no popular topics.",
"load-new-posts":"Load new posts"
"load-new-posts":"Load new posts",
"uncategorized.title":"All known topics",
"uncategorized.intro":"This page shows a chronological listing of every topic that this forum has received.<br />The views and opinions expressed in the topics below are not moderated and may not represent the views and opinions of this website."
"help.intro":"Welcome to your corner of the fediverse.",
"help.fediverse":"The \"fediverse\" is a network of interconnected applications and websites that all talk to one another and whose users can see each other. This forum is federated, and can interact with that social web (or \"fediverse\"). This page is your corner of the fediverse. It consists solely of topics created by — and shared from — users <strong>you</strong> follow.",
"help.build":"There might not be a lot of topics here to start; that's normal. You will start to see more content here over time when you start following other users.",
"help.federating":"Likewise, if users from outside of this forum start following <em>you</em>, then your posts will start appearing on those apps and websites as well.",
"help.next-generation":"This is the next generation of social media, start contributing today!",
"onboard.title":"Your window to the fediverse...",
"onboard.what":"This is your personalized category made up of only content found outside of this forum. Whether something shows up in this page depends on whether you follow them, or whether that post was shared by someone you follow.",
"onboard.why":"There's a lot that goes on outside of this forum, and not all of it is relevant to your interests. That's why following people is the best way to signal that you want to see more from someone.",
"onboard.how":"In the meantime, you can click on the shortcut buttons at the top to see what else this forum knows about, and start discovering some new content!"
"handle.help":"Your category handle is used as a representation of this category across other networks, similar to a username. A category handle must not match an existing username or user group.",
"description":"Popis kategorie",
"bg-color":"Barva pozadí",
"text-color":"Barva textu",
@@ -37,6 +39,7 @@
"disable":"Zakázat",
"edit":"Upravit",
"analytics":"Analytika",
"federation":"Federation",
"view-category":"Zobrazit kategorii",
"set-order":"Set order",
@@ -76,6 +79,22 @@
"analytics.topics-daily":"<strong>Postava 3</strong> – vytvořených témat za den pro tuto kategorii</small>",
"analytics.posts-daily":"<strong>Postava 4</strong> – vytvořených příspěvků za den pro tuto kategorii</small>",
"federation.title":"Federation settings for \"%1\" category",
"federation.disabled":"Federation is disabled site-wide, so category federation settings are currently unavailable.",
"federation.syncing-intro":"A category can follow a \"Group Actor\" via the ActivityPub protocol. If content is received from one of the actors listed below, it will be automatically added to this category.",
"federation.syncing-caveat":"N.B. Setting up syncing here establishes a one-way synchronization. NodeBB attempts to subscribe/follow the actor, but the reverse cannot be assumed.",
"federation.syncing-none":"This category is not currently following anybody.",
"federation.syncing-add":"Synchronize with...",
"federation.syncing-actorUri":"Actor",
"federation.syncing-follow":"Follow",
"federation.syncing-unfollow":"Unfollow",
"federation.followers":"Remote users following this category",
"federation.followers-handle":"Handle",
"federation.followers-id":"ID",
"federation.followers-none":"No followers.",
"alert.created":"Vytvořeno",
"alert.create-success":"Kategorie byla úspěšně vytvořena.",
"alert.none-active":"Nemáte žádné aktivní kategorie.",
"intro-body":"NodeBB is able to communicate with other NodeBB instances that support it. This is achieved through a protocol called <a href=\"https://activitypub.rocks/\">ActivityPub</a>. If enabled, NodeBB will also be able to communicate with other apps and websites that use ActivityPub (e.g. Mastodon, Peertube, etc.)",
"general":"General",
"pruning":"Content Pruning",
"content-pruning":"Days to keep remote content",
"content-pruning-help":"Note that remote content that has received engagement (a reply or a upvote/downvote) will be preserved. (0 for disabled)",
"user-pruning":"Days to cache remote user accounts",
"user-pruning-help":"Remote user accounts will only be pruned if they have no posts. Otherwise they will be re-retrieved. (0 for disabled)",
"enabled":"Enable Federation",
"enabled-help":"If enabled, will allow this NodeBB will be able to communicate with all Activitypub-enabled clients on the wider fediverse.",
"allowLoopback":"Allow loopback processing",
"allowLoopback-help":"Useful for debugging purposes only. You should probably leave this disabled.",
"probe":"Open in App",
"probe-enabled":"Try to open ActivityPub-enabled resources in NodeBB",
"probe-enabled-help":"If enabled, NodeBB will check every external link for an ActivityPub equivalent, and load it in NodeBB instead.",
"probe-timeout":"Lookup Timeout (milliseconds)",
"probe-timeout-help":"(Default: 2000) If the lookup query does not receive a response within the set timeframe, will send the user to the link directly instead. Adjust this number higher if sites are responding slowly and you wish to give extra time.",
"server-filtering":"Filtering",
"count":"This NodeBB is currently aware of <strong>%1</strong> server(s)",
"server.filter-help":"Specify servers you would like to bar from federating with your NodeBB. Alternatively, you may opt to selectively <em>allow</em> federation with specific servers, instead. Both options are supported, although they are mutually exclusive.",
"server.filter-help-hostname":"Enter just the instance hostname below (e.g. <code>example.org</code>), separated by line breaks.",
"server.filter-allow-list":"Use this as an Allow List instead"
"title-layout-help":"Určete jak název prohlížeče má být sestaven, tj. {pageTitle} | {browserTitle}",
"description.placeholder":"Zkrácený popis vaší komunity",
"description":"Popis stránky",
"description":"Vyberte, kterou stránku chcete zobrazit, jakmile uživatel přejde na výchozí URL vašeho fóra.",
"keywords":"Klíčová slova pro stránky",
"keywords-placeholder":"Klíčová slova popisující vaši komunitu, odděleno čárkou",
"logo-and-icons":"Site Logo & Icons",
@@ -48,5 +48,15 @@
"background-color-help":"Color used for splash screen background when website is installed as a PWA",
"undo-timeout":"Undo Timeout",
"undo-timeout-help":"Some operations such as moving topics will allow for the moderator to undo their action within a certain timeframe. Set to 0 to disable undo completely.",
"home-page-title":"Titulka domovské stránky (výchozí „Domů”)",
"default-language":"Výchozí jazyk",
"auto-detect":"Automaticky detekovat nastavení jazyka pro hosty",
"default-language-help":"Výchozí jazyk určuje nastavení jazyka pro všechny uživatele navštěvující vaše fórum. <br />Každý uživatel si může pak nastavit výchozí jazyk na stránce nastavení účtu.",
"post-sharing":"Sdílení příspěvku",
"info-plugins-additional":"Rozšíření mohou přidat další dodatečné sítě pro sdílení příspěvků."
"handles.enabled":"Povolit upravení zacházení s hosty",
"handles.enabled-help":"Tato možnost odkryje nové pole, které umožňuje hostům vybrat jméno, které se připojí ke každému příspěvku, který vytvoří. Bude-li zakázáno, budou jednoduše nazýváni „Host”",
"topic-views.enabled":"Allow guests to increase topic view counts",
"reply-notifications.enabled":"Allow guests to generate reply notifications"
"description":"Výchozí jazyk určuje nastavení jazyka pro všechny uživatele navštěvující vaše fórum. <br />Každý uživatel si může pak nastavit výchozí jazyk na stránce nastavení účtu.",
"default-language":"Výchozí jazyk",
"auto-detect":"Automaticky detekovat nastavení jazyka pro hosty"
"private-extensions":"Přípona souborů je soukromá",
"private-uploads-extensions-help":"Pro nastavení soukromí, zde zadejte seznam souborů oddělený čárkou (tj. <code>pdf, xls,doc</code>). prázdný seznam znamená, že všechny soubory jsou soukromé.",
"resize-image-width-threshold":"Změnit velikost obrázků, jsou-li širší než určená šířka",
"resize-image-width-threshold-help":"(v pixelech, výchozí: 1520 pixelů, pro zakázání - nastavte 0)",
"resize-image-width-threshold-help":"(in pixels, default: 2000 pixels, set to 0 to disable)",
"resize-image-width":"Změnit velikost obrázků na určenou šířku",
"resize-image-width-help":"(v pixelech, výchozí: 760 pixelů, pro zakázání - nastavte 0)",
"resize-image-keep-original":"Keep original image after resize",
"resize-image-quality":"Kvalita při změně velikosti obrázků",
"resize-image-quality-help":"Pro snížení velikosti zmenšených obrázků použijte nižší nastavení kvality.",
"max-file-size":"Maximální velikost souboru (v KiB)",
"restrictions.seconds-before-new":"Seconds before a new user can make their first post",
"restrictions.seconds-edit-after-new":"Number of seconds a post remains editable for new users (set to 0 to disable)",
"restrictions.milliseconds-between-messages":"Time between chat messages for new users (ms)",
"restrictions.groups-exempt-from-new-user-restrictions":"Select groups that should be exempt from the new user restrictions"
}
"restrictions.groups-exempt-from-new-user-restrictions":"Select groups that should be exempt from the new user restrictions",
"guest-settings":"Guest Settings",
"handles.enabled":"Povolit upravení zacházení s hosty",
"handles.enabled-help":"Tato možnost odkryje nové pole, které umožňuje hostům vybrat jméno, které se připojí ke každému příspěvku, který vytvoří. Bude-li zakázáno, budou jednoduše nazýváni „Host”",
"topic-views.enabled":"Allow guests to increase topic view counts",
"reply-notifications.enabled":"Allow guests to generate reply notifications"
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.