',
+ "it converts to custom block unknown code names"
);
assert.cooked(
@@ -1520,7 +1506,7 @@ var bar = 'bar';
assert.cookedOptions(
":grin: @sam",
{ featuresOverride: ["emoji"] },
- `
@sam
`,
+ `
@sam
`,
"cooks emojis when only the emoji markdown engine is enabled"
);
@@ -1535,15 +1521,15 @@ var bar = 'bar';
test("emoji", function (assert) {
assert.cooked(
":smile:",
- `
Konular varsayılan olarak okunmamış sayılır ve aşağıdaki durumlarda okunmamış ileti sayısı 1 gösterilir:
Konuyu siz oluşturmuşsanız
Konuyu yanıtlamışsanız
Konuyu 4 dakikadan fazla okumuşsanız
Konuyu her konunun altında bulunan bildirim denetim alanından İzleniyor veya Takip Ediliyor olarak seçmişseniz.
Tercihler sayfanızdan bu ayarları değiştirebilirsiniz.
'
bottom:
latest: "Daha fazla güncel konu yok."
posted: "Daha fazla gönderilmiş konu yok."
@@ -2808,6 +2812,7 @@ tr_TR:
edit: "Üzgünüz, gönderiniz düzenlenirken bir hata oluştu. Lütfen yeniden deneyin."
upload: "Üzgünüz, dosya yüklenirken bir hata oluştu. Lütfen yeniden deneyin."
file_too_large: "Üzgünüz, bu dosya çok büyük (en fazla %{max_size_kb}kb). Neden paylaşımını bir bulut sağlayıcısına yükleyip bağlantısını paylaşmıyorsun ?"
+ file_too_large_humanized: "Üzgünüz, bu dosya çok büyük (en fazla %{max_size} olabilir). Neden dosyanı bir bulut sağlayıcısına yükleyip bağlantısını paylaşmıyorsun?"
too_many_uploads: "Üzgünüz, aynı anda yalnızca tek dosya yüklenebilir."
too_many_dragged_and_dropped_files:
one: "Üzgünüz, tek seferde yalnızca %{count} dosya yükleyebilirsin."
@@ -3053,7 +3058,7 @@ tr_TR:
default_list_filter: "Varsayılan Liste Filtresi:"
allow_badges_label: "Bu kategoride rozetle ödüllendirilmesine izin ver"
edit_permissions: "İzinleri Düzenle"
- reviewable_by_group: "Personele ek olarak, bu kategorideki içerik şu kişiler tarafından da incelenebilir:"
+ reviewable_by_group: "Personele ek olarak, bu kategorideki içerik şu kişiler tarafından da gözden geçirilebilir:"
review_group_name: "grup adı"
require_topic_approval: "Tüm yeni konular moderatör onayını gerektirir"
require_reply_approval: "Tüm yeni yanıtlar moderatör onayı gerektirir"
@@ -3099,7 +3104,7 @@ tr_TR:
op_likes: "Orijinal Gönderi Beğenileri"
views: "Görüntüleme"
posts: "Gönderiler"
- activity: "Aktivite"
+ activity: "Etkinlik"
posters: "Posterler"
category: "Kategori"
created: "Oluşturulan"
@@ -3222,7 +3227,7 @@ tr_TR:
views_long:
one: "bu konu %{count} defa görüntülendi"
other: "bu konu %{number} defa görüntülendi"
- activity: "Aktivite"
+ activity: "Etkinlik"
likes: "Beğeni"
likes_lowercase:
one: "beğeni"
@@ -3611,8 +3616,8 @@ tr_TR:
pick_files_button:
unsupported_file_picked: "Desteklenmeyen bir dosya seçtiniz. Desteklenen dosya türleri şunlardır– %{types}."
user_activity:
- no_activity_title: "Henüz aktivite yok"
- no_activity_others: "Aktivite yok."
+ no_activity_title: "Henüz etkinlik yok"
+ no_activity_others: "Etkinlik yok."
no_replies_title: "Henüz hiçbir konuyu yanıtlamadınız."
no_replies_others: "Yanıt yok."
no_drafts_title: "Hiç taslak başlatmadınız"
@@ -3680,7 +3685,7 @@ tr_TR:
community_health: Topluluk sağlığı
moderators_activity: Moderatörlerin etkinliği
whats_new_in_discourse: Discourse'daki yenilikler neler?
- activity_metrics: Aktivite Ölçütleri
+ activity_metrics: Etkinlik Ölçütleri
all_reports: "Tüm raporlar"
general_tab: "Genel"
moderation_tab: "Moderasyon"
@@ -3830,6 +3835,7 @@ tr_TR:
Kapsamları kullanırken, bir API anahtarını yalnızca belirli bir endpoint grubuyla kullanılacak şekilde kısıtlayabilirsiniz. Hangi parametrelere izin verileceğini de tanımlayabilirsiniz. Birden çok değer kullanacaksanız bunları ayırmak için virgül kullanın.
title: Kapsamlar
read_only: Salt okunur
+ global_description: API anahtarında herhangi bir kısıtlama yok ve tüm uç noktalar erişilebilir durumda.
resource: Kaynak
action: Eylem
allowed_parameters: İzin Verilen Parametreler
@@ -4718,7 +4724,7 @@ tr_TR:
flags_received_none: "Bu kullanıcı herhangi bir bayrak almadı."
reputation: İtibar
permissions: İzinler
- activity: Aktivite
+ activity: Etkinlik
like_count: Verilen / Alınan Beğeniler
last_100_days: "son 100 günde"
private_topics_count: Özel Konular
diff --git a/config/locales/client.uk.yml b/config/locales/client.uk.yml
index f335f14ef9..1a3639498c 100644
--- a/config/locales/client.uk.yml
+++ b/config/locales/client.uk.yml
@@ -172,6 +172,7 @@ uk:
url: "Скопіювати та поширити посилання"
action_codes:
public_topic: "робить цю тему публічною %{when}"
+ open_topic: "Перетворив це на тему %{when}"
private_topic: "робить цю тему особистим повідомленням %{when}"
split_topic: "розділив цю тему %{when}"
invited_user: "запросив %{who} %{when}"
@@ -218,6 +219,7 @@ uk:
themes:
default_description: "Промовчання"
broken_theme_alert: "Ваш сайт може не працювати, тому що оформлення/компонент %{theme} містить помилки. Вимкніть його тут: %{path}."
+ broken_decorator_alert: "Повідомлення можуть показуватися неправильно, тому що один з декораторів вмісту публікації на вашому сайті викликав помилку. Перевірте інструменти розробника браузера для отримання додаткової інформації."
s3:
regions:
ap_northeast_1: "Азія (Токіо)"
@@ -755,6 +757,7 @@ uk:
smtp_instructions: "Коли ви ввімкнете SMTP для групи, всі вихідні повідомлення електронної пошти, надіслані з групи, буде надіслано через вказані тут параметри SMTP, замість стандартного поштового сервера, налаштованого для інших листів."
imap_title: "IMAP"
imap_additional_settings: "Додаткові налаштування"
+ imap_instructions: 'Коли ви ввімкнете IMAP для групи, електронні листи синхронізуються між папкою вхідних груп і наданим сервером IMAP і поштовою скринькою. Перш ніж увімкнути протокол IMAP, необхідно ввімкнути SMTP з дійсними та перевіреними обліковими даними. Ім’я користувача та пароль електронної пошти, які використовуються для SMTP, будуть використовуватися для IMAP. Для отримання додаткової інформації див. анонс про функції на Discourse Meta.'
imap_alpha_warning: "Попередження. Це функція на альфа-тестуванні. Офіційно підтримується лише Gmail. Використовуйте на свій страх і ризик!"
imap_settings_valid: "Налаштування IMAP правильні."
smtp_disable_confirm: "Якщо вимкнути SMTP, усі налаштування SMTP та IMAP будуть скинуті, а відповідна функціональність буде вимкнена. Ви впевнені, що хочете продовжити?"
@@ -1112,9 +1115,15 @@ uk:
no_messages_body: >
Потрібна особиста розмова з кимось, поза звичайним спілкуванням? Надішліть їм повідомлення, вибравши їх аватар і натиснувши кнопку повідомлення %{icon}
Якщо вам потрібна допомога, ви можете надіслати повідомлення співробітнику.
no_bookmarks_title: "Ви ще нічого не додали до закладок"
+ no_bookmarks_body: >
+ Почніть закладки повідомлень за допомогою кнопки %{icon}, і вони будуть перераховані тут для швидкого доступу. Ви також можете запланувати нагадування про закладку!
no_bookmarks_search: "Немає закладок за таким пошуковим запитом."
no_notifications_title: "У вас ще немає сповіщень"
+ no_notifications_body: >
+ На цій панелі ви будете сповіщені про активність, яка безпосередньо стосується вас, включаючи відповіді на ваші теми та публікації, коли хтось @згадує або цитує вас, а також відповідає на теми, які ви переглядаєте. Сповіщення також буде надіслано на вашу електронну пошту, якщо ви деякий час не входили в систему.
Знайдіть %{icon} щоб визначити, про які конкретні теми, категорії та теги ви хочете отримувати сповіщення. Щоб дізнатися більше, перегляньте свої налаштування сповіщень.
no_notifications_page_title: "У вас ще немає сповіщень"
+ no_notifications_page_body: >
+ Ви отримуватимете сповіщення про діяльність, яка безпосередньо стосується вас, включаючи відповіді на ваші теми та публікації, коли хтось @згадує або цитує вас, а також відповідає на теми, які ви переглядаєте. Сповіщення також буде надіслано на вашу електронну пошту, якщо ви деякий час не входили в систему.
Використовуйте іконку %{icon} щоб визначити, про які конкретні теми, категорії та теги ви хочете отримувати сповіщення. Щоб дізнатися більше, перегляньте свої параметри сповіщень.
first_notification: "Ваше перше сповіщення! Оберіть його, щоб почати."
dynamic_favicon: "Показувати кількість на іконці браузера"
skip_new_user_tips:
@@ -1244,6 +1253,7 @@ uk:
read_more_in_group: "Бажаєте дізнатися більше? Перегляньте інші повідомлення в %{groupLink}."
read_more: "Хочете прочитати більше? Перегляньте інші повідомлення в особистих повідомленнях."
read_more_group_pm_MF: "У вас { UNREAD, plural, =0 {} one { # непрочитане } few { # непрочитаних } other { # непрочитаних } } { NEW, plural, =0 {} one { {BOTH, select, true{и } false { } other{}} # нове повідомлення} few { {BOTH, select, true{і } false { } other{}} # нових повідомлень} other { {BOTH, select, true{і } false { } other{}} # нових повідомлень} }, ви також можете продивитись інші повідомлення в групі {groupLink}"
+ read_more_personal_pm_MF: "У вас { UNREAD, plural, =0 {} one { є # непрочитане } few { є # непрочитані } many { є # непрочитаних } other { є # непрочитані } } { NEW, plural, =0 {} one { {BOTH, select, true{та } false {є } other{}} # нове повідомлення} few {} many {} other { {BOTH, select, true{та } false {є } other{}} # нові повідомлення} } залишайтесь, або перегляньте інші приватні повідомлень"
preferences_nav:
account: "Обліковий запис"
security: "Безпека"
@@ -1497,9 +1507,11 @@ uk:
every_month: "щомісяця"
every_six_months: "що шість місяців"
email_level:
+ title: "Надсилайте мені лист, коли мене цитують, відповідають, згадують моє ім’я користувача, або коли з’являться нові дії в категоріях, тегах чи темах, за якими я стежу"
always: "завжди"
only_when_away: "тільки коли вдалині"
never: "ніколи"
+ email_messages_level: "Напишіть мені, коли я надсилаю особисте повідомлення"
include_tl0_in_digests: "Включити контент від нових користувачів в зведення, що відправляються по електронній пошті"
email_in_reply_to: "Додати попередні відповіді до кінця електронних листів"
other_settings: "Інше"
@@ -2056,6 +2068,11 @@ uk:
few: "Згадуючи групу %{group}, ви тим самим відправите повідомлення %{count} користувачам - ви впевнені?"
many: "Згадуючи групу %{group}, ви тим самим відправите повідомлення %{count} користувачам - ви впевнені?"
other: "Згадуючи групу %{group}, ви тим самим відправите повідомлення %{count} користувачам - ви впевнені?"
+ cannot_see_mention:
+ category: "Ви згадали @%{username}, але вони не одержать повідомлення, тому що у них немає доступу до цього розділу. Вам потрібно додати їх до групи, що має доступ до цього розділу."
+ private: "Ви згадали @%{username} але вони не отримають сповіщення, оскільки не можуть побачити це особисте повідомлення. Вам потрібно буде запросити їх до цього особистого повідомлення."
+ muted_topic: "Ви згадали @%{username} але вони не отримають сповіщення, оскільки вимкнули сповіщення в цій темі."
+ not_allowed: "Ви згадали @%{username}, але вони не отримають сповіщення, оскільки їх не запросили до цієї теми."
here_mention:
one: "Згадуючи @%{here}, ви збираєтеся повідомити %{count} користувача - ви впевнені?"
few: "Згадуючи @%{here}, ви збираєтеся повідомити %{count} користувачів - ви впевнені?"
@@ -3323,7 +3340,7 @@ uk:
default_list_filter: "Стандартний фільтр списку:"
allow_badges_label: "Дозволити нагороджувати значками у цій категорії"
edit_permissions: "Редагувати дозволи"
- reviewable_by_group: "Окрім персоналу, зміст цієї категорії також може бути переглянутий:"
+ reviewable_by_group: "Крім персоналу, зміст цієї категорії також може бути переглянутий:"
review_group_name: "назва групи"
require_topic_approval: "З них потребують схвалення модератором всіх нових тем"
require_reply_approval: "З них потребують схвалення модератором всіх нових відповідей"
@@ -5448,7 +5465,9 @@ uk:
grant_existing_holders: Надати додаткові нагороди існуючим власникам нагород
emoji:
title: "Іконки"
+ help: "Додайте нові емодзі, які будуть доступні для всіх. Перетягніть і додайте декілька файлів відразу без введення назви для створення емодзі використовуючи їхні назви файлів. Обрана група буде використовуватися для всіх файлів, які додаються одночасно. Ви також можете натиснути \"Додати нові емодзі\", щоб відкрити вікно вибору файлів."
add: "Додати нову іконку"
+ choose_files: "Виберіть файли"
uploading: "Завантаження…"
name: "Ім'я"
group: "Група"
diff --git a/config/locales/client.vi.yml b/config/locales/client.vi.yml
index 03ff524032..7d71447083 100644
--- a/config/locales/client.vi.yml
+++ b/config/locales/client.vi.yml
@@ -2724,7 +2724,6 @@ vi:
default_list_filter: "Bộ lọc danh sách mặc định:"
allow_badges_label: "Cho phép thưởng huy hiệu trong chuyên mục này"
edit_permissions: "Sửa quyền"
- reviewable_by_group: "Ngoài nhân viên, nội dung trong danh mục này cũng có thể được kiểm duyệt bởi:"
review_group_name: "Nhóm tên"
require_topic_approval: "Yêu cầu người kiểm duyệt phê duyệt tất cả các chủ đề mới"
require_reply_approval: "Yêu cầu người kiểm duyệt phê duyệt tất cả các câu trả lời mới"
diff --git a/config/locales/client.zh_CN.yml b/config/locales/client.zh_CN.yml
index a20906d8b0..e8a5c2f7fb 100644
--- a/config/locales/client.zh_CN.yml
+++ b/config/locales/client.zh_CN.yml
@@ -2938,7 +2938,6 @@ zh_CN:
default_list_filter: "默认列表筛选器:"
allow_badges_label: "允许在此类别中授予徽章"
edit_permissions: "编辑权限"
- reviewable_by_group: "除管理人员外,此类别中的内容还可以由以下群组审核:"
review_group_name: "群组名称"
require_topic_approval: "所有新话题都需要版主审批"
require_reply_approval: "所有新回复都需要版主审批"
@@ -4098,7 +4097,7 @@ zh_CN:
强烈建议为属性名称添加前缀以避免与插件和/或核心冲突。
head_tag:
- text: "头像"
+ text: "标签"
title: "将在 tag 前插入的 HTML"
body_tag:
text: "正文"
diff --git a/config/locales/server.ar.yml b/config/locales/server.ar.yml
index 39d47656c9..2f86f071dd 100644
--- a/config/locales/server.ar.yml
+++ b/config/locales/server.ar.yml
@@ -408,8 +408,6 @@ ar:
few: "عذرًا، لا يمكن للمستخدمين الجُدد وضع أكثر من %{count} روابط في المنشور."
many: "عذرًا، لا يمكن للمستخدمين الجُدد وضع أكثر من %{count} رابطًا في المنشور."
other: "عذرًا، لا يمكن للمستخدمين الجُدد وضع أكثر من %{count} رابط في المنشور."
- contains_blocked_word: "يتضمَّن منشورك كلمة غير مسموح بها: %{word}"
- contains_blocked_words: "يتضمَّن منشورك عدة كلمات غير مسموح بها: %{words}"
spamming_host: "عذرًا، لا يمكنك نشر رابط إلى هذا المضيف."
user_is_suspended: "غير مسموح للمستخدمين المعلَّقين بالنشر."
topic_not_found: "حدث خطأ. ربما يكون هذا الموضوع قد تم إغلاقه أو حذفه بينما كنت تعرضه؟"
@@ -1586,7 +1584,6 @@ ar:
min_personal_message_title_length: "الحد الأدنى المسموح به لطول عنوان الرسالة بالأحرف"
max_emojis_in_title: "الحد الأقصى المسموح به من الرموز التعبيرية في عنوان الموضوع"
min_search_term_length: "الحد الأدنى الصالح لطول مصطلح البحث بالأحرف"
- search_tokenize_chinese_japanese_korean: "فرض تقسيم جمل البحث في اللغات الصينية واليابانية والكورية إلى كلمات حتى على المواقع التي لا تدعم تلك اللغات"
search_prefer_recent_posts: "سيحاول هذا الخيار البحث في فهرس أحدث المنشورات أولًا إذا كان البحث في منتداك الكبير بطيئًا"
search_recent_posts_size: "عدد المنشورات الحديثة التي سيتم الإبقاء عليها في الفهرس"
log_search_queries: "تسجيل استعلامات البحث التي يجريها المستخدمون"
@@ -1629,7 +1626,6 @@ ar:
show_pinned_excerpt_mobile: "إظهار المقتطف في الموضوعات المثبَّتة فى طريقة عرض الجوَّال."
show_pinned_excerpt_desktop: "إظهار المقتطف في الموضوعات المثبَّتة فى طريقة عرض سطح المكتب"
post_onebox_maxlength: "الحد الأقصى لطول منشور Discourse في لوحة المعاينة بالأحرف."
- blocked_onebox_domains: "قائمة بالنطاقات التي لن يتم عرضها في لوحة المعاينة أبدًا."
allowed_inline_onebox_domains: "قائمة بالنطاقات التي سيتم وضعها في لوحة المعاينة في شكلٍ مصغَّر إذا تم ربطها دون عنوان"
enable_inline_onebox_on_all_domains: "تجاهل إعداد الموقع inline_onebox_domain_allowlist والسماح بلوحة المعاينة المضمَّنة على جميع النطاقات."
force_custom_user_agent_hosts: "المضيفات التي سيتم استخدام وكيل المستخدم للوحة المعاينة المخصَّصة في جميع طلباتها. (هذا الإعداد مفيد بشكلٍ خاص للمضيفات الذين تقيِّد الوصول حسب وكيل المستخدم)."
diff --git a/config/locales/server.be.yml b/config/locales/server.be.yml
index 9116bb9b76..8dda5ef21f 100644
--- a/config/locales/server.be.yml
+++ b/config/locales/server.be.yml
@@ -190,7 +190,6 @@ be:
no_attachments_allowed: "На жаль, новыя карыстальнікі не могуць паставіць ўкладанні ў паведамленні."
no_links_allowed: "На жаль, новыя карыстальнікі не могуць змяшчаць спасылкі ў паведамленнях."
links_require_trust: "На жаль, вы не можаце ўключаць спасылкі на вашыя пасты."
- contains_blocked_word: "Ваша паведамленне ўтрымлівае слова якое не дазволена: %{word}"
spamming_host: "На жаль, вы не можаце размясціць спасылку на гэты хост."
user_is_suspended: "Заблякаваныя карыстальнікі не могуць пакідаць паведамленні."
topic_not_found: "Нешта пайшло не так. Магчыма, гэтая тэма была зачыненая або выдаленая ў той час як вы глядзіце на гэта?"
@@ -921,7 +920,6 @@ be:
show_pinned_excerpt_mobile: "Паказаць ўрывак на ўскладалі тэмы ў мабільным рэжыме."
show_pinned_excerpt_desktop: "Паказаць ўрывак на ўскладалі тэмы з улікам працоўнага стала."
post_onebox_maxlength: "Максімальная даўжыня oneboxed дыскурсу паста у знаках."
- blocked_onebox_domains: "Спіс даменаў, якія ніколі не будуць oneboxed."
allowed_inline_onebox_domains: "Спіс даменаў, якія будуць oneboxed ў мініятурным выглядзе, калі звязаныя без назвы"
max_oneboxes_per_post: "Максімальную колькасць у раздзелах Onebox пасады."
logo: "Малюнак лагатыпа ў левым верхнім куце сайта. Выкарыстоўвайце шырокае прамавугольнае малюнак з вышынёй 120 і суадносінамі бакоў больш, чым 3: 1. Калі пакінуць пустым, то назва сайта будзе паказаны тэкст."
diff --git a/config/locales/server.bg.yml b/config/locales/server.bg.yml
index f7e9bedf54..e0a512846e 100644
--- a/config/locales/server.bg.yml
+++ b/config/locales/server.bg.yml
@@ -157,7 +157,6 @@ bg:
too_many_links:
one: "Съжаляваме, новите потребители могат да поставят само по един линк в публикация."
other: "Съжаляваме, новите потребители могат да поставят само %{count} линкове в публикация."
- contains_blocked_word: "Публикацията ви съдържа непозволена дума: %{word}"
spamming_host: "Съжаляваме, не можете да публикувате линк на този хост."
user_is_suspended: "Отстранените потребители нямат право да публикуват."
topic_not_found: "Нещо не е наред. Може би тази тема е била затворена или изтрита, докато я гледате."
diff --git a/config/locales/server.ca.yml b/config/locales/server.ca.yml
index 796371066b..8994e15a35 100644
--- a/config/locales/server.ca.yml
+++ b/config/locales/server.ca.yml
@@ -262,8 +262,6 @@ ca:
too_many_links:
one: "Els usuaris nous només poden incloure un enllaç en una publicació."
other: "Els usuaris nous només poden incloure %{count} enllaços en una publicació."
- contains_blocked_word: "La vostra publicació té una paraula que no és permesa: %{word}"
- contains_blocked_words: "La vostra publicació conté diverses paraules no admeses: %{words}"
spamming_host: "No podeu publicar un enllaç a aquest amfitrió."
user_is_suspended: "Els usuaris suspesos no tenen permís per a publicar."
topic_not_found: "Alguna cosa ha fallat. Potser el tema ha estat tancat o suprimit mentre el consultàveu."
@@ -1196,7 +1194,6 @@ ca:
min_personal_message_title_length: "Longitud mínima permesa de títol de tema en caràcters per a un missatge"
max_emojis_in_title: "Emojis màxims permesos en el títol del tema"
min_search_term_length: "Longitud mínima vàlida del terme de cerca en caràcters"
- search_tokenize_chinese_japanese_korean: "Força la cerca per a segmentar xinès/japonès/coreà fins i tot en llocs web no-CJK."
search_prefer_recent_posts: "Si la cerca en el vostre fòrum és lenta, aquesta opció prova primer amb un índex de publicacions més recents."
search_recent_posts_size: "Quantes publicacions recents es mantenen en l'índex"
log_search_queries: "Registra les cerques fetes pels usuaris"
@@ -1235,7 +1232,6 @@ ca:
show_pinned_excerpt_mobile: "Mostra l'extracte en els temes afixats en la vista per a mòbils."
show_pinned_excerpt_desktop: "Mostra l'extracte en els temes afixats en la vista d'escriptori."
post_onebox_maxlength: "Longitud màxima en caràcters d'una publicació en onebox de Discourse."
- blocked_onebox_domains: "Llista de dominis que no es posaran mai en onebox."
allowed_inline_onebox_domains: "Llista de dominis que es mostraran en miniatura 'onebox' si s'enllacen sense títol"
max_oneboxes_per_post: "Nombre màxim de onebox en una publicació"
logo: "La imatge del logotip a la part superior esquerra del vostre lloc web. Utilitzeu una imatge rectangular ampla amb una alçada de 120 i una relació d'aspecte superior a 3: 1. Si es deixa en blanc, es mostrarà el text del títol del lloc web."
diff --git a/config/locales/server.da.yml b/config/locales/server.da.yml
index 16e6ce3f1a..c34f92fff5 100644
--- a/config/locales/server.da.yml
+++ b/config/locales/server.da.yml
@@ -323,8 +323,6 @@ da:
too_many_links:
one: "Beklager, nye brugere kan kun indsætte et link i et indlæg."
other: "Beklager, nye brugere kan kun indsætte %{count} links i et indlæg."
- contains_blocked_word: "Dit indlæg indeholder et ord, der ikke er tilladt: %{word}"
- contains_blocked_words: "Dit indlæg indeholder flere ord, der ikke er tilladt: %{words}"
spamming_host: "Beklager, du kan ikke indsætte et link til det pågældende domæne."
user_is_suspended: "Suspenderede brugere tilllades ikke at oprette indlæg."
topic_not_found: "Der er gået noget galt. Måske er emnet blevet lukket eller slettet mens du kiggede på det?"
@@ -1324,7 +1322,6 @@ da:
min_personal_message_title_length: "Minimumslængde af emnetitel i tegn."
max_emojis_in_title: "Maksimum tilladte humørikoner i emnetitel"
min_search_term_length: "Antal tegn i søgefeltet skal have et minimum"
- search_tokenize_chinese_japanese_korean: "Tving søg til at \"tokenize\" Chinese/Japanese/Korean selv på sites som ikke er CJK"
search_prefer_recent_posts: "Såfremt søgning på forum er langsomt, kan denne option indeksere og vise nyeste indlæg først"
search_recent_posts_size: "Hvor mange nye indlæg skal der gemmes i index"
log_search_queries: "Log søgeforespørgsler udført af brugere"
@@ -1359,7 +1356,6 @@ da:
show_pinned_excerpt_mobile: "Vis uddrag af fastgjorte emner på mobilen."
show_pinned_excerpt_desktop: "Vis uddrag af fastgjorte emner i desktop visning"
post_onebox_maxlength: "Max længde af Discourse indlæg i tegn"
- blocked_onebox_domains: "En liste af domæner som aldrig vil blive onebox'et."
allowed_inline_onebox_domains: "En liste over domæner, der vil blive onebox'et i miniatureform, hvis de linkes uden en titel"
enable_inline_onebox_on_all_domains: "Ignorer webstedsindstilling for inline_onebox_domain_allowlist, og tillad indlejret onebox på alle domæner."
max_oneboxes_per_post: "Maksimalt antal onebox-forekomster i et opslag."
diff --git a/config/locales/server.de.yml b/config/locales/server.de.yml
index 3650e3a3a2..ebacecbdfe 100644
--- a/config/locales/server.de.yml
+++ b/config/locales/server.de.yml
@@ -338,8 +338,8 @@ de:
too_many_links:
one: "Entschuldige, neue Benutzer können Beiträgen höchstens einen Link hinzufügen."
other: "Entschuldige, neue Benutzer können Beiträgen höchstens %{count} Links hinzufügen."
- contains_blocked_word: "Dein Beitrag enthält ein nicht erlaubtes Wort: %{word}"
- contains_blocked_words: "Dein Beitrag enthält mehrere Wörter, die nicht erlaubt sind: %{words}"
+ contains_blocked_word: "Tut mir leid, du kannst das Wort '%{word}' nicht posten; es ist nicht erlaubt."
+ contains_blocked_words: "Sorry, das kannst du nicht posten. Nicht erlaubt: %{words}."
spamming_host: "Entschuldige, leider kannst du keinen Link zu diesem Host posten."
user_is_suspended: "Gesperrte Benutzer dürfen keine Beiträge schreiben."
topic_not_found: "Etwas ist schiefgelaufen. Wurde das Thema eventuell geschlossen oder gelöscht, während du es angeschaut hast?"
@@ -1381,6 +1381,7 @@ de:
unreachable_themes: "Wir konnten die folgenden Themes nicht auf Updates prüfen:"
watched_word_regexp_error: "Der reguläre Ausdruck für „%{action}“ überwachte Wörter ist ungültig. Bitte überprüfe deine Einstellungen für überwachte Wörter oder deaktiviere die Website-Einstellung „watched words regular expressions“."
site_settings:
+ allow_bulk_invite: "Erlaube Masseneinladungen durch Hochladen einer CSV-Datei"
disabled: "deaktiviert"
display_local_time_in_user_card: "Zeigt die lokale Zeit basierend auf der Zeitzone eines Benutzers an, wenn die Benutzerkarte geöffnet wird."
censored_words: "Wörter, die automatisch durch ■■■■ ersetzt werden"
@@ -1401,7 +1402,6 @@ de:
min_personal_message_title_length: "Minimal zulässige Zeichenanzahl für den Titel von Nachrichten."
max_emojis_in_title: "Maximal erlaubte Emoji-Anzahl in Thementiteln"
min_search_term_length: "Minimal zulässige Länge eines Suchbegriffs in Zeichen."
- search_tokenize_chinese_japanese_korean: "Zwinge die Suche, Chinesisch/Japanisch/Koreanisch zu tokenisieren, auch wenn Websites keine dieser Sprachen nutzen"
search_prefer_recent_posts: "Wenn das Durchsuchen deines großen Forums langsam ist, dann versucht es diese Option zuerst mit einem Index der letzten Beiträge."
search_recent_posts_size: "Anzahl aktueller Beiträge im Index"
log_search_queries: "Protokolliere Suchanfragen von Benutzern"
@@ -1445,7 +1445,7 @@ de:
show_pinned_excerpt_mobile: "Zeige einen Auszug angehefteter Themen in der mobilen Ansicht."
show_pinned_excerpt_desktop: "Zeige einen Auszug angehefteter Themen in der Desktop-Ansicht."
post_onebox_maxlength: "Maximale Länge eines Onebox-Discourse-Beitrags in Zeichen."
- blocked_onebox_domains: "Eine Liste von Domains, die nie in eine Onebox umgewandelt werden."
+ blocked_onebox_domains: "Eine Liste von Domains, die niemals in einer Onebox untergebracht werden, z.B. wikipedia.org\n(Wildcard-Symbole * ? nicht unterstützt)"
allowed_inline_onebox_domains: "Eine Liste von Domains, die in verkleinerter Form in eine Onebox umgewandelt werden, wenn sie ohne Titel verlinkt werden"
enable_inline_onebox_on_all_domains: "Ignoriere die Website-Einstellung `inline_onebox_domain_allowlist` und erlaube Inline-Oneboxen für alle Domains"
force_custom_user_agent_hosts: "Hosts, bei denen der spezifische Onebox-Useragent für alle Anfragen genutzt wird. (Besonders hilfreich bei Hosts, die Zugriffe per Useragent limitieren.)"
@@ -1533,7 +1533,7 @@ de:
allowed_iframes: "Eine Liste von iframe-src-Domain-Präfixen, die Discourse in Beiträgen sicher erlauben kann."
allowed_crawler_user_agents: "Browserkennungen von Webcrawlern, denen der Zugriff auf die Website erlaubt sein soll. WARNUNG! DIESE EINSTELLUNG BLOCKIERT ALLE HIER NICHT GELISTETEN CRAWLER!"
blocked_crawler_user_agents: "Eindeutiges Wort unter Vernachlässigung der Groß- und Kleinschreibung in der Zeichenfolge der Browserkennung, das Webcrawler identifiziert, die nicht auf die Website zugreifen dürfen. Gilt nicht, wenn die Positivliste definiert ist."
- slow_down_crawler_user_agents: "Benutzeragenten von Web-Crawlern, die wie in der Einstellung \"Crawler-Rate verlangsamen\" konfiguriert, begrenzt werden sollen. Jeder Wert muss mindestens 3 Zeichen lang sein."
+ slow_down_crawler_user_agents: 'Benutzeragenten von Web-Crawlern, die wie in der Einstellung "Crawler-Rate verlangsamen" konfiguriert, begrenzt werden sollen. Jeder Wert muss mindestens 3 Zeichen lang sein.'
slow_down_crawler_rate: "Wenn slow_down_crawler_user_agents ausgewählt ist, wird diese Anfragenbegrenzung auf alle Crawler angewendet (Anzahl der Sekunden zwischen zwei Anfragen)"
content_security_policy: "Aktiviere Content-Security-Policy"
content_security_policy_report_only: "Aktiviere Content-Security-Policy-Report-Only"
@@ -2097,6 +2097,7 @@ de:
share_quote_visibility: "Bestimme, wann die Schaltflächen zum Teilen von Zitaten angezeigt werden sollen: nie, nur für anonyme Benutzer oder für alle Benutzer. "
create_revision_on_bulk_topic_moves: "Erstelle eine Überarbeitung für die ersten Beiträge, wenn Themen massenweise in eine neue Kategorie verschoben werden."
allow_changing_staged_user_tracking: "Erlauben Sie, dass die Kategorie- und Tag-Benachrichtigungseinstellungen eines bereitgestellten Benutzers von einem Administratorbenutzer geändert werden."
+ use_email_for_username_and_name_suggestions: "Verwende den ersten Teil der E-Mail-Adressen für Vorschläge für Benutzernamen und Namen. Dies macht es für die Öffentlichkeit einfacher, die vollständigen E-Mail-Adressen der Nutzer/innen zu erraten (da ein großer Teil der Menschen gemeinsame Dienste wie \"gmail.com\" nutzt)."
errors:
invalid_css_color: "Ungültige Farbe. Gib einen Farbnamen oder einen Hexadezimalwert ein."
invalid_email: "Ungültige E-Mail-Adresse."
@@ -2116,6 +2117,7 @@ de:
invalid_json: "Ungültiges JSON."
invalid_reply_by_email_address: "Wert muss „%{reply_key}“ enthalten und sich von der Benachrichtigungs-E-Mail unterscheiden."
invalid_alternative_reply_by_email_addresses: "Alle Werte müssen „%{reply_key}“ enthalten und sich von der Benachrichtigungs-E-Mail unterscheiden."
+ invalid_domain_hostname: "Darf kein * oder ? Zeichen enthalten."
pop3_polling_host_is_empty: "Du musst „pop3 polling host“ definieren, um POP3-Abfragen zu aktivieren."
pop3_polling_username_is_empty: "Du musst „pop3 polling username“ definieren, um POP3-Abfragen zu aktivieren."
pop3_polling_password_is_empty: "Du musst „pop3 polling password“ definieren, um POP3-Abfragen zu aktivieren."
diff --git a/config/locales/server.el.yml b/config/locales/server.el.yml
index a0b18e7fb7..b7e621ec8f 100644
--- a/config/locales/server.el.yml
+++ b/config/locales/server.el.yml
@@ -922,7 +922,6 @@ el:
max_topic_title_length: "Μέγιστο επιτρεπτό μήκος τίτλου νήματος σε χαρακτήρες"
min_personal_message_title_length: "Ελάχιστο επιτρεπτό μήκος τίτλου για ένα μήνυμα σε χαρακτήρες"
min_search_term_length: "Ελάχιστο έγκυρο μήκος όρου αναζήτησης σε χαρακτήρες"
- search_tokenize_chinese_japanese_korean: "Ανάγκασε την αναζήτηση να κάνει tokenize Κινέζικα / Ιαπωνικά / κορεατικά, ακόμη και σε μη CJK ιστότοπους"
search_prefer_recent_posts: "Εάν η αναζήτηση στην ιστοσελίδα σας είναι αργή, αυτή η επιλογή δημιουργεί κατάλογο των πιο πρόσφατων αναρτήσεων πρώτα"
search_recent_posts_size: "Πόσες πρόσφατες αναρτήσεις να κρατηθούν στο ευρετήριο "
log_search_queries: "Κατέγραψε τις αναζητήσεις που εκτελούνται από χρήστες"
@@ -950,7 +949,6 @@ el:
show_pinned_excerpt_mobile: "Εμφάνιση περίληψης σε καρφιτσωμένα νήματα στην περιήγηση από κινητά τηλέφωνα."
show_pinned_excerpt_desktop: "Εμφάνιση περίληψης σε καρφιτσωμένα νήματα στην περιήγηση από ηλεκτρονικούς υπολογιστές."
post_onebox_maxlength: "Μέγιστο μέγεθος μιας oneboxed ανάρτησης σε χαρακτήρες."
- blocked_onebox_domains: "Μία λίστα τομέων που δεν θα είναι ποτέ oneboxed."
allowed_inline_onebox_domains: "Μια λίστα από domains τα οποία θα γίνουν onebox σε σκίκρυνση αν αναφερθούν χωρίς τίτλο"
max_oneboxes_per_post: "Ανώτατος αριθμός oneboxes σε μια ανάρτηση. "
notification_email: "Η από: διεύθυνση email που χρησιμοποιείται για την αποστολή όλων των απαραιτήτων μηνυμάτων του συστήματος. Ο τομέας που καθορίζεται εδώ πρέπει να έχει SPF, DKIM και reverse PTR αρχεία ρυθμισμένα σωστά για να φθάσει το μήνυμα."
diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml
index 2d1bdc13b0..39c73ce03b 100644
--- a/config/locales/server.en.yml
+++ b/config/locales/server.en.yml
@@ -366,8 +366,8 @@ en:
too_many_links:
one: "Sorry, new users can only put one link in a post."
other: "Sorry, new users can only put %{count} links in a post."
- contains_blocked_word: "Your post contains a word that's not allowed: %{word}"
- contains_blocked_words: "Your post contains multiple words that aren't allowed: %{words}"
+ contains_blocked_word: "Sorry, you can't post the word '%{word}'; it's not allowed."
+ contains_blocked_words: "Sorry, you can't post that. Not allowed: %{words}."
spamming_host: "Sorry you cannot post a link to that host."
user_is_suspended: "Suspended users are not allowed to post."
@@ -1465,6 +1465,7 @@ en:
watched_word_regexp_error: "The regular expression for '%{action}' watched words is invalid. Please check your Watched Word settings, or disable the 'watched words regular expressions' site setting."
site_settings:
+ allow_bulk_invite: "Allow bulk invites by uploading a CSV file"
disabled: "disabled"
display_local_time_in_user_card: "Display the local time based on a user's timezone when their user card is opened."
censored_words: "Words that will be automatically replaced with ■■■■"
@@ -1485,7 +1486,8 @@ en:
min_personal_message_title_length: "Minimum allowed title length for a message in characters"
max_emojis_in_title: "Maximum allowed emojis in topic title"
min_search_term_length: "Minimum valid search term length in characters"
- search_tokenize_chinese_japanese_korean: "Force search to tokenize Chinese/Japanese/Korean even on non CJK sites"
+ search_tokenize_chinese: "Force search to tokenize Chinese even on non Chinese sites"
+ search_tokenize_japanese: "Force search to tokenize Japanese even on non Japanese sites"
search_prefer_recent_posts: "If searching your large forum is slow, this option tries an index of more recent posts first"
search_recent_posts_size: "How many recent posts to keep in the index"
log_search_queries: "Log search queries performed by users"
@@ -1530,7 +1532,7 @@ en:
show_pinned_excerpt_mobile: "Show excerpt on pinned topics in mobile view."
show_pinned_excerpt_desktop: "Show excerpt on pinned topics in desktop view."
post_onebox_maxlength: "Maximum length of a oneboxed Discourse post in characters."
- blocked_onebox_domains: "A list of domains that will never be oneboxed."
+ blocked_onebox_domains: "A list of domains that will never be oneboxed e.g. wikipedia.org\n(Wildcard symbols * ? not supported)"
allowed_inline_onebox_domains: "A list of domains that will be oneboxed in miniature form if linked without a title"
enable_inline_onebox_on_all_domains: "Ignore inline_onebox_domain_allowlist site setting and allow inline onebox on all domains."
force_custom_user_agent_hosts: "Hosts for which to use the custom onebox user agent on all requests. (Especially useful for hosts that limit access by user agent)."
@@ -1628,7 +1630,7 @@ en:
allowed_iframes: "A list of iframe src domain prefixes that discourse can safely allow in posts"
allowed_crawler_user_agents: "User agents of web crawlers that should be allowed to access the site. WARNING! SETTING THIS WILL DISALLOW ALL CRAWLERS NOT LISTED HERE!"
blocked_crawler_user_agents: "Unique case insensitive word in the user agent string identifying web crawlers that should not be allowed to access the site. Does not apply if allowlist is defined."
- slow_down_crawler_user_agents: "User agents of web crawlers that should be rate limited as configured in the \"slow down crawler rate\" setting. Each value must be at least 3 characters long."
+ slow_down_crawler_user_agents: 'User agents of web crawlers that should be rate limited as configured in the "slow down crawler rate" setting. Each value must be at least 3 characters long.'
slow_down_crawler_rate: "If slow_down_crawler_user_agents is specified this rate will apply to all the crawlers (number of seconds delay between requests)"
content_security_policy: "Enable Content-Security-Policy"
content_security_policy_report_only: "Enable Content-Security-Policy-Report-Only"
@@ -1904,7 +1906,7 @@ en:
max_mentions_per_post: "Maximum number of @name notifications anyone can use in a post."
max_users_notified_per_group_mention: "Maximum number of users that may receive a notification if a group is mentioned (if threshold is met no notifications will be raised)"
enable_mentions: "Allow users to mention other users."
- here_mention: "Name used for @here mention. Must not be an existent username."
+ here_mention: "Name used for a @mention to allow privileged users to notify up to 'max_here_mentioned' people participating in the topic. Must not be an existing username."
max_here_mentioned: "Maximum number of mentioned people by @here."
min_trust_level_for_here_mention: "The minimum trust level allowed to mention @here."
@@ -2186,7 +2188,7 @@ en:
display_name_on_posts: "Show a user's full name on their posts in addition to their @username."
show_time_gap_days: "If two posts are made this many days apart, display the time gap in the topic."
short_progress_text_threshold: "After the number of posts in a topic goes above this number, the progress bar will only show the current post number. If you change the progress bar's width, you may need to change this value."
- default_code_lang: "Default programming language syntax highlighting applied to GitHub code blocks (auto, nohighlight, ruby, python etc.)"
+ default_code_lang: "Default programming language syntax highlighting applied to code blocks (auto, nohighlight, ruby, python etc.)"
warn_reviving_old_topic_age: "When someone starts replying to a topic where the last reply is older than this many days, a warning will be displayed. Disable by setting to 0."
autohighlight_all_code: "Force apply code highlighting to all preformatted code blocks even when they didn't explicitly specify the language."
highlighted_languages: "Included syntax highlighting rules. (Warning: including too many languages may impact performance) see: https://highlightjs.org/static/demo for a demo"
@@ -2344,6 +2346,7 @@ en:
create_revision_on_bulk_topic_moves: "Create revision for first posts when topics are moved into a new category in bulk."
allow_changing_staged_user_tracking: "Allow a staged user's category and tag notification preferences to be changed by an admin user."
+ use_email_for_username_and_name_suggestions: "Use the first part of email addresses for username and name suggestions. Note that this makes it easier for the public to guess full user email addresses (because a large proportion of people share common services like `gmail.com`)."
errors:
invalid_css_color: "Invalid color. Enter a color name or hex value."
@@ -2364,6 +2367,7 @@ en:
invalid_json: "Invalid JSON."
invalid_reply_by_email_address: "Value must contain '%{reply_key}' and be different from the notification email."
invalid_alternative_reply_by_email_addresses: "All values must contain '%{reply_key}' and be different from the notification email."
+ invalid_domain_hostname: "Must not include * or ? characters."
pop3_polling_host_is_empty: "You must set a 'pop3 polling host' before enabling POP3 polling."
pop3_polling_username_is_empty: "You must set a 'pop3 polling username' before enabling POP3 polling."
pop3_polling_password_is_empty: "You must set a 'pop3 polling password' before enabling POP3 polling."
@@ -2393,6 +2397,8 @@ en:
unicode_usernames_avatars: "The internal system avatars do not support Unicode usernames."
list_value_count: "The list must contain exactly %{count} values."
google_oauth2_hd_groups: "You must first set 'google oauth2 hd' before enabling this setting."
+ search_tokenize_chinese_enabled: "You must disable 'search_tokenize_chinese' before enabling this setting."
+ search_tokenize_japanese_enabled: "You must disable 'search_tokenize_japanese' before enabling this setting."
placeholder:
discourse_connect_provider_secrets:
diff --git a/config/locales/server.es.yml b/config/locales/server.es.yml
index a8d99a843c..953fedade1 100644
--- a/config/locales/server.es.yml
+++ b/config/locales/server.es.yml
@@ -338,8 +338,6 @@ es:
too_many_links:
one: "Lo sentimos, los usuarios nuevos solo pueden poner un enlace en una publicación."
other: "Lo sentimos, los usuarios nuevos solo pueden poner %{count} enlaces en una publicación."
- contains_blocked_word: "Tu publicación contiene una palabra que no está permitida: %{word}"
- contains_blocked_words: "Tu publicación contiene varias palabras que no están permitidas: %{words}"
spamming_host: "Lo sentimos, no puedes publicar un enlace a esa web."
user_is_suspended: "A los usuarios suspendidos no se les permite publicar."
topic_not_found: "Algo salió mal. ¿Tal vez este tema se cerró o eliminó mientras estabas lo estabas mirando?"
@@ -486,6 +484,7 @@ es:
Puedes editar tu anterior respuesta para añadir una cita. Para ello, selecciona el texto que quieras citar y pulsa el botón citar respuesta que aparecerá.
Es más fácil leer temas que tengan menos respuestas (aunque más profundas), que tener que leer muchas respuestas individuales.
+ dominating_topic: Has publicado más del %{percent} % de las respuestas, ¿hay alguien más de quien te gustaría saber?
get_a_room: Has respondido a @%{reply_username} %{count} veces, ¿sabías que también puedes enviarle un mensaje personal directamente?
too_many_replies: |
### Has llegado al límite de respuestas en este tema
@@ -1337,6 +1336,7 @@ es:
labels:
user: Usuario
qtt_like: Me gusta recibidos
+ description: "Los 10 usuarios que más me gusta han recibido."
top_users_by_likes_received_from_inferior_trust_level:
title: "Usuarios que más «me gusta» han recibido de usuarios con niveles de confianza bajos"
labels:
@@ -1349,7 +1349,9 @@ es:
labels:
user: Usuario
qtt_like: Me gusta recibidos
+ description: "Los 10 usuarios que han recibido más me gusta de numerosas personas distintas."
dashboard:
+ group_email_credentials_warning: 'Hay un problema con las credenciales del correo electrónico del grupo %{group_full_name}. No se enviarán mensajes desde la bandeja de entrada del grupo hasta que se solucione el problema. %{error}'
rails_env_warning: "Tu servidor está funcionando en modo de %{env}."
host_names_warning: "Tu archivo config/database.yml está utilizando el hostname localhost predeterminado. Actualízalo para usar el hostname de tu sitio."
sidekiq_warning: 'Sidekiq no está funcionando. Muchas tareas, tal como el envío de correos electrónicos, se están ejecutando de forma desincronizada por sidekiq. Asegúrate de que por lo menos un proceso de sidekiq está funcionando. Puedes obtener más información sobre Sidekiq aquí.'
@@ -1397,7 +1399,6 @@ es:
min_personal_message_title_length: "Longitud mínima del título para un mensaje en número de caracteres"
max_emojis_in_title: "Cantidad máxima de emojis en el título del tema"
min_search_term_length: "Extensión mínima de una búsqueda válida en número de caracteres"
- search_tokenize_chinese_japanese_korean: "Forzar la búsqueda a tokenizar Chino/Japonés/Coreano incluso en sitios no basados en esos idiomas"
search_prefer_recent_posts: "Si la búsqueda en tu foro grande es lenta, esta opción prueba primero en un índice de publicaciones más recientes"
search_recent_posts_size: "Cantidad de publicaciones recientes que se mantienen en el índice"
log_search_queries: "Registro de búsquedas realizadas por los usuarios"
@@ -1441,7 +1442,6 @@ es:
show_pinned_excerpt_mobile: "Mostrar extracto de temas anclados en la vista móvil."
show_pinned_excerpt_desktop: "Mostrar extracto de temas anclados en la vista de escritorio."
post_onebox_maxlength: "Extensión máxima en caracteres de una publicación de Discourse en formato onebox."
- blocked_onebox_domains: "Una lista de dominios que nunca será oneboxed."
allowed_inline_onebox_domains: "Una lista de dominios que serán oneboxed en forma de miniatura si están vinculados sin título"
enable_inline_onebox_on_all_domains: "Ignorar el ajuste del sitio inline_onebox_domain_allowlist y permitir inline onebox en todos los dominios."
force_custom_user_agent_hosts: "Hosts que se utilizará para el agente usuario personalizado de onebox en todas las solicitudes. (Especialmente útil para hosts que limitan el acceso por usuario agente)."
@@ -1529,7 +1529,7 @@ es:
allowed_iframes: "Una lista de prefijos de dominios para iframe src que discourse puede permitir de forma segura en publicaciones"
allowed_crawler_user_agents: "Agentes de usuario de crawlers a los que se debe permitir el acceso al sitio. ¡ADVERTENCIA! ¡CONFIGURAR ESTO INHABILITARÁ A TODOS LOS CRAWLERS QUE NO SE ENCUENTRAN AQUÍ!"
blocked_crawler_user_agents: "Palabra única insensible a mayúsculas y minúsculas en la cadena del agente de usuario que identifica a los que no se debe permitir el acceso al sitio. No se aplica si se define una lista de permitidos."
- slow_down_crawler_user_agents: "Agentes de usuario de rastreadores web a los que se les debe limitar la velocidad según lo configurado en el ajuste «slow down crawler rate». Cada valor debe tener al menos 3 caracteres."
+ slow_down_crawler_user_agents: 'Agentes de usuario de rastreadores web a los que se les debe limitar la velocidad según lo configurado en el ajuste «slow down crawler rate». Cada valor debe tener al menos 3 caracteres.'
slow_down_crawler_rate: "Si slow_down_crawler_user_agents es especificado, esta proporción aplicará para todos los crawlers (número de segundos de demora entre solicitudes)"
content_security_policy: "Activar la política de seguridad de contenido (CSP)"
content_security_policy_report_only: "Activar solo el informe de la política de seguridad de contenido (CPS)"
@@ -2541,6 +2541,9 @@ es:
system_messages:
reviewables_reminder:
subject_template: "Hay elementos pendientes en la cola de revisión"
+ text_body_template:
+ one: "Hay %{mentions} elemento recibido hace más de %{count} hora. [Por favor, revísalo](%{base_url}/review)."
+ other: "Hay %{mentions} elementos recibidos hace más de %{count} horas. [Por favor, revísalos](%{base_url}/review)."
private_topic_title: "Tema #%{id}"
contents_hidden: "Visita la publicación para ver su contenido."
post_hidden:
@@ -2623,6 +2626,26 @@ es:
flags_agreed_and_post_deleted_for_responders:
title: "Respuesta a un mensaje denunciado eliminada por el personal"
subject_template: "Respuesta a un mensaje denunciado eliminada por el personal"
+ text_body_template: |
+ Hola,
+
+ Esto es un mensaje automático enviado desde %{site_name} para hacerte saber que una [publicación](%{base_url}%{url}) a la que has respondido ha sido eliminada.
+
+ %{flag_reason}
+
+ La publicación fue denunciada por la comunidad y un miembro del equipo decidió eliminarla.
+
+ ```markdown
+ %{flagged_post_raw_content}
+ ```
+
+ Esta era tu respuesta:
+
+ ```markdown
+ %{flagged_post_response_raw_content}
+ ```
+
+ Para más detalles sobre el motivo del borrado, consulta las [directrices de la comunidad](%{base_url}/guidelines).
usage_tips:
text_body_template: |
Si quieres unos consejos para empezar, [echa un vistazo a esta entrada de blog](https://blog.discourse.org/2016/12/discourse-new-user-tips-and-tricks/).
diff --git a/config/locales/server.fa_IR.yml b/config/locales/server.fa_IR.yml
index 378a10ebc8..d36cd02fd7 100644
--- a/config/locales/server.fa_IR.yml
+++ b/config/locales/server.fa_IR.yml
@@ -883,7 +883,6 @@ fa_IR:
max_topic_title_length: "حداکثر طول مجاز عنوان موضوع به نویسه"
min_personal_message_title_length: "حداقل طول مجاز عنوان برای پیام به نویسه"
min_search_term_length: "حداقل طول واژه جستجوی معتبر به نویسه"
- search_tokenize_chinese_japanese_korean: "اجبار جستجو برای tokenize کردن چینی/ژاپنی/کرهای حتی در سایت هایی که از این زبانها استفاده نمیکنند"
search_prefer_recent_posts: "اگر در انجمن بزرگ شما سرعت جستوجو کم است، این گزینه در ابتدا نمایهی آخرین فرستهها را میگردد."
search_recent_posts_size: "تعداد فرستههای اخیر برای قرار گرفتن در نمایه"
log_search_queries: "کارنامه جستجوهای انجام شده توسط کاربران"
@@ -910,7 +909,6 @@ fa_IR:
show_pinned_excerpt_mobile: "نمایش خلاصه موضوعات سنجاق شده در موبایل."
show_pinned_excerpt_desktop: "نمایش خلاصه موضوعات سنجاق شده در کامپیوتر."
post_onebox_maxlength: "حداکثر طول متن پیشنمایش لینک به نویسه."
- blocked_onebox_domains: "لیست دامنههایی که نباید پیشنمایش داشته باشند."
max_oneboxes_per_post: "حداکثر تعداد پیش نمایش پیوند در یک نوشته"
notification_email: "از: ایمیل آدرس زمان ارسال تمام ایمیل های ضروری سیستم استفاده شد. .دامنه مشخص شده در اینجا باید SPF, DKIM داشته باشد و سوابق PTR معکوس به درستی برای ورود ایمیل تنظیم شده باشد. "
email_custom_headers: "فهرست pipe-delimited از سربرگهای ایمیل سفارشی "
diff --git a/config/locales/server.fi.yml b/config/locales/server.fi.yml
index 4367012ce0..84cc118935 100644
--- a/config/locales/server.fi.yml
+++ b/config/locales/server.fi.yml
@@ -331,8 +331,6 @@ fi:
too_many_links:
one: "Uudet käyttäjät voivat lisätä vain yhden linkin viestiin."
other: "Uudet käyttäjät voivat lisätä vain %{count} linkkiä viestiin."
- contains_blocked_word: "Viestissäsi on kielletty sana: %{word}"
- contains_blocked_words: "Viestissäsi on kiellettyjä sanoja: %{words}"
spamming_host: "Et voi lisätä linkkiä tähän isäntään."
user_is_suspended: "Hyllytetyt käyttäjät eivät saa luoda viestejä."
topic_not_found: "Jokin on mennyt pieleen. Ehkä tämä ketju on suljettu tai poistettu sillä välin, kun katselit sitä?"
@@ -1375,7 +1373,6 @@ fi:
min_personal_message_title_length: "Yksityisviestin otsikon vähimmäismerkkimäärä"
max_emojis_in_title: "Kuinka monta emojia enintään otsikossa"
min_search_term_length: "Haun merkkien minimimäärä"
- search_tokenize_chinese_japanese_korean: "Pakota haku käsittelemään kiinaa/japania/koreaa myös muunkielisillä sivustoilla"
search_prefer_recent_posts: "Jos hakeminen suurelta foorumilta on hidasta, tämä asetus kokeilee indeksiä, jossa tuoreimmat viestit ovat ensin"
search_recent_posts_size: "Kuinka monta tuoretta viestiä pidetään indeksissä"
log_search_queries: "Pidä lokia käyttäjien tekemistä hauista"
@@ -1417,7 +1414,6 @@ fi:
show_pinned_excerpt_mobile: "Näytä katkelma kiinnitetyistä ketjuista mobiilinäkymässä."
show_pinned_excerpt_desktop: "Näytä katkelma kiinnitetyistä ketjuista työpöytänäkymässä."
post_onebox_maxlength: "Discourse-viestin Onebox-esikatselun merkkien maksimimäärä."
- blocked_onebox_domains: "Verkko-osoitteet, joista ei luoda Onebox-esikatselua."
allowed_inline_onebox_domains: "Verkko-osoitteet, joista luodaan minimoitu Onebox-esikatselu, jos niihin linkitetään määrittämättä otsikkoa."
enable_inline_onebox_on_all_domains: "Ohita inline_onebox_domain_whitelist-asetus ja salli Onebox-esikatselut kaikista verkko-osoitteista."
force_custom_user_agent_hosts: "Isännät, joille käytetään mukautettua onebox-käyttäjäagenttia kaikissa pyynnöissä. (Erityisen hyödyllinen isännille, jotka rajoittavat käyttäjäagentin pääsyä)."
diff --git a/config/locales/server.fr.yml b/config/locales/server.fr.yml
index fda32a58f5..f6d82010a0 100644
--- a/config/locales/server.fr.yml
+++ b/config/locales/server.fr.yml
@@ -331,8 +331,6 @@ fr:
too_many_links:
one: "Nous sommes désolés, les nouveaux utilisateurs ne peuvent insérer qu'un seul lien par message."
other: "Nous sommes désolés, les nouveaux utilisateurs ne peuvent insérer que %{count} liens par message."
- contains_blocked_word: "Votre message contient un mot qui n'est pas permis : %{word}"
- contains_blocked_words: "Votre message contient plusieurs mots qui ne sont pas permis : %{words}"
spamming_host: "Désolé, vous ne pouvez pas insérer de lien vers ce domaine."
user_is_suspended: "Les utilisateurs suspendus ne sont pas autorisés à publier des messages."
topic_not_found: "Une erreur est survenue. Peut-être que ce sujet a été fermé ou supprimé pendant que vous le regardiez ?"
@@ -1375,7 +1373,6 @@ fr:
min_personal_message_title_length: "Longueur minimale pour un titre de message en nombre de caractères"
max_emojis_in_title: "Nombre maximal d'émojis permis dans le titre d'un sujet"
min_search_term_length: "Longueur minimale en caractères du terme à rechercher"
- search_tokenize_chinese_japanese_korean: "Forcer la recherche à segmenter les textes chinois, japonais et coréens, même sur les sites n'utilisant pas ces langues par défaut."
search_prefer_recent_posts: "Si les recherches dans votre forum sont lentes, cette option effectue l'indexation des messages les plus récents en premier"
search_recent_posts_size: "Combien de messages récents à garder dans l'index"
log_search_queries: "Archiver les requêtes de recherche des utilisateurs"
@@ -1417,7 +1414,6 @@ fr:
show_pinned_excerpt_mobile: "Afficher les extraits des sujets épinglés en vue mobile."
show_pinned_excerpt_desktop: "Afficher les extraits des sujets épinglés en vue bureau."
post_onebox_maxlength: "Longueur maximale en nombre de caractères d'un message Discourse intégré comme Onebox."
- blocked_onebox_domains: "Une liste de domaines qui ne seront jamais transformés en Onebox."
allowed_inline_onebox_domains: "Une liste de domaines qui seront transformés en Onebox s'ils ont été insérés sans titre"
enable_inline_onebox_on_all_domains: "Ignorer le paramètre « inline_onebox_domain_allowlist » et permettre des Onebox en ligne pour tous les domaines."
force_custom_user_agent_hosts: "Domaines pour lesquels utiliser un agent utilisateur personnalisé pour les requêtes de Onebox. (Cela est utile pour les domaines limitant les accès par agent utilisateur.)"
diff --git a/config/locales/server.gl.yml b/config/locales/server.gl.yml
index 004112c92a..b3ff8475aa 100644
--- a/config/locales/server.gl.yml
+++ b/config/locales/server.gl.yml
@@ -317,8 +317,6 @@ gl:
too_many_links:
one: "Sentímolo, mais os novos usuarios só poden poñer unha ligazón nunha publicación."
other: "Sentímolo, mais os novos usuarios só poden poñer %{count} ligazóns nunha publicación."
- contains_blocked_word: "A súa publicación contén unha palabra que non está permitida: %{word}"
- contains_blocked_words: "A súa publicación contén varias palabras que non están permitidas: %{words}"
spamming_host: "Sentímolo, non pode publicar unha ligazón a ese servidor."
user_is_suspended: "Aos usuarios suspendidos non se lles permite publicar."
topic_not_found: "Algo foi mal. Talvez este tema se pechou ou se eliminou mentres o estaba a consultar?"
@@ -1332,7 +1330,6 @@ gl:
min_personal_message_title_length: "Extensión mínima do título dunha mensaxe en número de caracteres"
max_emojis_in_title: "Número máximo de emojis permitido no título dun tema"
min_search_term_length: "Extensión mínima dunha busca válida en número de caracteres"
- search_tokenize_chinese_japanese_korean: "Forzar a busca para tokenizar chinés/xaponés/coreano incluso en sitios que non sexan CXC"
search_prefer_recent_posts: "Se a busca no foro é lenta, esta opción proba primeiro nun índice das publicacións máis recentes"
search_recent_posts_size: "Número de publicacións recentes que se manteñen no índice"
log_search_queries: "Rexistro de buscas realizadas polos usuarios"
@@ -1372,7 +1369,6 @@ gl:
show_pinned_excerpt_mobile: "Mostrar o extracto de temas pegados na vista móbil."
show_pinned_excerpt_desktop: "Mostrar o extracto de temas pegados na vista de escritorio."
post_onebox_maxlength: "Lonxitude máxima en caracteres dunha publicación de Discourse en formato caixa (onebox)."
- blocked_onebox_domains: "Unha listaxe de dominios que nunca se mostrarán en formato onebox."
allowed_inline_onebox_domains: "Unha listaxe de dominios que se mostrarán en formato onebox en miniatura se son ligados sen un título"
enable_inline_onebox_on_all_domains: "Ignorar o axuste do sitio inline_onebox_domain_whitelist e permitir incluír onebox en todos os dominios."
force_custom_user_agent_hosts: "Hosts que se utilizarán para o axente de usuario personalizado de onebox en todas as solicitudes (especialmente útil para hosts que limitan o acceso por axente de usuario)."
diff --git a/config/locales/server.he.yml b/config/locales/server.he.yml
index 93424fec7a..dcabd77318 100644
--- a/config/locales/server.he.yml
+++ b/config/locales/server.he.yml
@@ -376,8 +376,8 @@ he:
two: "משתמשים חדשים יכולים להוסיף רק %{count} קישורים בפוסט, עמך הסליחה."
many: "משתמשים חדשים יכולים להוסיף רק %{count} קישורים בפוסט, עמך הסליחה."
other: "משתמשים חדשים יכולים להוסיף רק %{count} קישורים בפוסט, עמך הסליחה."
- contains_blocked_word: "הפוסט שלך מכיל מילים אסורות: %{word}"
- contains_blocked_words: "הפוסט שלך מכיל מספר מילים שאסור להשתמש בהן: %{words}"
+ contains_blocked_word: "אסור לפרסם את המילה ‚%{word}’, עמך הסליחה."
+ contains_blocked_words: "אי אפשר לפרסם את זה, עמך הסליחה. מילים אסורות: %{words}."
spamming_host: "אין לך אפשרות לפרסם קישור לאתר זה, עמך הסליחה."
user_is_suspended: "משתמשים מושעים אינם מורשים לפרסם."
topic_not_found: "משהו השתבש אולי נושא זה נסגר או נמחק בזמן שקראת אותו?"
@@ -1465,6 +1465,7 @@ he:
unreachable_themes: "לא הצלחתי לבדוק אם יש עדכונים לערכות העיצוב הבאות:"
watched_word_regexp_error: "הביטוי הרגולרי למילים במעקב ‚%{action}’ שגוי. נא לבדוק את הגדרות המילים במעקב או ךהשבית את הגדרת האתר ‚ביטוי רגולרי למילים במעקב’."
site_settings:
+ allow_bulk_invite: "לאפשר הזמנות במרוכז על ידי העלאת קובץ CSV"
disabled: "מושבת"
display_local_time_in_user_card: "להציג את הזמן המקומי בהתאם לאזור הזמן של המשתמש כאשר כרטיס המשתמש שלו נפתח."
censored_words: "מלים שיוחלפו אוטומטית ב־■■■■"
@@ -1485,7 +1486,8 @@ he:
min_personal_message_title_length: "אורך הכותרת המזערי המותר להודעה בתווים"
max_emojis_in_title: "מספר האמוג׳ים המרבי בכותרת נושא"
min_search_term_length: "מספר התווים המינמלי התקין כאורך מונח לחיפוש"
- search_tokenize_chinese_japanese_korean: "אלצו את החיפוש לנתח סינית/יפנית/קוריאנית גם באתרים שאינם בשפות אלו"
+ search_tokenize_chinese: "לכפות על החיפוש לפרק טקסט בסינית אפילו באתרים שאינם סיניים"
+ search_tokenize_japanese: "לכפות על החיפוש לפרק טקסט ביפנית אפילו באתרים שאינם יפניים"
search_prefer_recent_posts: "אם חיפוש בפורום הגדול שלך אטי, אפשרות זו מנסה לסדר במפתח את הפוסטים החדשים יותר בהתחלה"
search_recent_posts_size: "כמה פוסטים חדשים לשמור באינדקס"
log_search_queries: "רישום שאילתות חיפוש שמתבצעות על ידי משתמשים"
@@ -1512,7 +1514,7 @@ he:
editing_grace_period_max_diff: "מספר תווים מרבי שמותר לשנות בטווח עריכת חסד, אם נערכו למעלה מהכמות הזאת יש ליצור מהדורה חדשה לפוסט (דרגות אמון 0 ו־1)"
editing_grace_period_max_diff_high_trust: "מספר תווים מרבי שמותר לשנות בטווח עריכת חסד, אם נערכו למעלה מהכמות הזאת יש ליצור מהדורה חדשה לפוסט (דרגות אמון 2 ומעלה)"
staff_edit_locks_post: "פוסטים יינעלו מפני עריכה אם נערכו על ידי הסגל."
- post_edit_time_limit: "יוצרי פוסטים בדרגת אמון 1 או 0 יכולים לערוך את הפוסטים שלהם עד (n) דקות לאחר הפרסום. 0 כדי לאפשר לערוך לעד. "
+ post_edit_time_limit: "יוצרי פוסטים בדרגת אמון 1 או 0 יכולים לערוך את הפוסטים שלהם עד (n) דקות לאחר הפרסום. 0 כדי לאפשר לערוך לעד."
tl2_post_edit_time_limit: "מחברים בדרגת אמון 2 ומעלה יכולים לערוך את הפוסטים שלהם (n) דקות לאחר פרסומם. 0 ישבית את ההגבלה הזאת."
edit_history_visible_to_public: "לאפשר לכולם לראות גרסאות קודמות של פוסט ערוך. כאשר אפשרות זו מושבתת, רק חברי סגל יכולים לצפות בהן."
delete_removed_posts_after: "פוסטים שהוסרו על ידי מחבריהם ימחקו באופן אוטומטי לאחר (n) שעות. אם הגדרה זו מכוונת ל-0, פוסטים ימחקו מיידית."
@@ -1523,13 +1525,13 @@ he:
fixed_category_positions: "אם אפשרות זו מסומנת, תוכלו לארגן את הקטגוריות כך שיופיעו בסדר קבוע. אם האופציות אינן מסומנות, הקטגוריות יסודרו על פי סדר הפעילות שהתבצעה בהן."
fixed_category_positions_on_create: "אם האפשרות תסומן, סדר הקטגוריות יוגדר בתפריט יצירת נושא (דורש fixed_category_positions)."
add_rel_nofollow_to_user_content: 'הוספת התווית rel nofollow לכל תוכן שפורסם על ידי המשתמש/ת, פרט לקישורים פנימיים (כולל מתחם הורה parent domains). אם תשנו אפשרות זו, עליכם לאפות מחדש את כל הפרסומים עם: "rake posts:rebake"'
- exclude_rel_nofollow_domains: "רשימת שמות התחום שיש להוסיף לקישורים אליהם nofollow. הוספת example.com תאפשר אוטומטית גם את sub.example.com. בתור התחלה, עליך להוסיף את שם התחום של האתר הזה כדי לסייע לסורקי רשת (crawlers) למצוא את כל התוכן. אם חלקים אחרים מהאתר שלך מתארחים בשמות תחום אחרים, אז גם אותם."
+ exclude_rel_nofollow_domains: "רשימת שמות התחום שאין להוסיף לקישורים אליהם nofollow. הוספת example.com תאפשר אוטומטית גם את sub.example.com. בתור התחלה, עליך להוסיף את שם התחום של האתר הזה כדי לסייע לסורקי רשת (crawlers) למצוא את כל התוכן. אם חלקים אחרים מהאתר שלך מתארחים בשמות תחום אחרים, אז גם אותם."
post_excerpt_maxlength: "אורך מקסימלי של קטע פוסט / סיכום."
topic_excerpt_maxlength: "האורך המרבי של מקטע מתוך / סיכום של נושא, נוצר מהפוסט הראשון בנושא."
show_pinned_excerpt_mobile: "הצגת קטע בנושאים נעוצים במבט ניידים."
show_pinned_excerpt_desktop: "הצגת קטע בנושאים נעוצים בתצוגת מחשב-שולחני."
post_onebox_maxlength: "אורך מרבי של פוסט ב־Discourse בתיבת תחימה בתווים."
- blocked_onebox_domains: "רשימת שמות תחום שלעולם לא יופיעו בתיבות תחימה."
+ blocked_onebox_domains: "רשימה של שמות תחום שלא יתחמו בתיבה, למשל: wikipedia.org\n(אין תמיכה בתווי הכללה כגון * או ?)"
allowed_inline_onebox_domains: "רשימת שמות מתחם שיופיעו בתיבות תחימה בתצורה המזערית שלהם אם הקישור מופיע ללא כותרת"
enable_inline_onebox_on_all_domains: "להתעלם מהגדרת האתר inline_onebox_domain_allowlist (רשימת היתר של שמות תחום לתיבת תחימה משולבת) ולאפשר תיבות תחימה לכל שמות המתחם."
force_custom_user_agent_hosts: "מארחים שמולם משתמשים בסוכן משתמש onebox בהתאמה אישית לכל הבקשות. (חיוני במיוחד למארחים שמגבילים גישה בהתאם לסוכן משתמש)."
@@ -1565,7 +1567,7 @@ he:
enable_system_message_replies: "מאפשר למשתמשים להגיב להודעות מערכת אפילו כשהודעות אישיות מושבתות"
enable_long_polling: "באס הודעות שמשמש להתראות יכול להשתמש בתשאול ארוך (long polling)"
enable_chunked_encoding: "הפעלת תגובות קידוד מחולקות מצד השרת. תכונה זו עובדת ברוב התצורות אך חלק מהמתווכים עשויים לכלוא כצעד ביניים, מה שעלול לגרום להאטה"
- long_polling_base_url: "בסיס ה-URL שנמצא בשימוש עבור long polling (כאשר CDN מחזיר תוכן דינמי, זכרו להגדיר את ערך זה ל-Origin pull, דוגמת http://origin.site.com)"
+ long_polling_base_url: "כתובת הבסיס שמשמשת לתשאול ארוך (כאשר CDN מגיש תוכן דינמי, יש להגדיר זאת למשיכה המקורית) למשל: http://origin.site.com"
long_polling_interval: "כמות הזמן שהשרת צריך לחכות לפני שעונה ללקוחות, כאשר אין מידע לשליחה (משתמשים רשומים מחוברים למערכת בלבד)"
polling_interval: "כאשר לא מבצעים תשאול ארוך (long polling), כל כמה זמן לקוחות מחוברים למערכת יבצעו poll, במילי-שניות"
anon_polling_interval: "באיזו תכיפות לקוחות אלמוניים יתשאלו, במילישניות"
@@ -1573,12 +1575,12 @@ he:
hide_post_sensitivity: "הסבירות שפוסט שסומן בדגל יוסתר"
silence_new_user_sensitivity: "הסבירות שמשתמש חדש יושתק עקב סימוני דגל ספאם"
auto_close_topic_sensitivity: "הסבירות שנושא שסומן בדגל ייסגר אוטומטית"
- cooldown_minutes_after_hiding_posts: "מספר הדקות שמשתמשים חייבים לחכות לפני שהם יכולים לערוך פוסט שהוסתר בגלל דיגלול קהילתי"
+ cooldown_minutes_after_hiding_posts: "מספר הדקות שמשתמשים חייבים לחכות לפני שהם יכולים לערוך פוסט שהוסתר בגלל סימון קהילתי"
max_topics_in_first_day: "הכמות המקסימלית של נושאים שמשתמשים מורשים ליצור ב 24 השעות הראשונות לאחר הפוסט הראשון שלהם"
max_replies_in_first_day: "הכמות המקסימלית של תגובות שמשתמשים מורשים ליצור ב 24 השעות הראשונות אחרי יצירת הפוסט הראשון שלהם"
- tl2_additional_likes_per_day_multiplier: "להגדיל את כמות הלייקים האפשרית ביום עבור tl2 (משתמש) באמצעות הכפלה במספר זה. "
+ tl2_additional_likes_per_day_multiplier: "להגדיל את כמות הלייקים האפשרית ביום עבור דרגת אמון 2 (חברים) באמצעות הכפלה במספר זה"
tl3_additional_likes_per_day_multiplier: "הכפלה במספר הזה מגדילה את מגבלת הלייקים ליום עבור דרגת אמון 3 (רגיל)"
- tl4_additional_likes_per_day_multiplier: "להגדיל את כמות הלייקים האפשרית ביום עבור tl4 (מנהיג) באמצעות הכפלה במספר זה. "
+ tl4_additional_likes_per_day_multiplier: "להגדיל את כמות הלייקים האפשרית ביום עבור דרגת אמון 4 (הנהגה) באמצעות הכפלה במספר זה"
tl2_additional_edits_per_day_multiplier: "להגדיל את כמות העריכות האפשרית ביום עבור דרגת אמון 2 (חברים) באמצעות הכפלה במספר זה"
tl3_additional_edits_per_day_multiplier: "להגדיל את כמות העריכות האפשרית ביום עבור דרגת אמון 3 (רגיל) באמצעות הכפלה במספר זה"
tl4_additional_edits_per_day_multiplier: "להגדיל את כמות העריכות האפשרית ביום עבור דרגת אמון 4 (הנהגה) באמצעות הכפלה במספר זה"
@@ -1616,14 +1618,14 @@ he:
allowed_iframes: "רשימה של קידומות שמות מתחם בתור מקור של iframe שאפשר לאפשר בבטחה בפוסטים ב־Discourse"
allowed_crawler_user_agents: "סוכני משתמשים של סורקי רשת שמורשים לגשת לאתר. אזהרה! שינוי הגדרה זו תחסום את כל הסורקים שאינם מופיעים כאן!"
blocked_crawler_user_agents: "מילה ייחודית שאינה תלוית רישיות במחרוזת סוכן המשתמש (user agent) שמגדירה לאילו סורקי רשת אין הרשאת גישה לאתר. לא חל במקרה שהגדרת רשימת היתר."
- slow_down_crawler_user_agents: "סוכני משתמשים של סורקי רשת שכמות הגישה שלהם תוגבל בהתאם להגדרה „האטת קצב סורקי רשת”. כל ערך חייב להיות באורך של 3 תווים לפחות."
+ slow_down_crawler_user_agents: 'סוכני משתמשים של סורקי רשת שכמות הגישה שלהם תוגבל בהתאם להגדרה „האטת קצב סורקי רשת”. כל ערך חייב להיות באורך של 3 תווים לפחות.'
slow_down_crawler_rate: "אם הוגדר slow_down_crawler_user_agents (האטת סורקי אינטרנט) קצב זה יחול על כל סורקי האינטרנט (כמות ההמתנה בשניות בין בקשות)"
content_security_policy: "הפעלת Content-Security-Policy (מדיניות אבטחת תוכן)"
content_security_policy_report_only: "הפעלת Content-Security-Policy-Report-Only (מדיניות אבטחת תוכן בדיווח בלבד)"
content_security_policy_collect_reports: "הפעלת איסוף דוחות הפרה של CSP (מדיניות אבטחת תוכן) תחת /csp_reports"
content_security_policy_frame_ancestors: "להגביל מי יכול להטמיע את האתר הזה עם מסגרות iframes דרך CSP. ניתן לשלוח במארחים המורשים דרך הטמעה"
content_security_policy_script_src: "מקורות סקריפטים נוספים ברשימת ההיתר. המארח וה־CDN הנוכחיים נכללים כבררת מחדל. ניתן לעיין בהתקפות XSS בעזרת CSP - מדיניות אבטחת תוכן."
- invalidate_inactive_admin_email_after_days: "חשבונות מנהלים שלא ביקרו באתר מעל כמות כזו של ימים יאלצו לאמת מחדש את כתובת הדוא״ל שלהם כדי לשוב ולהיכנס. להגדיר כ־0 כדי לנטרל."
+ invalidate_inactive_admin_email_after_days: "חשבונות מנהלים שלא ביקרו באתר מעל כמות כזו של ימים יאלצו לאמת מחדש את כתובת הדוא״ל שלהם כדי לשוב ולהיכנס. להגדיר כ־0 כדי להשבית."
top_menu: "החליטו אילו פריטים יופיעו בניווט עמוד הבית ובאיזה סדר לדוגמה |אחרונים|חדשים|קטגוריות|מובילים|נקראו|פורסמו|סימניות"
post_menu: "החליטו אילו פריטים מופיעים בתפריט הפוסט, ובאיזה סדר. למשל like|edit|flag|delete|share|bookmark|reply"
post_menu_hidden_items: "פריטי התפריט להסתרה כברירת מחדל בתפריט הפוסט, אלא אם כן נלחץ לחצן ההרחבה."
@@ -1754,8 +1756,8 @@ he:
max_post_deletions_per_day: "מספר הפוסטים המרבי שמשתמש יכול למחוק ביום אחד. 0 ישבית מחיקת פוסטים."
invite_link_max_redemptions_limit: "כמות הניצולים המרבית שמורשית לקישורים הזמנה לא יכולה לעבור את הערך הזה."
invite_link_max_redemptions_limit_users: "כמות הניצולים המרבית שמורשית לקישורי הזמנה שנוצרו על ידי משתמשים רגילים לא יכולה לעבור את הערך הזה."
- alert_admins_if_errors_per_minute: "מספר השגיאות בדקה לפני ששולחים התראה למנהל. ערך של 0 מנטרל אפשרות זו. שימו לב: מצריך הרצה מחדש."
- alert_admins_if_errors_per_hour: "מספר השגיאות בשעה לפני ששולחים התראה למנהל. ערך של 0 מנטרל אפשרות זו. שימו לב: מצריך הרצה מחדש."
+ alert_admins_if_errors_per_minute: "מספר השגיאות בדקה לפני שליחת התראה למנהל. 0 משבית אפשרות זו. לתשומת לבך: דורש הפעלה מחדש."
+ alert_admins_if_errors_per_hour: "מספר השגיאות בשעה לפני שליחת התראה למנהל. 0 משבית אפשרות זו. לתשומת לבך: דורש הפעלה מחדש."
categories_topics: "מספר הנושאים להציג בעמוד ה־/categories (קטגוריות). אם הוגדר ל־0, יתבצע ניסיון למצוא ערך שישאיר את שתי העמודות סימטריות (קטגוריות ונושאים)."
suggested_topics: "מספר הנושאים המוצעים שיופיעו בתחתית הנושא המוצג."
limit_suggested_to_category: "להציג רק נושאים מהקטגוריה הנוכחית ברשימת הנושאים המומלצים."
@@ -1848,7 +1850,7 @@ he:
max_here_mentioned: "מספר האנשים המרבי שמוזכרים על ידי @here."
min_trust_level_for_here_mention: "דרגת האמון המזערית המורשית להזכיר את @here."
create_thumbnails: "יצירת תמונות מוקטנות והארת תמונות גדולות מידי מלהיכלל בפוסט."
- email_time_window_mins: "המתינו (n) דקות לפני משלוח כל התראת מייל, כדי לאפשר למשתמשים הזדמנות לערוך ולוודא באופן סופי את הפוסטים שלהם."
+ email_time_window_mins: "להמתין (n) דקות בטרם כל שליחת התראה בדוא״ל, כדי לאפשר למשתמשים הזדמנות לערוך ולוודא באופן סופי את הפוסטים שלהם."
personal_email_time_window_seconds: "להמתין (n) שניות בטרם שליחת הודעות בדוא״ל עם התראות על הודעות אישיות, כדי לתת למשתמשים הזדמנות לסיים את עריכת ההודעות שלהם."
email_posts_context: "כמה תגובות קודמות יש לכלול כהקשר בהתראות בדוא״ל."
flush_timings_secs: "באיזו תדירות אנחנו מזרימים מידע לשרת, בשניות."
@@ -1862,14 +1864,14 @@ he:
min_title_similar_length: "האורך המינימלי של כותרת לפני שהיא נבדקת עבור איתור נושאים דומים."
desktop_category_page_style: "סגנון ויזואלי לדף /categories."
category_colors: "רשימה של ערכי צבעים הקסדצימליים מותרים לסימון קטגוריות."
- category_style: "סגנון ויזואלי עבור עיטורי קטגוריות."
+ category_style: "סגנון חזותי עבור עיטורי קטגוריות."
default_dark_mode_color_scheme_id: "ערכת הצבעים לשימוש במצב כהה."
dark_mode_none: "בלי"
max_image_size_kb: "גודל ההעלאה המרבי בקילובתים. יש להגדיר זאת ב־nginx (client_max_body_size) / apache או גם למתווך. תמונות שחורגות מהגודל הזה וקטנות מההגדרה client_max_body_size יערכו כך שגודלן יתאים להעלאה."
max_attachment_size_kb: "הגודל המקסימלי בקילו-בתים (kBs) של קבצים להעלאה. הגדרה זו חייבת להיות מוגדרת ב-nginx (client_max_body_size) / apache או בפרוקסי."
authorized_extensions: "רשימה של סיומות מותרות להעלאה (השתמשו ב '*' כדי לאפשר את כל סוגי הקבצים)"
authorized_extensions_for_staff: "רשימת סיומות קבצים שמותר לחברי סגל להעלות בנוסף לרשימה שמוגדרת תחת הגדרת האתר `authorized_extensions` (‚*’ כדי לקבל את כל סוגי הקבצים)"
- theme_authorized_extensions: "רשימת סיומות קבצים שמורשות עבור העלאת תמות (השתמשו ב '*' כדי לאפשר את כל סוגי הקבצים)"
+ theme_authorized_extensions: "רשימת סיומות קבצים שמורשים במסגרת העלאת ערכת עיצוב (‚*’ כדי לאפשר את כל סוגי הקבצים)"
max_similar_results: "כמה נושאים דומים להציג מעל לעורך כאשר מחברים נושא חדש. ההשוואה מבוססת על הכותרת וגוף הפוסט."
max_image_megapixels: "מספר המגה פיקסלים המרבי שמותר בתמונה. תמונות עם מגה פיקסלים מעבר לכמות זו תידחנה."
title_prettify: "מניעת טעויות נפוצות בכותרת, בכללן טעויות עם אותיות גדולות באנגלית, מספר ! ו ?, נקודה מיותרת בסוף, וכד׳"
@@ -1904,7 +1906,7 @@ he:
num_flaggers_to_close_topic: "מספר מינימלי של דגלים שונים שנדרש כדי להשהות באופן אוטומטי אפשות להתערב בנושא"
num_hours_to_close_topic: "מספר שעות לעצירת נושא לצורך התערבות."
auto_respond_to_flag_actions: "הפעלת תגובה אוטומטית עם הסרת דגל."
- min_first_post_typing_time: "זמן מינימלי במילי-שניות שמשתמש חייב להקיש בזמן הפוסט הראשון, אם הסף לא נעבר הפוסט אוטומטית יכנס לתור של אלו שצריכים אישור. קיבעו 0 כדי לנטרל (לא מומלץ)"
+ min_first_post_typing_time: "הזמן המזערי במילישניות שעל משתמש להקליד במהלך הפוסט הראשון, אם לא הגיע לסף הפוסט ייכנס אוטומטית לתור ההמתנה לאישור. 0 להשבתה (לא מומלץ)"
auto_silence_fast_typers_on_first_post: "להשתיק אוטומטית משתמשים שאינם עונים ל־min_first_post_typing_time (זמן התגובה המזערי לפוסט ראשון)"
auto_silence_fast_typers_max_trust_level: "דרגת האמון המרבית להשתקה אוטומטית של קלדנים נמרצים"
reviewable_claiming: "האם צריך לדרוש תוכן שמיועד לסקירה לפני שאפשר לפעול לגביו?"
@@ -1919,7 +1921,7 @@ he:
alternative_reply_by_email_addresses: "רשימה של כמה תבניות לתגובות במייל באמצעות כתובות מייל נכנסות. למשל: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "להשתמש ב־HTML במקום בטקסט בהודעות דוא״ל נכנסות."
strip_incoming_email_lines: "להסיר רווחים מובילים וסוגרים בכל שורה בהודעות דוא״ל נכנסות."
- disable_emails: "למנוע מ־Discourse לשלוח כל סוג של הודעות דוא״ל. יש לבחור ב־‚כן’ כדי לנטרל את כל הודעות הדוא״ל לכל המשתמשים. ניתן גם לבחור ב־‚ללא סגל’ כדי לנטרל את ההודעות למשתמשים שאינם נמנים עם הסגל."
+ disable_emails: "למנוע מ־Discourse לשלוח כל סוג של הודעות דוא״ל. יש לבחור ב־‚כן’ כדי להשבית את כל הודעות הדוא״ל לכל המשתמשים. ניתן גם לבחור ב־‚ללא סגל’ כדי להשבית את ההודעות למשתמשים שאינם נמנים עם הסגל."
strip_images_from_short_emails: "הסרת תמונות מהודעות דוא״ל שגודלן אינו עולה על 2800 בתים"
short_email_length: "אורכו של דוא״ל קצר בבתים"
display_name_on_email_from: "להציג שמות מלאים בשדה „מאת” בדוא״ל"
@@ -2024,7 +2026,7 @@ he:
allow_profile_backgrounds: "אפשרו למשתמשים להעלות רקעים לפרופיל."
sequential_replies_threshold: "מספר הפוסטים שעל משתמש לפרסם אחד-לאחר-השני בנושא לפני שמזכירים לו שהוא משאיר יותר מידי תגובות ברצף."
get_a_room_threshold: "מספר פוסטים שמשתמשים צריכים להכין לאותו אדם באותו הנושא לפני שהם מוזהרים."
- enable_mobile_theme: "מכשירים ניידים משתמשים בתבנית ידידותית אליהם, עם היכולת להחליף אותה לאתר המלא. נטרלו זאת אם אתם מעוניינים ב stylesheet מותאם שהוא רספונסיבי לחלוטין."
+ enable_mobile_theme: "מכשירים ניידים משתמשים בערכת עיצוב מותאמת לניידים לצד האפשרות לעבור לאתר המלא. ניתן להשבית זאת כדי להשתמש בערכת סגנון מסתגלת לחלוטין."
dominating_topic_minimum_percent: "איזה אחוז מהפוסטים משתמש צריך לייצר בנושא לפני שיקבל תזכורת לגבי שתלטנות יתר על הנושא."
disable_avatar_education_message: "ניטרול הודעה שמלמדת על שינוי דמות."
suppress_uncategorized_badge: "אל תציגו את העיטור לנושאים נטולי קטגוריה ברשימת הנושאים."
@@ -2044,17 +2046,17 @@ he:
app_association_android: "תכני נקודת הקצה .well-known/assetlinks.json שמשמשת לטובת ה־API של Google's Digital Asset Links."
app_association_ios: "תכני נקודת הקצה apple-app-site-association שמשמשת ליצירת Universal Links (קישורים אוניברסליים) בין האתר הזה ויישומוני iOS."
share_anonymized_statistics: "שיתוף סטטיסטיקת שימוש אלמונית."
- auto_handle_queued_age: "לטפל אוטומטית ברשומות שממתינות לסקירה לאחר כמות כזו של ימים. ללא התחשבות בדגלים. פוסטים ומשתמשים שממתינים בתור יידחו. יש להגדיר ל־0 כדי לנטרל את התכונה הזו."
+ auto_handle_queued_age: "לטפל אוטומטית ברשומות שממתינות לסקירה לאחר כמות כזו של ימים. ללא התחשבות בדגלים. פוסטים ומשתמשים שממתינים בתור יידחו. יש להגדיר ל־0 כדי להשבית את התכונה הזו."
penalty_step_hours: "עונשי ברירת מחדל להשתקה או השעייה של משתמשים בשעות. ברירת המחדל לעבירה הראשונה היא הערך הראשון, ברירת המחדל לעבירה השנייה היא הערך השני וכן הלאה וכן הלאה."
svg_icon_subset: "הוספת סמלים נוספים מתוך FontAwesome 5 אותם ברצונך לכלול בין המשאבים שלך. יש להשתמש בקידומת ‚fa-’ לסמלים אחידים, ‚far-’ לסמלים רגילים וב־‚fab-’ לסמלים ממותגים."
- max_prints_per_hour_per_user: "מספר מקסימלי של צפיות בדף /print (הדפסה) (קיבעו ל 0 כדי לנטרל)"
+ max_prints_per_hour_per_user: "מספר החשיפות המרבי לדף /print (0 להשבתה)"
full_name_required: "שם מלא הוא שדה נדרש לפרופיל משתמש/ת."
enable_names: "הצגת השם המלא של המשתמש בפרופיל, כרטיס המשתמש והודעות הדוא״ל של המשתמש. ניתן להשבית כדי להסתיר את השם המלא בכל מקום."
display_name_on_posts: "הצגת שמם המלא של משתמשים בפוסטים שלהם, בנוסף ל@שם_המשתמש שלהם."
show_time_gap_days: "אם שני פוסטים נוצרים בהפרש כזה של ימים זה מזה, להציג את הפרש הזמן בנושא."
short_progress_text_threshold: "לאחר שמספר הפוסטים בנושא עוברים את המספר הזה, מד ההתקדמות יציג רק את המספר של הפוסט הנוכחי. אם תשנו את רוחב מד ההתקדמות, ייתכן שתצטרכו לשנות ערך זה."
default_code_lang: "הדגשת תחביר כבררת מחדל שתחול על מקטעי קוד מ־GitHub (auto, nohighlight, ruby, python וכו׳)"
- warn_reviving_old_topic_age: "כאשר מישהם מתחילים להגיב לנושא שבו התגובה האחרונה היא בת יותר מכמה ימים, אזהרה תוצג. נטרלו באמצעות הזנה של 0."
+ warn_reviving_old_topic_age: "כשמשתמש מתחיל להגיב לנושא בו התגובה האחרונה נכתבה לפני למעלה מכמות זו של ימים, תופיע אזהרה. 0 להשבתה."
autohighlight_all_code: "לחייב שימוש בקוד הדגשה לכל קוד מעוצב מראש (preformatted code blocks) אפילו אם הם אינם מציינים את השפה."
highlighted_languages: "כללי הדגשת תחביר להכללה. (אזהרה: הכללה של שפות רבות מדי פוגעת בביצועים) להדגמה: https://highlightjs.org/static/demo"
show_copy_button_on_codeblocks: "הוספת כפתור למקטעי קוד כדי להעתיק את תוכני המקטע ללוח הגזירים של המשתמש."
@@ -2072,12 +2074,12 @@ he:
show_create_topics_notice: "אם לאתר פחות מ־5 נושאים פומביים, יש להציג מודעה המבקשת מהמנהלים ליצור נושאים נוספים."
delete_drafts_older_than_n_days: "מחקו טיוטות בנות יותר מ (n) ימים."
delete_merged_stub_topics_after_days: "מספר הימים להמתנה לפני מחיקה אוטומטית של נושאים מקוצרים שמוזגו במלואם. יש להגדיר ל־0 כדי לא למחוק נושאים מקוצרים לעולם."
- bootstrap_mode_min_users: "מספר משתמשים מינימלי שנדרש כדי לנטרל מצב איתחול (קבעו ל 0 כדי לנטרל)"
+ bootstrap_mode_min_users: "מספר משתמשים מזערי שנדרש כדי להשבית מצב ראשוניות (0 להשבתה)"
prevent_anons_from_downloading_files: "למנוע ממשתמשים אלמוניים להוריד קבצים מצורפים."
secure_media: 'מגביל גישה לכל ההעלאות (תמונות, סרטונים, שמע, טקסט, קובצי PDF, ארכיוני zip ועוד). אם מופעלת האפשרות „דרישת כניסה”, רק משתמשים שנכנסו למערכת יכולים לגשת להעלאות. אחרת, הגישה תוגבל רק להעלאות מסוגי מדיה בהודעות פרטיות ובקטגוריות פרטיות. אזהרה: מדובר בהגדרה מסובכת שדורשת הבנה עמוקה בניהול המערכת. יש לעיין בנושא המדיה המאובטחת ב־Meta לקבלת פרטים נוספים.'
secure_media_allow_embed_images_in_emails: "מאפשר להטמיע תמונות מאובטחות שבדרך כלל יידחסו אם הגודל שלהן קטן מההגדרה ‚secure media max email embed image size kb’ (גודל תמונה מרבי להטמעה כמדיה מאובטחת בקילובתים)."
secure_media_max_email_embed_image_size_kb: "גודל החיתוך לתמונות מאובטחות שיוטמעו בהודעות דוא״ל אם ההגדרה ‚secure media allow embed in emails’ (לאפשר הטמעת מדיה מאובטחת בהודעות דוא״ל) פעילה. אם ההגדרה הזאת אינה פעולה להגדרה זו אין שום משמעות."
- slug_generation_method: "נא לבחור שיטת יצירת כתובת מופשטת. ‚מוצפן’ ייצר מחרוזת עם קידוד באחוזים, ‚ללא’ ישבית את הכתובת המופשטת לחלוטין."
+ slug_generation_method: "נא לבחור שיטת יצירת כתובת מופשטות. ‚מוצפן’ ייצר מחרוזת עם קידוד באחוזים, ‚ללא’ ישבית את הכתובת המופשטת לחלוטין."
enable_emoji: "הפעלת אמוג׳י"
enable_emoji_shortcuts: "חייכנים נפוצים כגון :) :p :( יומרו לאמוג׳ים"
emoji_set: "איך בא לך את האמוג׳י שלך?"
@@ -2087,7 +2089,7 @@ he:
approve_unless_trust_level: "פוסטים של משתמשים מתחת לדרגת אמון זו חייבים לעבור אישור"
approve_new_topics_unless_trust_level: "נושאים חדשים של משתמשים מתחת לדרגת אמון זו חייבים לעבור אישור"
approve_unless_staged: "יש לאשר נושאים ופוסטים חדשים עבור משתמשים מבוימים"
- notify_about_queued_posts_after: "אם יש פוסטים שממתינים לסקירה מעבר לכמות כזו של שעות, יש לשלוח התראה לכל המפקחים. יש להגדיר ל־0 כדי לנטרל את ההתראות האלה."
+ notify_about_queued_posts_after: "אם יש פוסטים שממתינים לסקירה מעבר לכמות כזו של שעות, יש לשלוח התראה לכל המפקחים. 0 משבית את ההתראות האלה."
auto_close_messages_post_count: "מספר פוסטים מקסימלי בהודעה לפני שהיא נסגרת אוטומטית (0 לניטרול)"
auto_close_topics_post_count: "מספר מקסימלי של פוסטים בנושא לפני שהוא נסגר אוטומטית (0 להשבתה)"
auto_close_topics_create_linked_topic: "ליצור נושא חדש מקושר כאשר נושא נסגר אוטומטית עקב ההגדרה ‚לסגור אוטומטית נושאים בהתאם לכמות פוסטים’"
@@ -2179,6 +2181,7 @@ he:
share_quote_visibility: "קביעה מתי להציג כפתורי שיתוף ציטוטים: אף פעם למשתמשים אלמוניים בלבד או לכל המשתמשים. "
create_revision_on_bulk_topic_moves: "יצירת מהדורה לפוסטים הראשונים כאשר הנושאים מועברים לקטגוריה חדשה במרוכז."
allow_changing_staged_user_tracking: "לאפשר שינוי העדפות של קטגוריית המשתמשים המבוימים ותגיות על ידי ההנהלה."
+ use_email_for_username_and_name_suggestions: "להשתמש בחלק הראשון של כתובת הדוא״ל כשם משתמש והצעה לשם. נא לשים לב שזה מקל על אנשים לנחש את כתובות הדוא״ל המלאות (כיוון שרוב האנשים חולקים שירותים נפוצים כגון `gmail.com`)."
errors:
invalid_css_color: "צבע שגוי. נא למלא את שם הצבע או ערך הקסדצימלי."
invalid_email: "כתובת דוא״ל שגויה."
@@ -2198,6 +2201,7 @@ he:
invalid_json: "JSON פגום."
invalid_reply_by_email_address: "הערך חייב להכיל '%{reply_key}' ולהיות שונה ממייל ההתראה."
invalid_alternative_reply_by_email_addresses: "על כל הערכים לכלול ‚%{reply_key}’ ולהיות שונים מהדוא״ל לעדכונים."
+ invalid_domain_hostname: "אסור לכלול את התווים * או ?."
pop3_polling_host_is_empty: "עליכם לקבוע 'שרת תשאול pop3' לפני שתאפשרו תשאול POP3."
pop3_polling_username_is_empty: "עליכם לקבוע 'שם-משתמש לתשאול pop3' לפני שתאפשרו תשאול POP3."
pop3_polling_password_is_empty: "עליכם לקבוע 'סיסמת תשאול pop3' לפני שתאפשרו תשאול POP3."
@@ -2206,7 +2210,7 @@ he:
email_polling_disabled: "עליכם לאפשר ידני או תשאול POP3 לפני שתאפשרו מענה באמצעות מייל."
user_locale_not_enabled: "לפני שתוכלו להפעיל אפשרות זאת, יש לאפשר \"הגדרות מקומיות מותאמות משתמש/ת\""
invalid_regex: "ביטוי רגולרי לא תקין או לא מותר."
- email_editable_enabled: "עליך לנטרל את ‚עריכת דוא״ל אפשרית’ בטרם הפעלת הגדרה זו."
+ email_editable_enabled: "עליך להשבית את ‚עריכת דוא״ל אפשרית’ בטרם הפעלת הגדרה זו."
staged_users_disabled: "עליך לאפשר ‚משתמשים מבוימים’ בטרם הפעלת הגדרה זו."
reply_by_email_disabled: "עליך להפעיל את ‚תגובה בדוא״ל’ בטרם הפעלת הגדרה זו."
discourse_connect_url_is_empty: "עליך להגדיר ‚כתובת discourse connect’ בטרם הפעלת הגדרה זו."
@@ -2227,6 +2231,8 @@ he:
unicode_usernames_avatars: "התמונות הייצוגיות הפנימיות של המערכת אינן תומכות בשמות משתמשים עם יוניקוד."
list_value_count: "הרשימה חייבת להכיל בדיוק %{count} ערכים."
google_oauth2_hd_groups: "עליך להגדיר את ‚google oauth2 hd’ בטרם הפעלת ההגדרה הזאת."
+ search_tokenize_chinese_enabled: "עליך להשבית את ‚search_tokenize_chinese’ (חיפוש מפרק סינית) בטרם הפעלת הגדרה זו."
+ search_tokenize_japanese_enabled: "עליך להשבית את ‚search_tokenize_japanese’ (חיפוש מפרק יפנית) בטרם הפעלת הגדרה זו."
placeholder:
discourse_connect_provider_secrets:
key: "www.example.com"
@@ -3637,9 +3643,9 @@ he:
title: "התראת דוא״ל ישן"
subject_template: "[%{email_prefix}] כתובת הדוא״ל שלך הוחלפה"
text_body_template: |
- זוהי הודעה אוטומטית כדי ליידע אתכם שכתובת המייל שלכם עבור %{site_name} שונתה. אם זה נעשה בטעות, אנא צרו קשר עם מנהל האתר.
+ זוהי הודעה אוטומטית כדי ליידע אותך שכתובת הדוא״ל שלך עבור %{site_name} הוחלפה. אם זה נעשה בטעות, נא ליצור קשר עם הנהלת האתר.
- כתובת המייל שלכם שונתה ל:
+ כתובת הדוא״ל שלך שונתה לכדי:
%{new_email}
notify_old_email_add:
@@ -4439,7 +4445,7 @@ he:
name: "המשתמש/ת החדש/ה של החודש"
description: תרומות יוצאות מהכלל בחודש הראשון שלהם
long_description: |
- עיטור זה מוענק כדי לברך שני משתמשים חדשים בכל חודש בעבור תרומות מצטיינות שלהם, שנמדדות לפי תדירות הלייקים לפוסטים שלכם, וממי הם ניתנו.
+ עיטור זה מוענק כדי לברך שני משתמשים חדשים בכל חודש בעבור תרומות מצטיינות שלהם, שנמדדות לפי תדירות הלייקים לפוסטים שלהם, וממי הם ניתנו.
enthusiast:
name: נלהב
description: ביקור במשך 10 ימים ברצף כל יום
@@ -4515,8 +4521,8 @@ he:
title: "כנסו למצב בטוח"
description: "מצב בטוח מאפשר לכם לבחון את האתר שלכם מבלי לטעון תוספים או התאמות אתר."
no_customizations: "ניטרול של תמה נוכחית"
- only_official: "נטרלו תוספים לא רשמיים"
- no_plugins: "נטרלו את כל התוספים"
+ only_official: "השבתת תוספים בלתי רשמיים"
+ no_plugins: "השבתת כל התוספים"
enter: "כנסו למצב בטוח"
must_select: "עליך לבחור באפשרות אחת לפחות כדי להיכנס למצב בטוח."
wizard:
@@ -4546,7 +4552,7 @@ he:
fields:
welcome:
label: "נושא ברוכים-הבאים"
- description: "
כיצד הייתם מתארים את הקהילה שלכם לאדם זר במעלית אם יש לכם רק דקה 1?
עבור מי נועדו דיונים אלו?
מה אוכל למצוא פה?
למה כדאי לי לבקר?
נושא הברוכים-הבאים שלכם הוא הדבר הראשון שמבקרים חדשים יקראו. חישבו עליו כפסקה אחת של ׳נאום המעלית׳ או ׳הצהרת הכוונות׳ שלכם.
"
+ description: "
איך לדעתך ראוי לתאר את הקהילה שלך לאנשים זרים שפגשת במעלית למשך בערך דקה?
למי מיועדים הדיונים?
מה אפשר למצוא כאן?
מדוע כדאי לי לבקר?
נושא קבלת הפנים שלך הוא הדבר הראשון שייקראו המתעניינים החדשים. כדאי להתייחס אליו בתור ‚נאום מעלית’ או ‚הצהרת כוונות’ של פסקה אחת.
"
one_paragraph: "אנא הגבילו את הודעת הברוכים-הבאים שלכם לפסקה אחת."
extra_description: "במקרה של ספק ניתן לדלג על השלב הזה ולערוך את קבלת הפנים ואת הנושא בהמשך."
privacy:
diff --git a/config/locales/server.hu.yml b/config/locales/server.hu.yml
index 7e706e5591..3569072bc5 100644
--- a/config/locales/server.hu.yml
+++ b/config/locales/server.hu.yml
@@ -221,7 +221,6 @@ hu:
too_many_links:
one: "Sajnáljuk, de az új felhasználók csak egy hivatkozást tehetnek egy bejegyzésbe."
other: "Sajnáljuk, de az új felhasználók csak %{count} hivatkozást tehetnek egy bejegyzésbe."
- contains_blocked_word: "A bejegyzésed egy olyan szót tartalmaz, amely nem megengedett: %{word}"
user_is_suspended: "A felfüggesztett felhasználók nem hozhatnak létre új bejegyzést."
topic_not_found: "Valami hiba történt. Esetleg lezárták vagy törölték ezt a témát, míg megnézte?"
create_pm_on_existing_topic: "Sajnáljuk, nem hozhatsz létre PM-et egy meglévő témakörben."
@@ -885,12 +884,15 @@ hu:
site_settings:
disabled: "kikapcsolva"
max_emojis_in_title: "A témacímekben lévő emodzsik legnagyobb száma"
+ search_tokenize_chinese: "A keresés kényszerítése, hogy tokenizálja a kínait, még a nem kínai oldalakon is"
+ search_tokenize_japanese: "A keresés kényszerítése, hogy tokenizálja a japánt, még a nem japán oldalakon is"
notify_users_after_responses_deleted_on_flagged_post: "Ha egy bejegyzést jelentenek, majd eltávolítanak, akkor minden olyan felhasználó értesítést kap, aki válaszolt a bejegyzésre, és ezért a válaszait eltávolították."
post_excerpt_maxlength: "A bejegyzés kivonatának / összefoglalójának maximális hossza."
topic_excerpt_maxlength: "A témakör kivonatának / összefoglalójának maximális hossza a téma első bejegyzéséből generálva."
+ blocked_onebox_domains: "Azok a domainek, amelyek soha nem kerülnek dobozba, például wikipedia.org\n(A * ? helyettesítő karakterek nem támogatottak)"
enforce_second_factor: "Kényszeríti a felhasználókat, hogy engedélyezzék a kétfaktoros hitelesítést. Válassza az 'all' lehetőséget, hogy érvényesítse az összes felhasználó számára. Válassza a „személyzet” lehetőséget, hogy csak a személyzet felhasználói számára érvényesítse."
use_admin_ip_allowlist: "Az adminokk csak akkor tudnak bejelentkezni, ha a Screened IPs listában megadott IP-címmel vannak megadva (Admin > Naplók > Screened Ips)."
- slow_down_crawler_user_agents: "A forgalmi korlátozás alá elő webes robotok felhasználói ügynökei, ahogy a „robotok sebességének lelassítása” beállításban meg van adva. Minden egyes értéknek legalább 3 karakteresnek kell lennie."
+ slow_down_crawler_user_agents: 'A forgalmi korlátozás alá elő webes robotok felhasználói ügynökei, ahogy a „robotok sebességének lelassítása” beállításban meg van adva. Minden egyes értéknek legalább 3 karakteresnek kell lennie.'
enable_badges: "A jelvény rendszer engedélyezése"
normalize_emails: "Ellenőrizze, hogy a normalizált e-mail egyedi-e. A normalizált e-mail eltávolítja az összes pontot a felhasználónévből, és mindent, ami a + és a @ szimbólumok között található."
hide_email_address_taken: "Ne tájékoztassa a felhasználókat arról, hogy létezik fiók egy adott e-mail-címmel a regisztráció során vagy az elfelejtett jelszó folyamata során. Teljes e-mail-cím megkövetelése az „elfelejtett jelszó” kérésekhez."
@@ -926,6 +928,7 @@ hu:
default_other_skip_new_user_tips: "A tippek és jelvények kihagyása az új felhasználók regisztrációjakor"
default_other_like_notification_frequency: "A felhasználók értesítése a kedvelésekről alapértelmezett esetben."
company_name: "Cégnév"
+ use_email_for_username_and_name_suggestions: "Használja az e-mail-címek első részét a felhasználónév- és névjavaslatokhoz. Vegye figyelembe, hogy ez megkönnyíti a nyilvánosság számára a teljes felhasználói e-mail-címek kitalálását (mivel az emberek nagy része olyan gyakori szolgáltatásokat használ, mint a „gmail.com”)."
errors:
invalid_email: "Érvénytelen e-mail cím."
invalid_username: "Nincs ilyen nevű felhasználó."
@@ -939,9 +942,12 @@ hu:
invalid_string_min_max: "A karakterek számának %{min} és %{max} között kell lennie."
invalid_string_min: "Nem lehet rövidebb, mint %{min} karakter."
invalid_string_max: "Nem lehet hosszabb, mint %{max} karakter."
+ invalid_domain_hostname: "Nem tartalmazhatja a * vagy a ? karaktereket."
min_username_length_range: "Nem lehet a legnagyobb értéknél nagyobb legkisebb értéket beállítani."
max_username_length_range: "Nem lehet a legkisebb értéknél kisebb legnagyobb értéket beállítani."
google_oauth2_hd_groups: "A beállítás engedélyezése előtt be kell ezt állítania: „google oauth2 hd”."
+ search_tokenize_chinese_enabled: "A beállítás engedélyezése előtt le kell tiltania a „search_tokenize_chinese” beállítást."
+ search_tokenize_japanese_enabled: "A beállítás engedélyezése előtt le kell tiltania a „search_tokenize_japanese” beállítást."
search:
within_post: "#%{post_number}, szerző: %{username}"
types:
diff --git a/config/locales/server.hy.yml b/config/locales/server.hy.yml
index 3910ca4ee5..332fc5ae11 100644
--- a/config/locales/server.hy.yml
+++ b/config/locales/server.hy.yml
@@ -241,7 +241,6 @@ hy:
too_many_links:
one: "Ներողություն, նոր օգտատերերը գրառման մեջ կարող են դնել միայն մեկ հղում:"
other: "Ներողություն, նոր օգտատերերը գրառման մեջ կարող են դնել միայն %{count} հղում:"
- contains_blocked_word: "Ձեր գրառումը պարունակում է անթույլատրելի բառ՝%{word}"
spamming_host: "Ներողություն, Դուք չեք կարող հրապարակել այդ հոսթի հղում:"
user_is_suspended: "Սառեցված օգտատերերին թույլատրված չէ գրառում կատարել:"
topic_not_found: "Ինչ-որ բան այնպես չէ ընթացել: Միգուցե այս թեման փակվել կամ ջնջվե՞լ է, մինչ Դուք դիտում էիք այն:"
@@ -1070,7 +1069,6 @@ hy:
min_personal_message_title_length: "Հաղորդագրության վերնագրի նվազագույն թույլատրելի երկարությունը սիվոլներով"
max_emojis_in_title: "Թեմայի վերնագրում առավելագույն թույլատրելի էմոջիները"
min_search_term_length: "Որոնման վավեր արտահայտության նվազագույն երկարությունը սիմվոլներով"
- search_tokenize_chinese_japanese_korean: "Պարտադրված որոնում՝ կոդանշանավորելու չինարենը/ճապոներենը/կորեերենը նույնիսկ ոչ ՉՃԿ կայքերում"
search_prefer_recent_posts: "Եթե Ձեր մեծ ֆորումում որոնելը դանդաղ է, այս տարբերակը սկզբում փորձում է փնտրել ավելի թարմ գրառումների աստիճանացանկում:"
search_recent_posts_size: "Քանի վերջերս կատարված գրառում պահել ինդեքսում "
log_search_queries: "Պահպահել օգտատերերի կողմից իրականացվող որոնման հարցումները"
@@ -1107,7 +1105,6 @@ hy:
show_pinned_excerpt_mobile: "Ցուցադրել հատվածը ամրագրված թեմաների վրա հեռախոսային տարբերակում:"
show_pinned_excerpt_desktop: "Ցուցադրել հատվածը ամրագրված թեմաների վրա համակարգչային տարբերակում:"
post_onebox_maxlength: "Սմարթ ներդիրի վերածված Discourse գրառման առավելագույն երկարությունը սիմվոլներով:"
- blocked_onebox_domains: "Դոմենների ցանկը, որոնք երբեք չեն վերածվի սմարթ-ներդիրի:"
allowed_inline_onebox_domains: "Դոմենների ցանկ, որոնք կվերածվեն սմարթ-ներդիրի փոքրացված տեսքով՝ առանց վերնագրի կապակցված լինելու դեպքում"
max_oneboxes_per_post: "Գրառման մեջ սմարթ-ներդիրների առավելագույն քանակը:"
logo: "Ձեր կայքի վերևի ձախ կողմում գտնվող լոգոյի նկարը: Օգտագործեք լայն ուղղանկյուն նկար 120 երկարությամբ և 3:1 -ից բարձր հարաբերակցությամբ: Եթե թողնեք դատարկ, կցուցադրվի կայքի վերնագրի տեքստը:"
diff --git a/config/locales/server.it.yml b/config/locales/server.it.yml
index e44a38ccb4..08debae36a 100644
--- a/config/locales/server.it.yml
+++ b/config/locales/server.it.yml
@@ -337,8 +337,8 @@ it:
too_many_links:
one: "Spiacenti, i nuovi utenti possono inserire al massimo un link in un messaggio."
other: "Spiacenti, i nuovi utenti possono inserire al massimo %{count} link in un messaggio."
- contains_blocked_word: "Il tuo messaggio contiene una parola non consentita: %{word}"
- contains_blocked_words: "Il tuo messaggio contiene parole non consentite: %{words}"
+ contains_blocked_word: "Purtroppo non è consentito pubblicare la parola '%{word}'."
+ contains_blocked_words: "Purtroppo non puoi pubblicare questo messaggio. Parole non consentite: %{words}."
spamming_host: "Spiacenti, non puoi inserire un collegamento verso quell'host."
user_is_suspended: "Agli utenti sospesi non è permesso creare messaggi."
topic_not_found: "Quancosa non ha funzionato. Forse questo argomento è stato chiuso o cancellato mentre lo leggevi."
@@ -1396,7 +1396,8 @@ it:
min_personal_message_title_length: "Numero minimo di caratteri per un messaggio"
max_emojis_in_title: "Numero massimo di emoji permessi nel titolo di un Argomento"
min_search_term_length: "Numero minimo di caratteri per le parole cercate"
- search_tokenize_chinese_japanese_korean: "Attiva la tokenizzazione dei caratteri Cinesi/Giapponesi/Coreani nella ricerca anche sui siti non CJK"
+ search_tokenize_chinese: "Forza la ricerca per tokenizzare il cinese anche su siti non cinesi"
+ search_tokenize_japanese: "Forza la ricerca per tokenizzare il giapponese anche su siti non giapponesi"
search_prefer_recent_posts: "Se il tuo forum è corposo e la ricerca è lenta, questa opzione tenta di indicizzare prima i messaggi più recenti"
search_recent_posts_size: "Quanti messaggi recenti mantenere nell'indice"
log_search_queries: "Log delle query di ricerca eseguite dagli utenti"
@@ -1440,7 +1441,6 @@ it:
show_pinned_excerpt_mobile: "Mostra estratti sugli argomenti appuntati nella visualizzazione in mobilità."
show_pinned_excerpt_desktop: "Mostra estratti sugli argomenti appuntati nella vista desktop."
post_onebox_maxlength: "Lunghezza massima in caratteri di un messaggio Discourse in Onebox."
- blocked_onebox_domains: "Un elenco di domini che non saranno mai trasformati in onebox."
allowed_inline_onebox_domains: "Un elenco di domini che saranno trasformati in onebox in forma di miniatura se collegati senza un titolo"
enable_inline_onebox_on_all_domains: "Ignora l'impostazione del sito inline_onebox_domain_allowlist e consenti onebox in linea per tutti i domini."
force_custom_user_agent_hosts: "Host per i quali utilizzare l'user agent onebox personalizzato su tutte le richieste. (Particolarmente utile per gli host che limitano l'accesso con user agent)."
@@ -1526,7 +1526,7 @@ it:
allowed_iframes: "Un elenco di prefissi di dominio src iframe che discourse può consentire in modo sicuro nei messaggi"
allowed_crawler_user_agents: "User Agent dei crawler Web che dovrebbero poter accedere al sito. ATTENZIONE! IMPOSTANDO TALE OPZIONE SARANNO BLOCCATI TUTTI I CRAWLER NON ELENCATI QUI!"
blocked_crawler_user_agents: "Parola univoca, senza distinzione tra maiuscole e minuscole, nella stringa user agent che identifica i web crawler cui non si vuole consentire l'accesso al sito. L'impostazione non si applica se è stata definita una lista di elementi consentiti."
- slow_down_crawler_user_agents: "Gli user agent dei web crawler a cui impostare limiti di velocità come configurato nell'impostazione \"rallenta la velocità dei crawler\". Ogni valore deve essere lungo almeno 3 caratteri."
+ slow_down_crawler_user_agents: 'Gli user agent dei web crawler a cui impostare limiti di velocità come configurato nell''impostazione "rallenta la velocità dei crawler". Ogni valore deve essere lungo almeno 3 caratteri.'
slow_down_crawler_rate: "Se viene specificato slow_down_crawler_user_agents, tale frequenza verrà applicata a tutti i crawler (numero di secondi di ritardo tra le richieste)"
content_security_policy: "Abilita Content-Security-Policy"
content_security_policy_report_only: "Abilita Content-Security-Policy-Report-Only"
@@ -2129,6 +2129,8 @@ it:
leading_trailing_slash: "L'espressione regolare non può iniziare o terminare con una barra."
unicode_usernames_avatars: "Gli avatar di sistema interni non supportano i nomi utente Unicode."
list_value_count: "La lista deve contenere esattamente %{count} valori."
+ search_tokenize_chinese_enabled: "Devi disattivare \"search_tokenize_chinese\" prima di attivare questa impostazione."
+ search_tokenize_japanese_enabled: "Devi disattivare \"search_tokenize_japanese\" prima di attivare questa impostazione."
placeholder:
discourse_connect_provider_secrets:
key: "www.example.com"
diff --git a/config/locales/server.ja.yml b/config/locales/server.ja.yml
index f22fa023d4..07b7898dd6 100644
--- a/config/locales/server.ja.yml
+++ b/config/locales/server.ja.yml
@@ -312,8 +312,6 @@ ja:
links_require_trust: "投稿にリンクを含めることはできません。"
too_many_links:
other: "新規ユーザーは投稿につき %{count} 件のリンクしか追加できません。"
- contains_blocked_word: "投稿に許可されていない言葉が含まれています: %{word}"
- contains_blocked_words: "投稿に許可されていない語が複数含まれています: %{words}"
spamming_host: "このホストへのリンクを投稿できません。"
user_is_suspended: "凍結中のユーザーは投稿できません。"
topic_not_found: "問題が発生しました。トピックがクローズしたか、閲覧中に削除された可能性があります。"
@@ -1324,7 +1322,6 @@ ja:
min_personal_message_title_length: "メッセージのタイトルの最小文字数"
max_emojis_in_title: "トピックタイトルに許可される最大絵文字数"
min_search_term_length: "有効な検索語の最小文字数"
- search_tokenize_chinese_japanese_korean: "CJK 以外のサイトでも強制検索で中国語/日本語/韓国語をトークン化する"
search_prefer_recent_posts: "大規模なフォーラムの検索が遅い場合、このオプションは先により直近の投稿のインデックスを試す"
search_recent_posts_size: "インデックスに保持する直近の投稿の数"
log_search_queries: "ユーザーが実行した検索クエリをログに記録する"
@@ -1367,7 +1364,6 @@ ja:
show_pinned_excerpt_mobile: "モバイルビューで固定トピックの抜粋を表示する。"
show_pinned_excerpt_desktop: "デスクトップビューで固定トピックの抜粋を表示する。"
post_onebox_maxlength: "Discourse OneBox 投稿の最大文字数。"
- blocked_onebox_domains: "ワンボックス化されないドメインのリスト。"
allowed_inline_onebox_domains: "タイトルなしでリンクされた場合、ミニチュア形式でワンボックス化されるドメインのリスト"
enable_inline_onebox_on_all_domains: "inline_onebox_domain_allowlist サイト設定を無視し、すべてのドメインでインラインのワンボックスを許可する。"
force_custom_user_agent_hosts: "すべてのリクエストでカスタムワンボックスユーザーエージェントを使用するホスト (特にユーザーエージェントごとにアクセスを制限するホストで役立ちます)。"
diff --git a/config/locales/server.ko.yml b/config/locales/server.ko.yml
index a422024c32..6450f5f73c 100644
--- a/config/locales/server.ko.yml
+++ b/config/locales/server.ko.yml
@@ -313,8 +313,6 @@ ko:
links_require_trust: "죄송합니다. 게시물에 링크를 포함 할 수 없습니다."
too_many_links:
other: "죄송합니다. 신규회원은 글 하나에 링크를 %{count}개까지 넣을 수 있습니다."
- contains_blocked_word: "게시물에 허용되지 않는 단어가 포함되어 있습니다 : %{word}"
- contains_blocked_words: "게시물에 허용되지 않는 단어가 여러 개 있습니다 : %{words}"
spamming_host: "죄송합니다. 회원님은 링크를 첨부할 수 없습니다."
user_is_suspended: "가입이 보류된 회원은 글을 쓸 수 없습니다."
topic_not_found: "뭔가 잘못됐네요. 아마 읽려는 도중에 토픽이 닫혔거나 지워진 건 아닐까요?"
@@ -1340,7 +1338,6 @@ ko:
min_personal_message_title_length: "메세지 제목의 최소 길이"
max_emojis_in_title: "제목에 허용되는 최대 이모티콘"
min_search_term_length: "검색을 하기 위한 최소 글자 수"
- search_tokenize_chinese_japanese_korean: "CJK(한중일) 설정이 되어 있지 않은 사이트라도, 검색시 한중일 언어를 토크나이징하도록 강제합니다."
search_prefer_recent_posts: "이 옵션을 켜면, 포럼이 너무 커서 검색이 느리게 작동할 때 최근의 포스트부터 먼저 검색합니다."
search_recent_posts_size: "대문에 실을 최신 포스트 수"
log_search_queries: "사용자에 의해 발생된 로그 탐색 쿼리"
@@ -1384,7 +1381,6 @@ ko:
show_pinned_excerpt_mobile: "모바일 뷰에서 고정 토픽의 발췌 내용을 보여주기"
show_pinned_excerpt_desktop: "데스크톱 뷰에서 고정 토픽의 발췌 내용을 보여주기"
post_onebox_maxlength: "onebox가 적용된 Discourse 글에 허용되는 최대 글자수"
- blocked_onebox_domains: "원박스화에서 제외 할 도메인 목록입니다."
allowed_inline_onebox_domains: "제목없이 링크 된 경우 미니어처 형식으로 oneboxed 될 도메인 목록"
enable_inline_onebox_on_all_domains: "inline_onebox_domain_whitelist 사이트 설정을 무시하고 모든 도메인에서 인라인 onebox를 허용하십시오."
force_custom_user_agent_hosts: "모든 요청에서 사용자 정의 onebox 사용자 에이전트를 사용할 호스트. (특히 사용자 에이전트의 액세스를 제한하는 호스트에 유용합니다)."
diff --git a/config/locales/server.lt.yml b/config/locales/server.lt.yml
index 104d24ea1d..c8362c2db5 100644
--- a/config/locales/server.lt.yml
+++ b/config/locales/server.lt.yml
@@ -272,8 +272,6 @@ lt:
no_attachments_allowed: "Atsiprašome, bet nauji vartotojai negali įkelti priedų pranešimuose."
no_links_allowed: "Atsiprašome, bet nauji vartotojai negali įkelti nuorodų į pranešimus."
links_require_trust: "Atsiprašome, negalite įtraukti nuorodų į savo įrašus."
- contains_blocked_word: "Jūsų įraše yra neleistinas žodis: %{word}"
- contains_blocked_words: "Jūsų įraše yra keli neleidžiami žodžiai: %{words}"
user_is_suspended: "Sustabdyti vartotojai negali rašyti pranešimų."
topic_not_found: "Kažkas nepavyko. Galbūt ši tema buvo uždaryta arba ištrinta, kol į ją žiūrėjote?"
not_accepting_pms: "Atsiprašome, %{username} šiuo metu nepriima pranešimų."
diff --git a/config/locales/server.nb_NO.yml b/config/locales/server.nb_NO.yml
index 9456fa1187..c7af4cfd7a 100644
--- a/config/locales/server.nb_NO.yml
+++ b/config/locales/server.nb_NO.yml
@@ -221,7 +221,6 @@ nb_NO:
too_many_links:
one: "Beklager, nye brukere kan bare legge til én lenke i et innlegg."
other: "Beklager, nye brukere kan bare legge til %{count} lenker i et innlegg."
- contains_blocked_word: "Innlegget ditt inneholder et ord som ikke er tillatt: %{word}"
spamming_host: "Beklager, du kan ikke lenke til det domenet."
user_is_suspended: "Utestengte brukere kan ikke skrive innlegg."
topic_not_found: "Noe gikk galt. Kanskje emnet ble lukket eller slettet mens du leste det?"
@@ -947,7 +946,6 @@ nb_NO:
min_personal_message_title_length: "Minste lengde i antall tegn for en meldingstittel"
max_emojis_in_title: "Maksimalt antall emojier i en emnetittel"
min_search_term_length: "Minimum lengde på søkeord i tegn"
- search_tokenize_chinese_japanese_korean: "Tving søk til å tokenisere Kinesisk/Japansk/Koreansk selv på nettsteder uten KJK"
search_prefer_recent_posts: "Hvis søking er tregt på et stort forum, vil dette valget forsøke å søke i en index av de nyeste innleggene først"
search_recent_posts_size: "Hvor mange innlegg som beholdes i indeksen"
log_search_queries: "Logg søkeord som benyttes av brukerne"
@@ -979,7 +977,6 @@ nb_NO:
show_pinned_excerpt_mobile: "Vis utdrag fra festede emner i mobil visning."
show_pinned_excerpt_desktop: "Vis utdrag fra festede emner i desktop visning."
post_onebox_maxlength: "Maksimal lengde på et onebox Discourse innlegg i antall tegn."
- blocked_onebox_domains: "En liste over domener som aldri vil bli forsøkt oneboxet."
allowed_inline_onebox_domains: "En liste over domener hvor onebox brukes i miniatyrstørrelse hvis lenken ikke har en tittel"
max_oneboxes_per_post: "Maksimalt antall oneboxer i hvert innlegg."
notification_email: "Adressen som skal brukes som avsender: på alle viktige system e-poster. Domenet som spesifiseres her må ha SPF, DKIM og reverse PTR record satt korrekt for at e-post skal nå frem."
diff --git a/config/locales/server.nl.yml b/config/locales/server.nl.yml
index 5611c5e49f..c0ac725ad4 100644
--- a/config/locales/server.nl.yml
+++ b/config/locales/server.nl.yml
@@ -305,8 +305,6 @@ nl:
too_many_links:
one: "Sorry, nieuwe gebruikers kunnen maar één koppeling in een bericht plaatsen."
other: "Sorry, nieuwe gebruikers kunnen maar %{count} koppelingen in een bericht plaatsen."
- contains_blocked_word: "Uw bericht bevat een woord dat niet is toegestaan: %{word}"
- contains_blocked_words: "Uw bericht bevat meerdere woorden die niet zijn toegestaan: %{words}"
spamming_host: "Sorry, u kunt geen koppeling naar die host plaatsen."
user_is_suspended: "Geschorste gebruikers mogen geen berichten plaatsen."
topic_not_found: "Er is iets fout gegaan. Misschien is het topic gesloten of verwijderd terwijl u het bekeek?"
@@ -1287,7 +1285,6 @@ nl:
min_personal_message_title_length: "Minimaal toegestane titellengte voor een bericht in tekens"
max_emojis_in_title: "Maximale aantal toegestane emoji in topictitel"
min_search_term_length: "Minimaal geldige lengte van een zoekterm in tekens"
- search_tokenize_chinese_japanese_korean: "Zoeken voor het tokeniseren van Chinees/Japans/Koreaans ook op niet-CJK-websites afdwingen"
search_prefer_recent_posts: "Als doorzoeken van uw grote forum traag werkt, probeert deze optie eerst een index van recentere berichten"
search_recent_posts_size: "Het aantal in de index te behouden recente berichten"
log_search_queries: "Zoekopdrachten van gebruikers opslaan"
@@ -1327,7 +1324,6 @@ nl:
show_pinned_excerpt_mobile: "Fragment tonen bij vastgemaakte topics in mobiele weergave."
show_pinned_excerpt_desktop: "Fragment tonen bij vastgemaakte topics in desktopweergave."
post_onebox_maxlength: "Maximale lengte van een 'oneboxed Discourse'-bericht in tekens."
- blocked_onebox_domains: "Een lijst van domeinen die nooit in een onebox worden omgezet."
allowed_inline_onebox_domains: "Een lijst van domeinen die in een onebox als miniatuur worden omgezet wanneer gekoppeld zonder titel"
enable_inline_onebox_on_all_domains: "Website-instelling inline_onebox_domain_allowlist negeren en inline onebox op alle domeinen toestaan."
force_custom_user_agent_hosts: "Hosts waarvoor bij alle aanvragen de aangepaste onebox-useragent wordt gebruikt. (Met name handig voor hosts die toegang beperken via de useragent)."
diff --git a/config/locales/server.pl_PL.yml b/config/locales/server.pl_PL.yml
index c0682d224b..16475c7945 100644
--- a/config/locales/server.pl_PL.yml
+++ b/config/locales/server.pl_PL.yml
@@ -220,6 +220,7 @@ pl_PL:
local_login_cannot_be_disabled_if_second_factor_enforced: "Nie można wyłączyć lokalnego logowania, jeśli wymuszone jest 2FA. Wyłącz wymuszone 2FA przed wyłączeniem lokalnych logowań."
cannot_enable_s3_uploads_when_s3_enabled_globally: "Nie można włączyć przesyłania S3, ponieważ przesyłanie S3 jest już włączone globalnie, a włączenie tego poziomu witryny może powodować krytyczne problemy z przesyłaniem"
cors_origins_should_not_have_trailing_slash: "Nie należy dodawać końcowego ukośnika (/) do źródeł CORS."
+ slow_down_crawler_user_agent_must_be_at_least_3_characters: "User-Agent musi mieć co najmniej 3 znaki, aby uniknąć niewłaściwego ograniczania prawdziwych użytkowników."
slow_down_crawler_user_agent_cannot_be_popular_browsers: "Do ustawienia nie można dodać żadnej z następujących wartości: %{values}."
conflicting_google_user_id: 'Identyfikator konta Google dla tego konta został zmieniony; interwencja personelu jest wymagana ze względów bezpieczeństwa. Skontaktuj się z personelem i wskaż go https://meta.discourse.org/t/76575'
onebox:
@@ -243,6 +244,8 @@ pl_PL:
To zaproszenie do %{site_name} nie może już zostać zrealizowane. Poproś osobę, która Cię zaprosiła, aby wysłała Ci nowe zaproszenie.
user_exists: "Nie ma potrzeby zapraszania %{email}, obecnie posiada konto!"
invite_exists: "Zaprosiłeś już %{email}."
invalid_email: "%{email} nie jest prawidłowym adresem e-mail."
@@ -257,6 +260,7 @@ pl_PL:
discourse_connect_enabled: "Zaproszenia są wyłączone, ponieważ DiscourseConnect jest włączony."
invalid_access: "Nie masz uprawnień do przeglądania żądanego zasobu."
requires_groups: "Zaproszenie zapisane. Aby dać dostęp do określonego tematu, dodaj jedną z następujących grup: %{groups}."
+ domain_not_allowed: "Twój adres e-mail nie może zostać użyty do zrealizowania tego zaproszenia."
bulk_invite:
file_should_be_csv: "Wgrywany plik powinien być formatu csv."
max_rows: "Wysłano %{max_bulk_invites} pierwszych zaproszeń. Sprobuj podzielić plik na mniejsze części."
@@ -372,8 +376,8 @@ pl_PL:
few: "Przepraszamy, nowi użytkownicy mogą dodawać tylko %{count} linki do wpisu."
many: "Przepraszamy, nowi użytkownicy mogą dodawać tylko %{count} linków do wpisu."
other: "Przepraszamy, nowi użytkownicy mogą dodawać tylko %{count} linków do wpisu."
- contains_blocked_word: "Twój wpis zawiera niedozwolone słowo: %{word}"
- contains_blocked_words: "Twój wpis zawiera niedozwolone słowa: %{words}"
+ contains_blocked_word: "Niestety, nie możesz opublikować słowa '%{word}'; jest ono niedozwolone."
+ contains_blocked_words: "Przepraszamy, nie możesz tego opublikować. Niedozwolone słowa: %{words}."
spamming_host: "Przepraszamy, nie możesz umieścić linka do tej strony."
user_is_suspended: "Zawieszeni użytkownicy nie mogą wysyłać wiadomości."
topic_not_found: "Coś poszło nie tak. Być może temat został zamknięty lub usunięty w międzyczasie?"
@@ -711,6 +715,7 @@ pl_PL:
post:
image_placeholder:
broken: "Ten obraz jest uszkodzony"
+ hidden_bidi_character: "Znaki dwukierunkowe mogą zmienić kolejność renderowania tekstu. Może to służyć do ukrywania złośliwego kodu."
has_likes:
one: "%{count} polubienie"
few: "%{count} polubienia"
@@ -1432,19 +1437,26 @@ pl_PL:
mutes_count: Licznik wyciszonych
description: "Użytkownicy, którzy zostali wyciszeni i / lub zignorowani przez wielu innych użytkowników."
top_users_by_likes_received:
+ title: "Najlepsi użytkownicy według otrzymanych polubień"
labels:
user: Użytkownik
qtt_like: Polubienia otrzymane
+ description: "Top 10 użytkowników, którzy otrzymali więcej polubień."
top_users_by_likes_received_from_inferior_trust_level:
+ title: "Najlepsi użytkownicy według polubień otrzymanych od użytkownika o niższym poziomie zaufania"
labels:
user: Użytkownik
trust_level: Poziom zaufania
qtt_like: Polubienia otrzymane
+ description: "Top 10 użytkowników na wyższym poziomie zaufania jest lubianych przez osoby o niższym poziomie zaufania."
top_users_by_likes_received_from_a_variety_of_people:
+ title: "Najlepsi użytkownicy według polubień otrzymanych od różnych osób"
labels:
user: Użytkownik
qtt_like: Polubienia otrzymane
+ description: "Top 10 użytkowników, którzy mają polubienia od szerokiego grona osób."
dashboard:
+ group_email_credentials_warning: 'Wystąpił problem z poświadczeniami e-mail dla grupy %{group_full_name}. Żadne e-maile nie będą wysyłane ze skrzynki odbiorczej grupy, dopóki ten problem nie zostanie rozwiązany. %{error}'
rails_env_warning: "Twój serwer działa w trybie %{env}"
host_names_warning: "Twój plik config/database.yml używa domyślnej nazwy serwera localhost. Zmień go by używał nazwy serwera Twojej strony."
sidekiq_warning: 'Sidekiq nie działa. Wiele zadań, takich jak wysyłanie emaili, jest wykonywane asynchronicznie przez sidekiqa. Zagwarantuj, że przynajmniej jeden proces sidekiqa działa. Dowiedz się więcej o Sidekiqu.'
@@ -1474,6 +1486,7 @@ pl_PL:
unreachable_themes: "Nie byliśmy w stanie sprawdzić aktualizacji następujących tematów:"
watched_word_regexp_error: "Wyrażenie regularne dla '%{action}' jest nieprawidłowe. Sprawdź ustawienia obserwowanych słów lub wyłącz ustawienie witryny „obserwowane słowa regularne”."
site_settings:
+ allow_bulk_invite: "Zezwalaj na zaproszenia zbiorcze, przesyłając plik CSV"
disabled: "wyłączone"
display_local_time_in_user_card: "Wyświetl czas lokalny w oparciu o strefę czasową użytkownika po otwarciu karty użytkownika."
censored_words: "Wskazane słowa będą automatycznie zamieniane na ■■■■"
@@ -1481,20 +1494,19 @@ pl_PL:
default_locale: "Domyślny język tego wystąpienia dyskursu. Tekst kategorii i tematów generowanych przez system można zastąpić w opcji Dostosuj / Tekst."
allow_user_locale: "Zezwól użytkownikom na zmianę języka interfejsu we własnych ustawieniach"
set_locale_from_accept_language_header: "ustaw język interfejsu dla anonimowych użytkowników na podstawie nagłówków języka z ich przeglądarki"
- support_mixed_text_direction: "Obsługa mieszanych wskazówek tekstowych od lewej do prawej i od prawej do lewej."
+ support_mixed_text_direction: "Wspieraj mieszane kierunki tekstu od lewej do prawej i od prawej do lewej strony."
min_post_length: "Minimalna długość wpisu w znakach"
min_first_post_length: "Minimalna długość treści (liczba znaków) pierwszego wpisu w temacie "
min_personal_message_post_length: "Minimalna długość treści wiadomości "
max_post_length: "Maksymalna długość wpisu, w znakach"
topic_featured_link_enabled: "Włącz dodawanie linków w tematach."
show_topic_featured_link_in_digest: "Pokazuj polecany link tematu w podsumowaniu e-mailowym."
- min_topic_views_for_delete_confirm: "Minimalna liczba wyświetleń, które musi mieć wątek aby pojawił się po usunięciu okna potwierdzającego"
+ min_topic_views_for_delete_confirm: "Minimalna liczba wyświetleń tematu, aby podczas jego usuwania pojawiło się okienko z potwierdzeniem."
min_topic_title_length: "Minimalna długość tytułu tematu, w znakach"
max_topic_title_length: "Maksymalna długość tytułu tematu, w znakach"
min_personal_message_title_length: "Minimalna liczba znaków w temacie wiadomości "
max_emojis_in_title: "Maksymalna liczba emoji w tytule tematu"
min_search_term_length: "Minimalna długość wyszukiwanego tekstu, w znakach"
- search_tokenize_chinese_japanese_korean: "Wymuś wyszukiwanie żeby tokenizowało Chiński/Japoński/Koreański nawet na stronach nie-CJK"
search_prefer_recent_posts: "Jeśli wyszukiwanie na twoim dużym forum jest wolne, ta opcja pozwala zindeskować najpierw ostanie wpisy."
search_recent_posts_size: "Jak dużo ostanich wpisów trzymać w indeksie"
log_search_queries: "Dzienniki wyszukiwanych przez użytkowników treści"
@@ -1523,13 +1535,14 @@ pl_PL:
staff_edit_locks_post: "Wpisy zostaną zablokowane przed edycją, jeśli będą edytowane przez członków personelu"
post_edit_time_limit: "Autor tl0 lub tl1 może edytować swój wpis przez (n) minut po opublikowaniu. Ustaw na zawsze na 0."
tl2_post_edit_time_limit: "Autor tl2 + może edytować swój wpis przez (n) minut po opublikowaniu. Ustaw na zawsze na 0."
- edit_history_visible_to_public: "Pozwól wszystkim przeglądać poprzednie wersje edytowanych wpisów. Gdy wyłączone, jedynie obsługa/staff może."
+ edit_history_visible_to_public: "Pozwól wszystkim zobaczyć poprzednie wersje edytowanego posta. Gdy wyłączone, tylko członkowie personelu mogą je przeglądać."
delete_removed_posts_after: "Wpisy usunięte przez autora będą automatycznie zlikwidowane po (n) godzinach. Jeżeli liczba godzin będzie wynosić 0, to zostaną usunięte natychmiast. "
+ notify_users_after_responses_deleted_on_flagged_post: "Gdy post zostanie oznaczony, a następnie usunięty, wszyscy użytkownicy, którzy na niego odpowiedzieli, a ich odpowiedzi zostały usunięte, zostaną powiadomieni."
max_image_width: "Maksymalna szerokość miniaturki grafiki we wpisie. "
max_image_height: "Maksymalna wysokość miniaturki grafiki we wpisie. "
responsive_post_image_sizes: "Zmień rozmiar podglądu lightbox, aby umożliwić wyświetlanie ekranów o wysokiej rozdzielczości DPI o następujących proporcjach pikseli. Usuń wszystkie wartości, aby wyłączyć responsywne obrazy."
fixed_category_positions: "Zaznacz, aby ręcznie ustawiać kolejność kategorii. Odznacz, aby kategorie były sortowane na podstawie aktywności. "
- fixed_category_positions_on_create: "Jeżeli jest sprawdzone to porządkowanie kategorii będzie zależało od stworzonego tematu (requires fixed_category_positions). "
+ fixed_category_positions_on_create: "Jeśli zaznaczone, kolejność kategorii będzie utrzymywana w oknie dialogowym tworzenia tematu (wymaga fixed_category_positions)."
add_rel_nofollow_to_user_content: 'Dodaj rel nofollow do wszystkich treści użytkownika, poza wewnętrznymi linkami (wliczając domeny nadrzędne). Jeśli to zmienisz, musisz rebake wszystkie wpisy poprzez: "rake post:rebake"'
exclude_rel_nofollow_domains: "Lista domen, w których nofollow nie powinien być dodawany do linków. example.com automatycznie zezwoli również na sub.example.com. Jako minimum należy dodać domenę tej witryny, aby roboty indeksujące mogły znaleźć całą treść. Jeśli inne części witryny znajdują się w innych domenach, dodaj je również."
post_excerpt_maxlength: "Maksymalna długość podsumowania / streszczenia wpisu."
@@ -1537,7 +1550,6 @@ pl_PL:
show_pinned_excerpt_mobile: "Pokaż fragment przypiętych tematów w widoku mobilnym"
show_pinned_excerpt_desktop: "Pokaż fragment przypiętych tematów w widoku \"wersja komputerowa\""
post_onebox_maxlength: "Maksymalna długość (ilość znaków) treści wpisu osadzonego via Onebox"
- blocked_onebox_domains: "Lista domen, które nigdy nie będą osadzane w poście."
allowed_inline_onebox_domains: "Lista domen, które zostaną zamienione na osadzony onebox w zmniejszonej formie, jeśli będą umieszczone w poście bez tytułu"
enable_inline_onebox_on_all_domains: "Ignoruj ustawienie witryny `inline_onebox_domain_whitelist` i zezwalaj na osadzanie ramek we wszystkich domenach."
force_custom_user_agent_hosts: "Hosty, dla których ma być używany niestandardowy klient użytkownika Onebox przy wszystkich żądaniach. (Szczególnie przydatne dla hostów, które ograniczają dostęp do agenta użytkownika)."
@@ -1570,6 +1582,7 @@ pl_PL:
summary_percent_filter: "Gdy użytkownik kliknie na 'Podsumowaniu tematu', pokaż % najlepszych wpisów"
summary_max_results: "Maksymalna liczba wpisów zwróconych przez „Podsumuj ten temat”"
summary_timeline_button: "Pokaż przycisk „Podsumuj” na osi czasu"
+ enable_personal_messages: "Zezwalaj użytkownikom na poziomie zaufania 1 (konfigurowalnym za pomocą min. zaufania do wysyłania wiadomości) na tworzenie i odpowiadanie na wiadomości. Należy pamiętać, że personel zawsze może wysyłać wiadomości bez względu na wszystko."
enable_system_message_replies: "Pozwala użytkownikom odpowiadać na wiadomości systemowe, nawet jeśli wiadomości osobiste są wyłączone"
enable_long_polling: "Message bus used for notification can use long polling"
enable_chunked_encoding: "Włącz odpowiedzi fragmentaryczne serwera. Ta funkcja działa w większości konfiguracji, jednak niektóre serwery proxy mogą buforować odpowiedzi, powodując opóźnienia."
@@ -1624,6 +1637,7 @@ pl_PL:
allowed_iframes: "Lista prefiksów domeny src iframe, które dyskurs może bezpiecznie dopuścić w wpisach"
allowed_crawler_user_agents: "Agenci użytkowników dla robotów indeksujących, które powinny mieć dostęp do strony. OSTRZEŻENIE! USTAWIENIE TEGO SPOWODUJE BLOKADE ROBOTÓW, KTÓRE NIE SĄ NA LIŚCIE!"
blocked_crawler_user_agents: "Unikalne słowo bez rozróżniania wielkości liter w ciągu znaków, które identyfikują crawlery internetowe, które nie powinny mieć dostępu do witryny. Nie ma zastosowania, jeśli dozwolona lista jest zdefiniowana."
+ slow_down_crawler_user_agents: 'User-Agent''y robotów indeksujących, którym należy ograniczyć prędkość, zgodnie z ustawieniami "spowolnij szybkość indeksowania". Każda wartość musi mieć co najmniej 3 znaki.'
slow_down_crawler_rate: "Jeśli określono parametr slow_down_crawler_user_agents, ta stawka będzie obowiązywać dla wszystkich robotów (liczba sekund opóźnienia między żądaniami)"
content_security_policy: "Włącz politykę bezpieczeństwa treści"
content_security_policy_report_only: "Włącz tylko treść-bezpieczeństwo-zasady-tylko raport"
@@ -1650,7 +1664,7 @@ pl_PL:
redirect_users_to_top_page: "Automatycznie kieruj nowych i długo nieobecnych użytkowników na stronę główną."
top_page_default_timeframe: "Domyślne ramy czasowe dla strony widoku z góry."
moderators_view_emails: "Zezwalaj moderatorom na przeglądanie wiadomości e-mail użytkowników"
- prioritize_username_in_ux: "Pokaż nazwę użytkownika jako pierwszą na stronie użytkownika, karcie użytkownika i we wpisach (kiedy wyłączone imię jest pokazane jako pierwsze)"
+ prioritize_username_in_ux: "Pokaż nazwę użytkownika jako pierwszą na stronie użytkownika, jego karcie i w postach (gdy opcja jest wyłączona, pełna nazwa jest wyświetlana jako pierwsza)"
enable_rich_text_paste: "Włącz automatyczną konwersję HTML do Markdown podczas wklejania tekstu do kompozytora. (Eksperymentalny)"
send_old_credential_reminder_days: "Przypomnij o starych danych logowania po dniach"
email_token_valid_hours: "Tokeny resetujące hasło / aktywujące konto są ważne przez (n) godzin."
@@ -1660,7 +1674,9 @@ pl_PL:
allow_index_in_robots_txt: "W pliku robots.txt określ, że ta witryna może być indeksowana przez wyszukiwarki internetowe. W wyjątkowych przypadkach możesz trwale zastąpić plik robots.txt."
blocked_email_domains: "Lista domen poczty e-mail rozdzielonych pionową kreską, z których użytkownicy nie mogą rejestrować kont. Przykład: mailinator.com|trashmail.net"
allowed_email_domains: "Lista rozdzielonych pionową kreską domen e-mail, z których użytkownicy MUSZĄ się rejestrować. UWAGA: Użytkownicy z domenami e-mail innymi niż wypisane tutaj nie będą mogli się zarejestrować!"
+ normalize_emails: "Sprawdź, czy znormalizowany e-mail jest unikalny. Znormalizowany e-mail usuwa wszystkie kropki z nazwy użytkownika i wszystko między symbolami + i @."
auto_approve_email_domains: "Użytkownicy z adresami e-mail z tej listy domen zostaną automatycznie zatwierdzeni."
+ hide_email_address_taken: "Nie informuj użytkowników, że istnieje konto z podanym adresem e-mail podczas rejestracji lub podczas procesu przypominania hasła. Wymagaj podania pełnego adresu email przy prośbach o 'przypomnienie hasła'."
log_out_strict: "Po wylogowaniu wyloguj WSZYSTKIE sesje użytkownika na wszystkich urządzeniach."
version_checks: "Wyślij ping do Discourse Hub w celu uzyskania aktualizacji wersji i pokaż komunikaty o nowej wersji w panelu admina"
new_version_emails: "Wyślij email na adres contact_email, kiedy nowa wersja Discourse będzie dostępna."
@@ -1700,18 +1716,19 @@ pl_PL:
enable_local_logins_via_email: "Zezwalaj użytkownikom na żądanie linku logowania do jednego kliknięcia, który zostanie im przesłany pocztą e-mail."
allow_new_registrations: "Zezwól na rejestrację nowych użytkowników. Odznacz opcję żeby uniemożliwić rejestrację nowych kont."
enable_signup_cta: "Pokazuj wiadomość dla powracających użytkowników anonimowych, zachęcającą ich do założenia konta."
- enable_google_oauth2_logins: "Włącz uwierzytelnianie Google Oauth2. Jest to metoda uwierzytelniania obsługiwana obecnie przez Google. Wymaga klucza i tajemnicy. Zobacz Konfigurowanie logowania Google do dyskursu ."
+ enable_google_oauth2_logins: "Włącz uwierzytelnianie Google Oauth2. Jest to metoda uwierzytelniania obsługiwana obecnie przez Google. Wymaga podania klucza i sekretu. Zobacz Konfigurowanie logowania Google dla Discourse."
google_oauth2_client_id: "Client ID twojej aplikacji w Google"
google_oauth2_client_secret: "Client Secret twojej aplikacji w Google"
google_oauth2_prompt: "Opcjonalna lista wartości łańcuchowych rozdzielanych spacjami, która określa, czy serwer autoryzacji monituje użytkownika o ponowne uwierzytelnienie i zgodę. Możliwe wartości można znaleźć na https://developers.google.com/identity/protocols/OpenIDConnect#prompt ."
google_oauth2_hd: "Opcjonalna domena Google Apps Hosted, do której logowanie będzie ograniczone. Więcej informacji można znaleźć na https://developers.google.com/identity/protocols/OpenIDConnect#hd-param"
- enable_twitter_logins: "Włącz uwierzytelnianie na Twitterze, wymaga twitter_consumer_key i twitter_consumer_secret. Zobacz Konfigurowanie logowania na Twitterze (i bogatych osadzeń) dla dyskursu ."
+ google_oauth2_hd_groups: "(eksperymentalne) Pobierz grupy dyskusyjne Google użytkowników w domenie hostowanej po uwierzytelnieniu. Pobrane grupy dyskusyjne Google mogą być używane do automatycznego przyznawania członkostwa w grupach Discourse (zobacz ustawienia grupy)."
+ enable_twitter_logins: "Włącz uwierzytelnianie przez Twittera, wymaga twitter_consumer_key i twitter_consumer_secret. Zobacz Konfigurowanie logowania przez Twittera (i bogatych embedów) dla Discourse."
twitter_consumer_key: "Klucz klienta do uwierzytelnienia na Twitterze, zarejestrowany na https://developer.twitter.com/apps"
twitter_consumer_secret: "Sekret klienta dotyczący uwierzytelniania na Twitterze, zarejestrowany na stronie https://developer.twitter.com/apps"
- enable_facebook_logins: "Włącz uwierzytelnianie na Facebooku, wymaga facebook_app_id i facebook_app_secret. Zobacz Konfigurowanie logowania na Facebooku dla dyskursu ."
+ enable_facebook_logins: "Włącz uwierzytelnianie przez Facebooka, wymaga facebook_app_id i facebook_app_secret. Zobacz Konfigurowanie logowania przez Facebooka dla Discourse."
facebook_app_id: "Identyfikator aplikacji do uwierzytelniania i udostępniania na Facebooku, zarejestrowany pod adresem https://developers.facebook.com/apps"
facebook_app_secret: "Tajna aplikacja do uwierzytelniania na Facebooku, zarejestrowana na https://developers.facebook.com/apps"
- enable_github_logins: "Włącz uwierzytelnianie GitHub, wymaga github_client_id i github_client_secret. Zobacz konfigurowanie logowania GitHub dla Discourse."
+ enable_github_logins: "Włącz uwierzytelnianie przez GitHub, wymaga github_client_id i github_client_secret. Zobacz Konfigurowanie logowania przez GitHub dla Discourse."
github_client_id: "Identyfikator klienta do uwierzytelniania przez GitHub, zarejestrowany pod adresem https://github.com/settings/developers"
github_client_secret: "Sekret klienta do uwierzytelniania przez GitHub, zarejestrowany pod adresem https://github.com/settings/developers"
enable_discord_logins: "Zezwolić użytkownikom na uwierzytelnianie przy użyciu Discord?"
@@ -1768,7 +1785,7 @@ pl_PL:
clean_up_uploads: "Usuń osierocone pliki aby zapobiec wykorzystywaniu forum jako hosting. UWAGA: przed włączeniem tej opcji zaleca się wykonanie kopii katalogu /uploads."
clean_orphan_uploads_grace_period_hours: "Okres karencji (w dniach) przed wysłaniem sierot zostanie skasowany."
purge_deleted_uploads_grace_period_days: "Okres karencji (w dniach) przed usunięciem upload zostanie skasowany."
- purge_unactivated_users_grace_period_days: "Okres karencji w dniach, po upływie którego nieaktywowane konto użytkownika zostaje usunięte. Ustaw 0, by nigdy nie usuwań nieaktywnych użytkowników."
+ purge_unactivated_users_grace_period_days: "Okres karencji w dniach, po upływie którego nieaktywowane konto użytkownika zostaje usunięte. Ustaw na 0, aby nigdy nie usuwać nieaktywowanych użytkowników."
enable_s3_uploads: "Umieść przesyły w pamięci Amazon S3. Ważne: wymaga ważnych danych uwierzytelniających (zarówno klucza id i tajnego klucza dostępu)"
s3_use_iam_profile: 'Użyj profilu instancji AWS EC2, aby przyznać dostęp do segmentu S3. UWAGA: włączenie tej opcji wymaga, aby dyskurs działał w odpowiednio skonfigurowanej instancji EC2 i zastępuje ustawienia „Identyfikatora klucza dostępu s3” i „Tajnego klucza dostępu s3”.'
s3_upload_bucket: "Nazwa koszyka Amazon S3, do którego zostaną przesłane pliki. Ostrzeżenie: bez wielkich liter, kropek czy podkreślenia."
@@ -1848,6 +1865,9 @@ pl_PL:
max_mentions_per_post: "Maksymalna liczba powiadomień poprzez @nazwę w jednym wpisie (dla wszystkich)."
max_users_notified_per_group_mention: "Maksymalna liczba użytkowników, którzy mogą otrzymać powiadomienie jeśli ktoś wspomniał(a) o grupie (jeśli próg został osiągnięty, nie będzie żadnych powiadomień)"
enable_mentions: "Zezwól użytkownikom na wzmianki innych użytkowników."
+ here_mention: "Nazwa użyta do wzmianki @here. Nie może być istniejącą nazwą użytkownika."
+ max_here_mentioned: "Maksymalna liczba osób oznaczonych przez @here."
+ min_trust_level_for_here_mention: "Minimalny poziom zaufania do oznaczania @here."
create_thumbnails: "Stwórz miniatury i obrazy lightbox, które są za duże, aby pasować do wpisu."
email_time_window_mins: "Odczekaj (n) minut przed wysłaniem e-maila z powiadomieniem, aby dać użytkownikom szansę na edytowanie i ukończenie wpisów."
personal_email_time_window_seconds: "Poczekaj (n) sekund przed wysłaniem powiadomienia na e-mail o prywatnej wiadomości, by użytkownicy mogli edytować i dokończyć swoje wiadomości."
@@ -1898,6 +1918,7 @@ pl_PL:
topic_view_duration_hours: "Licz wyświetlanie nowego tematu na IP/Użytkownika co N godzin"
user_profile_view_duration_hours: "Licz nowe wyświetlenia profilu użytkownika na IP/Użytkownika co N godzin"
levenshtein_distance_spammer_emails: "Przy dopasowywaniu emaili spamowych, różnica liczby znaków, która w dalszym ciągu pozwoli na przybliżone dopasowanie."
+ max_new_accounts_per_registration_ip: "Jeśli istnieje już (x) kont o poziomie zaufania 0 z tego adresu IP (i żadne z nich nie jest członkiem personelu ani na poziomie TL2 lub wyższym), przestań akceptować nowe rejestracje z tego adresu IP. Ustaw na 0, aby wyłączyć limit."
min_ban_entries_for_roll_up: "Podczas naciskania na przycisk Przewiń do góry, utwórz nowy wpis blokady podsieci jeśli jest co najmniej (N) wpisów."
max_age_unmatched_emails: "Usuń niedopasowany ekranowany wpis email po (N) dniach."
max_age_unmatched_ips: "Usuń niedopasowany ekranowany wpis IP po (N) dniach."
@@ -1982,7 +2003,7 @@ pl_PL:
delete_all_posts_max: "Maksymalna liczba wpisów jaka może zostać usunięta jednorazowo przyciskiem \"Usuń Wszystkie Wpisy\". Jeśli użytkownik ma więcej wpisów, ani one ani użytkownik nie mogą one być usunięte."
delete_user_self_max_post_count: "Maksymalna liczba wpisów, jaką może posiadać użytkownik, umożliwiając usunięcie konta samoobsługowego. Ustaw na -1, aby wyłączyć usuwanie konta samoobsługowego."
username_change_period: "Maksymalna liczba dni po rejestracji, w których konta mogą zmienić swoją nazwę użytkownika (0, aby uniemożliwić zmianę nazwy użytkownika)."
- email_editable: "Allow users to change their e-mail address after registration."
+ email_editable: "Zezwól użytkownikom na zmianę adresu e-mail po rejestracji."
logout_redirect: "Lokalizacja do przekierowania przeglądarki po wylogowaniu (np .: https://example.com/logout)"
allow_uploaded_avatars: "Zezwól użytkownikom na przesyłanie niestandardowych zdjęć profilowych."
default_avatars: "Adresy URL awatarów wykorzystywanych jako domyślne w przypadku nowych użytkowników do momentu, gdy je zmienią."
@@ -2003,18 +2024,18 @@ pl_PL:
public_user_custom_fields: "Lista niestandardowych pól użytkownika, które można uzyskać korzystających z interfejsu API."
staff_user_custom_fields: "Lista pól niestandardowych użytkownika, które można uzyskać przez członków personelu korzystających z interfejsu API."
enable_user_directory: "Dostarcz katalog użytkowników do wyszukiwania"
- enable_group_directory: "Dostarcz katalog grup do wyszukiwania"
+ enable_group_directory: "Udostępnij katalog grup do przeglądania"
enable_category_group_moderation: "Zezwalaj grupom na moderowanie treści w określonych kategoriach"
group_in_subject: "Ustaw %%{optional_pm} w temacie wiadomości e-mail z nazwą pierwszej grupy w prywatnej wiadomości, zobacz: Dostosuj format tematu dla standardowych wiadomości e-mail"
allow_anonymous_posting: "Zezwól użytkownikom na przechodzenie w tryb anonimowości."
anonymous_posting_min_trust_level: "Minimalny poziom zaufania potrzebny by aktywować anonimowe wpisy"
anonymous_account_duration_minutes: "Aby chronić anonimowość twórz nowe anonimowe konto co N minut dla każdego użytkownika. Przykład: jeśli ustawione na 600, dopóki nie minie 600 minut od ostatniego wpisu i użytkownik przełącza się na anon, zostanie utworzone nowe anonimowe konto."
- hide_user_profiles_from_public: "Wyłącz karty, profile i katalogi użytkownika dla użytkownika anonimowego."
+ hide_user_profiles_from_public: "Wyłącz karty użytkownika, profile użytkowników i katalog użytkowników dla użytkowników anonimowych."
allow_users_to_hide_profile: "Zezwalaj użytkownikom na ukrywanie swojego profilu i statusu dostępności."
allow_featured_topic_on_user_profiles: "Zezwalaj użytkownikom na umieszczanie linków do tematu na ich karcie i profilu użytkownika."
show_inactive_accounts: "Pozwól zalogowanym użytkownikom przeglądać profile nieaktywnych kont."
hide_suspension_reasons: "Nie wyświetlaj publicznie powodów zawieszenia w profilach użytkowników."
- log_personal_messages_views: "Rejestruj osobiste wyświetlenia wiadomości przez administratora dla innych użytkowników/grup."
+ log_personal_messages_views: "Rejestruj wyświetlenia wiadomości osobistych przez administratora dla innych użytkowników/grup."
ignored_users_count_message_threshold: "Powiadom moderatorów, jeśli dany użytkownik jest ignorowany przez wielu innych użytkowników."
ignored_users_message_gap_days: "Ile trzeba czekać, zanim ponownie powiadomimy moderatorów o użytkowniku, który został zignorowany przez wielu członków społeczność."
clean_up_inactive_users_after_days: "Liczba dni do usunięcia nieaktywnego użytkownika (poziom zaufania 0 bez żadnych postów). Aby wyłączyć czyszczenie, ustaw na 0."
@@ -2034,6 +2055,7 @@ pl_PL:
global_notice: "Wyświetlaj PILNE, AWARYJNE lub zawsze widoczny banner informacyjny, który będzie widoczny dla wszystkich odwiedzających. Ustaw to pole jako puste, aby go ukryć. (HTML dozwolony)"
disable_system_edit_notifications: "Wyłącz edytowanie powiadomień przez system użytkownika gdy 'download_remote_images_to_local' jest aktywne."
disable_category_edit_notifications: "Wyłącz powiadomienia o edycji kategorii w tematach."
+ disable_tags_edit_notifications: "Wyłącz powiadomienia o edycji tagów w tematach."
notification_consolidation_threshold: "Liczba polubień lub powiadomień o członkostwie otrzymanych przed połączeniem powiadomień w jedno. Ustaw 0 aby wyłączyć."
likes_notification_consolidation_window_mins: "Czas w minutach, po którym powiadomienia o polubieniach są łączone w jedno powiadomienie. Próg można skonfigurować za pomocą `SiteSetting.notification_consolidation_threshold`."
automatically_unpin_topics: "Automatycznie odpinaj tematy, gdy użytkownik dotknie dna."
@@ -2048,8 +2070,8 @@ pl_PL:
penalty_step_hours: "Domyślne kary za wyciszanie lub zawieszanie użytkowników w godzinach. Pierwsze wykroczenie domyślnie jest pierwszą wartością, drugie wykroczenie jest domyślne do drugiej wartości, itd."
svg_icon_subset: "Dodaj dodatkowe ikony FontAwesome 5, które chcesz umieścić w swoich zasobach. Użyj przedrostka 'fa-' dla wypełnionych ikon, 'far-' dla zwykłych ikon i 'fab-' dla ikon marek."
max_prints_per_hour_per_user: "Maksymalna liczba /drukowanych stron (ustaw na 0, aby wyłączyć)"
- full_name_required: "Pełne imię i nazwisko to wymagane pole w profilu użytkownika."
- enable_names: "Pokaż pełną nazwę użytkownika na profilu, karcie użytkownika i w emailach. Wyłącz opcję ukrywania pełnej nazwy wszędzie."
+ full_name_required: "Pełna nazwa jest wymaganym polem profilu użytkownika."
+ enable_names: "Pokaż pełną nazwę użytkownika w jego profilu, karcie użytkownika i w e-mailach. Wyłącz, aby ukryć pełną nazwę użytkownika wszędzie."
display_name_on_posts: "Pokazuj imię i nazwisko użytkownika przy jego wpisach, a także jego @nazwę użytkownika."
show_time_gap_days: "Jeśli dwa wpisy zostały dodane w dużej przerwie, wyświetl okres w temacie."
short_progress_text_threshold: "Po tym jak liczba wpisów w tym temacie przekroczy ten numer, ten pasek postępu pokaże tylko bieżącą liczbę wpisów. Jeśli zmienisz szerokość paska postępu, możliwe, że będziesz musiał zmienić tą wartość."
@@ -2179,10 +2201,12 @@ pl_PL:
share_quote_visibility: "Określ, kiedy wyświetlać przyciski udostępniania cytatów: nigdy, tylko anonimowym użytkownikom lub wszystkim użytkownikom. "
create_revision_on_bulk_topic_moves: "Utwórz rewizję dla pierwszych postów, gdy tematy zostaną przeniesione do nowej kategorii zbiorczo."
allow_changing_staged_user_tracking: "Zezwalaj na zmianę preferencji powiadomień o kategoriach i tagach użytkownika etapowego przez administratora."
+ use_email_for_username_and_name_suggestions: "Użyj pierwszej części adresów e-mail jako sugestii dla nazwy użytkownika i pełnej nazwy. Pamiętaj, że ułatwia to odgadnięcie pełnych adresów e-mail użytkowników (ponieważ duża część osób korzysta z wspólnych usług, takich jak `gmail.com`)."
errors:
invalid_css_color: "Nieprawidłowy kolor. Wpisz nazwę koloru lub wartość szesnastkową."
invalid_email: "Nieprawidłowy adres e-mail."
invalid_username: "Użytkownik o takiej nazwie nie istnieje."
+ valid_username: "Istnieje użytkownik o tej nazwie."
invalid_group: "Nie ma grupy o takiej nazwie."
invalid_integer_min_max: "Wartość musi być między %{min} i %{max}."
invalid_integer_min: "Wartość musi wynosić %{min} albo więcej."
@@ -2197,6 +2221,7 @@ pl_PL:
invalid_json: "Nieprawidłowy JSON."
invalid_reply_by_email_address: "Wartość musi zawierać '%{reply_key}' i musi być inna niż e-mail z powiadomieniem."
invalid_alternative_reply_by_email_addresses: "Wszystkie wartości muszą zawierać '%{reply_key}' i być inne niż w emailu powiadamiającym."
+ invalid_domain_hostname: "Nie może zawierać znaków * lub ?"
pop3_polling_host_is_empty: "Musisz ustawić 'pop3 polling host' przed włączeniem przeglądania cyklicznego POP3."
pop3_polling_username_is_empty: "Musisz ustawić 'pop3 polling username' przed włączeniem przeglądania cyklicznego POP3."
pop3_polling_password_is_empty: "Musisz ustawić 'pop3 polling password' przed włączeniem przeglądania cyklicznego POP3."
@@ -2225,6 +2250,7 @@ pl_PL:
leading_trailing_slash: "Wyrażenie regularne nie może zaczynać się ani kończyć ukośnikiem."
unicode_usernames_avatars: "Wewnętrzne awatary systemowe nie obsługują nazw użytkowników zawierających unicode."
list_value_count: "Lista musi zawierać dokładnie %{count} wartości."
+ google_oauth2_hd_groups: "Musisz najpierw ustawić 'google oauth2 hd' przed włączeniem tego ustawienia."
placeholder:
discourse_connect_provider_secrets:
key: "www.example.com"
@@ -2599,6 +2625,21 @@ pl_PL:
test_mailer:
title: "Test Powiadomień"
subject_template: "[%{email_prefix}] Test dostarczania poczty"
+ text_body_template: |
+ To jest testowa wiadomość e-mail od
+
+ [**%{base_url}**][0]
+
+ Mamy nadzieję, że otrzymałeś ten test dostarczalności wiadomości e-mail!
+
+ Oto [przydatna lista kontrolna do weryfikacji konfiguracji dostarczania poczty e-mail][1].
+
+ Powodzenia,
+
+ Twoi przyjaciele z [Discourse](https://www.discourse.org)
+
+ [0]: %{base_url}
+ [1]: https://meta.discourse.org/t/email-delivery-configuration-checklist/209839
new_version_mailer:
title: "Nowa wersja powiadomień"
subject_template: "[%{email_prefix}] Nowa wersja Discourse jest dostępna"
@@ -2636,6 +2677,11 @@ pl_PL:
inappropriate: "Twój wpis został oznaczony jako **nieodpowiedni**: społeczność uznała, że zbyt agresywny lub niezgodny z [jej wytycznymi](%{base_path}/guidelines)."
spam: "Twój wpis został oznaczony jako **spam**: społeczność czuje, że jest to reklama, czyli coś nadmiernie promującego, a nie użytecznego czy odnoszącego się do tematu."
notify_moderators: "Twój wpis został oznaczony jako **do uwagi moderatora**: społeczność czuje, że wpis wymaga ręcznej interwencji członka personelu."
+ responder:
+ off_topic: "Post został oznaczony jako **nie na temat**: społeczność uważa, że nie pasuje on do tematu, który obecnie określa tytuł i pierwszy post."
+ inappropriate: "Post został oznaczony jako **nieodpowiedni**: społeczność uważa, że jest obraźliwy, wulgarny lub narusza [nasze wytyczne dla społeczności](%{base_path}/guidelines)."
+ spam: "Post został oznaczony jako **spam**: społeczność uważa, że jest to reklama, lub coś, co ma charakter nadmiernie promocyjny, a nie jest przydatne lub związane z tematem zgodnie z oczekiwaniami."
+ notify_moderators: "Post został oznaczony **w celu zwrócenia uwagi moderatora**: społeczność uważa, że coś w tym poście wymaga ręcznej interwencji członka personelu."
flags_dispositions:
agreed: "Dziękujemy za zwrócenie uwagi. Zgadzamy się, że jest to problem i przyjrzymy się temu. "
agreed_and_deleted: "Dziękujemy za zwrócenie uwagi. Zgadzamy się, że jest to problem i wpis został usunięty. "
@@ -2648,6 +2694,13 @@ pl_PL:
many: "Ten temat jest tymczasowo zamknięty na co najmniej %{count} godzin z powodu dużej liczby flag społeczności."
other: "Ten temat jest tymczasowo zamknięty na co najmniej %{count} godzin z powodu dużej liczby flag społeczności."
system_messages:
+ reviewables_reminder:
+ subject_template: "W kolejce do sprawdzenia znajdują się elementy, które wymagają uwagi"
+ text_body_template:
+ one: "%{mentions} Wiadomości zostały wysłane ponad %{count} godzinę temu. [Sprawdź je](%{base_url}/review)."
+ few: "%{mentions} Wiadomości zostały wysłane ponad %{count} godziny temu. [Sprawdź je](%{base_url}/review)."
+ many: "%{mentions} Wiadomości zostały wysłane ponad %{count} godzin temu. [Sprawdź je](%{base_url}/review)."
+ other: "%{mentions} Wiadomości zostały wysłane ponad %{count} godzin temu. [Sprawdź je](%{base_url}/review)."
private_topic_title: "Temat#%{id}"
contents_hidden: "Proszę przejść do wpisu, aby wyświetlić jego zawartość."
post_hidden:
@@ -2727,6 +2780,29 @@ pl_PL:
```
Zapoznaj się z naszymi [wytycznymi społeczności](%{base_url}/guidelines) po więcej szczegółów.
+ flags_agreed_and_post_deleted_for_responders:
+ title: "Odpowiedź usunięta z oflagowanego postu przez personel"
+ subject_template: "Odpowiedź usunięta z oflagowanego postu przez personel"
+ text_body_template: |
+ Witaj,
+
+ To jest automatyczna wiadomość od %{site_name} informująca, że [post](%{base_url}%{url}), na który odpowiedziałeś, został usunięty.
+
+ %{flag_reason}
+
+ Ten post został oznaczony przez społeczność, a członek personelu zdecydował się go usunąć.
+
+ ``` markdown
+ %{flagged_post_raw_content}
+ ```
+
+ Na który odpowiedziałeś
+
+ ``` markdown
+ %{flagged_post_response_raw_content}
+ ```
+
+ Aby uzyskać więcej informacji na temat powodu usunięcia, zapoznaj się z naszymi [wytycznymi dla społeczności](%{base_url}/guidelines).
usage_tips:
text_body_template: |
Aby uzyskać kilka szybkich wskazówek, jak zacząć jako nowy użytkownik, [przeczytaj ten post na blogu](https://blog.discourse.org/2016/12/discourse-new-user-tips-and-tricks/).
@@ -3384,6 +3460,7 @@ pl_PL:
%{respond_instructions}
user_group_mentioned_pm:
+ title: "Wspomniana grupa użytkowników PW"
subject_template: "[%{email_prefix}] [PW] %{topic_title}"
text_body_template: |
%{header_instructions}
@@ -3394,6 +3471,7 @@ pl_PL:
%{respond_instructions}
user_group_mentioned_pm_group:
+ title: "Wspomniana grupa użytkowników PW"
subject_template: "[%{email_prefix}] [PW] %{topic_title}"
text_body_template: |
%{header_instructions}
diff --git a/config/locales/server.pt.yml b/config/locales/server.pt.yml
index 120a8a59db..a7f59c92b5 100644
--- a/config/locales/server.pt.yml
+++ b/config/locales/server.pt.yml
@@ -319,8 +319,6 @@ pt:
too_many_links:
one: "Pedimos desculpa, novos utilizadores podem colocar apenas %{count} hiperligação numa mensagem."
other: "Pedimos desculpa, novos utilizadores podem colocar apenas %{count} hiperligações numa mensagem."
- contains_blocked_word: "Sua postagem contém uma palavra que não é permitida: %{word}"
- contains_blocked_words: "Sua postagem contém algumas palavras que não são permitidas: %{words}"
spamming_host: "Pedimos desculpa, não pode colocar uma hiperligação para esse servidor."
user_is_suspended: "Utilizadores suspensos não têm permissão para publicar."
topic_not_found: "Algo de errado ocorreu. Talvez este tópico tenha sido fechado ou eliminado enquanto olhava para ele?"
@@ -979,7 +977,6 @@ pt:
max_topic_title_length: "Tamanho máximo permitido por título de cada tópico, em caracteres"
min_personal_message_title_length: "Tamanho mínimo permitido por título nas mensagens, em caracteres"
min_search_term_length: "Tamanho mínimo válido para termos de pesquisa, em caracteres"
- search_tokenize_chinese_japanese_korean: "Forçar pesquisa para atomizar Chinês/Japonês/Coreano mesmo em sites que não sejam CJC"
search_prefer_recent_posts: "Se pesquisar no seu fórum vasto é lento, esta opção tenta usar um índex de publicações recentes primeiro"
search_recent_posts_size: "Quantas publicações recentes a manter no índex"
search_query_log_max_size: "O número máximo de consultas de pesquisa a serem mantidas"
@@ -1006,7 +1003,6 @@ pt:
show_pinned_excerpt_mobile: "Mostrar excerto em publicações afixadas na vista móvel."
show_pinned_excerpt_desktop: "Mostar excerto em publicações afixadas na vista de desktop."
post_onebox_maxlength: "Tamanho máximo de uma mensagem Discourse de caixa única, em caracteres."
- blocked_onebox_domains: "Uma lista de domínios para a qual nunca serão geradas pré-visualizações."
max_oneboxes_per_post: "Número máximo de pré-visualizações numa publicação."
manifest_screenshots: "Capturas de tela que mostrem os recursos e a funcionalidade da instância na página de incentivo à instalação. Todas as imagens devem ser envios locais e das mesmas dimensões."
notification_email: "Para: endereço de email usado ao enviar emails essenciais do sistema. O domínio especificado aqui deverá ter SPF, DKIM e registos PTR inversos configurados corretamente para a chegada do email."
diff --git a/config/locales/server.pt_BR.yml b/config/locales/server.pt_BR.yml
index 7b0b954f05..7fd9ff968d 100644
--- a/config/locales/server.pt_BR.yml
+++ b/config/locales/server.pt_BR.yml
@@ -338,8 +338,6 @@ pt_BR:
too_many_links:
one: "Desculpe, usuários(as) novos(as) podem inserir apenas %{count} link em uma postagem."
other: "Desculpe, usuários(as) novos(as) podem inserir apenas %{count} links em uma postagem."
- contains_blocked_word: "Sua postagem contém uma palavra que não é permitida: %{word}"
- contains_blocked_words: "Sua postagem contém várias palavras que não são permitidas: %{words}"
spamming_host: "Desculpe, você não pode postar um link para esse host."
user_is_suspended: "Usuários(as) suspensos(as) não têm permissão para postar."
topic_not_found: "Ocorreu um erro. Talvez este tópico tenha sido fechado ou removido enquanto você estava visualizando."
@@ -1401,7 +1399,6 @@ pt_BR:
min_personal_message_title_length: "Tamanho mínimo permitido para o título de uma mensagem em caracteres"
max_emojis_in_title: "Emojis permitidos máximos no título do tópico"
min_search_term_length: "Tamanho mínimo válido para termo de pesquisa em caracteres"
- search_tokenize_chinese_japanese_korean: "Forçar a pesquisa a transformar em token caracteres de mandarim/japonês/coreano até para sites que não estão nesses idiomas"
search_prefer_recent_posts: "Se as pesquisas no seu fórum estiverem lentas, essa opção tenta indexar as postagens mais recentes primeiro"
search_recent_posts_size: "Quantidade de postagens recentes para serem mantidas no índice"
log_search_queries: "Registrar consultas de pesquisa realizadas pelos(as) usuários(as)"
@@ -1445,7 +1442,6 @@ pt_BR:
show_pinned_excerpt_mobile: "Mostre trecho de tópicos fixados na visualização para dispositivos móveis."
show_pinned_excerpt_desktop: "Mostrar trecho de tópicos fixados na visualização para desktop."
post_onebox_maxlength: "Tamanho máximo para uma postagem do Discourse no Onebox."
- blocked_onebox_domains: "Uma lista de domínios que nunca serão transformados em Onebox."
allowed_inline_onebox_domains: "Uma lista de domínios que serão colocados em miniatura no Onebox se forem vinculados sem um título"
enable_inline_onebox_on_all_domains: "Ignore a configuração do site inline_onebox_domain_whitelist e permita inclusões de Onebox em todos os domínios."
force_custom_user_agent_hosts: "Hosts para os quais usar um agente do(a) usuário(a) do Onebox em todos os pedidos. (Especialmente útil para hosts que limitam acesso do agente do(a) usuário(a).)"
@@ -1533,7 +1529,7 @@ pt_BR:
allowed_iframes: "Uma lista de prefixos de domínio iframe src que o Discourse pode permitir com segurança em postagens"
allowed_crawler_user_agents: "Agentes de usuário(a) de rastreadores da web que devem ter permissão para acessar o site. AVISO! ESTA CONFIGURAÇÃO NEGARÁ ACESSO A TODOS OS RASTREADORES NÃO LISTADOS AQUI!"
blocked_crawler_user_agents: "Palavra sem diferenciação de maiúsculas e minúsculas na linha do agente do(a) usuário(a) que identifica os rastreadores da web que não devem ter permissão para acessar o site. Não se aplica se a lista de permissões estiver definida."
- slow_down_crawler_user_agents: "Agentes de usuário(a) de rastreadores da web que devem ter a taxa limitada conforme a configuração \"reduzir taxa de rastreador\". Cada valor dever ter pelo menos três caracteres."
+ slow_down_crawler_user_agents: 'Agentes de usuário(a) de rastreadores da web que devem ter a taxa limitada conforme a configuração "reduzir taxa de rastreador". Cada valor dever ter pelo menos três caracteres.'
slow_down_crawler_rate: "Se slow_down_crawler_user_agents for especificado, essa taxa será aplicada a todos os rastreadores (quantidade de segundos de atraso entre os pedidos)"
content_security_policy: "Ativar Content-Security-Policy"
content_security_policy_report_only: "Ativar Content-Security-Policy-Report-Only"
diff --git a/config/locales/server.ro.yml b/config/locales/server.ro.yml
index 9667e4a786..7c03bd170d 100644
--- a/config/locales/server.ro.yml
+++ b/config/locales/server.ro.yml
@@ -810,7 +810,6 @@ ro:
max_topic_title_length: "Maximul de caractere permis în titlul unui subiect"
min_personal_message_title_length: "Numărul minim de caractere permis în titlul unui mesaj"
min_search_term_length: "Lungimea minimă a unui termen de căutare valid, în caractere."
- search_tokenize_chinese_japanese_korean: "Forțează căutarea să utilizeze tokens chineză/japoneză/coreană chiar și pe site-uri care nu sunt CJK."
search_prefer_recent_posts: "Dacă ai un forum mare și căutarea este prea lentă, această opțiune încearcă să indexeze mai multe postări recente întâi."
search_recent_posts_size: "Câte postări recente să fie ținute în index"
allow_uncategorized_topics: "Permite crearea de subiecte fără categorie. ATENȚIE: Dacă o să ai postări fără categorie, va trebui să le identifici înainte să poți dezactiva din nou această setare."
@@ -835,7 +834,6 @@ ro:
show_pinned_excerpt_mobile: "Arată fragmente din subiectele fixate în vizualizarea de mobil."
show_pinned_excerpt_desktop: "Arată fragmente din subiectele fixate în vizualizarea de desktop."
post_onebox_maxlength: "Lungimea maximă a unei postări afișate în Onebox (în caractere)"
- blocked_onebox_domains: "O listă cu domenii care nu vor putea fi utilizate cu onebox."
max_oneboxes_per_post: "Numărul maxim de utilizări onebox per post."
notification_email: "Adresă expeditor: adresa de email folosită când se trimit toate emailurile esențiale ale sistemului. Domeniul specificat aici trebuie să aibă setate corect SPF, DKIM și reverse PTR pentru ca emailul să poată fi livrat."
email_custom_headers: "O listă delimitată cu simbolul | (pipe) a header-elor personalizate de email"
diff --git a/config/locales/server.ru.yml b/config/locales/server.ru.yml
index 8919612545..0be9e49884 100644
--- a/config/locales/server.ru.yml
+++ b/config/locales/server.ru.yml
@@ -376,8 +376,8 @@ ru:
few: "Извините, новые пользователи могут размещать только %{count} ссылки в сообщении."
many: "Извините, новые пользователи могут размещать только %{count} ссылок в сообщении."
other: "Извините, новые пользователи могут размещать только %{count} ссылок в сообщении."
- contains_blocked_word: "Ваше сообщение содержит запрещённое слово: %{word}"
- contains_blocked_words: "Ваше сообщение содержит несколько запрещённых слов: %{words}"
+ contains_blocked_word: "Извините, но вы не можете использовать слово '%{word}'; оно недопустимо."
+ contains_blocked_words: "Извините, но вы не можете опубликовать это. Не допускаются следующие слова: %{words}."
spamming_host: "Извините, но вы не можете разместить ссылку на этот ресурс."
user_is_suspended: "Замороженные пользователи не могут создавать сообщения."
topic_not_found: "Что-то пошло не так. Возможно, эта тема была закрыта или удалена, пока вы её читали?"
@@ -1487,6 +1487,7 @@ ru:
unreachable_themes: "Нам не удалось проверить наличие обновлений для следующих тем:"
watched_word_regexp_error: "Недопустимое регулярное выражение для контролируемых слов в разделе '%{action}'. Пожалуйста, проверьте корректность регулярных выражений, или отключите в настройках сайта настройку 'Контролируемые слова представлены регулярными выражениями'."
site_settings:
+ allow_bulk_invite: "Разрешить массовые приглашения путём загрузки CSV-файла"
disabled: "отключён"
display_local_time_in_user_card: "Отображать местное время в карточке пользователя."
censored_words: "Слова, которые будут автоматически заменены на ■■■■"
@@ -1507,7 +1508,8 @@ ru:
min_personal_message_title_length: "Минимально допустимое количество символов в заголовке личного сообщения"
max_emojis_in_title: "Максимальное количество эмодзи в названии темы"
min_search_term_length: "Минимальное количество символов в поисковом запросе"
- search_tokenize_chinese_japanese_korean: "Принудительный поиск для токенизации Китайского/Японского /Корейского языков даже на сайтах, не содержащих символы CJK"
+ search_tokenize_chinese: "Принудительный поиск для токенизации китайского языка даже на некитайских сайтах"
+ search_tokenize_japanese: "Принудительный поиск для токенизации японского языка даже на неяпонских сайтах"
search_prefer_recent_posts: "Сначала индексировать последние сообщения. Актуально при медленном поиске на больших объёмах данных"
search_recent_posts_size: "Хранить в индексе указанное здесь количество сообщений"
log_search_queries: "Сохранять в журнале поисковые запросы пользователей"
@@ -1551,7 +1553,7 @@ ru:
show_pinned_excerpt_mobile: "Показывать фрагменты закреплённых тем в мобильном представлении."
show_pinned_excerpt_desktop: "Показывать фрагменты закреплённых тем в настольных устройствах."
post_onebox_maxlength: "Максимальная длина сообщения в режиме умной вставки."
- blocked_onebox_domains: "Список доменов, контент с которых не будет преобразовываться в умную вставку."
+ blocked_onebox_domains: "Список доменов, которые не будут преобразовываться в умную вставку, например wikipedia.org\n(подстановочные знаки '*' и '?' не поддерживаются)."
allowed_inline_onebox_domains: "Список доменов, контент с которых будет преобразовываться в умную вставку, если ссылка указана без заголовка."
enable_inline_onebox_on_all_domains: "Игнорировать параметр `inline_onebox_domain_whitelist` и разрешить умную вставку для всех доменов."
force_custom_user_agent_hosts: "Хосты, для которых можно использовать пользовательский User-Agent умных вставок для всех запросов. (Особенно полезно для хостов, которые ограничивают доступ пользовательским агентам)."
@@ -1639,7 +1641,7 @@ ru:
allowed_iframes: "Список iframe src, которым Discourse может разрешить встраивание в сообщения."
allowed_crawler_user_agents: "Перечень поисковых ботов, которым должен быть разрешён доступ к сайту. ПРЕДУПРЕЖДЕНИЕ! УСТАНОВКА ЭТОГО ПАРАМЕТРА ЗАПРЕТИТ ДОСТУП ВСЕМ ПОИСКОВЫМ БОТАМ, НЕ УКАЗАННЫМ В ПЕРЕЧНЕ!"
blocked_crawler_user_agents: "Уникальное нечувствительное к регистру слово в строке User-Agent, идентифицирующее поисковых ботов, которым запрещён доступ к сайту. Не применяется, если определён белый список."
- slow_down_crawler_user_agents: "User agents, скорость работы которых должна быть ограничена в соответствии с настройкой «slow down crawler rate». Каждое значение должно состоять не менее чем из 3 символов."
+ slow_down_crawler_user_agents: 'User agents, скорость работы которых должна быть ограничена в соответствии с настройкой «slow down crawler rate». Каждое значение должно состоять не менее чем из 3 символов.'
slow_down_crawler_rate: "Если указано значение slow_down_crawler_user_agents (количество секунд между запросами), то это значение будет применяться ко всем веб-сканерам"
content_security_policy: "Включить политику безопасности контента (CSP)"
content_security_policy_report_only: "Включить только отчёт о политике безопасности контента (CSP)"
@@ -2203,6 +2205,7 @@ ru:
share_quote_visibility: "Определите, когда показывать кнопки обмена цитатами: никогда, только анонимным пользователям или всем пользователям. "
create_revision_on_bulk_topic_moves: "Добавлять первые сообщения в историю редактирования при массовом перемещении тем в другой раздел."
allow_changing_staged_user_tracking: "Разрешить пользователю с правами администратора изменять настройки уведомлений для сымитированных пользователей в разделах и тегах."
+ use_email_for_username_and_name_suggestions: "Предлагать первую часть адресов электронной почты в качестве имени и псевдонима пользователя. Обратите внимание, что это упрощает угадывание полных адресов электронной почты пользователей (поскольку большая часть людей использует такие известные службы как `gmail.com`)."
errors:
invalid_css_color: "Недопустимый цвет. Введите название цвета или шестнадцатеричное значение."
invalid_email: "Неправильный адрес электронной почты."
@@ -2222,6 +2225,7 @@ ru:
invalid_json: "Недопустимый формат JSON."
invalid_reply_by_email_address: "Значение должно содержать '%{reply_key}' и должно отличаться от письма уведомления."
invalid_alternative_reply_by_email_addresses: "Все значения должны содержать '%{reply_key}' и должны отличаться от письма уведомления."
+ invalid_domain_hostname: "Доменное имя не должно содержать символы '*' или '?'."
pop3_polling_host_is_empty: "Вы должны установить 'pop3 polling host' перед включением POP3 polling."
pop3_polling_username_is_empty: "Вы должны установить 'pop3 polling username' перед включением POP3 polling."
pop3_polling_password_is_empty: "Вы должны установить 'pop3 polling password' перед включением POP3 polling."
@@ -2251,6 +2255,8 @@ ru:
unicode_usernames_avatars: "Внутренние системные аватары не поддерживают псевдонимы в формате Unicode."
list_value_count: "Список должен содержать именно %{count} значений."
google_oauth2_hd_groups: "Перед включением этого параметра необходимо настроить параметр 'google oauth2 hd'."
+ search_tokenize_chinese_enabled: "Вы должны отключить «search_tokenize_chinese», прежде чем включить этот параметр."
+ search_tokenize_japanese_enabled: "Вы должны отключить «search_tokenize_japanese», прежде чем включить этот параметр."
placeholder:
discourse_connect_provider_secrets:
key: "www.example.com"
@@ -4349,7 +4355,7 @@ ru:
name: Первая умная вставка
description: Опубликовал ссылку, которая была преобразована в умную вставку
long_description: |
- Эта награда выдается при первом размещении ссылки в отдельной строке, которая автоматически разворачивается в умную вставку, содержащую сводку, заголовок и (при наличии) изображение.
+ Эта награда выдаётся при первом размещении ссылки в отдельной строке, которая автоматически разворачивается в умную вставку, содержащую сводку, заголовок и (при наличии) изображение.
first_reply_by_email:
name: Первый ответ по почте
description: Ответил на пост по электронной почте
diff --git a/config/locales/server.sk.yml b/config/locales/server.sk.yml
index 4b7e63dc47..9bb5ea21e3 100644
--- a/config/locales/server.sk.yml
+++ b/config/locales/server.sk.yml
@@ -788,7 +788,6 @@ sk:
max_topic_title_length: "Maximálny povolený počet znakov v názve témy"
min_personal_message_title_length: "Minimálny povolený počet znakov v správe"
min_search_term_length: "Minimálny povolený počet znakov vo vyhľadávaní"
- search_tokenize_chinese_japanese_korean: "Prinúť vyhľádávanie rozložiť Čínštinu/Japončinu/Kórejčinu dokonca i pre nie CJK stránky"
allow_uncategorized_topics: "Pvoliť vytváranie tém bez kategórií. UPOZORNENIE: Pokiaľ existujú nekategorizované témy, musíte ich zaradiť do kategórii skôr než túto možnosť vypnete."
allow_duplicate_topic_titles: "Povoliť témy s rovnakými, duplikovanými názvami"
unique_posts_mins: "Koľko minút musí byť medzi dvomi rovnakými príspevkami od jedného používateľa."
diff --git a/config/locales/server.sl.yml b/config/locales/server.sl.yml
index bc875d5cee..f5ae75d697 100644
--- a/config/locales/server.sl.yml
+++ b/config/locales/server.sl.yml
@@ -172,8 +172,6 @@ sl:
two: "Novi uporabniki lahko v prispevek dodajo samo %{count} povezavi."
few: "Novi uporabniki lahko v prispevek dodajo samo %{count} povezave."
other: "Novi uporabniki lahko v prispevek dodajo samo %{count} povezav."
- contains_blocked_word: "Vaš prispevek vsebuje prepovedano besedo: %{word}"
- contains_blocked_words: "Vaš prispevek vsebuje prepovedane besede: %{words}"
user_is_suspended: "Suspendirani uporabniki ne morejo objavljati."
pm_reached_recipients_limit: "Ne morete imeti več kot %{recipients_limit} prejemnikov v sporočilu."
removed_direct_reply_full_quotes: "Samodejno odstranjen citat celotnega prejšnega prispevka."
diff --git a/config/locales/server.sv.yml b/config/locales/server.sv.yml
index 26831ac624..f5c3c61b1d 100644
--- a/config/locales/server.sv.yml
+++ b/config/locales/server.sv.yml
@@ -338,8 +338,8 @@ sv:
too_many_links:
one: "Tyvärr kan nya användare bara ha en länk i ett inlägg."
other: "Tyvärr kan nya användare bara ha %{count} länkar i ett inlägg."
- contains_blocked_word: "Ditt inlägg innehåller ett ord som inte är tillåtet: %{word}"
- contains_blocked_words: "Ditt inlägg innehåller flera ord som inte är tillåtna: %{words}"
+ contains_blocked_word: "Tyvärr, du kan inte använda ordet '%{word}'; det är inte tillåtet."
+ contains_blocked_words: "Tyvärr, du kan inte skriva det. Ej tillåtet: %{words}."
spamming_host: "Tyvärr kan du inte publicera en länk till den värden."
user_is_suspended: "Avstängda användare har inte tillåtelse att göra inlägg"
topic_not_found: "Något har gått fel. Kanske har ämnet stängts eller raderats medan du tittade på det?"
@@ -1361,6 +1361,7 @@ sv:
unreachable_themes: "Vi kunde inte kontrollera uppdateringar för följande teman:"
watched_word_regexp_error: "Det reguljära uttrycket för '%{action}'-bevakade ord är ogiltigt. Kontrollera dina inställningar för bevakade ord eller inaktivera webbplatsinställningen 'Reguljära uttryck för bevakade ord'."
site_settings:
+ allow_bulk_invite: "Tillåt massinbjudningar genom att ladda upp en CSV-fil"
disabled: "inaktiverade"
display_local_time_in_user_card: "Visa den lokala tiden baserat på en användares tidszon när deras användarkort öppnas."
censored_words: "Ord som automatiskt ersätts med ■■■■"
@@ -1381,7 +1382,8 @@ sv:
min_personal_message_title_length: "Lägst tillåtna längd på rubrik för ett meddelande uttryckt i tecken"
max_emojis_in_title: "Maximalt antal tillåtna emojier i ämnesrubriken"
min_search_term_length: "Lägsta giltiga teckenlängd på sökterm"
- search_tokenize_chinese_japanese_korean: "Framtvinga sökning för att koda kinesiska/japanska/koreanska även på webbplatser som inte är på dessa språk"
+ search_tokenize_chinese: "Tvinga sökning att tokenisera kinesiska även på icke-kinesiska webbplatser"
+ search_tokenize_japanese: "Tvinga sökning att tokenisera japanska även på icke-japanska webbplatser"
search_prefer_recent_posts: "Om sökningar på ditt stora forum går långsamt, försök detta alternativ som är ett index av de senaste inläggen först."
search_recent_posts_size: "Hur många nya inlägg som ska behållas i index"
log_search_queries: "Logga sökfrågor utförda av användare"
@@ -1425,7 +1427,7 @@ sv:
show_pinned_excerpt_mobile: "Visa utdrag för fästa ämnen i mobilen."
show_pinned_excerpt_desktop: "Visa utdrag för fästa ämnen på datorn."
post_onebox_maxlength: "Maximal teckenlängd för ett Discourse-inlägg i onebox."
- blocked_onebox_domains: "En lista över domäner som aldrig placeras i onebox."
+ blocked_onebox_domains: "En lista över domäner som aldrig kommer att oneboxas t.ex. wikipedia.org\n(Jokertecken * ? stöds inte)"
allowed_inline_onebox_domains: "En lista över domäner som placeras i onebox i miniatyrform om de länkas utan en rubrik"
enable_inline_onebox_on_all_domains: "Ignorera webbplatsinställningen inline_onebox_domain_allowlist och tillåt infogad onebox på alla domäner."
force_custom_user_agent_hosts: "Värdar för vilka anpassad användaragent för onebox ska användas vid alla förfrågningar. (särskilt användbart för värdar som begränsar åtkomst av användaragent)."
@@ -1513,7 +1515,7 @@ sv:
allowed_iframes: "En lista med iframekällors domänprefix som Discourse säkert kan tillåta i inlägg"
allowed_crawler_user_agents: "Användaragenter för sökrobotar som ska få åtkomst till webbplatsen. VARNING! INSTÄLLNING AV DETTA FÖRBJUDER ALLA SÖKMOTORER SOM INTE LISTAS HÄR!"
blocked_crawler_user_agents: "Unikt fall av känsligt ord i användaragent-strängen som identifierar webbsökare som inte bör få åtkomst till webbplatsen. Gäller inte om vitlista har definierats."
- slow_down_crawler_user_agents: "Användaragenter för sökrobotar som ska vara hastighetsbegränsade vilket konfigurerats i inställningen \"sakta ned sökrobots hastighet\". Varje värde måste vara minst 3 tecken långt."
+ slow_down_crawler_user_agents: 'Användaragenter för sökrobotar som ska vara hastighetsbegränsade vilket konfigurerats i inställningen "sakta ned sökrobots hastighet". Varje värde måste vara minst 3 tecken långt.'
slow_down_crawler_rate: "Om slow_down_crawler_user_agents anges kommer denna hastighet att gälla för alla sökrobotar (fördröjning mellan förfrågningarna uttryckt i sekunder)"
content_security_policy: "Aktivera säkerhetspolicy för innehåll"
content_security_policy_report_only: "Aktivera enbart säkerhetspolicy för innehåll"
@@ -2077,6 +2079,7 @@ sv:
share_quote_visibility: "Avgör när du ska visa citatdelningsknappar: aldrig, endast till anonyma användare eller för alla användare. "
create_revision_on_bulk_topic_moves: "Skapa ny version av första inlägg när ämnen flyttas till en ny kategori i bulk."
allow_changing_staged_user_tracking: "Tillåt att aviseringsinställningar för en arrangerad användares kategori och tagg kan ändras av en administratörsanvändare."
+ use_email_for_username_and_name_suggestions: "Använd den första delen av e-postadresser för användarnamn och namnförslag. Observera att detta gör det lättare för allmänheten att gissa användares fullständiga e-postadresser (eftersom en stor del av människor delar gemensamma tjänster som `gmail.com`)."
errors:
invalid_css_color: "Ogiltig färg. Ange ett färgnamn eller ett hexvärde."
invalid_email: "Felaktig e-postadress."
@@ -2096,6 +2099,7 @@ sv:
invalid_json: "Ogiltig JSON."
invalid_reply_by_email_address: "Värdet måste innehålla '%{reply_key}' och vara annorlunda från e-postaviseringen."
invalid_alternative_reply_by_email_addresses: "Alla värden måste innehålla '%{reply_key}' och vara annorlunda från e-postaviseringen."
+ invalid_domain_hostname: "Får inte innehålla * eller ? tecken."
pop3_polling_host_is_empty: "Du måste ställa in en 'pop3 polling host' innan du aktiverar POP3-polling."
pop3_polling_username_is_empty: "Du måste ställa in ett 'pop3 polling username' innan du aktiverar POP3-polling."
pop3_polling_password_is_empty: "Du måste ställa in ett 'pop3 polling password' innan du aktiverar POP3-polling."
@@ -2125,6 +2129,8 @@ sv:
unicode_usernames_avatars: "De interna systemavatarerna stöder inte Unicode-användarnamn."
list_value_count: "Listan måste innehålla exakt %{count} värden."
google_oauth2_hd_groups: "Du måste först ange 'google oauth2 hd' innan du aktiverar denna inställning."
+ search_tokenize_chinese_enabled: "Du måste inaktivera 'search_tokenize_chinese' innan du aktiverar den här inställningen."
+ search_tokenize_japanese_enabled: "Du måste inaktivera 'search_tokenize_japanese' innan du aktiverar den här inställningen."
placeholder:
discourse_connect_provider_secrets:
key: "www.exempel.se"
diff --git a/config/locales/server.sw.yml b/config/locales/server.sw.yml
index ff7ba61592..6997827af4 100644
--- a/config/locales/server.sw.yml
+++ b/config/locales/server.sw.yml
@@ -167,7 +167,6 @@ sw:
no_attachments_allowed: "Samahani watumiaji wapya hawawezi kuambatanisha picha, sauti, video au dokument kwenye machapisho."
no_links_allowed: "Samahani watumiaji wapya hawawezi kuweka viungo kwenye machapisho."
links_require_trust: "Samahani, hauwezi kuweka viungo kwenye machapisho yako."
- contains_blocked_word: "Chapisho lako lina neno lisiloruhusiwa: %{word}"
spamming_host: "Samahani hauwezi kuchapisha kiungo kwenye computer hiyo."
user_is_suspended: "Watumiaji waliosimamishwa hawaruhusiwi kuchapisha."
topic_not_found: "Kuna tatizo limetokea. Labda hii mada ilifungwa au kufutwa ukiwa unaangalia?"
@@ -794,7 +793,6 @@ sw:
max_image_width: "Kiwango cha juu cha upana wa kijipicha za picha kwenye chapisho"
max_image_height: "Kiwango cha juu cha urefu wa kijipicha za picha kwenye chapisho"
add_rel_nofollow_to_user_content: 'Ongeza rel nofollow kwenye maandishi yote mtumiaji aliyotoa, isipokuwa viungo vya ndani (pamoja na kikoa baba). Ukibadilisha hii, lazima urebake machapisho yote na: "rake machapishi:rebake"'
- blocked_onebox_domains: "Orodha ya anwani za mitandao ambazo hazijawekwa kwenye boxi."
allowed_inline_onebox_domains: "Orodha za anwani za mtandao ambazo zitawekwa kwenye boxi kama zikiunganishwa bila kichwa cha habari"
summary_score_threshold: "Alama ya chini ambayo mada inahitaji kabla ya kuwekwa ndani ya 'Fupisha Hii Mada' "
summary_percent_filter: "Mtumiaji akibonyeza 'Fupisha Hii Mada', onyesha % machapisho ya juu"
diff --git a/config/locales/server.tr_TR.yml b/config/locales/server.tr_TR.yml
index 49846523f0..b2e98fe41e 100644
--- a/config/locales/server.tr_TR.yml
+++ b/config/locales/server.tr_TR.yml
@@ -335,8 +335,8 @@ tr_TR:
too_many_links:
one: "Üzgünüz, yeni kullanıcılar bir gönderiye sadece %{count} bağlantı ekleyebilirler."
other: "Üzgünüz, yeni kullanıcılar bir gönderiye sadece %{count} bağlantı ekleyebilirler."
- contains_blocked_word: "Gönderiniz izin verilmeyen bir sözcük içeriyor: %{word}"
- contains_blocked_words: "Gönderiniz izin verilmeyen birden çok sözcük içeriyor: %{words}"
+ contains_blocked_word: "Üzgünüz, '%{word}' kelimesini kullanamazsınız; yasaklı."
+ contains_blocked_words: "Üzgünüm, bunu yayınlayamazsınız. Yasak kelimeler: %{words}."
spamming_host: "Üzgünüz bu sunucuya bağlantı veremezsiniz."
user_is_suspended: "Uzaklaştırılmış kullanıcılar gönderi yapamazlar."
topic_not_found: "Bir şeyler ters gitti. Muhtemelen siz konuya bakarken bu konu kapatıldı ya da silindi."
@@ -1025,7 +1025,7 @@ tr_TR:
score: Skor
description: "Yetkililerin raporlarına verdiği yanıtın oranına göre sıralanan kullanıcıların listesi (Kabul edilmemişten kabul edilmişe doğru)."
moderators_activity:
- title: "Moderatör Aktivitesi"
+ title: "Moderatör Etkinliği"
labels:
moderator: Moderatör
flag_count: Raporlar yeniden görüntülendi
@@ -1371,6 +1371,7 @@ tr_TR:
unreachable_themes: "Aşağıdaki temalar için güncellemeleri kontrol edemedik:"
watched_word_regexp_error: "İzlenen %{action} sözcükleri için düzenli ifade geçersiz. Lütfen İzlenen Sözcük ayarlarınızı kontrol edin veya 'izlenen sözcük düzenli ifadeleri' site ayarını devre dışı bırakın."
site_settings:
+ allow_bulk_invite: "CSV dosyası yükleyerek toplu davete izin ver"
disabled: "devredışı"
display_local_time_in_user_card: "Kullanıcı kartı açıkken yerel saati kullanıcının saat dilimine göre görüntüle."
censored_words: "otomatik olarak ■■■■ ile değiştirilecek sözcükler"
@@ -1391,7 +1392,8 @@ tr_TR:
min_personal_message_title_length: "İleti başlıkları için izin verilen en az karakter sayısı"
max_emojis_in_title: "Konu başlığında izin verilen maksimum emoji"
min_search_term_length: "Arama için girilecek sözcükte olması gereken en az karakter sayısı"
- search_tokenize_chinese_japanese_korean: "CJK olmayan siteler dahil, -Çince/Japonca/Korece için aramayı bilgileri sıfırlamaya zorla"
+ search_tokenize_chinese: "Çince olmayan sitelerde bile aramayı Çince'ye dönüştürmeye zorla"
+ search_tokenize_japanese: "Japonca olmayan sitelerde bile aramayı Japonca'ya dönüştürmeye etmeye zorla"
search_prefer_recent_posts: "Eğer büyük forumunuzda arama yavaş ise bu seçenek daha yeni gönderilerin dizine eklenmesini deneyecek"
search_recent_posts_size: "Kaç tane son gönderi dizinde tutulacak"
log_search_queries: "Kullanıcılar tarafından gerçekleştirilen günlük arama sorguları"
@@ -1435,7 +1437,6 @@ tr_TR:
show_pinned_excerpt_mobile: "Mobil görünümünde başa tutturulmuş konuların özetini göster."
show_pinned_excerpt_desktop: "Masaüstü görünümünde başa tutturulmuş konuların özetini göster."
post_onebox_maxlength: "Kutulanmış bir Discourse gönderisinin en fazla karakter uzunluğu"
- blocked_onebox_domains: "Asla yayınlanmayacak alanların listesi."
allowed_inline_onebox_domains: "Başlıksız bağlanırsa minyatür formda yayınlanacak alanların listesi"
enable_inline_onebox_on_all_domains: "İnline_onebox_domain_whitelist site ayarını yok say ve tüm alan adlarında inline onebox'a izin ver."
force_custom_user_agent_hosts: "Tüm isteklerde özel onebox kullanıcı aracısını kullanacak ana makineler. (Özellikle kullanıcı aracısıyla erişimi sınırlayan ana bilgisayarlar için kullanışlıdır)."
@@ -1523,7 +1524,7 @@ tr_TR:
allowed_iframes: "Gönderilerde güvenli bir şekilde izin verebilecek iframe src alan adı öneklerinin listesi"
allowed_crawler_user_agents: "Siteye erişmesine izin verilmesi gereken ağ tarayıcılarının kullanıcı aracıları. UYARI! BU AYARLAR, BURADA LİSTEN OLMAYAN TÜM TARAYICILARI ÇIKARACAKTIR!"
blocked_crawler_user_agents: "Siteye erişmesine izin verilmemesi gereken web tarayıcılarını tanımlayan kullanıcı aracısı dizesindeki benzersiz BÜYÜK/küçük harf duyarsız sözcük. İzin listesi tanımlanmışsa geçerli değildir."
- slow_down_crawler_user_agents: "\"Tarayıcı hızını yavaşlat\" ayarında yapılandırıldığı gibi hızı sınırlandırılması gereken web tarayıcılarının kullanıcı aracıları. Her değer en az 3 karakter uzunluğunda olmalıdır."
+ slow_down_crawler_user_agents: '"Tarayıcı hızını yavaşlat" ayarında yapılandırıldığı gibi hızı sınırlandırılması gereken web tarayıcılarının kullanıcı aracıları. Her değer en az 3 karakter uzunluğunda olmalıdır.'
slow_down_crawler_rate: "slow_down_crawler_user_agents belirtilirse bu oran tüm tarayıcılara uygulanır (istekler arasında saniye cinsinden gecikme sayısı)."
content_security_policy: "İçerik-Güvenlik-Politikasını Etkinleştir"
content_security_policy_report_only: "Yalnızca İçerik-Güvenlik-İlke-Raporunu Etkinleştir"
@@ -2070,6 +2071,7 @@ tr_TR:
share_quote_buttons: "Alıntı paylaşım widget'ında hangi öğelerin görüneceğini ve hangi sırayla görüneceklerini belirleyin."
share_quote_visibility: "Alıntı paylaşma düğmelerinin ne zaman gösterileceğini belirleyin: asla, yalnızca anonim kullanıcılara veya tüm kullanıcılara. "
create_revision_on_bulk_topic_moves: "Konular toplu olarak yeni bir kategoriye taşındığında ilk gönderiler için revizyon oluştur."
+ use_email_for_username_and_name_suggestions: "Kullanıcı adları ve ad önerileri için e-posta adreslerinin ilk kısmını kullanın. Ama unutmayın bu yaklaşım, insanların e-posta adreslerinin tamamını tahmin etmelerini kolaylaştırır (çünkü insanların büyük bir kısmı \"gmail.com\" gibi ortak hizmetleri paylaşır)."
errors:
invalid_css_color: "Geçersiz renk. Bir renk adı veya hex değer girin."
invalid_email: "Geçersiz e-posta adresi."
@@ -2089,6 +2091,7 @@ tr_TR:
invalid_json: "Geçersiz JSON."
invalid_reply_by_email_address: "Değer '%{reply_key}' içermeli ve bildiri e-postasından farklı olmalı."
invalid_alternative_reply_by_email_addresses: "Tüm değerler '%{reply_key}' içermeli ve bildirim e-postasından farklı olmalıdır."
+ invalid_domain_hostname: "* ya da ? karakteri içermemeli."
pop3_polling_host_is_empty: "POP3 sorgulamasını etkinleştirmeden önce bir 'pop3 polling host' ayarlamanız gerekir."
pop3_polling_username_is_empty: "POP3 sorgulamasını etkinleştirmeden önce bir 'pop3 polling username' ayarlamanız gerekir."
pop3_polling_password_is_empty: "POP3 sorgulamasını etkinleştirmeden önce bir 'pop3 polling password' ayarlamanız gerekir."
@@ -2118,6 +2121,8 @@ tr_TR:
unicode_usernames_avatars: "Dahili sistem avatarları Unicode kullanıcı adlarını desteklemez."
list_value_count: "Liste tam olarak %{count} değerleri içermelidir."
google_oauth2_hd_groups: "Bu ayarı etkinleştirmeden önce 'google oauth2 hd'yi ayarlamalısınız."
+ search_tokenize_chinese_enabled: "Bu ayarı etkinleştirmeden önce 'search_tokenize_chinese' özelliğini devre dışı bırakmalısınız."
+ search_tokenize_japanese_enabled: "Bu ayarı etkinleştirmeden önce 'search_tokenize_japanese' özelliğini devre dışı bırakmalısınız."
placeholder:
discourse_connect_provider_secrets:
key: "www.örnek.com"
@@ -2496,6 +2501,8 @@ tr_TR:
```
Ayrıntılar için lütfen [topluluk yönergelerimizi](%{base_url}/guidelines) inceleyin.
+ flags_agreed_and_post_deleted_for_responders:
+ title: "Yanıt, personel tarafından işaretlenen gönderiden kaldırıldı"
usage_tips:
text_body_template: |
Yeni bir kullanıcı olarak başlamak için birkaç küçük ipucu, [bu blog gönderisini inceleyin](https://blog.discourse.org/2016/12/discourse-new-user-tips-and-tricks/).
diff --git a/config/locales/server.uk.yml b/config/locales/server.uk.yml
index 67bb0a44cc..d039add2eb 100644
--- a/config/locales/server.uk.yml
+++ b/config/locales/server.uk.yml
@@ -244,6 +244,8 @@ uk:
Це запрошення на %{site_name} більше не можна використати. Попросіть того, хто вас запросив, надіслати вам нове запрошення.
user_exists: "Немає необхідності надсилати запрошення %{email}, такий акаунт вже існує!"
invite_exists: "Ви вже запросили %{email}."
invalid_email: "%{email} не є дійсною адресою електронної пошти."
@@ -374,8 +376,8 @@ uk:
few: "Даруйте, нові користувачі можуть вставляти тільки %{count} посилань в допис."
many: "Даруйте, нові користувачі можуть вставляти тільки %{count} посилань в допис."
other: "Даруйте, нові користувачі можуть вставляти тільки %{count} посилань в допис."
- contains_blocked_word: "Ваш пост містить слово, яке заборонено: %{word}"
- contains_blocked_words: "Ваш пост містить кілька заборонених слів: %{words}"
+ contains_blocked_word: "Ви не можете опублікувати слово '%{word}'; це не дозволено."
+ contains_blocked_words: "Вибачте, ви не можете опублікувати це. Ці слова заборонені: %{words}."
spamming_host: "Даруйте, Ви не можете вставити посилання на цей хост."
user_is_suspended: "Заблокованим користувачам заборонено писати."
topic_not_found: "Щось пішло не так. Можливо цей допис було закрито або видалено, під час того, як ви його переглядали?"
@@ -1449,6 +1451,7 @@ uk:
qtt_like: Отримані вподобання
description: "Топ-10 користувачів, які мали лайки від широкого кола людей."
dashboard:
+ group_email_credentials_warning: 'Виникла проблема з обліковими даними електронної пошти для групи %{group_full_name}. Жодні електронні листи не надсилатимуться зі скриньки групи, доки цю проблему не буде вирішено. %{error}'
rails_env_warning: "Ваш сервер працює в режимі %{env}."
host_names_warning: "Ваш файл config/database.yml використовує локальне ім’я хоста за замовчуванням. Поміняйте його на ім’я хоста вашого веб-сайту."
sidekiq_warning: 'Sidekiq is not running. Many tasks, like sending emails, are executed asynchronously by sidekiq. Please ensure at least one sidekiq process is running. Learn about Sidekiq here.'
@@ -1498,7 +1501,6 @@ uk:
min_personal_message_title_length: "Мінімально допустима кількість символів в заголовку повідомлення в бесіді."
max_emojis_in_title: "Максимально допустимі смайлики в заголовку теми"
min_search_term_length: "Мінімальна дозволена довжина пошукової фрази у символах"
- search_tokenize_chinese_japanese_korean: "Примусовий пошук для токенізації Китайського / Японського / Корейського навіть на сайтах, відмінних від CJK"
search_prefer_recent_posts: "Якщо пошук на великому форумі виконується повільно, цей параметр спочатку намагається більше індексувати останні повідомлення"
search_recent_posts_size: "Скільки останніх постів зберегти в індексі"
log_search_queries: "Журнал пошукових запитів, виконаних користувачами"
@@ -1542,7 +1544,6 @@ uk:
show_pinned_excerpt_mobile: "Показати короткий виклад по закріплених темах в мобільному поданні."
show_pinned_excerpt_desktop: "Показати витримку по закріплених темах в режимі робочого столу."
post_onebox_maxlength: "Максимальна довжина повідомлення з форуму Discourse в режимі розумної вставки."
- blocked_onebox_domains: "Список доменів, контент з яких ніколи не буде перетворено на розумну вставку."
allowed_inline_onebox_domains: "Список доменів, контент з яких буде перетворено в мініатюрну вставку, якщо посилання вказане без заголовка"
enable_inline_onebox_on_all_domains: "Ігнорувати налаштування сайту inline_onebox_domain_allowlist і дозволити вбудований контент для всіх доменів."
force_custom_user_agent_hosts: "Хости, для яких використовується агент користувача розумних вставок для всіх запитів. (Особливо корисно для хостів, які обмежують доступ користувальницького агента)."
@@ -1630,7 +1631,7 @@ uk:
allowed_iframes: "Список префіксів домену iframe src, які discourse може безпечно дозволити в повідомленнях"
allowed_crawler_user_agents: "Користувацькі агенти веб-сканерів, яким слід дозволити доступ до сайту. ПОПЕРЕДЖЕННЯ! ЦЕ ЗАБОРОНИТЬ ДОСТУП ВСІМ ВЕБ-СКАНЕРАМ, ЯКІ НЕ ВКАЗАНІ ТУТ!"
blocked_crawler_user_agents: "Унікальне слово, не чутливе до регістру, у рядку агента користувача, що ідентифікує веб-сканери, яким не слід дозволяти доступ до сайту. Не застосовується, якщо визначено білий список."
- slow_down_crawler_user_agents: "User agents, швидкість роботи яких повинна бути обмежена відповідно до налаштування \"slow down crawler rate\". Кожне значення має складатися не менше ніж з трьох символів."
+ slow_down_crawler_user_agents: 'User agents, швидкість роботи яких повинна бути обмежена відповідно до налаштування "slow down crawler rate". Кожне значення має складатися не менше ніж з трьох символів.'
slow_down_crawler_rate: "Якщо вказано slow_down_crawler_user_agents, ця пауза застосовуватиметься до всіх сканерів (затримка між запитами кількість секунд)"
content_security_policy: "Увімкнути політику безпеки вмісту"
content_security_policy_report_only: "Увімкнути тільки звіт про політику безпеки вмісту"
@@ -1705,6 +1706,7 @@ uk:
discourse_connect_overrides_card_background: "Змінити фон профілю користувача на значення, яке використовується в DiscourseConnect."
discourse_connect_not_approved_url: "Перенаправити несхвалені DiscourseConnect-акаунти на цю URL-адресу"
discourse_connect_allows_all_return_paths: "Не обмежувати параметр return_paths для домена, надані DiscourseConnect (за замовчуванням шлях повернення має бути на поточному сайті)"
+ enable_local_logins: "Увімкнути локальні облікові записи на основі імені користувача та пароля. ПОПЕРЕДЖЕННЯ: якщо цей параметр вимкнено, ви не зможете увійти, якщо раніше не налаштували хоча б один альтернативний метод входу."
enable_local_logins_via_email: "Дозволити користувачам запитувати посилання для входу в один клік та надсилати їм електронною поштою цього посилання."
allow_new_registrations: "Дозволити реєстрацію нових користувачів. Вимкніть, щоб заборонити відвідувачам створювати нові облікові записи."
enable_signup_cta: "Покажіть повідомлення анонімним користувачам, які повернулися, з пропозицією зареєструвати обліковий запис."
@@ -1713,6 +1715,7 @@ uk:
google_oauth2_client_secret: "Client secret для вашого Google додатка"
google_oauth2_prompt: "Необов’язковий розділений пробілом список значень, який вказує, чи запитує сервер авторизацію користувача для повторної автентифікації та згоди. Див. https://developers.google.com/identity/protocols/OpenIDConnect#prompt щодо можливих значень."
google_oauth2_hd: "Необов’язковий домен, розміщений у Google Apps Hosted, до якого вхід буде обмежений. Див https://developers.google.com/identity/protocols/OpenIDConnect#hd-param для більш докладної інформації."
+ google_oauth2_hd_groups: "(експериментально) Отримати групи Google користувачів у розміщеному домені під час автентифікації. Отримані групи Google можна використовувати для надання автоматичного членства в групі Discourse (див. налаштування групи)."
enable_twitter_logins: "Увімкніть автентифікацію Twitter, потрібні twitter_consumer_key та twitter_consumer_secret. Див. Configuring Twitter login (and rich embeds) for Discourse."
twitter_consumer_key: "Ключ користувача для аутентифікації в Twitter, зареєстрований за адресою https://developer.twitter.com/apps"
twitter_consumer_secret: "Секретний номер для перевірки справжності Twitter, зареєстрований в https://developer.twitter.com/apps"
@@ -1725,19 +1728,28 @@ uk:
enable_discord_logins: "Дозволити користувачам вхід за допомогою Discord?"
discord_client_id: 'Discord ID клієнта (потрібен такий? відвідайте the Discord developer portal)'
discord_secret: "Discord секретний ключ"
+ discord_trusted_guilds: 'Дозволяйте вхід в систему через Discord лише членам цих гільдій. Використовуйте цифровий ідентифікатор гільдії. Для отримання додаткової інформації перегляньте інструкції тут. Залиште порожнім, щоб дозволити будь-яку гільдію.'
enable_backups: "Дозволити адміністраторам створювати резервні копії форуму"
+ allow_restore: "Дозволити відновлення, яке може замінити ВСІ дані сайту! Залиште вимкненим, якщо ви не плануєте відновити сайт з резервної копії"
maximum_backups: "Максимальна кількість резервних копій для зберігання на диску. Старіші резервні копії автоматично видаляються"
automatic_backups_enabled: "Запускайте автоматичні резервні копії, як визначено в частоті резервного копіювання"
backup_frequency: "Кількість днів між резервними копіями."
s3_backup_bucket: "Адреса папки віддаленого сервера для резервних копій. УВАГА: Переконайтеся, що місце призначення захищено від сторонніх."
s3_endpoint: "Кінцеву точку можна змінити для резервного копіювання на службу, сумісну з S3, наприклад DigitalOcean Spaces або Minio. УВАГА: Не використовуйте AWS S3."
+ s3_configure_tombstone_policy: "Увімкнути політику автоматичного видалення завантажень, відмічених як \"видалені\". ВАЖЛИВО. Якщо цей параметр вимкнено, місце не буде звільнятися після видалення завантажень."
+ s3_disable_cleanup: "Запобігайте видаленню старих резервних копій із S3, якщо резервних копій більше, ніж максимально дозволено."
+ enable_s3_inventory: "Генерувати звіти та перевіряти завантаження за допомогою інвентарю Amazon S3. ВАЖЛИВО: потрібні дійсні облікові дані S3 (як ідентифікатор ключа доступу, так і секретний ключ доступу)."
backup_time_of_day: "Час доби UTC, коли має відбуватися резервне копіювання"
backup_with_uploads: "Додайте завантаження до запланованих резервних копій. Якщо вимкнути це, ви можете створити резервну копію бази даних."
+ backup_location: "Місце, де зберігаються резервні копії. ВАЖЛИВО: S3 вимагає дійсних облікових даних S3, введених у налаштуваннях Файлів."
backup_gzip_compression_level_for_uploads: "Рівень стиснення Gzip, який використовується для стискання завантажень."
include_thumbnails_in_backups: "Включіть створені ескізи в резервні копії. Якщо вимкнути цю функцію, резервні копії зменшаться, але потрібно буде перебудувати (rebake) всі повідомлення після відновлення."
active_user_rate_limit_secs: "Як часто ми оновлюємо 'last_seen_at' поле, в секундах"
verbose_localization: "Показувати ключі використовуваних рядків в інтерфейсі для перекладу на іншу мову"
previous_visit_timeout_hours: "Скільки часу триває візит, перш ніж ми вважатимемо це 'попереднім' візитом, в годинах"
+ top_topics_formula_log_views_multiplier: "значення коефіцієнта множення переглядів журналу (n) у формулі топ-тем: `log(views_count) * (n) + op_likes_count * 0.5 + LEAST(likes_count / posts_count, 3) + 10 + log(posts_count)`"
+ top_topics_formula_first_post_likes_multiplier: "значення коефіцієнта множення переглядів журналу (n) у формулі топ-тем: `log(views_count) * 2 + op_likes_count * (n) + LEAST(likes_count / posts_count, 3) + 10 + log(posts_count)`"
+ top_topics_formula_least_likes_per_post_multiplier: "значення коефіцієнта найменшої кількості лайків на допис (n) у формулі топ-тем: `log(views_count) * 2 + op_likes_count * 0.5 + LEAST(likes_count / posts_count, (n)) + 10 + log(posts_count)`"
enable_safe_mode: "Дозволити користувачам входити в безпечний режим для налагодження плагінів."
rate_limit_create_topic: "Користувачі не можуть створювати більше однієї нової теми за вказаний час, в секундах."
rate_limit_create_post: "Користувачі не можуть писати більше одного нового допису за вказаний час, в секундах."
@@ -1748,12 +1760,18 @@ uk:
max_bookmarks_per_day: "Максимальна кількість створених закладок користувачем за день."
max_edits_per_day: "Максимальна кількість редагувань користувачем за день."
max_topics_per_day: "Максимальна кількість тем, які користувач може створити за один день."
+ max_personal_messages_per_day: "Максимальна кількість нових особистих повідомлень, які користувач може створювати за день."
max_invites_per_day: "Максимальна кількість запрошень, яке може відправити користувач за один день."
max_topic_invitations_per_day: "Максимальна кількість запрошень в тему, яке може відправити користувач протягом дня."
max_logins_per_ip_per_hour: "Максимальна кількість входів в систему на IP-адресу за годину"
max_logins_per_ip_per_minute: "Максимальна кількість входів в систему на IP-адресу за годину"
+ max_post_deletions_per_minute: "Максимальна кількість повідомлень, які користувач може видалити за хвилину. Встановіть значення 0, щоб відключити видалення повідомлень."
+ max_post_deletions_per_day: "Максимальна кількість повідомлень, які користувач може видалити за день. Встановіть значення 0, щоб відключити видалення повідомлень."
+ invite_link_max_redemptions_limit: "Максимальна кількість використання активацій із посилань запрошень."
+ invite_link_max_redemptions_limit_users: "Максимальна кількість використання активацій посилань із запрошень, створених користувачами."
alert_admins_if_errors_per_minute: "Кількість помилок на хвилину для попередження адміністратора. Значення 0 відключає цю опцію. УВАГА: потрібне перезавантаження."
alert_admins_if_errors_per_hour: "Кількість помилок на годину для попередження адміністратора. Значення 0 відключає цю опцію. УВАГА: потрібне перезавантаження."
+ categories_topics: "Кількість тем для показу на сторінці /categories. Якщо встановлено значення 0, тоді система автоматично намагатиметься знайти значення, щоб обидва стовпці (категорії та теми) були симетрично однакової довжини."
suggested_topics: "Кількість рекомендованих тем, що відображаються внизу поточної тем."
limit_suggested_to_category: "Показувати тільки теми з поточного розділу в списку рекомендованих тем."
suggested_topics_max_days_old: "Пропоновані теми не повинні бути старше n днів."
@@ -1905,8 +1923,10 @@ uk:
reviewable_default_visibility: "Не показуйте елементи для перегляду, якщо вони не відповідають цьому пріоритету"
high_trust_flaggers_auto_hide_posts: "Нові повідомлення користувачів автоматично приховуватимуться як спам, після позначення їх користувачем з рівнем довіри 3 та вище"
cooldown_hours_until_reflag: "Скільки часу доведеться чекати користувачам, поки вони зможуть повторно додати позначку на повідомлення"
+ slow_mode_prevents_editing: "Забороняти при «Повільному режимі» редагування після закінчення пільгового періоду редагування editing_grace_period?"
reply_by_email_enabled: "Увімкнути відповіді на теми електронною поштою."
reply_by_email_address: "Шаблон адреси електронної скриньки у формі для відповідей через електронну пошту, наприклад: %%{reply_key}@reply.myforum.com"
+ alternative_reply_by_email_addresses: "Список альтернативних шаблонів для відповіді, який застосовується на основі вхідних адрес електронної пошти. Наприклад: %%{reply_key}@reply.example.com|replies+%%{reply_key}@example.com"
incoming_email_prefer_html: "Використовуйте HTML замість тексту для вхідної електронної пошти."
strip_incoming_email_lines: "Видаляти проміжні пробіли та пробіли з кожного рядка вхідних електронних листів."
disable_emails: "Захистити Discourse від надсилання будь-яких електронних листів. Виберіть 'так', щоб вимкнути електронні листи для всіх користувачів. Виберіть 'не персонал', щоб вимкнути електронні листи лише для користувачів, які не є персоналом."
@@ -1923,10 +1943,13 @@ uk:
auto_generated_allowlist: "Список електронних адрес, які не перевірятимуться на автоматично створений вміст. Приклад: foo@bar.com|discourse@bar.com"
block_auto_generated_emails: "Блокувати вхідні електронні листи, ідентифіковані як автоматично створені."
ignore_by_title: "Ігнорувати вхідні електронні листи на основі їх заголовку."
+ mailgun_api_key: "Ключ API Mailgun Secret, який використовується для перевірки повідомлень webhook."
soft_bounce_score: "Кількість відмов додається користувачеві, коли трапляється тимчасова відмова."
hard_bounce_score: "Кількість відмов додається користувачеві, коли відбувається постійна відмова."
bounce_score_threshold: "Максимальна кількість відмов, перш ніж ми перестанемо надсилати електронну пошту користувачеві."
reset_bounce_score_after_days: "Автоматично скинути показник відмов через X днів."
+ blocked_attachment_content_types: "Список ключових слів, які використовуються для блокування вкладень залежно від типу вмісту."
+ blocked_attachment_filenames: "Список ключових слів, які використовуються для блокування вкладень на основі імені файлу."
forwarded_emails_behaviour: "Як ставитись до пересланого електронного листа до Discourse"
always_show_trimmed_content: "Завжди показуйте обрізану частину вхідних електронних листів. ПОПЕРЕДЖЕННЯ: можуть бути показані Email адреси."
trim_incoming_emails: "Обрізати частину вхідних листів, якщо вони не актуальні."
@@ -1961,10 +1984,12 @@ uk:
imap_batch_import_email: "Мінімальна кількість нових листів, які запускають режим імпорту (вимикає поштові сповіщення)."
email_prefix: "[Label], який використовується в темі електронних листів. За замовчуванням встановлено значення 'title', якщо воно явно не встановлено."
email_site_title: "Назва сайту використовується як відправник електронних листів з сайту. Типове значення «title», якщо не встановлено. Якщо заголовок містить символи, які заборонено в рядках відправника електронної пошти, то буде використано цей параметр."
+ find_related_post_with_key: "Використовувати лише «ключ відповіді», щоб знайти відповідь на публікацію. УВАГА: відключення цього параметра дозволяє видавати себе за іншого користувача на основі адреси електронної пошти."
minimum_topics_similar: "Скільки тем має існувати, перш ніж подібні теми будуть показані під час створення нових тем."
relative_date_duration: "Кількість днів після публікації, коли дати публікації будуть відображені як відносні (7d), а не абсолютні (20 лютого)."
delete_user_max_post_age: "Не дозволяти видаляти користувачів, чия перша публікація старша (x) днів."
delete_all_posts_max: "Максимальне число дописів, які можна видалити за один раз кнопкою \"Видалити всі дописи\". Якщо користувач має більше дописів, ніж це число, їх не можна буде видалити за один раз, і користувача також."
+ delete_user_self_max_post_count: "Максимальна кількість повідомлень, які користувач може мати, при видаленні власного облікового запису. Встановіть значення -1, щоб вимкнути можливість видалення власного облікового запису."
username_change_period: "Максимальна кількість днів після реєстрації, щоб облікові записи могли змінити своє ім'я користувача (0, щоб заборонити зміну імені користувача)."
email_editable: "Дозволити користувачам змінювати свою електронну скриньку після реєстрації."
logout_redirect: "URL для переадресації браузера після виходу (наприклад: https://example.com/logout)"
@@ -1988,10 +2013,13 @@ uk:
staff_user_custom_fields: "Список користувальницьких полів, які можна отримати для співробітників з API."
enable_user_directory: "Надайте розділ користувачів для перегляду"
enable_group_directory: "Надайте розділ груп для перегляду"
+ enable_category_group_moderation: "Дозволити групам модерувати вміст у певних категоріях"
+ group_in_subject: "Встановити змінну %%{optional_pm} в темі електронної пошти з ім'ям першої групи в профілі, докладніше: Налаштування формату теми для стандартних електронних листів"
allow_anonymous_posting: "Дозволити користувачам переходити в анонімний режим"
anonymous_posting_min_trust_level: "Мінімальний рівень довіри, необхідний для дозволу анонімних публікацій"
anonymous_account_duration_minutes: "Для захисту анонімності створити новий анонімний обліковий запис кожні N хвилин для кожного користувача. Наприклад: якщо встановлено 600, як тільки минуло 600 хвилин з останнього повідомлення – користувач перейде на новий анонімний запис."
hide_user_profiles_from_public: "Вимкнути картки, профілі та розділ користувачів для анонімних користувачів."
+ allow_users_to_hide_profile: "Дозволити користувачам приховувати свій профіль та присутність на форумі"
allow_featured_topic_on_user_profiles: "Дозволити користувачам розміщувати посилання на тему на своїй картці та профілі користувача."
show_inactive_accounts: "Дозволити авторизованим користувачам, переглядати профілі неактивних облікових записів."
hide_suspension_reasons: "Не показуйте причини призупинення публічно в профілях користувачів."
@@ -1999,7 +2027,9 @@ uk:
ignored_users_count_message_threshold: "Повідомте модераторів, якщо певний користувач ігнорується більше ніж N користувачами."
ignored_users_message_gap_days: "Як довго чекати, перш ніж повторно повідомити модераторів про користувача, якого ігнорувало багато інших."
clean_up_inactive_users_after_days: "Кількість днів до видалення неактивного користувача (рівень довіри 0 без жодних публікацій). Щоб вимкнути очищення, встановіть значення 0."
+ clean_up_unused_staged_users_after_days: "Кількість днів до видалення невикористаного інсценованого користувача (без будь-яких повідомлень). Для відключення очищення встановіть значення 0."
user_selected_primary_groups: "Дозволити користувачам створювати власну групу"
+ max_notifications_per_user: "Максимальна кількість сповіщень на користувача, якщо це число буде перевищено, старі сповіщення будуть видалені щотижня. Встановіть 0, щоб вимкнути"
allowed_user_website_domains: "Веб-сайт користувача треба підтверджувати для цих доменів. Список з розмежуванням."
allow_profile_backgrounds: "Дозволити користувачам завантажувати фони профілю."
sequential_replies_threshold: "Кількість публікацій, які користувач повинен робити підряд по темі, перш ніж нагадувати про занадто багато послідовних відповідей."
@@ -2170,6 +2200,7 @@ uk:
placeholder:
discourse_connect_provider_secrets:
key: "www.example.com"
+ value: "Ключ DiscourseConnect"
search:
extreme_load_error: "Сайт перебуває під надзвичайним навантаженням, пошук вимкнено, повторіть спробу пізніше"
within_post: "# %{post_number} від %{username}"
@@ -2178,6 +2209,8 @@ uk:
topic: "Результати"
user: "Користувачі"
results_page: "Результати пошуку для '%{term}'"
+ audio: "[audio]"
+ video: "[video]"
discourse_connect:
login_error: "Помилка входу"
not_found: "Ваш обліковий запис не вдалося знайти. Зверніться до адміністратора сайту."
@@ -2185,10 +2218,12 @@ uk:
unknown_error: "Виникла проблема з вашим обліковим записом. Зверніться до адміністратора сайту."
timeout_expired: "Час входу в обліковий запис вийшов. Спробуйте знову увійти."
no_email: "Не вказано електронну адресу e-mail. Зверніться до адміністратора сайту."
+ blank_id_error: "Параметр \"external_id\" є обов'язковим, але поки не встановлений"
email_error: "Не вдалося зареєструвати обліковий запис з електронною поштою %{email}. Зверніться до адміністратора сайту."
original_poster: "Перший дописувач"
most_recent_poster: "Автор останнього допису"
frequent_poster: "Частий дописувач"
+ poster_description_joiner: ", "
redirected_to_top_reasons:
new_user: "Ласкаво просимо до нашої спільноти! Це найпопулярніші останні теми."
not_seen_in_a_month: "З поверненням! Ми вас давно не бачили. Це найпопулярніші теми, відколи ви не відвідували форум."
@@ -2201,6 +2236,7 @@ uk:
errors:
different_topics: "Повідомлення, що належать до різних тем, неможливо об’єднати."
different_users: "Повідомлення, що належать різним користувачам, неможливо об’єднати."
+ max_post_length: "Публікації не можна об’єднати, оскільки сумарна довжина публікації перевищує дозволену."
move_posts:
new_topic_moderator_post:
one: "Допис був розділений на нову тему: %{topic_link}"
@@ -2227,6 +2263,7 @@ uk:
publish_page:
slug_errors:
blank: "не може бути порожнім"
+ unavailable: "недоступний"
invalid: "містить неприпустимі символи"
topic_statuses:
autoclosed_message_max_posts:
@@ -2319,8 +2356,10 @@ uk:
not_activated: "Ви ще не можете увійти. Ми надіслали Вам активаційного листа. Будь ласка, дотримуйтеся інструкцій у листі, щоб активувати свій обліковий запис."
not_allowed_from_ip_address: "Ви не можете увійти як %{username} з цієї IP-адреси."
admin_not_allowed_from_ip_address: "Ви не можете увійти як адміністратор з цієї IP-адреси."
+ reset_not_allowed_from_ip_address: "Ви не можете надіслати запит на скидання пароля з цієї IP-адреси."
suspended: "Ви не можете входити до %{date}."
suspended_with_reason: "Обліковий запис призупинено до %{date}: %{reason}"
+ suspended_with_reason_forever: "Обліковий запис призупинено: %{reason}"
errors: "%{errors}"
not_available: "Not available. Try %{suggestion}?"
something_already_taken: "Щось пішло не так, можливо, ім'я користувача або електронна скринька вже зареєстровані. Спробуйте посилання \"Я забув пароль\"."
@@ -2329,12 +2368,14 @@ uk:
csrf_detected: "Час авторизації закінчено, або ви переключили браузери. Будь ласка спробуйте ще раз."
request_error: "Під час запуску авторизації сталася помилка. Будь ласка спробуйте ще раз."
invalid_iat: "Неможливо перевірити маркер авторизації через відмінності в часі сервера. Будь ласка спробуйте ще раз."
+ omniauth_error_unknown: "Сталася помилка під час обробки вашого входу. Спробуйте ще раз."
omniauth_confirm_title: "Увійдіть, використовуючи %{provider}"
omniauth_confirm_button: "Продовжити"
authenticator_error_no_valid_email: "Не допускаються жодні адреси електронної пошти, пов'язані з %{account}. Можливо, вам доведеться налаштувати свій обліковий запис за допомогою іншої адреси електронної пошти."
new_registrations_disabled: "Наразі реєстрація нових облікових записів заборонена."
password_too_long: "Паролі обмежені 200 символами."
email_too_long: "Ви вказали електронну пошту Email занадто довгу. Адреса поштової скриньки повинна містити не більше 254 символів, а доменні імена не більше 253 символів."
+ wrong_invite_code: "Введений вами код запрошення був неправильним."
reserved_username: "Це ім’я користувача заборонено."
missing_user_field: "Ви не заповнили всі поля користувача"
auth_complete: "Автентифікація завершена."
@@ -2342,6 +2383,7 @@ uk:
second_factor_title: "Двофакторна автентифікація"
second_factor_description: "Введіть необхідний код автентифікації у своєму додатку:"
second_factor_backup_description: "Введіть один із резервних кодів:"
+ second_factor_backup_title: "Двофакторний резервний код"
invalid_second_factor_code: "Недійсний код аутентифікації Кожен код може бути використаний лише один раз."
invalid_security_key: "Недійсний ключ безпеки."
missing_second_factor_name: "Будь ласка, вкажіть ім’я."
@@ -2352,6 +2394,18 @@ uk:
admin:
email:
sent_test: "надіслано!"
+ user:
+ merge_user:
+ updating_username: "Оновлення імені користувача..."
+ changing_post_ownership: "Зміна власника публікації..."
+ merging_given_daily_likes: "Об’єднання отриманих щоденних симпатій..."
+ merging_post_timings: "Об’єднання часу створення публікацій..."
+ merging_user_visits: "Об’єднання статистики відвідувань користувачів..."
+ updating_site_settings: "Оновлення налаштувань сайту..."
+ updating_user_stats: "Оновлення статистики користувача..."
+ merging_user_attributes: "Об'єднання атрибутів користувача..."
+ updating_user_ids: "Оновлення ідентифікаторів користувачів..."
+ deleting_source_user: "Видалення вихідного користувача..."
user:
deactivated: "Відключено через багато електронних листів, відхилених на '%{email}'."
deactivated_by_staff: "Деактивовано персоналом"
@@ -2362,6 +2416,7 @@ uk:
other: "Автоматично деактивується через %{count} днів бездіяльності"
activated_by_staff: "Активований персоналом"
new_user_typed_too_fast: "Новий користувач набирає текст занадто швидко"
+ content_matches_auto_silence_regex: "Вміст відповідає автоматичному блокуванню за regex (регулярним виразом)"
content_matches_auto_block_regex: "Вміст відповідає автоматичному блоку regex (регулярний вираз)"
username:
short: "має бути найменше %{min} символів"
@@ -2379,6 +2434,7 @@ uk:
not_allowed: "is not allowed from that email provider. Please use another email address."
blocked: "не допускається."
revoked: "Не надсилатимуть електронні листи на '%{email}' до %{date}."
+ does_not_exist: "Н/Д"
ip_address:
blocked: "Нові реєстрації заборонені з вашої IP-адреси."
max_new_accounts_per_registration_ip: "Не дозволяються нові реєстрації з вашої IP-адреси (досягнуто максимального обмеження). Зверніться до співробітника."
@@ -2391,15 +2447,21 @@ uk:
same_ip_address: "Ідентична IP-адреса (%{ip_address}), як в інших користувачів"
inactive_user: "Неактивний користувач"
reviewable_reject_auto: "Автоматична обробка черги перегляду"
+ reviewable_reject: "Користувача після перегляду відхилено"
email_in_spam_header: "Перше повідомлення користувача було позначено як спам"
+ already_silenced: "Користувач вже був заблокований співробітником %{staff} %{time_ago}."
+ already_suspended: "Користувач уже був призупинений %{staff} %{time_ago}."
unsubscribe_mailer:
title: "Відписатися від розсилки"
subject_template: "Підтвердіть, що більше не хочете отримувати оновлення електронною поштою від %{site_title}"
invite_mailer:
+ title: "Запросити Mailer"
subject_template: "%{inviter_name} запросив вас приєднаися до '%{topic_title}' на %{site_domain_name}"
custom_invite_mailer:
+ title: "Спеціальне запрошення на форум"
subject_template: "%{inviter_name} запросив вас приєднаися до '%{topic_title}' на %{site_domain_name}"
invite_forum_mailer:
+ title: "Спеціальне запрошення на форум"
subject_template: "%{inviter_name} запрошує вас приднатися до %{site_domain_name}"
custom_invite_forum_mailer:
title: "Спеціальне запрошення на форум"
@@ -2453,12 +2515,16 @@ uk:
subject_template: "Повідомлення приховано через скарги спільноти, персонал повідомлено"
queued_by_staff:
title: "Допис потребує схвалення"
+ subject_template: "Повідомлення приховане персоналом, очікує схвалення"
flags_disagreed:
title: "Позначене повідомлення відновлено персоналом"
subject_template: "Позначене повідомлення відновлено персоналом"
flags_agreed_and_post_deleted:
title: "Позначене повідомлення видалено персоналом"
subject_template: "Позначене повідомлення видалено персоналом"
+ flags_agreed_and_post_deleted_for_responders:
+ title: "Відповідь вилучено з позначеного повідомлення персоналом"
+ subject_template: "Відповідь вилучено з позначеного повідомлення персоналом"
welcome_user:
title: "Ласкаво просимо, користувач"
subject_template: "Ласкаво просимо до сайта %{site_name}!"
@@ -2467,6 +2533,7 @@ uk:
subject_template: "Дякуємо, що провели з нами час"
welcome_staff:
title: "Ласкаво просимо, персонал"
+ subject_template: "Вітаємо, ви отримали статус %{role}!"
welcome_invite:
title: "Ласкаво просимо"
subject_template: "Ласкаво просимо до сайта %{site_name}!"
@@ -2479,12 +2546,30 @@ uk:
backup_failed:
title: "Помилка резервного копіювання"
subject_template: "Резервне копіювання не вдалося"
+ text_body_template: |
+ Не вдалося створити резервну копію.
+
+ Ось журнал:
+
+ %{logs}
restore_succeeded:
title: "Відновлення успішне"
subject_template: "Відновлення даних успішно завершено"
+ text_body_template: |
+ Відновлення пройшло успішно.
+
+ Ось журнал:
+
+ %{logs}
restore_failed:
title: "Помилка відновлення"
subject_template: "Відновлення даних не вдалося"
+ text_body_template: |
+ Помилка відновлення.
+
+ Ось журнал:
+
+ %{logs}
bulk_invite_succeeded:
title: "Запрошення вдалося успішно"
subject_template: "Масове запрошення користувачів оброблено успішно"
@@ -2505,6 +2590,8 @@ uk:
csv_export_failed:
title: "Не вдалося експортувати CSV"
subject_template: "Експорт даних не здійснено"
+ email_reject_user_not_found:
+ title: "Електронний лист у випадку, коли користувача не знайдено"
email_reject_screened_email:
subject_template: "[%{email_prefix}] Проблема з електронною поштою — заблокована електронна пошта"
email_reject_not_allowed_email:
diff --git a/config/locales/server.ur.yml b/config/locales/server.ur.yml
index 5c0859f176..3e7cbac370 100644
--- a/config/locales/server.ur.yml
+++ b/config/locales/server.ur.yml
@@ -256,8 +256,6 @@ ur:
too_many_links:
one: "معذرت، نئے صارفین ایک پوسٹ میں صرف ایک لِنک ڈال سکتے ہیں۔"
other: "معذرت، نئے صارفین ایک پوسٹ میں صرف %{count} لِنکس ڈال سکتے ہیں۔"
- contains_blocked_word: "آپ کی پوسٹ میں ایک ایسا لفظ شامل ہے جس کی اجازت نہیں ہے: %{word}"
- contains_blocked_words: "آپ کی پوسٹ میں متعدد الفاظ شامل ہیں جن کی اجازت نہیں ہے: %{words}"
spamming_host: "معذرت، آپ اس ہَوسٹ کیلئے لِنک پوسٹ نہیں کر سکتے۔"
user_is_suspended: "معطل صارفین کو پوسٹ کرنے کی اجازت نہیں ہے۔"
topic_not_found: "کچھ غلط ہو گیا ہے۔ شاید جس دوران آپ اِسے دیکھ رہے تھے، یہ ٹاپک بند یا حذف کر دیا گیا؟"
@@ -1156,7 +1154,6 @@ ur:
min_personal_message_title_length: "حروف میں ایک پیغام کیلئے عنوان کی کم از کم لمبائی"
max_emojis_in_title: "ٹاپک عنوان میں اِیمَوجیوں کی زیادہ سے زیادہ تعداد"
min_search_term_length: "حروف میں درست سرچ ٹَرم کی کم از کم لمبائی"
- search_tokenize_chinese_japanese_korean: "CJK سائٹس کے علاوہ بھی سرچ کو چینی/ جاپانی/کورین کو ٹوکنائیز کرنے پر مجبور کریں"
search_prefer_recent_posts: "اگر آپ کے بڑے فورم پر سرچ سست ہے، تو یہ آپشن پہلے حالیہ پوسٹس کے ایک اِنڈَیکس پر کوشش کرتا ہے"
search_recent_posts_size: "اِنڈَیکس میں کتنی حالیہ پوسٹس رکھی جائیں"
log_search_queries: "صارفین کی طرف سے سرچ قُوَیریز کو لاگ کریں"
@@ -1194,7 +1191,6 @@ ur:
show_pinned_excerpt_mobile: "موبائل وِیو میں پِن ہوے ٹاپکس پر اقتباس دکھائیں۔"
show_pinned_excerpt_desktop: "ڈیسک ٹاپ وِیو میں پِن ہوے ٹاپکس پر اقتباس دکھائیں۔"
post_onebox_maxlength: "ایک وَن باکسڈ ڈِسکورس پوسٹ کے حروف کی زیادہ سے زیادہ لمبائی۔"
- blocked_onebox_domains: "ڈومینز کی ایک فہرست جو کبھی بھی وَن باکسڈ نہیں کیے جائیں گے۔"
allowed_inline_onebox_domains: "ڈومینز کی ایک فہرست جو چھوٹے فارم میں وَن باکسڈ کیے جائیں گے اگر وہ عنوان کے بغیر لنک کیے جائیں"
max_oneboxes_per_post: "ایک پوسٹ میں وَن باکس کی زیادہ سے زیادہ تعداد۔"
logo: "آپ کی سائٹ کے سب سے اوپر بائیں پر لوگو کی تصویر۔ 120 کی اونچائی اور 3:1 سے زائد اَیسپَیکٹ رَیشو والی وسیع مستطیل تصویر کا استعمال کریں۔ اگر خالی چھوڑ دیا گیا ہو تو سائٹ کا عنوان دکھایا جائے گا۔"
diff --git a/config/locales/server.vi.yml b/config/locales/server.vi.yml
index dfa31979ee..566b91ed13 100644
--- a/config/locales/server.vi.yml
+++ b/config/locales/server.vi.yml
@@ -887,7 +887,6 @@ vi:
max_topic_title_length: "Số kí tự tối đa trong tiêu đề chủ đề."
min_personal_message_title_length: "Chiều dài tối thiểu cho phép theo số kí tự của một thông điệp"
min_search_term_length: "Số kí tự tối thiểu trong từ khóa tìm kiếm."
- search_tokenize_chinese_japanese_korean: "Bắt buộc tìm kiếm tách từ Chinese/Japanese/Korean ngay cả trên các site không phải là CJK"
search_recent_posts_size: "Có bao nhiêu bài đăng gần đây để giữ trong chỉ mục"
log_search_queries: "Ghi nhật ký các truy vấn tìm kiếm do người dùng thực hiện"
search_query_log_max_size: "Số lượng truy vấn tìm kiếm tối đa cần lưu giữ"
@@ -912,7 +911,6 @@ vi:
add_rel_nofollow_to_user_content: 'Thêm rel=''nofollow'' cho tất cả các nội dung mà người dùng gửi, ngoại trừ các liên kết nội bộ (của tên miền chính). Nếu thay đổi, bạn phải thực hiện lại cho tất cả các bài viết với: "rake posts:rebake"'
post_excerpt_maxlength: "Chiều dài tối đa của đoạn trích / tóm tắt chủ đề."
post_onebox_maxlength: "Số ký tự tối đa của một bài onebox Discourse."
- blocked_onebox_domains: "Danh sách các tên miền sẽ không bao giờ được oneboxed."
notification_email: "Địa chỉ email 'Từ:' được dùng để gửi các email thiết yếu của hệ thống. Các tên miền quy định ở đây phải có SPF, DKIM và bản ghi PTR phải được thiết lập chính xác cho email đến."
email_custom_headers: "Danh sách xác định email header tùy chỉnh"
force_https: "Buộc trang web của bạn chỉ sử dụng HTTPS. CẢNH BÁO: KHÔNG kích hoạt tính năng này cho đến khi bạn xác minh HTTPS được thiết lập đầy đủ và hoạt động hoàn toàn ở mọi nơi! Bạn đã kiểm tra CDN của mình, tất cả thông tin đăng nhập xã hội và bất kỳ biểu trưng / phụ thuộc bên ngoài nào để đảm bảo tất cả chúng đều tương thích với HTTPS?"
diff --git a/config/locales/server.zh_CN.yml b/config/locales/server.zh_CN.yml
index 9a3aa3368c..27cd2d4b9e 100644
--- a/config/locales/server.zh_CN.yml
+++ b/config/locales/server.zh_CN.yml
@@ -316,8 +316,6 @@ zh_CN:
links_require_trust: "抱歉,您的帖子中不能包含链接。"
too_many_links:
other: "抱歉,新用户在一个帖子中仅能发布 %{count} 个链接。"
- contains_blocked_word: "您的帖子中包含一个不被允许的字词:%{word}"
- contains_blocked_words: "您的帖子中包含多个不被允许的字词:%{words}"
spamming_host: "抱歉,您不能发布指向该主机的链接。"
user_is_suspended: "被封禁的用户不允许发帖。"
topic_not_found: "出了点问题。或许此话题在您查看时已被关闭或删除。"
@@ -1344,7 +1342,6 @@ zh_CN:
min_personal_message_title_length: "消息允许的最小标题长度(以字符为单位)"
max_emojis_in_title: "话题标题中允许的最大表情数量"
min_search_term_length: "最小有效搜索词长度(以字符为单位)"
- search_tokenize_chinese_japanese_korean: "即使在非 CJK 站点上也强制搜索将中文/日语/韩语词例化"
search_prefer_recent_posts: "如果搜索大型论坛的速度很慢,此选项会首先尝试索引最近的帖子"
search_recent_posts_size: "在索引中保留多少个最近的帖子"
log_search_queries: "记录用户执行的搜索查询"
@@ -1388,7 +1385,6 @@ zh_CN:
show_pinned_excerpt_mobile: "在移动视图中显示置顶话题的摘录。"
show_pinned_excerpt_desktop: "在桌面视图中显示置顶话题的摘录。"
post_onebox_maxlength: "Onebox Discourse 帖子的最大长度(以字符为单位)。"
- blocked_onebox_domains: "永远不会进行 Onebox 处理的网域列表。"
allowed_inline_onebox_domains: "如果在没有标题的情况下链接,将以微型形式进行 Onebox 处理的网域列表"
enable_inline_onebox_on_all_domains: "忽略 inline_onebox_domain_allowlist 站点设置并在所有网域上允许内联 Onebox。"
force_custom_user_agent_hosts: "对所有请求使用自定义 Onebox 用户代理的主机。(对于限制用户代理访问的主机特别有用)。"
diff --git a/config/locales/server.zh_TW.yml b/config/locales/server.zh_TW.yml
index f7280cc5f3..bc01e5068d 100644
--- a/config/locales/server.zh_TW.yml
+++ b/config/locales/server.zh_TW.yml
@@ -233,7 +233,6 @@ zh_TW:
links_require_trust: "抱歉,您不能在貼文中插入連結"
too_many_links:
other: "抱歉,新使用者只能在貼文中放置 %{count} 個連結。"
- contains_blocked_word: "您的貼文包含被禁用的文字:%{word}"
spamming_host: "抱歉,你不能張貼該網站之連結。"
user_is_suspended: "被停權的使用者無法張貼貼文。"
topic_not_found: "出現問題。也許這個話題被關閉或刪除。"
@@ -1091,7 +1090,6 @@ zh_TW:
min_personal_message_title_length: "訊息標題的字元數下限"
max_emojis_in_title: "話題標題可含有的表情符號上限"
min_search_term_length: "搜尋條件允許的最小文字數"
- search_tokenize_chinese_japanese_korean: "在非中/日/韓語站點強制切割中/日/韓語搜索分詞"
search_prefer_recent_posts: "如果搜索大型論壇較慢,這個選項將優先嘗試最新的貼文"
search_recent_posts_size: "索引多少最新的主題"
log_search_queries: "登入使用者進行搜尋查詢"
@@ -1128,7 +1126,6 @@ zh_TW:
show_pinned_excerpt_mobile: "在行動版置頂主題顯示摘要。"
show_pinned_excerpt_desktop: "在桌面版置頂主題顯示摘要。"
post_onebox_maxlength: "展開連結預覽後的 Discourse 貼文最大字數限制。"
- blocked_onebox_domains: "不會展開成連結預覽的網域列表。"
allowed_inline_onebox_domains: "如果連結未包含 title,會被展開成連結預覽的網域白名單。"
max_oneboxes_per_post: "貼文中允許的連結預覽數量上限。"
logo: "網站左上角的Logo圖片,圖片高為120、寬高比大於3:1的寬矩形比例。 如果沒有設定 Logo,將顯示網站標題。"
diff --git a/config/routes.rb b/config/routes.rb
index 32e5a05c1d..641a905765 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -809,6 +809,7 @@ Discourse::Application.routes.draw do
# Topic routes
get "t/id_for/:slug" => "topics#id_for_slug"
+ get "t/external_id/:external_id" => "topics#show_by_external_id", format: :json, constrains: { external_id: /\A[\w-]+\z/ }
get "t/:slug/:topic_id/print" => "topics#show", format: :html, print: true, constraints: { topic_id: /\d+/ }
get "t/:slug/:topic_id/wordpress" => "topics#wordpress", constraints: { topic_id: /\d+/ }
get "t/:topic_id/wordpress" => "topics#wordpress", constraints: { topic_id: /\d+/ }
diff --git a/config/site_settings.yml b/config/site_settings.yml
index 560ad131b8..62aa97487b 100644
--- a/config/site_settings.yml
+++ b/config/site_settings.yml
@@ -584,7 +584,7 @@ users:
client: true
default: true
invite_expiry_days:
- default: 30
+ default: 90
client: true
max: 36500
invites_per_page:
@@ -686,7 +686,6 @@ users:
default: 2000
hidden: true
use_email_for_username_and_name_suggestions:
- hidden: true
default: false
groups:
@@ -1701,7 +1700,7 @@ onebox:
zh_TW: 200
blocked_onebox_domains:
default: ""
- type: list
+ type: host_list
list_type: compact
max_oneboxes_per_post:
default: 50
@@ -2035,7 +2034,12 @@ search:
zh_TW: 1
ko: 1
ja: 1
- search_tokenize_chinese_japanese_korean: false
+ search_tokenize_chinese:
+ default: false
+ validator: "SearchTokenizeChineseValidator"
+ search_tokenize_japanese:
+ default: false
+ validator: "SearchTokenizeJapaneseValidator"
search_prefer_recent_posts: false
search_recent_posts_size:
default: 1000000
@@ -2348,6 +2352,10 @@ uncategorized:
default: false
hidden: true
+ allow_bulk_invite:
+ default: true
+ client: true
+
max_bulk_invites:
default: 50000
hidden: true
@@ -2580,3 +2588,6 @@ dashboard:
- flags
- user_to_user_private_messages_with_replies
- signups
+ verbose_user_stat_count_logging:
+ hidden: true
+ default: false
diff --git a/db/migrate/20220118065658_add_constraints_to_user_stat.rb b/db/migrate/20220118065658_add_constraints_to_user_stat.rb
new file mode 100644
index 0000000000..a167608cef
--- /dev/null
+++ b/db/migrate/20220118065658_add_constraints_to_user_stat.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class AddConstraintsToUserStat < ActiveRecord::Migration[6.1]
+ def up
+ execute(<<~SQL)
+ UPDATE user_stats
+ SET post_count = 0
+ WHERE post_count < 0
+ SQL
+
+ execute(<<~SQL)
+ UPDATE user_stats
+ SET topic_count = 0
+ WHERE topic_count < 0
+ SQL
+
+ execute "ALTER TABLE user_stats ADD CONSTRAINT topic_count_positive CHECK (topic_count >= 0)"
+ execute "ALTER TABLE user_stats ADD CONSTRAINT post_count_positive CHECK (post_count >= 0)"
+ end
+
+ def down
+ execute "ALTER TABLE user_stats DROP CONSTRAINT topic_count_positive"
+ execute "ALTER TABLE user_stats DROP CONSTRAINT post_count_positive"
+ end
+end
diff --git a/db/migrate/20220124003259_add_email_from_alias_to_groups.rb b/db/migrate/20220124003259_add_email_from_alias_to_groups.rb
new file mode 100644
index 0000000000..260dd01bde
--- /dev/null
+++ b/db/migrate/20220124003259_add_email_from_alias_to_groups.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddEmailFromAliasToGroups < ActiveRecord::Migration[6.1]
+ def change
+ add_column :groups, :email_from_alias, :string, null: true
+ end
+end
diff --git a/db/migrate/20220125052845_fix_topic_like_count_including_whispers.rb b/db/migrate/20220125052845_fix_topic_like_count_including_whispers.rb
new file mode 100644
index 0000000000..d296e84628
--- /dev/null
+++ b/db/migrate/20220125052845_fix_topic_like_count_including_whispers.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+class FixTopicLikeCountIncludingWhispers < ActiveRecord::Migration[6.0]
+ def up
+ whisper_post_type = 4
+
+ DB.exec(<<~SQL)
+ UPDATE topics SET like_count = tbl.like_count
+ FROM (
+ SELECT topic_id, SUM(like_count) like_count
+ FROM posts
+ WHERE deleted_at IS NULL
+ AND post_type <> #{whisper_post_type}
+ GROUP BY topic_id
+ ) AS tbl
+ WHERE topics.id = tbl.topic_id
+ AND topics.like_count <> tbl.like_count
+ SQL
+ end
+
+ def down
+ raise ActiveRecord::IrreversibleMigration
+ end
+end
diff --git a/db/migrate/20220126052157_change_segment_cjk_site_setting.rb b/db/migrate/20220126052157_change_segment_cjk_site_setting.rb
new file mode 100644
index 0000000000..4552c87b8b
--- /dev/null
+++ b/db/migrate/20220126052157_change_segment_cjk_site_setting.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class ChangeSegmentCjkSiteSetting < ActiveRecord::Migration[6.1]
+ def up
+ execute <<~SQL
+ UPDATE site_settings
+ SET name = 'search_tokenize_chinese'
+ WHERE name = 'search_tokenize_chinese_japanese_korean'
+ SQL
+
+ execute <<~SQL
+ DELETE FROM site_settings
+ WHERE name = 'search_tokenize_chinese_japanese_korean'
+ SQL
+ end
+
+ def down
+ raise ActiveRecord::IrreversibleMigration
+ end
+end
diff --git a/db/migrate/20220130192155_set_use_email_for_username_and_name_suggestions_on_existing_sites.rb b/db/migrate/20220130192155_set_use_email_for_username_and_name_suggestions_on_existing_sites.rb
new file mode 100644
index 0000000000..22b19c60db
--- /dev/null
+++ b/db/migrate/20220130192155_set_use_email_for_username_and_name_suggestions_on_existing_sites.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class SetUseEmailForUsernameAndNameSuggestionsOnExistingSites < ActiveRecord::Migration[6.1]
+ def up
+ result = execute <<~SQL
+ SELECT created_at
+ FROM schema_migration_details
+ ORDER BY created_at
+ LIMIT 1
+ SQL
+
+ # make setting enabled for existing sites
+ if result.first['created_at'].to_datetime < 1.hour.ago
+ execute <<~SQL
+ INSERT INTO site_settings(name, data_type, value, created_at, updated_at)
+ VALUES('use_email_for_username_and_name_suggestions', 5, 't', NOW(), NOW())
+ ON CONFLICT (name) DO NOTHING
+ SQL
+ end
+ end
+
+ def down
+ raise ActiveRecord::IrreversibleMigration
+ end
+end
diff --git a/db/migrate/20220202225716_add_external_id_to_topics.rb b/db/migrate/20220202225716_add_external_id_to_topics.rb
new file mode 100644
index 0000000000..6ee7c3edb5
--- /dev/null
+++ b/db/migrate/20220202225716_add_external_id_to_topics.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+class AddExternalIdToTopics < ActiveRecord::Migration[6.1]
+ def change
+ add_column :topics, :external_id, :string, null: true
+ add_index :topics, :external_id, unique: true, where: 'external_id IS NOT NULL'
+ end
+end
diff --git a/docs/DEVELOPER-ADVANCED.md b/docs/DEVELOPER-ADVANCED.md
index a4dac6c68b..db713d2a0a 100644
--- a/docs/DEVELOPER-ADVANCED.md
+++ b/docs/DEVELOPER-ADVANCED.md
@@ -28,8 +28,8 @@ To get your Ubuntu 16.04 or 18.04 LTS install up and running to develop Discours
# exit the terminal and open it again to activate RVM
- rvm install 2.6.2
- rvm --default use 2.6.2 # If this error out check https://rvm.io/integration/gnome-terminal
+ rvm install 2.7.2
+ rvm --default use 2.7.2 # If this error out check https://rvm.io/integration/gnome-terminal
gem install bundler rake
# Download and install postgresql-10 from https://wiki.postgresql.org/wiki/Apt
diff --git a/install-imagemagick b/install-imagemagick
deleted file mode 100755
index 7122613547..0000000000
--- a/install-imagemagick
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/bash
-set -e
-
-# version check: https://github.com/ImageMagick/ImageMagick/releases
-IMAGE_MAGICK_VERSION="7.0.11-13"
-IMAGE_MAGICK_HASH="fc454be622724c6224fa6c8230bb9c50191a05fbf05b9c9c25aa3e5497090b83"
-
-# version check: https://github.com/strukturag/libheif/releases
-LIBHEIF_VERSION="1.12.0"
-LIBHEIF_HASH="086145b0d990182a033b0011caadb1b642da84f39ab83aa66d005610650b3c65"
-
-# version check: https://aomedia.googlesource.com/aom
-LIB_AOM_VERSION="3.1.0"
-
-# We use debian, but GitHub CI is stuck on Ubuntu Bionic, so this must be compatible with both
-LIBJPEGTURBO=$(cat /etc/issue | grep -qi Debian && echo 'libjpeg62-turbo libjpeg62-turbo-dev' || echo 'libjpeg-turbo8 libjpeg-turbo8-dev')
-
-PREFIX=/usr/local
-WDIR=/tmp/imagemagick
-
-# Install build deps
-apt -y -q remove imagemagick
-apt -y -q install git make gcc pkg-config autoconf curl g++ \
- yasm cmake \
- libde265-0 libde265-dev ${LIBJPEGTURBO} x265 libx265-dev libtool \
- libpng16-16 libpng-dev ${LIBJPEGTURBO} libwebp6 libwebp-dev libgomp1 libwebpmux3 libwebpdemux2 ghostscript libxml2-dev libxml2-utils \
- libbz2-dev gsfonts libtiff-dev libfreetype6-dev libjpeg-dev
-
-mkdir -p $WDIR
-cd $WDIR
-
-# Building libaom
-git clone https://aomedia.googlesource.com/aom
-cd aom && git checkout v${LIB_AOM_VERSION} && cd ..
-mkdir build_aom
-cd build_aom
-cmake ../aom/ -DENABLE_TESTS=0 -DBUILD_SHARED_LIBS=1 && make && make install
-ldconfig /usr/local/lib
-cd ..
-rm -rf aom
-rm -rf build_aom
-
-# Build and install libheif
-cd $WDIR
-wget -O $WDIR/libheif.tar.gz "https://github.com/strukturag/libheif/archive/v$LIBHEIF_VERSION.tar.gz"
-sha256sum $WDIR/libheif.tar.gz
-echo "$LIBHEIF_HASH $WDIR/libheif.tar.gz" | sha256sum -c
-tar -xzvf $WDIR/libheif.tar.gz
-cd libheif-$LIBHEIF_VERSION
-./autogen.sh
-./configure
-make && make install
-
-# Build and install ImageMagick
-wget -O $WDIR/ImageMagick.tar.gz "https://github.com/ImageMagick/ImageMagick/archive/$IMAGE_MAGICK_VERSION.tar.gz"
-sha256sum $WDIR/ImageMagick.tar.gz
-echo "$IMAGE_MAGICK_HASH $WDIR/ImageMagick.tar.gz" | sha256sum -c
-IMDIR=$WDIR/$(tar tzf $WDIR/ImageMagick.tar.gz --wildcards "ImageMagick-*/configure" |cut -d/ -f1)
-tar zxf $WDIR/ImageMagick.tar.gz -C $WDIR
-cd $IMDIR
-PKG_CONF_LIBDIR=$PREFIX/lib LDFLAGS=-L$PREFIX/lib CFLAGS=-I$PREFIX/include ./configure \
- --prefix=$PREFIX \
- --enable-static \
- --enable-bounds-checking \
- --enable-hdri \
- --enable-hugepages \
- --with-threads \
- --with-modules \
- --with-quantum-depth=16 \
- --without-magick-plus-plus \
- --with-bzlib \
- --with-zlib \
- --without-autotrace \
- --with-freetype \
- --with-jpeg \
- --without-lcms \
- --with-lzma \
- --with-png \
- --with-tiff \
- --with-heic \
- --with-webp
-make all && make install
-
-cd $HOME
-rm -rf $WDIR
-ldconfig /usr/local/lib
diff --git a/lib/auth/result.rb b/lib/auth/result.rb
index 1a3efcf303..09298af2d4 100644
--- a/lib/auth/result.rb
+++ b/lib/auth/result.rb
@@ -196,7 +196,9 @@ class Auth::Result
end
def username_suggester_attributes
- [username, name, email]
+ attributes = [username, name]
+ attributes << email if SiteSetting.use_email_for_username_and_name_suggestions
+ attributes
end
def authenticator
diff --git a/lib/cooked_post_processor.rb b/lib/cooked_post_processor.rb
index f0e3537ebf..ffeffe788e 100644
--- a/lib/cooked_post_processor.rb
+++ b/lib/cooked_post_processor.rb
@@ -415,7 +415,10 @@ class CookedPostProcessor
%w{src data-small-upload}.each do |selector|
@doc.css("img[#{selector}]").each do |img|
- img[selector] = UrlHelper.cook_url(img[selector].to_s, secure: @post.with_secure_media?)
+ custom_emoji = img["class"]&.include?("emoji-custom") && Emoji.custom?(img["title"])
+ img[selector] = UrlHelper.cook_url(
+ img[selector].to_s, secure: @post.with_secure_media? && !custom_emoji
+ )
end
end
end
diff --git a/lib/demon/sidekiq.rb b/lib/demon/sidekiq.rb
index a66fed3aef..ed7556d299 100644
--- a/lib/demon/sidekiq.rb
+++ b/lib/demon/sidekiq.rb
@@ -27,11 +27,6 @@ class Demon::Sidekiq < ::Demon::Base
puts "Loading Sidekiq in process id #{Process.pid}"
require 'sidekiq/cli'
- # CLI will close the logger, if we have one set we can be in big
- # trouble, if STDOUT is closed in our process all sort of weird
- # will ensue, resetting the logger ensures it will reinit correctly
- # parent process is in charge of the file anyway.
- Sidekiq.logger = nil
cli = Sidekiq::CLI.instance
# Unicorn uses USR1 to indicate that log files have been rotated
diff --git a/lib/discourse.rb b/lib/discourse.rb
index c93b1dc42f..f65add734b 100644
--- a/lib/discourse.rb
+++ b/lib/discourse.rb
@@ -835,7 +835,7 @@ module Discourse
# logster
Rails.logger.add_with_opts(
::Logger::Severity::WARN,
- "#{message} : #{e}",
+ "#{message} : #{e.class.name} : #{e}",
"discourse-exception",
backtrace: e.backtrace.join("\n"),
env: env
diff --git a/lib/discourse_redis.rb b/lib/discourse_redis.rb
index 869ac8ace4..b1576a573c 100644
--- a/lib/discourse_redis.rb
+++ b/lib/discourse_redis.rb
@@ -76,10 +76,11 @@ class DiscourseRedis
DiscourseRedis.ignore_readonly { @redis.mget(*args) }
end
- def del(k)
+ def del(*keys)
DiscourseRedis.ignore_readonly do
- k = "#{namespace}:#{k}" if @namespace
- @redis.del k
+ keys = keys.flatten(1)
+ keys.map! { |k| "#{namespace}:#{k}" } if @namespace
+ @redis.del(*keys)
end
end
diff --git a/lib/email/message_id_service.rb b/lib/email/message_id_service.rb
index 4143d00d8d..72d67912dd 100644
--- a/lib/email/message_id_service.rb
+++ b/lib/email/message_id_service.rb
@@ -39,8 +39,15 @@ module Email
def generate_for_topic(topic, use_incoming_email_if_present: false, canonical: false)
first_post = topic.ordered_posts.first
+ incoming_email = first_post.incoming_email
- if use_incoming_email_if_present && first_post.incoming_email&.message_id.present?
+ # If the incoming email was created by handle_mail, then it was an
+ # inbound email sent to Discourse and handled by Email::Receiver,
+ # this is the only case where we want to use the original Message-ID
+ # because we want to maintain threading in the original mail client.
+ if use_incoming_email_if_present &&
+ incoming_email&.message_id.present? &&
+ incoming_email&.created_via == IncomingEmail.created_via_types[:handle_mail]
return "<#{first_post.incoming_email.message_id}>"
end
diff --git a/lib/email_updater.rb b/lib/email_updater.rb
index f5e41fc812..c3e3ea8abf 100644
--- a/lib/email_updater.rb
+++ b/lib/email_updater.rb
@@ -24,7 +24,7 @@ class EmailUpdater
if existing_user = User.find_by_email(email)
if SiteSetting.hide_email_address_taken
- Jobs.enqueue(:critical_user_email, type: :account_exists, user_id: existing_user.id)
+ Jobs.enqueue(:critical_user_email, type: "account_exists", user_id: existing_user.id)
else
error_message = +'change_email.error'
error_message << '_staged' if existing_user.staged?
@@ -68,10 +68,10 @@ class EmailUpdater
if @change_req.change_state == EmailChangeRequest.states[:authorizing_old]
@change_req.old_email_token = @user.email_tokens.create!(email: @user.email, scope: EmailToken.scopes[:email_update])
- send_email(add ? :confirm_old_email_add : :confirm_old_email, @change_req.old_email_token)
+ send_email(add ? "confirm_old_email_add" : "confirm_old_email", @change_req.old_email_token)
elsif @change_req.change_state == EmailChangeRequest.states[:authorizing_new]
@change_req.new_email_token = @user.email_tokens.create!(email: email, scope: EmailToken.scopes[:email_update])
- send_email(:confirm_new_email, @change_req.new_email_token)
+ send_email("confirm_new_email", @change_req.new_email_token)
end
@change_req.save!
@@ -102,7 +102,7 @@ class EmailUpdater
change_state: EmailChangeRequest.states[:authorizing_new],
new_email_token: @user.email_tokens.create!(email: @change_req.new_email, scope: EmailToken.scopes[:email_update])
)
- send_email(:confirm_new_email, @change_req.new_email_token)
+ send_email("confirm_new_email", @change_req.new_email_token)
confirm_result = :authorizing_new
when EmailChangeRequest.states[:authorizing_new]
@change_req.update!(change_state: EmailChangeRequest.states[:complete])
@@ -144,7 +144,7 @@ class EmailUpdater
def send_email_notification(old_email, new_email)
Jobs.enqueue :critical_user_email,
to_address: @user.email,
- type: old_email ? :notify_old_email : :notify_old_email_add,
+ type: old_email ? "notify_old_email" : "notify_old_email_add",
user_id: @user.id,
new_email: new_email
end
diff --git a/lib/final_destination.rb b/lib/final_destination.rb
index ac31c58a69..078fd4fd78 100644
--- a/lib/final_destination.rb
+++ b/lib/final_destination.rb
@@ -46,9 +46,9 @@ class FinalDestination
@opts[:max_redirects] ||= 5
@opts[:lookup_ip] ||= lambda { |host| FinalDestination.lookup_ip(host) }
- @ignored = @opts[:ignore_hostnames] || []
@limit = @opts[:max_redirects]
+ @ignored = []
if @limit > 0
ignore_redirects = [Discourse.base_url_no_prefix]
diff --git a/lib/freedom_patches/cose_rsapkcs1.rb b/lib/freedom_patches/cose_rsapkcs1.rb
new file mode 100644
index 0000000000..d407260dc8
--- /dev/null
+++ b/lib/freedom_patches/cose_rsapkcs1.rb
@@ -0,0 +1,50 @@
+# frozen_string_literal: true
+
+require 'cose'
+require 'openssl/signature_algorithm/rsapkcs1'
+
+# 'cose' gem does not implement all algorithms from the Web Authentication
+# (WebAuthn) standard specification. This patch implements one of the missing
+# ones, RSASSA-PKCS1-v1_5.
+module COSE
+ module Algorithm
+ def self.registered_algorithm_ids
+ @registered_by_id.keys
+ end
+
+ class RSAPKCS1 < SignatureAlgorithm
+ attr_reader :hash_function
+
+ def initialize(*args, hash_function:)
+ super(*args)
+
+ @hash_function = hash_function
+ end
+
+ private
+
+ def valid_key?(key)
+ to_cose_key(key).is_a?(COSE::Key::RSA)
+ end
+
+ def signature_algorithm_class
+ OpenSSL::SignatureAlgorithm::RSAPKCS1
+ end
+
+ def to_pkey(key)
+ case key
+ when COSE::Key::RSA
+ key.to_pkey
+ when OpenSSL::PKey::RSA
+ key
+ else
+ raise(COSE::Error, 'Incompatible key for algorithm')
+ end
+ end
+ end
+
+ register(RSAPKCS1.new(-257, 'RS256', hash_function: 'SHA256'))
+ register(RSAPKCS1.new(-258, 'RS384', hash_function: 'SHA384'))
+ register(RSAPKCS1.new(-259, 'RS512', hash_function: 'SHA512'))
+ end
+end
diff --git a/lib/freedom_patches/schema_cache_concurrency.rb b/lib/freedom_patches/schema_cache_concurrency.rb
deleted file mode 100644
index b805c66526..0000000000
--- a/lib/freedom_patches/schema_cache_concurrency.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-# frozen_string_literal: true
-#
-# Rails has a circular dependency in SchemaCache.
-# In certain situation SchemaCache can carry a @connection
-# from a different thread. This causes potential concurrency bugs
-# in Sidekiq.
-#
-# This patches it so it is less flexible (theoretically) but always bound to the current connection
-
-# This patch needs to be reviewed in future versions of Rails.
-# We should consider upstreaming this optionally.
-
-module ActiveRecord
- module ConnectionAdapters
- class SchemaCache
-
- def connection=(connection)
- # AbstractPool get_schema_cache does schema_cache.connection = connection
- Thread.current["schema_cached_connection"] = connection
- end
-
- def connection
- Thread.current["schema_cached_connection"]
- end
- end
- end
-end
diff --git a/lib/guardian/user_guardian.rb b/lib/guardian/user_guardian.rb
index b0d20bd12b..3ac00d847a 100644
--- a/lib/guardian/user_guardian.rb
+++ b/lib/guardian/user_guardian.rb
@@ -60,6 +60,7 @@ module UserGuardian
def can_delete_user?(user)
return false if user.nil? || user.admin?
+
if is_me?(user)
!SiteSetting.enable_discourse_connect &&
!user.has_more_posts_than?(SiteSetting.delete_user_self_max_post_count)
diff --git a/lib/inline_oneboxer.rb b/lib/inline_oneboxer.rb
index 2e2dcf2c60..2ce9b34a32 100644
--- a/lib/inline_oneboxer.rb
+++ b/lib/inline_oneboxer.rb
@@ -61,7 +61,7 @@ class InlineOneboxer
if uri.present? &&
uri.hostname.present? &&
(always_allow || allowed_domains.include?(uri.hostname)) &&
- !domain_is_blocked?(uri.hostname)
+ !Onebox::DomainChecker.is_blocked?(uri.hostname)
title = RetrieveTitle.crawl(url)
title = nil if title && title.length < MIN_TITLE_LENGTH
return onebox_for(url, title, opts)
@@ -73,12 +73,6 @@ class InlineOneboxer
private
- def self.domain_is_blocked?(hostname)
- SiteSetting.blocked_onebox_domains&.split('|').any? do |blocked|
- hostname == blocked || hostname.end_with?(".#{blocked}")
- end
- end
-
def self.onebox_for(url, title, opts)
title = title && Emoji.gsub_emoji_to_unicode(title)
if title && opts[:post_number]
diff --git a/lib/javascripts/locale/pl.js b/lib/javascripts/locale/pl.js
deleted file mode 100644
index a9020d0a5e..0000000000
--- a/lib/javascripts/locale/pl.js
+++ /dev/null
@@ -1,15 +0,0 @@
-MessageFormat.locale.pl = function (n) {
- if (n == 1) {
- return 'one';
- }
- if ((n % 10) >= 2 && (n % 10) <= 4 &&
- ((n % 100) < 12 || (n % 100) > 14) && n == Math.floor(n)) {
- return 'few';
- }
- if ((n % 10) === 0 || n != 1 && (n % 10) == 1 ||
- ((n % 10) >= 5 && (n % 10) <= 9 || (n % 100) >= 12 && (n % 100) <= 14) &&
- n == Math.floor(n)) {
- return 'many';
- }
- return 'other';
-};
diff --git a/lib/js_locale_helper.rb b/lib/js_locale_helper.rb
index 4ca3cd5864..d5a319b41e 100644
--- a/lib/js_locale_helper.rb
+++ b/lib/js_locale_helper.rb
@@ -289,6 +289,13 @@ module JsLocaleHelper
result = +"MessageFormat = {locale: {}};\n"
result << "I18n._compiledMFs = {#{formats}};\n"
result << File.read(filename) << "\n"
+
+ if locale != "en"
+ # Include "en" pluralization rules for use in fallbacks
+ _, en_filename = find_message_format_locale(["en"], fallback_to_english: false)
+ result << File.read(en_filename) << "\n"
+ end
+
result << File.read("#{Rails.root}/lib/javascripts/messageformat-lookup.js") << "\n"
end
diff --git a/lib/middleware/discourse_public_exceptions.rb b/lib/middleware/discourse_public_exceptions.rb
index fcc2b5ed26..9a9ea11571 100644
--- a/lib/middleware/discourse_public_exceptions.rb
+++ b/lib/middleware/discourse_public_exceptions.rb
@@ -4,6 +4,11 @@
# we need to handle certain exceptions here
module Middleware
class DiscoursePublicExceptions < ::ActionDispatch::PublicExceptions
+ INVALID_REQUEST_ERRORS = Set.new([
+ Rack::QueryParser::InvalidParameterError,
+ ActionController::BadRequest,
+ ActionDispatch::Http::Parameters::ParseError,
+ ])
def initialize(path)
super
@@ -18,12 +23,7 @@ module Middleware
exception = env["action_dispatch.exception"]
response = ActionDispatch::Response.new
- # Special handling for invalid params, in this case we can not re-dispatch
- # the Request object has a "broken" .params which can not be accessed
- exception = nil if Rack::QueryParser::InvalidParameterError === exception
-
- # We also can not dispatch bad requests as no proper params
- exception = nil if ActionController::BadRequest === exception
+ exception = nil if INVALID_REQUEST_ERRORS.include?(exception)
if exception
begin
@@ -38,6 +38,13 @@ module Middleware
return [400, { "Cache-Control" => "private, max-age=0, must-revalidate" }, ["Invalid MIME type"]]
end
+ # Or badly formatted multipart requests
+ begin
+ request.POST
+ rescue EOFError
+ return [400, { "Cache-Control" => "private, max-age=0, must-revalidate" }, ["Invalid request"]]
+ end
+
if ApplicationController.rescue_with_handler(exception, object: fake_controller)
body = response.body
if String === body
@@ -46,6 +53,7 @@ module Middleware
return [response.status, response.headers, body]
end
rescue => e
+ return super if INVALID_REQUEST_ERRORS.include?(e.class)
Discourse.warn_exception(e, message: "Failed to handle exception in exception app middleware")
end
diff --git a/lib/mini_sql_multisite_connection.rb b/lib/mini_sql_multisite_connection.rb
index a4feb1a870..26ad1d5026 100644
--- a/lib/mini_sql_multisite_connection.rb
+++ b/lib/mini_sql_multisite_connection.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class MiniSqlMultisiteConnection < MiniSql::Postgres::Connection
+class MiniSqlMultisiteConnection < MiniSql::ActiveRecordPostgres::Connection
class CustomBuilder < MiniSql::Builder
@@ -78,8 +78,8 @@ class MiniSqlMultisiteConnection < MiniSql::Postgres::Connection
# we need a tiny adapter here so we always run against the
# correct multisite connection
- def raw_connection
- ActiveRecord::Base.connection.raw_connection
+ def active_record_connection
+ ActiveRecord::Base.connection
end
# make for a multisite friendly prepared statement cache
diff --git a/lib/onebox/domain_checker.rb b/lib/onebox/domain_checker.rb
new file mode 100644
index 0000000000..1dd810491e
--- /dev/null
+++ b/lib/onebox/domain_checker.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+module Onebox
+ class DomainChecker
+ def self.is_blocked?(hostname)
+ SiteSetting.blocked_onebox_domains&.split('|').any? do |blocked|
+ hostname == blocked || hostname.end_with?(".#{blocked}")
+ end
+ end
+ end
+end
diff --git a/lib/onebox/engine.rb b/lib/onebox/engine.rb
index 99064c64b3..5d64fa41f6 100644
--- a/lib/onebox/engine.rb
+++ b/lib/onebox/engine.rb
@@ -210,3 +210,4 @@ require_relative "engine/kaltura_onebox"
require_relative "engine/reddit_media_onebox"
require_relative "engine/google_drive_onebox"
require_relative "engine/facebook_media_onebox"
+require_relative "engine/hackernews_onebox"
diff --git a/lib/onebox/engine/hackernews_onebox.rb b/lib/onebox/engine/hackernews_onebox.rb
new file mode 100644
index 0000000000..79d8e037a5
--- /dev/null
+++ b/lib/onebox/engine/hackernews_onebox.rb
@@ -0,0 +1,48 @@
+# frozen_string_literal: true
+
+module Onebox
+ module Engine
+ class HackernewsOnebox
+ include Engine
+ include LayoutSupport
+ include JSON
+
+ REGEX = /^https?:\/\/news\.ycombinator\.com\/item\?id=(?\d+)/
+
+ matches_regexp(REGEX)
+
+ # This is their official API: https://blog.ycombinator.com/hacker-news-api/
+ def url
+ "https://hacker-news.firebaseio.com/v0/item/#{match[:item_id]}.json"
+ end
+
+ private
+
+ def match
+ @match ||= @url.match(REGEX)
+ end
+
+ def data
+ return nil unless %w{story comment}.include?(raw['type'])
+
+ html_entities = HTMLEntities.new
+ data = {
+ link: @url,
+ title: Onebox::Helpers.truncate(raw['title'], 80),
+ favicon: 'https://news.ycombinator.com/y18.gif',
+ timestamp: Time.at(raw['time']).strftime("%-l:%M %p - %-d %b %Y"),
+ author: raw['by']
+ }
+
+ data['description'] = html_entities.decode(Onebox::Helpers.truncate(raw['text'], 400)) if raw['text']
+
+ if raw['type'] == 'story'
+ data['data_1'] = raw['score']
+ data['data_2'] = raw['descendants']
+ end
+
+ data
+ end
+ end
+ end
+end
diff --git a/lib/onebox/engine/wistia_onebox.rb b/lib/onebox/engine/wistia_onebox.rb
index 4abb2ff7fc..c8fe3a2ae3 100644
--- a/lib/onebox/engine/wistia_onebox.rb
+++ b/lib/onebox/engine/wistia_onebox.rb
@@ -11,7 +11,25 @@ module Onebox
always_https
def to_html
- get_oembed.html
+ oembed = get_oembed
+ extracted_url = oembed.html.match(/iframe\ src\=\"(.*?)\"/)
+
+ if extracted_url
+ iframe_src = extracted_url[1]
+
+ <<~HTML
+
+ HTML
+ else
+ oembed.html
+ end
end
def placeholder_html
diff --git a/lib/onebox/templates/hackernews.mustache b/lib/onebox/templates/hackernews.mustache
new file mode 100644
index 0000000000..e4431a2601
--- /dev/null
+++ b/lib/onebox/templates/hackernews.mustache
@@ -0,0 +1,18 @@
+
{{/if}}
{{else}}
diff --git a/plugins/discourse-local-dates/assets/stylesheets/common/discourse-local-dates.scss b/plugins/discourse-local-dates/assets/stylesheets/common/discourse-local-dates.scss
index 9f2543d22c..ee45d9826e 100644
--- a/plugins/discourse-local-dates/assets/stylesheets/common/discourse-local-dates.scss
+++ b/plugins/discourse-local-dates/assets/stylesheets/common/discourse-local-dates.scss
@@ -262,6 +262,7 @@
b {
margin-right: 0.5em;
+ margin-left: 0.5em;
}
b + p {
diff --git a/plugins/discourse-local-dates/config/locales/client.de.yml b/plugins/discourse-local-dates/config/locales/client.de.yml
index 056ade23da..6d8741e350 100644
--- a/plugins/discourse-local-dates/config/locales/client.de.yml
+++ b/plugins/discourse-local-dates/config/locales/client.de.yml
@@ -31,6 +31,7 @@ de:
format_title: Datumsformat
timezone: Zeitzone
until: Bis …
+ current_timezone: "Aktuelle Zeitzone:"
recurring:
every_day: "Jeden Tag"
every_week: "Jede Woche"
diff --git a/plugins/discourse-local-dates/config/locales/client.en.yml b/plugins/discourse-local-dates/config/locales/client.en.yml
index a968b96f87..a18bddd976 100644
--- a/plugins/discourse-local-dates/config/locales/client.en.yml
+++ b/plugins/discourse-local-dates/config/locales/client.en.yml
@@ -25,6 +25,7 @@ en:
format_title: Date format
timezone: Timezone
until: Until...
+ current_timezone: "Current timezone:"
recurring:
every_day: "Every day"
every_week: "Every week"
diff --git a/plugins/discourse-local-dates/config/locales/client.fa_IR.yml b/plugins/discourse-local-dates/config/locales/client.fa_IR.yml
index 58afdba006..ff44b6205b 100644
--- a/plugins/discourse-local-dates/config/locales/client.fa_IR.yml
+++ b/plugins/discourse-local-dates/config/locales/client.fa_IR.yml
@@ -28,6 +28,7 @@ fa_IR:
format_title: فرمت تاریخ
timezone: منطقهی زمانی
until: تا وقتی که...
+ current_timezone: "منطقه زمانی فعلی:"
recurring:
every_day: "هر روز"
every_week: "هر هفته"
diff --git a/plugins/discourse-local-dates/config/locales/client.he.yml b/plugins/discourse-local-dates/config/locales/client.he.yml
index e87699d57a..2d7babd2eb 100644
--- a/plugins/discourse-local-dates/config/locales/client.he.yml
+++ b/plugins/discourse-local-dates/config/locales/client.he.yml
@@ -31,6 +31,7 @@ he:
format_title: מבנה תאריך
timezone: אזור זמן
until: עד…
+ current_timezone: "אזור זמן נוכחי:"
recurring:
every_day: "כל יום"
every_week: "כל שבוע"
diff --git a/plugins/discourse-local-dates/config/locales/client.hu.yml b/plugins/discourse-local-dates/config/locales/client.hu.yml
index 373cfbea76..7e6c9ae9b6 100644
--- a/plugins/discourse-local-dates/config/locales/client.hu.yml
+++ b/plugins/discourse-local-dates/config/locales/client.hu.yml
@@ -31,6 +31,7 @@ hu:
format_title: Dátumformátum
timezone: Időzóna
until: Eddig…
+ current_timezone: "Jelenlegi időzóna:"
recurring:
every_day: "Naponta"
every_week: "Hetente"
diff --git a/plugins/discourse-local-dates/config/locales/client.pl_PL.yml b/plugins/discourse-local-dates/config/locales/client.pl_PL.yml
index 45c4d5d196..0e267b9cd6 100644
--- a/plugins/discourse-local-dates/config/locales/client.pl_PL.yml
+++ b/plugins/discourse-local-dates/config/locales/client.pl_PL.yml
@@ -31,6 +31,7 @@ pl_PL:
format_title: Format daty
timezone: Strefa czasowa
until: Do…
+ current_timezone: "Aktualna strefa czasowa:"
recurring:
every_day: "Codziennie"
every_week: "Co tydzień"
diff --git a/plugins/discourse-local-dates/config/locales/client.ru.yml b/plugins/discourse-local-dates/config/locales/client.ru.yml
index c31d523a26..17beb2886b 100644
--- a/plugins/discourse-local-dates/config/locales/client.ru.yml
+++ b/plugins/discourse-local-dates/config/locales/client.ru.yml
@@ -31,6 +31,7 @@ ru:
format_title: Формат даты
timezone: Часовой пояс
until: По...
+ current_timezone: "Текущий часовой пояс:"
recurring:
every_day: "Каждый день"
every_week: "Каждую неделю"
diff --git a/plugins/discourse-local-dates/config/locales/client.sv.yml b/plugins/discourse-local-dates/config/locales/client.sv.yml
index 12de3f19c7..20f84a771b 100644
--- a/plugins/discourse-local-dates/config/locales/client.sv.yml
+++ b/plugins/discourse-local-dates/config/locales/client.sv.yml
@@ -31,6 +31,7 @@ sv:
format_title: Datumformat
timezone: Tidszon
until: Tills...
+ current_timezone: "Aktuell tidszon:"
recurring:
every_day: "Varje dag"
every_week: "Varje vecka"
diff --git a/plugins/discourse-local-dates/config/locales/client.tr_TR.yml b/plugins/discourse-local-dates/config/locales/client.tr_TR.yml
index a03042cc0f..42800c7511 100644
--- a/plugins/discourse-local-dates/config/locales/client.tr_TR.yml
+++ b/plugins/discourse-local-dates/config/locales/client.tr_TR.yml
@@ -31,6 +31,7 @@ tr_TR:
format_title: Tarih formatı
timezone: Saat dilimi
until: A kadar...
+ current_timezone: "Geçerli saat dilimi:"
recurring:
every_day: "Her gün"
every_week: "Her hafta"
diff --git a/plugins/discourse-narrative-bot/config/locales/client.nb_NO.yml b/plugins/discourse-narrative-bot/config/locales/client.nb_NO.yml
index aa33db00e2..043b4b28b7 100644
--- a/plugins/discourse-narrative-bot/config/locales/client.nb_NO.yml
+++ b/plugins/discourse-narrative-bot/config/locales/client.nb_NO.yml
@@ -8,5 +8,5 @@ nb_NO:
js:
discourse_narrative_bot:
welcome_post_type:
- new_user_track: "Start den nye brukerveiledningen for alle nye brukere"
- welcome_message: "Send alle nye brukere en velkomstmelding med en rask startguide for bruk av forumet."
+ new_user_track: "Start den nye brukerveiledningen for alle nye brukere?"
+ welcome_message: "Send alle nye brukere en velkomstmelding med en rask startguide for bruk av forumet?"
diff --git a/plugins/discourse-narrative-bot/config/locales/server.da.yml b/plugins/discourse-narrative-bot/config/locales/server.da.yml
index 3354a3fa4b..6504bfd8e2 100644
--- a/plugins/discourse-narrative-bot/config/locales/server.da.yml
+++ b/plugins/discourse-narrative-bot/config/locales/server.da.yml
@@ -84,6 +84,15 @@ da:
"10":
quote: "Uanset hvad menneskets sind kan begribe og tro på, kan det opnå."
author: "Napoleon Hill"
+ "11":
+ quote: "Fred derhjemme, fred i verden."
+ author: "Mustafa Kemal Atatürk"
+ "12":
+ quote: "Uddannelse er ikke en måde at slippe ud af fattigdom, det er en måde at bekæmpe den."
+ author: "Julius Nyerere"
+ "13":
+ quote: "En rejse på tusind km. skal begynde med et enkelt trin."
+ author: "Lao Tzu"
results: |-
> :left_speech_bubble: _%{quote}_ — %{author}
magic_8_ball:
diff --git a/plugins/discourse-narrative-bot/config/locales/server.de.yml b/plugins/discourse-narrative-bot/config/locales/server.de.yml
index 22392e160f..ae0a667619 100644
--- a/plugins/discourse-narrative-bot/config/locales/server.de.yml
+++ b/plugins/discourse-narrative-bot/config/locales/server.de.yml
@@ -84,6 +84,15 @@ de:
"10":
quote: "Was der Verstand eines Menschen begreifen und glauben kann, kann er erreichen."
author: "Napoleon Hill"
+ "11":
+ quote: "Frieden zu Hause, Frieden in der Welt."
+ author: "Mustafa Kemal Atatürk"
+ "12":
+ quote: "Bildung ist kein Weg, der Armut zu entkommen, sondern ein Weg, sie zu bekämpfen."
+ author: "Julius Nyerere"
+ "13":
+ quote: "Eine Reise von tausend Meilen muss mit einem einzigen Schritt beginnen."
+ author: "Lao Tzu"
results: |-
> :left_speech_bubble: _%{quote}_ — %{author}
magic_8_ball:
diff --git a/plugins/discourse-narrative-bot/config/locales/server.en.yml b/plugins/discourse-narrative-bot/config/locales/server.en.yml
index 9a5714d97f..cf69370c2a 100644
--- a/plugins/discourse-narrative-bot/config/locales/server.en.yml
+++ b/plugins/discourse-narrative-bot/config/locales/server.en.yml
@@ -84,6 +84,15 @@ en:
"10":
quote: "Whatever the mind of man can conceive and believe, it can achieve."
author: "Napoleon Hill"
+ "11":
+ quote: "Peace at home, peace in the world."
+ author: "Mustafa Kemal Atatürk"
+ "12":
+ quote: "Education is not a way of escaping poverty, it is a way of fighting it."
+ author: "Julius Nyerere"
+ "13":
+ quote: "A journey of a thousand miles must begin with a single step."
+ author: "Lao Tzu"
results: |-
> :left_speech_bubble: _%{quote}_ — %{author}
diff --git a/plugins/discourse-narrative-bot/config/locales/server.he.yml b/plugins/discourse-narrative-bot/config/locales/server.he.yml
index 1984cb4543..034102b59f 100644
--- a/plugins/discourse-narrative-bot/config/locales/server.he.yml
+++ b/plugins/discourse-narrative-bot/config/locales/server.he.yml
@@ -86,6 +86,15 @@ he:
"10":
quote: "מה ששכל האדם מסוגל להגות ולהאמין, ניתן להשגה."
author: "נפוליאון היל"
+ "11":
+ quote: "שלום בבית, שלום בעולם."
+ author: "מוסטפא כמאל אטאטורק"
+ "12":
+ quote: "חינוך זאת אינה הדרך להימלט מעוני, זו הדרך להילחם בו."
+ author: "ג׳וליוס נייררה"
+ "13":
+ quote: "מסע של אלף קילומטרים חייב להתחיל בצעד אחד."
+ author: "לאו דזה"
results: |-
> :left_speech_bubble: _%{quote}_ — %{author}
magic_8_ball:
diff --git a/plugins/discourse-narrative-bot/config/locales/server.hu.yml b/plugins/discourse-narrative-bot/config/locales/server.hu.yml
index d8e5e1af84..d7ae2056a3 100644
--- a/plugins/discourse-narrative-bot/config/locales/server.hu.yml
+++ b/plugins/discourse-narrative-bot/config/locales/server.hu.yml
@@ -84,6 +84,15 @@ hu:
"10":
quote: "Amit az emberi elme el tud képzelni és hinni, elérheti."
author: "Napoleon Hill"
+ "11":
+ quote: "Béke otthon, béke a világban."
+ author: "Mustafa Kemal Atatürk"
+ "12":
+ quote: "Az oktatás nem a szegénység előli menekülés, hanem az ellene folytatott küzdelem módja."
+ author: "Julius Nyerere"
+ "13":
+ quote: "Az ezer mérföldes utazásnak is egyetlen lépéssel kell kezdődnie."
+ author: "Lao-ce"
results: |-
> :left_speech_bubble: _%{quote}_ — %{author}
magic_8_ball:
diff --git a/plugins/discourse-narrative-bot/config/locales/server.it.yml b/plugins/discourse-narrative-bot/config/locales/server.it.yml
index a2c2f76e3b..75d39d4083 100644
--- a/plugins/discourse-narrative-bot/config/locales/server.it.yml
+++ b/plugins/discourse-narrative-bot/config/locales/server.it.yml
@@ -84,6 +84,15 @@ it:
"10":
quote: "Tutto ciò che la mente umana può concepire e credere, può essere realizzato."
author: "Napoleon Hill"
+ "11":
+ quote: "Pace in casa, pace nel mondo."
+ author: "Mustafa Kemal Atatürk"
+ "12":
+ quote: "L'istruzione non è un modo per sfuggire alla povertà, è un modo per combatterla."
+ author: "Julius Nyerere"
+ "13":
+ quote: "Un viaggio di mille miglia deve iniziare con un solo passo."
+ author: "Lao Tzu"
results: |-
> :left_speech_bubble: _%{quote}_ — %{author}
magic_8_ball:
diff --git a/plugins/discourse-narrative-bot/config/locales/server.nb_NO.yml b/plugins/discourse-narrative-bot/config/locales/server.nb_NO.yml
index f81b54c34e..77169ef40c 100644
--- a/plugins/discourse-narrative-bot/config/locales/server.nb_NO.yml
+++ b/plugins/discourse-narrative-bot/config/locales/server.nb_NO.yml
@@ -6,9 +6,9 @@
nb_NO:
site_settings:
- discourse_narrative_bot_enabled: "Aktiver Discourse Narrativ Bot (discobot)"
- disable_discourse_narrative_bot_welcome_post: "Deaktiver velkomstinnlegget fra Discourse Fortellerbot"
- discourse_narrative_bot_ignored_usernames: "Brukernavn som Discourse Fortellerbot skal ignorere"
+ discourse_narrative_bot_enabled: "Aktiver Discourse Narrative Bot (discobot)"
+ disable_discourse_narrative_bot_welcome_post: "Deaktiver velkomst innlegg fra Discourse Fortellerbot"
+ discourse_narrative_bot_ignored_usernames: "Brukernavn som Discourse Narrative bot skal ignorere"
discourse_narrative_bot_disable_public_replies: "Deaktiver åpne svar fra Discourse Fortellerbot"
discourse_narrative_bot_welcome_post_type: "Type velkomstinnlegg som Discourse Fortellerbot skal sende ut"
discourse_narrative_bot_welcome_post_delay: "Vent (n) sekunder før Discourse Fortellerbot sender ut velkomstinnlegg."
diff --git a/plugins/discourse-narrative-bot/config/locales/server.pl_PL.yml b/plugins/discourse-narrative-bot/config/locales/server.pl_PL.yml
index b4224af208..37a1448c3c 100644
--- a/plugins/discourse-narrative-bot/config/locales/server.pl_PL.yml
+++ b/plugins/discourse-narrative-bot/config/locales/server.pl_PL.yml
@@ -86,6 +86,12 @@ pl_PL:
"10":
quote: "Każda rzecz, którą umysł ludzki może pojąć i w nią uwierzyć, może on osiągnąć."
author: "Napoleon Hill"
+ "11":
+ quote: "Pokój w domu, pokój na świecie."
+ "12":
+ quote: "Edukacja nie jest sposobem na wyrwanie się z ubóstwa, to jest sposób na walkę z nim."
+ "13":
+ quote: "Podróż o długości tysiąca mil musi rozpocząć się od jednego kroku."
results: |-
> :left_speech_bubble: _%{quote}_ — %{author}
magic_8_ball:
diff --git a/plugins/discourse-narrative-bot/config/locales/server.ru.yml b/plugins/discourse-narrative-bot/config/locales/server.ru.yml
index 753932dc55..88724296ca 100644
--- a/plugins/discourse-narrative-bot/config/locales/server.ru.yml
+++ b/plugins/discourse-narrative-bot/config/locales/server.ru.yml
@@ -86,6 +86,15 @@ ru:
"10":
quote: "Что разум человека способен познать и вообразить, того он способен достичь."
author: "Наполеон Хилл"
+ "11":
+ quote: "Мир в доме - мир на Земле."
+ author: "Мустафа Кемаль Ататюрк"
+ "12":
+ quote: "Образование – это не способ избежать бедности, это способ борьбы с ней."
+ author: "Джулиус Ньерере"
+ "13":
+ quote: "Путешествие в тысячу миль должно начинаться с одного шага."
+ author: "Лао-цзы"
results: |-
> :left_speech_bubble: _%{quote}_ — %{author}
magic_8_ball:
diff --git a/plugins/discourse-narrative-bot/config/locales/server.sv.yml b/plugins/discourse-narrative-bot/config/locales/server.sv.yml
index 1e0e66dd53..50c1fe8695 100644
--- a/plugins/discourse-narrative-bot/config/locales/server.sv.yml
+++ b/plugins/discourse-narrative-bot/config/locales/server.sv.yml
@@ -84,6 +84,15 @@ sv:
"10":
quote: "Oavsett vad människans sinne kan tänka och tro, kan det uppnås."
author: "Napoleon Hill"
+ "11":
+ quote: "Fred hemma, fred i världen."
+ author: "Mustafa Kemal Atatürk"
+ "12":
+ quote: "Utbildning är inte ett sätt att undkomma fattigdomen, det är ett sätt att bekämpa den."
+ author: "Julius Nyerere"
+ "13":
+ quote: "En resa på tusen mil måste börja med ett enda steg."
+ author: "Lao Tzu"
results: |-
> :left_speech_bubble: _%{quote}_ — %{author}
magic_8_ball:
diff --git a/plugins/discourse-narrative-bot/config/locales/server.tr_TR.yml b/plugins/discourse-narrative-bot/config/locales/server.tr_TR.yml
index 11ecc65e57..7dfc10db63 100644
--- a/plugins/discourse-narrative-bot/config/locales/server.tr_TR.yml
+++ b/plugins/discourse-narrative-bot/config/locales/server.tr_TR.yml
@@ -84,6 +84,15 @@ tr_TR:
"10":
quote: "İnsan zihni ne olursa olsun düşünebilir ve inanabilir, başarabilir."
author: "Napoleon Hill"
+ "11":
+ quote: "Yurtta sulh cihanda sulh."
+ author: "Mustafa Kemal Atatürk"
+ "12":
+ quote: "Eğitim, yoksulluktan kurtulmanın bir yolu değil, onunla savaşmanın bir yoludur."
+ author: "Julius Nyerere"
+ "13":
+ quote: "Bin millik bir yolculuk tek bir adımla başlar."
+ author: "Lao Tzu"
results: |-
> :left_speech_bubble: _%{quote}_ — %{author}
magic_8_ball:
diff --git a/plugins/discourse-narrative-bot/plugin.rb b/plugins/discourse-narrative-bot/plugin.rb
index 2748dc9bc5..2eba865b37 100644
--- a/plugins/discourse-narrative-bot/plugin.rb
+++ b/plugins/discourse-narrative-bot/plugin.rb
@@ -223,7 +223,7 @@ after_initialize do
Jobs.enqueue(:bot_input,
user_id: user.id,
post_id: post.id,
- input: :reply
+ input: "reply"
)
end
end
@@ -233,7 +233,7 @@ after_initialize do
Jobs.enqueue(:bot_input,
user_id: post.user.id,
post_id: post.id,
- input: :edit
+ input: "edit"
)
end
end
@@ -244,7 +244,7 @@ after_initialize do
user_id: user.id,
post_id: post.id,
topic_id: post.topic_id,
- input: :delete
+ input: "delete"
)
end
end
@@ -254,7 +254,7 @@ after_initialize do
Jobs.enqueue(:bot_input,
user_id: user.id,
post_id: post.id,
- input: :recover
+ input: "recover"
)
end
end
@@ -264,11 +264,11 @@ after_initialize do
input =
case self.post_action_type_id
when *PostActionType.flag_types.values
- self.post_action_type_id == PostActionType.types[:inappropriate] ? :flag : :reply
+ self.post_action_type_id == PostActionType.types[:inappropriate] ? "flag" : "reply"
when PostActionType.types[:like]
- :like
+ "like"
when PostActionType.types[:bookmark]
- :bookmark
+ "bookmark"
end
if input
@@ -283,7 +283,7 @@ after_initialize do
self.add_model_callback(Bookmark, :after_commit, on: :create) do
if self.post && self.user.enqueue_narrative_bot_job?
- Jobs.enqueue(:bot_input, user_id: self.user_id, post_id: self.post_id, input: :bookmark)
+ Jobs.enqueue(:bot_input, user_id: self.user_id, post_id: self.post_id, input: "bookmark")
end
end
@@ -294,7 +294,7 @@ after_initialize do
Jobs.enqueue(:bot_input,
user_id: user_id,
topic_id: topic_id,
- input: :topic_notification_level_changed
+ input: "topic_notification_level_changed"
)
end
end
diff --git a/plugins/poll/config/locales/server.es.yml b/plugins/poll/config/locales/server.es.yml
index 3956cf9107..7c20266e1e 100644
--- a/plugins/poll/config/locales/server.es.yml
+++ b/plugins/poll/config/locales/server.es.yml
@@ -44,6 +44,9 @@ es:
max_vote_per_user:
one: Votar %{count} vez en esta encuesta.
other: Solo puedes votar %{count} veces en esta encuesta.
+ min_vote_per_user:
+ one: En esta encuesta hace falta %{count} voto.
+ other: En esta encuesta hacen falta %{count} votos.
topic_must_be_open_to_toggle_status: "El tema debe estar abierto para cambiar el estado."
only_staff_or_op_can_toggle_status: "Solo un miembro del equipo o la persona que realizó la publicación original pueden cambiar el estado de una encuesta."
insufficient_rights_to_create: "No tienes permitido crear encuestas."
diff --git a/plugins/poll/config/locales/server.pl_PL.yml b/plugins/poll/config/locales/server.pl_PL.yml
index 555de3b547..317935f0cf 100644
--- a/plugins/poll/config/locales/server.pl_PL.yml
+++ b/plugins/poll/config/locales/server.pl_PL.yml
@@ -44,6 +44,17 @@ pl_PL:
user_cant_post_in_topic: "Nie możesz głosować, bo nie możesz odpowiadać w tym temacie."
topic_must_be_open_to_vote: "Tematy musi być otwarta aby głosować."
poll_must_be_open_to_vote: "Ankieta musi być otwarta aby głosować."
+ one_vote_per_user: "W tej ankiecie można oddać tylko 1 głos."
+ max_vote_per_user:
+ one: Tylko %{count} głos jest dozwolony w tej ankiecie.
+ few: Tylko %{count} głosy są dozwolone w tej ankiecie.
+ many: Tylko %{count} głosów jest dozwolonych w tej ankiecie.
+ other: W tej ankiecie można oddać maksymalnie %{count} głosów.
+ min_vote_per_user:
+ one: Do tej ankiety wymagany jest co najmniej %{count} głos.
+ few: Do tej ankiety wymagane są co najmniej %{count} głosy.
+ many: Do tej ankiety wymagane jest co najmniej %{count} głosów.
+ other: Do tej ankiety wymagane jest co najmniej %{count} głosów.
topic_must_be_open_to_toggle_status: "Ankieta musi być otwarta aby zmienić status ankiety."
only_staff_or_op_can_toggle_status: "Status ankiety może być zmieniony przez autora wpisu lub członka załogi serwisu."
insufficient_rights_to_create: "Nie masz zezwolenia na tworzenie ankiet."
diff --git a/plugins/poll/spec/lib/pretty_text_spec.rb b/plugins/poll/spec/lib/pretty_text_spec.rb
index 5770f804f3..0f6f870fe7 100644
--- a/plugins/poll/spec/lib/pretty_text_spec.rb
+++ b/plugins/poll/spec/lib/pretty_text_spec.rb
@@ -100,7 +100,7 @@ describe PrettyText do
"].join("")}(),i="spectrum.id";jt.fn.spectrum=function(r){if("string"!=typeof r)return this.spectrum("destroy").each(function(){var t=e(this,jt.extend({},r,jt(this).data()));jt(this).data(i,t.id)});var n=this,a=Array.prototype.slice.call(arguments,1);return this.each(function(){var t=Wt[jt(this).data(i)];if(t){var e=t[r];if(!e)throw new Error("Spectrum: no such method: '"+r+"'");"get"==r?n=t.get():"container"==r?n=t.container:"option"==r?n=t.option.apply(t,a):"destroy"==r?(t.destroy(),jt(this).removeData(i)):e.apply(t,a)}}),n},jt.fn.spectrum.load=!0,jt.fn.spectrum.loadOpts={},jt.fn.spectrum.draggable=Kt,jt.fn.spectrum.defaults=a,jt.fn.spectrum.inputTypeColorSupport=function $t(){if("undefined"==typeof $t._cachedResult){var t=jt("")[0];$t._cachedResult="color"===t.type&&""!==t.value}return $t._cachedResult},jt.spectrum={},jt.spectrum.localization={},jt.spectrum.palettes={},jt.fn.spectrum.processNativeColorInputs=function(){var t=jt("input[type=color]");t.length&&!$t()&&t.spectrum({preferredFormat:"hex6"})},function(){function n(t){var e={r:0,g:0,b:0},r=1,n=!1,a=!1;return"string"==typeof t&&(t=T(t)),"object"==typeof t&&(t.hasOwnProperty("r")&&t.hasOwnProperty("g")&&t.hasOwnProperty("b")?(e=i(t.r,t.g,t.b),n=!0,a="%"===String(t.r).substr(-1)?"prgb":"rgb"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("v")?(t.s=R(t.s),t.v=R(t.v),e=l(t.h,t.s,t.v),n=!0,a="hsv"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("l")&&(t.s=R(t.s),t.l=R(t.l),e=o(t.h,t.s,t.l),n=!0,a="hsl"),t.hasOwnProperty("a")&&(r=t.a)),r=x(r),{ok:n,format:t.format||a,r:D(255,I(e.r,0)),g:D(255,I(e.g,0)),b:D(255,I(e.b,0)),a:r}}function i(t,e,r){return{r:255*k(t,255),g:255*k(e,255),b:255*k(r,255)}}function a(t,e,r){t=k(t,255),e=k(e,255),r=k(r,255);var n,a,i=I(t,e,r),o=D(t,e,r),s=(i+o)/2;if(i==o)n=a=0;else{var l=i-o;switch(a=.5>1)+720)%360;--e;)n.h=(n.h+a)%360,i.push(B(n));return i}function w(t,e){e=e||6;for(var r=B(t).toHsv(),n=r.h,a=r.s,i=r.v,o=[],s=1/e;e--;)o.push(B({h:n,s:a,v:i})),i=(i+s)%1;return o}function _(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}function x(t){return t=parseFloat(t),(isNaN(t)||t<0||1
- text.gsub!(//) do
+ text.gsub!(//) do
emoji($1)
end
end
diff --git a/script/import_scripts/phpbb3/support/text_processor.rb b/script/import_scripts/phpbb3/support/text_processor.rb
index f49765d648..622f0a931c 100644
--- a/script/import_scripts/phpbb3/support/text_processor.rb
+++ b/script/import_scripts/phpbb3/support/text_processor.rb
@@ -78,10 +78,10 @@ module ImportScripts::PhpBB3
# Many phpbb bbcode tags have a hash attached to them. Examples:
# [url=https://google.com:1qh1i7ky]click here[/url:1qh1i7ky]
# [quote="cybereality":b0wtlzex]Some text.[/quote:b0wtlzex]
- text.gsub!(/:(?:\w{8})\]/, ']')
+ text.gsub!(/:(?:\w{5,8})\]/, ']')
# remove color tags
- text.gsub!(/\[\/?color(=#[a-z0-9]*)?\]/i, "")
+ text.gsub!(/\[\/?color(=#?[a-z0-9]*)?\]/i, "")
end
def bbcode_to_md(text)
diff --git a/spec/components/cooked_post_processor_spec.rb b/spec/components/cooked_post_processor_spec.rb
index 77f9cb4b3a..9de2d5b628 100644
--- a/spec/components/cooked_post_processor_spec.rb
+++ b/spec/components/cooked_post_processor_spec.rb
@@ -1246,7 +1246,7 @@ describe CookedPostProcessor do
Google text.txt (20 Bytes)
-
+
HTML
end
@@ -1261,7 +1261,7 @@ describe CookedPostProcessor do
Google text.txt (20 Bytes)
-
+
HTML
end
@@ -1274,7 +1274,7 @@ describe CookedPostProcessor do
Google text.txt (20 Bytes)
-
+
HTML
end
@@ -1288,7 +1288,7 @@ describe CookedPostProcessor do
Google text.txt (20 Bytes)
-
+
HTML
end
@@ -1302,7 +1302,7 @@ describe CookedPostProcessor do
Google text.txt (20 Bytes)
-
+
HTML
end
@@ -1336,7 +1336,7 @@ describe CookedPostProcessor do
cpp.optimize_urls
expect(cpp.html).to match_html <<~HTML
-
This post has a local emoji and an external upload
+
This post has a local emoji and an external upload
HTML
end
@@ -1354,11 +1354,31 @@ describe CookedPostProcessor do
cpp.optimize_urls
expect(cpp.html).to match_html <<~HTML
-
This post has a local emoji and an external upload
+
This post has a local emoji and an external upload
HTML
end
+ it "doesn't use the secure media URL for custom emoji" do
+ CustomEmoji.create!(name: 'trout', upload: upload)
+ Emoji.clear_cache
+ Emoji.load_custom
+ stored_path = Discourse.store.get_path_for_upload(upload)
+ upload.update_column(:url, "#{SiteSetting.Upload.absolute_base_url}/#{stored_path}")
+ upload.update_column(:secure, true)
+
+ the_post = Fabricate(:post, raw: "This post has a custom emoji :trout:")
+ the_post.cook(the_post.raw)
+
+ cpp = CookedPostProcessor.new(the_post)
+ cpp.optimize_urls
+
+ upload_url = upload.url.gsub(SiteSetting.Upload.absolute_base_url, "https://s3.cdn.com")
+ expect(cpp.html).to match_html <<~HTML
+
This post has a custom emoji
+ HTML
+ end
+
context "media uploads" do
fab!(:image_upload) { Fabricate(:upload) }
fab!(:audio_upload) { Fabricate(:upload, extension: "ogg") }
diff --git a/spec/components/email/sender_spec.rb b/spec/components/email/sender_spec.rb
index 940326a1a4..cfad24c929 100644
--- a/spec/components/email/sender_spec.rb
+++ b/spec/components/email/sender_spec.rb
@@ -123,8 +123,10 @@ describe Email::Sender do
let(:reply_key) { "abcd" * 8 }
let(:message) do
- message = Mail::Message.new to: 'eviltrout@test.domain',
- body: '**hello**'
+ message = Mail::Message.new(
+ to: 'eviltrout@test.domain',
+ body: '**hello**'
+ )
message.stubs(:deliver_now)
message
end
@@ -288,7 +290,13 @@ describe Email::Sender do
end
it "sets the 'References' header with the incoming email Message-ID if it exists on the first post" do
- incoming = Fabricate(:incoming_email, topic: topic, post: post_1, message_id: "blah1234@someemailprovider.com")
+ incoming = Fabricate(
+ :incoming_email,
+ topic: topic,
+ post: post_1,
+ message_id: "blah1234@someemailprovider.com",
+ created_via: IncomingEmail.created_via_types[:handle_mail]
+ )
message.header['X-Discourse-Post-Id'] = post_1.id
email_sender.send
@@ -331,7 +339,9 @@ describe Email::Sender do
end
it "uses the incoming_email message_id when available, but always uses a random message-id" do
- topic_incoming_email = IncomingEmail.create(topic: topic, post: post_1, message_id: "foo@bar")
+ topic_incoming_email = IncomingEmail.create(
+ topic: topic, post: post_1, message_id: "foo@bar", created_via: IncomingEmail.created_via_types[:handle_mail]
+ )
post_2_incoming_email = IncomingEmail.create(topic: topic, post: post_2, message_id: "bar@foo")
post_4_incoming_email = IncomingEmail.create(topic: topic, post: post_4, message_id: "wat@wat")
diff --git a/spec/components/guardian/user_guardian_spec.rb b/spec/components/guardian/user_guardian_spec.rb
index f07a4062b3..56b532b298 100644
--- a/spec/components/guardian/user_guardian_spec.rb
+++ b/spec/components/guardian/user_guardian_spec.rb
@@ -243,10 +243,11 @@ describe UserGuardian do
end
it "isn't allowed when user created too many posts" do
- Fabricate(:post, user: user)
+ topic = Fabricate(:topic)
+ Fabricate(:post, topic: topic, user: user)
expect(guardian.can_delete_user?(user)).to eq(true)
- Fabricate(:post, user: user)
+ Fabricate(:post, topic: topic, user: user)
expect(guardian.can_delete_user?(user)).to eq(false)
end
@@ -319,16 +320,18 @@ describe UserGuardian do
end
it "correctly respects the delete_user_self_max_post_count setting" do
+ topic = Fabricate(:topic)
+
SiteSetting.delete_user_self_max_post_count = 0
expect(guardian.can_delete_user?(user)).to eq(true)
- Fabricate(:post, user: user)
+ Fabricate(:post, topic: topic, user: user)
expect(guardian.can_delete_user?(user)).to eq(false)
SiteSetting.delete_user_self_max_post_count = 1
expect(guardian.can_delete_user?(user)).to eq(true)
- Fabricate(:post, user: user)
+ Fabricate(:post, topic: topic, user: user)
expect(guardian.can_delete_user?(user)).to eq(false)
SiteSetting.delete_user_self_max_post_count = 2
diff --git a/spec/components/guardian_spec.rb b/spec/components/guardian_spec.rb
index 4634ff0226..a16b05b26b 100644
--- a/spec/components/guardian_spec.rb
+++ b/spec/components/guardian_spec.rb
@@ -1184,6 +1184,8 @@ describe Guardian do
end
describe "can_recover_topic?" do
+ fab!(:topic) { Fabricate(:topic, user: user) }
+ fab!(:post) { Fabricate(:post, user: user, topic: topic) }
it "returns false for a nil user" do
expect(Guardian.new(nil).can_recover_topic?(topic)).to be_falsey
@@ -1198,11 +1200,6 @@ describe Guardian do
end
context 'as a moderator' do
- before do
- topic.save!
- post.save!
- end
-
describe 'when post has been deleted' do
it "should return the right value" do
expect(Guardian.new(moderator).can_recover_topic?(topic)).to be_falsey
@@ -1227,9 +1224,6 @@ describe Guardian do
fab!(:group_user) { Fabricate(:group_user) }
before do
- topic.save!
- post.save!
-
SiteSetting.enable_category_group_moderation = true
PostDestroyer.new(moderator, topic.first_post).destroy
topic.reload
@@ -1262,10 +1256,8 @@ describe Guardian do
end
context 'as a moderator' do
- before do
- topic.save!
- post.save!
- end
+ fab!(:topic) { Fabricate(:topic, user: user) }
+ fab!(:post) { Fabricate(:post, user: user, topic: topic) }
describe 'when post has been deleted' do
it "should return the right value" do
diff --git a/spec/components/js_locale_helper_spec.rb b/spec/components/js_locale_helper_spec.rb
index 887ae8dc0d..27c8290ef9 100644
--- a/spec/components/js_locale_helper_spec.rb
+++ b/spec/components/js_locale_helper_spec.rb
@@ -87,7 +87,7 @@ describe JsLocaleHelper do
end
it 'handles message format special keys' do
- JsLocaleHelper.set_translations('en', "en" => {
+ JsLocaleHelper.set_translations('en', "en" => {
"js" => {
"hello" => "world",
"test_MF" => "{HELLO} {COUNT, plural, one {1 duck} other {# ducks}}",
@@ -113,7 +113,7 @@ describe JsLocaleHelper do
expect(ctx.eval('I18n.messageFormat("foo_MF", { HELLO: "hi", COUNT: 4 })')).to eq("hi 4 ducks")
end
- it 'load pluralizations rules before precompile' do
+ it 'load pluralization rules before precompile' do
message = JsLocaleHelper.compile_message_format(message_format_filename('ru'), 'ru', 'format')
expect(message).not_to match 'Plural Function not found'
end
@@ -186,6 +186,43 @@ describe JsLocaleHelper do
end
end
+ it "correctly evaluates message formats in en fallback" do
+ JsLocaleHelper.set_translations("en", "en" => {
+ "js" => {
+ "something_MF" => "en mf",
+ },
+ })
+
+ JsLocaleHelper.set_translations("de", "de" => {
+ "js" => {
+ "something_MF" => "de mf",
+ },
+ })
+
+ TranslationOverride.upsert!("en", "js.something_MF", <<~MF.strip)
+ There {
+ UNREAD, plural,
+ =0 {are no}
+ one {is one unread}
+ other {are # unread}
+ }
+ MF
+
+ ctx = MiniRacer::Context.new
+ ctx.eval("var window = this;")
+ ctx.load(Rails.root + "app/assets/javascripts/locales/i18n.js")
+ ctx.eval(JsLocaleHelper.output_locale("de"))
+ ctx.eval(JsLocaleHelper.output_client_overrides("de"))
+ ctx.eval(<<~JS)
+ for (let [key, value] of Object.entries(I18n._mfOverrides || {})) {
+ key = key.replace(/^[a-z_]*js\./, "");
+ I18n._compiledMFs[key] = value;
+ }
+ JS
+
+ expect(ctx.eval("I18n.messageFormat('something_MF', { UNREAD: 1 })")).to eq("There is one unread")
+ end
+
LocaleSiteSetting.values.each do |locale|
it "generates valid date helpers for #{locale[:value]} locale" do
js = JsLocaleHelper.output_locale(locale[:value])
@@ -207,12 +244,24 @@ describe JsLocaleHelper do
end
describe ".find_message_format_locale" do
+ it "finds locale's message format rules" do
+ locale, filename = JsLocaleHelper.find_message_format_locale([:de], fallback_to_english: false)
+ expect(locale).to eq("de")
+ expect(filename).to end_with("/de.js")
+ end
+
it "finds locale for en_GB" do
- locale, filename = JsLocaleHelper.find_message_format_locale([:en_GB], fallback_to_english: false)
+ locale, filename = JsLocaleHelper.find_message_format_locale([:en_GB], fallback_to_english: false)
expect(locale).to eq("en")
expect(filename).to end_with("/en.js")
- locale, filename = JsLocaleHelper.find_message_format_locale(["en_GB"], fallback_to_english: false)
+ locale, filename = JsLocaleHelper.find_message_format_locale(["en_GB"], fallback_to_english: false)
+ expect(locale).to eq("en")
+ expect(filename).to end_with("/en.js")
+ end
+
+ it "falls back to en when locale doesn't have own message format rules" do
+ locale, filename = JsLocaleHelper.find_message_format_locale([:nonexistent], fallback_to_english: true)
expect(locale).to eq("en")
expect(filename).to end_with("/en.js")
end
diff --git a/spec/components/new_post_manager_spec.rb b/spec/components/new_post_manager_spec.rb
index 29ac3ca83b..ff7085f4d3 100644
--- a/spec/components/new_post_manager_spec.rb
+++ b/spec/components/new_post_manager_spec.rb
@@ -4,12 +4,12 @@ require 'rails_helper'
require 'new_post_manager'
describe NewPostManager do
-
+ fab!(:user) { Fabricate(:user) }
fab!(:topic) { Fabricate(:topic) }
context "default action" do
it "creates the post by default" do
- manager = NewPostManager.new(topic.user, raw: 'this is a new post', topic_id: topic.id)
+ manager = NewPostManager.new(user, raw: 'this is a new post', topic_id: topic.id)
result = manager.perform
expect(result.action).to eq(:create_post)
@@ -25,7 +25,7 @@ describe NewPostManager do
it "doesn't enqueue private messages" do
SiteSetting.approve_unless_trust_level = 4
- manager = NewPostManager.new(topic.user,
+ manager = NewPostManager.new(user,
raw: 'this is a new post',
title: 'this is a new title',
archetype: Archetype.private_message,
@@ -40,7 +40,7 @@ describe NewPostManager do
expect(result.post).to be_a(Post)
# It doesn't enqueue replies to the private message either
- manager = NewPostManager.new(topic.user,
+ manager = NewPostManager.new(user,
raw: 'this is a new reply',
topic_id: result.post.topic_id)
@@ -56,7 +56,7 @@ describe NewPostManager do
end
context "default handler" do
- let(:manager) { NewPostManager.new(topic.user, raw: 'this is new post content', topic_id: topic.id) }
+ let(:manager) { NewPostManager.new(user, raw: 'this is new post content', topic_id: topic.id) }
context 'with the settings zeroed out' do
before do
@@ -126,8 +126,9 @@ describe NewPostManager do
context 'with a high approval post count, but TL2' do
before do
SiteSetting.approve_post_count = 100
- topic.user.trust_level = 2
+ user.update!(trust_level: 2)
end
+
it "will return an enqueue result" do
result = NewPostManager.default_handler(manager)
expect(result).to be_nil
@@ -188,8 +189,9 @@ describe NewPostManager do
context 'with staged moderation setting enabled' do
before do
SiteSetting.approve_unless_staged = true
- topic.user.staged = true
+ user.update!(staged: true)
end
+
it "will return an enqueue result" do
result = NewPostManager.default_handler(manager)
expect(NewPostManager.queue_enabled?).to eq(true)
@@ -209,17 +211,17 @@ describe NewPostManager do
end
context 'with a fast typer' do
- let(:user) { manager.user }
-
before do
user.update!(trust_level: 0)
end
it "adds the silence reason in the system locale" do
manager = build_manager_with('this is new post content')
+
I18n.with_locale(:fr) do # Simulate french user
result = NewPostManager.default_handler(manager)
end
+
expect(user.silenced?).to eq(true)
expect(user.silence_reason).to eq(I18n.t("user.new_user_typed_too_fast", locale: :en))
end
@@ -235,12 +237,11 @@ describe NewPostManager do
end
def build_manager_with(raw)
- NewPostManager.new(topic.user, raw: raw, topic_id: topic.id, first_post_checks: true)
+ NewPostManager.new(user, raw: raw, topic_id: topic.id, first_post_checks: true)
end
end
context 'with media' do
- let(:user) { manager.user }
let(:manager_opts) do
{
raw: 'this is new post content', topic_id: topic.id, first_post_checks: false,
@@ -258,7 +259,7 @@ describe NewPostManager do
it 'queues the post for review because if it contains embedded media.' do
SiteSetting.review_media_unless_trust_level = 1
- manager = NewPostManager.new(topic.user, manager_opts)
+ manager = NewPostManager.new(user, manager_opts)
result = NewPostManager.default_handler(manager)
@@ -268,7 +269,7 @@ describe NewPostManager do
it 'does not enqueue the post if the poster is a trusted user' do
SiteSetting.review_media_unless_trust_level = 0
- manager = NewPostManager.new(topic.user, manager_opts)
+ manager = NewPostManager.new(user, manager_opts)
result = NewPostManager.default_handler(manager)
@@ -278,7 +279,7 @@ describe NewPostManager do
end
context "new topic handler" do
- let(:manager) { NewPostManager.new(topic.user, raw: 'this is new topic content', title: 'new topic title') }
+ let(:manager) { NewPostManager.new(user, raw: 'this is new topic content', title: 'new topic title') }
context 'with a high trust level setting for new topics' do
before do
SiteSetting.approve_new_topics_unless_trust_level = 4
@@ -351,7 +352,7 @@ describe NewPostManager do
end
it "calls custom handlers" do
- manager = NewPostManager.new(topic.user, raw: 'this post increases counter', topic_id: topic.id)
+ manager = NewPostManager.new(user, raw: 'this post increases counter', topic_id: topic.id)
result = manager.perform
@@ -409,7 +410,7 @@ describe NewPostManager do
end
it "if nothing returns a result it creates a post" do
- manager = NewPostManager.new(topic.user, raw: 'this is a new post', topic_id: topic.id)
+ manager = NewPostManager.new(user, raw: 'this is a new post', topic_id: topic.id)
result = manager.perform
diff --git a/spec/components/oneboxer_spec.rb b/spec/components/oneboxer_spec.rb
index 40ce9e49b8..562c06b311 100644
--- a/spec/components/oneboxer_spec.rb
+++ b/spec/components/oneboxer_spec.rb
@@ -160,28 +160,54 @@ describe Oneboxer do
end
end
- it "does not crawl blocklisted URLs" do
- SiteSetting.blocked_onebox_domains = "git.*.com|bitbucket.com"
- url = 'https://github.com/discourse/discourse/commit/21b562852885f883be43032e03c709241e8e6d4f'
- stub_request(:head, 'https://discourse.org/').to_return(status: 302, body: "", headers: { location: url })
+ context ".external_onebox" do
+ html = <<~HTML
+
+
+
+
+
+
+
body
+
+
+ HTML
- expect(Oneboxer.external_onebox(url)[:onebox]).to be_empty
- expect(Oneboxer.external_onebox('https://discourse.org/')[:onebox]).to be_empty
- end
+ context "blacklisted domains" do
- it "does not consider ignore_redirects domains as blocklisted" do
- url = 'https://store.steampowered.com/app/271590/Grand_Theft_Auto_V/'
- stub_request(:head, url).to_return(status: 200, body: "", headers: {})
- stub_request(:get, url).to_return(status: 200, body: "", headers: {})
+ it "does not return a onebox if redirect uri final destination is in blacklist" do
+ SiteSetting.blocked_onebox_domains = "kitten.com"
- expect(Oneboxer.external_onebox(url)[:onebox]).to be_present
- end
+ stub_request(:get, "http://cat.com/meow").to_return(status: 301, body: "", headers: { "location" => "https://kitten.com" })
+ stub_request(:head, "http://cat.com/meow").to_return(status: 301, body: "", headers: { "location" => "https://kitten.com" })
- it "censors external oneboxes" do
- Fabricate(:watched_word, action: WatchedWord.actions[:censor], word: "bad word")
+ stub_request(:get, "https://kitten.com").to_return(status: 200, body: html, headers: {})
+ stub_request(:head, "https://kitten.com").to_return(status: 200, body: "", headers: {})
- url = 'https://example.com/'
- stub_request(:any, url).to_return(status: 200, body: <<~HTML, headers: {})
+ expect(Oneboxer.external_onebox("http://cat.com/meow")[:onebox]).to be_empty
+ expect(Oneboxer.external_onebox("https://kitten.com")[:onebox]).to be_empty
+ end
+
+ it "returns onebox if 'midway redirect' is blocked but final redirect uri is not blocked" do
+ SiteSetting.blocked_onebox_domains = "middle.com"
+
+ stub_request(:get, "https://cat.com/start").to_return(status: 301, body: "a", headers: { "location" => "https://middle.com/midway" })
+ stub_request(:head, "https://cat.com/start").to_return(status: 301, body: "a", headers: { "location" => "https://middle.com/midway" })
+
+ stub_request(:head, "https://middle.com/midway").to_return(status: 301, body: "b", headers: { "location" => "https://cat.com/end" })
+
+ stub_request(:get, "https://cat.com/end").to_return(status: 200, body: html)
+ stub_request(:head, "https://cat.com/end").to_return(status: 200, body: "", headers: {})
+
+ expect(Oneboxer.external_onebox("https://cat.com/start")[:onebox]).to be_present
+ end
+ end
+
+ it "censors external oneboxes" do
+ Fabricate(:watched_word, action: WatchedWord.actions[:censor], word: "bad word")
+
+ url = 'https://example.com/'
+ stub_request(:any, url).to_return(status: 200, body: <<~HTML, headers: {})
@@ -191,13 +217,23 @@ describe Oneboxer do
content with bad word
- HTML
+ HTML
- onebox = Oneboxer.external_onebox(url)
- expect(onebox[:onebox]).to include('title with')
- expect(onebox[:onebox]).not_to include('bad word')
- expect(onebox[:preview]).to include('title with')
- expect(onebox[:preview]).not_to include('bad word')
+ onebox = Oneboxer.external_onebox(url)
+ expect(onebox[:onebox]).to include('title with')
+ expect(onebox[:onebox]).not_to include('bad word')
+ expect(onebox[:preview]).to include('title with')
+ expect(onebox[:preview]).not_to include('bad word')
+ end
+
+ it "returns onebox" do
+ SiteSetting.blocked_onebox_domains = "not.me"
+
+ stub_request(:get, "https://its.me").to_return(status: 200, body: html)
+ stub_request(:head, "https://its.me").to_return(status: 200, body: "", headers: {})
+
+ expect(Oneboxer.external_onebox("https://its.me")[:onebox]).to be_present
+ end
end
it "uses the Onebox custom user agent on specified hosts" do
diff --git a/spec/components/post_creator_spec.rb b/spec/components/post_creator_spec.rb
index 484ff8140a..2c58aba637 100644
--- a/spec/components/post_creator_spec.rb
+++ b/spec/components/post_creator_spec.rb
@@ -14,7 +14,7 @@ describe PostCreator do
context "new topic" do
fab!(:category) { Fabricate(:category, user: user) }
- let(:basic_topic_params) { { title: "hello world topic", raw: "my name is fred", archetype_id: 1 } }
+ let(:basic_topic_params) { { title: "hello world topic", raw: "my name is fred", archetype_id: 1, advance_draft: true } }
let(:image_sizes) { { 'http://an.image.host/image.jpg' => { "width" => 111, "height" => 222 } } }
let(:creator) { PostCreator.new(user, basic_topic_params) }
@@ -50,6 +50,8 @@ describe PostCreator do
expect(post.hidden_at).to be_present
expect(post.hidden_reason_id).to eq(hri)
expect(post.topic.visible).to eq(false)
+ expect(post.user.topic_count).to eq(0)
+ expect(post.user.post_count).to eq(0)
end
it "ensures the user can create the topic" do
@@ -150,7 +152,7 @@ describe PostCreator do
messages = MessageBus.track_publish do
created_post = PostCreator.new(admin, basic_topic_params.merge(category: cat.id)).create
- _reply = PostCreator.new(admin, raw: "this is my test reply 123 testing", topic_id: created_post.topic_id).create
+ _reply = PostCreator.new(admin, raw: "this is my test reply 123 testing", topic_id: created_post.topic_id, advance_draft: true).create
end
messages.filter! { |m| m.channel != "/distributed_hash" }
@@ -303,6 +305,20 @@ describe PostCreator do
end
end
+ it 'clears the draft if advanced_draft is true' do
+ creator = PostCreator.new(user, basic_topic_params.merge(advance_draft: true))
+ Draft.set(user, Draft::NEW_TOPIC, 0, 'test')
+ expect(Draft.where(user: user).size).to eq(1)
+ expect { creator.create }.to change { Draft.count }.by(-1)
+ end
+
+ it 'does not clear the draft if advanced_draft is false' do
+ creator = PostCreator.new(user, basic_topic_params.merge(advance_draft: false))
+ Draft.set(user, Draft::NEW_TOPIC, 0, 'test')
+ expect(Draft.where(user: user).size).to eq(1)
+ expect { creator.create }.to change { Draft.count }.by(0)
+ end
+
it "updates topic stats" do
first_post = creator.create
topic = first_post.topic.reload
diff --git a/spec/components/post_destroyer_spec.rb b/spec/components/post_destroyer_spec.rb
index 51a2bcc538..d510e6cc5f 100644
--- a/spec/components/post_destroyer_spec.rb
+++ b/spec/components/post_destroyer_spec.rb
@@ -995,7 +995,7 @@ describe PostDestroyer do
end
it 'should destroy internal links when moderator deletes post' do
- new_post = Post.create!(user: user, topic: topic, raw: "Link to other topic:\n\n#{url}\n")
+ new_post = create_post(user: user, topic: topic, raw: "Link to other topic:\n\n#{url}\n")
TopicLink.extract_from(new_post)
link_counts = TopicLink.counts_for(guardian, other_topic.reload, [other_post])
expect(link_counts.count).to eq(1)
diff --git a/spec/components/pretty_text_spec.rb b/spec/components/pretty_text_spec.rb
index 8e180c5eb5..76d522d60c 100644
--- a/spec/components/pretty_text_spec.rb
+++ b/spec/components/pretty_text_spec.rb
@@ -37,7 +37,7 @@ describe PrettyText do