Merge commit '90eb4a5d01f1f1e8a76e7dc814eae992a9c1ee16' into glitch-soc/merge-upstream

This commit is contained in:
Claire 2024-05-01 16:47:25 +02:00
commit 7f404fd635
17 changed files with 128 additions and 14 deletions

View File

@ -90,6 +90,8 @@
"attachments_list.unprocessed": "(غير معالَج)", "attachments_list.unprocessed": "(غير معالَج)",
"audio.hide": "إخفاء المقطع الصوتي", "audio.hide": "إخفاء المقطع الصوتي",
"block_modal.remote_users_caveat": "Do ti kërkojmë shërbyesit {domain} të respektojë vendimin tuaj. Por, pajtimi sështë i garantuar, ngaqë disa shërbyes mund ti trajtojnë ndryshe bllokimet. Psotimet publike mundet të jenë ende të dukshme për përdorues pa bërë hyrje në llogari.", "block_modal.remote_users_caveat": "Do ti kërkojmë shërbyesit {domain} të respektojë vendimin tuaj. Por, pajtimi sështë i garantuar, ngaqë disa shërbyes mund ti trajtojnë ndryshe bllokimet. Psotimet publike mundet të jenë ende të dukshme për përdorues pa bërë hyrje në llogari.",
"block_modal.show_less": "اعرض أقلّ",
"block_modal.show_more": "أظهر المزيد",
"boost_modal.combo": "يُمكنك الضّغط على {combo} لتخطي هذا في المرة المُقبلة", "boost_modal.combo": "يُمكنك الضّغط على {combo} لتخطي هذا في المرة المُقبلة",
"bundle_column_error.copy_stacktrace": "انسخ تقرير الخطأ", "bundle_column_error.copy_stacktrace": "انسخ تقرير الخطأ",
"bundle_column_error.error.body": "لا يمكن تقديم الصفحة المطلوبة. قد يكون بسبب خطأ في التعليمات البرمجية، أو مشكلة توافق المتصفح.", "bundle_column_error.error.body": "لا يمكن تقديم الصفحة المطلوبة. قد يكون بسبب خطأ في التعليمات البرمجية، أو مشكلة توافق المتصفح.",
@ -201,6 +203,13 @@
"dismissable_banner.explore_statuses": "هذه هي المنشورات الرائجة على الشبكات الاجتماعيّة اليوم. تظهر المنشورات المعاد نشرها والحائزة على مفضّلات أكثر في مرتبة عليا.", "dismissable_banner.explore_statuses": "هذه هي المنشورات الرائجة على الشبكات الاجتماعيّة اليوم. تظهر المنشورات المعاد نشرها والحائزة على مفضّلات أكثر في مرتبة عليا.",
"dismissable_banner.explore_tags": "هذه هي الوسوم تكتسب جذب الاهتمام حاليًا على الويب الاجتماعي. الوسوم التي يستخدمها مختلف الناس تحتل مرتبة عليا.", "dismissable_banner.explore_tags": "هذه هي الوسوم تكتسب جذب الاهتمام حاليًا على الويب الاجتماعي. الوسوم التي يستخدمها مختلف الناس تحتل مرتبة عليا.",
"dismissable_banner.public_timeline": "هذه هي أحدث المنشورات العامة من الناس على الشبكة الاجتماعية التي يتبعها الناس على {domain}.", "dismissable_banner.public_timeline": "هذه هي أحدث المنشورات العامة من الناس على الشبكة الاجتماعية التي يتبعها الناس على {domain}.",
"domain_pill.server": "الخادِم",
"domain_pill.their_handle": "مُعرِّفُه:",
"domain_pill.their_server": "بيتهم الرقمي، حيث تُستضاف كافة منشوراتهم.",
"domain_pill.their_username": "مُعرّفُهم الفريد على الخادم. من الممكن العثور على مستخدمين بنفس اسم المستخدم على خوادم مختلفة.",
"domain_pill.username": "اسم المستخدم",
"domain_pill.whats_in_a_handle": "ما المقصود بالمُعرِّف؟",
"domain_pill.your_handle": "عنوانك الكامل:",
"embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.", "embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
"embed.preview": "إليك ما سيبدو عليه:", "embed.preview": "إليك ما سيبدو عليه:",
"emoji_button.activity": "الأنشطة", "emoji_button.activity": "الأنشطة",
@ -395,6 +404,13 @@
"loading_indicator.label": "جاري التحميل…", "loading_indicator.label": "جاري التحميل…",
"media_gallery.toggle_visible": "{number, plural, zero {} one {اخف الصورة} two {اخف الصورتين} few {اخف الصور} many {اخف الصور} other {اخف الصور}}", "media_gallery.toggle_visible": "{number, plural, zero {} one {اخف الصورة} two {اخف الصورتين} few {اخف الصور} many {اخف الصور} other {اخف الصور}}",
"moved_to_account_banner.text": "حسابك {disabledAccount} معطل حاليًا لأنك انتقلت إلى {movedToAccount}.", "moved_to_account_banner.text": "حسابك {disabledAccount} معطل حاليًا لأنك انتقلت إلى {movedToAccount}.",
"mute_modal.hide_options": "إخفاء الخيارات",
"mute_modal.show_options": "إظهار الخيارات",
"mute_modal.they_can_mention_and_follow": "سيكون بإمكانه الإشارة إليك ومتابعتك، لكنك لن تره.",
"mute_modal.they_wont_know": "لن يَعرف أنه قد تم كتمه.",
"mute_modal.title": "أتريد كتم المُستخدم؟",
"mute_modal.you_wont_see_mentions": "سوف لن تر المنشورات التي يُشار إليه.",
"mute_modal.you_wont_see_posts": "سيكون بإمكانه رؤية منشوراتك، لكنك لن ترى منشوراته.",
"navigation_bar.about": "عن", "navigation_bar.about": "عن",
"navigation_bar.advanced_interface": "افتحه في واجهة الويب المتقدمة", "navigation_bar.advanced_interface": "افتحه في واجهة الويب المتقدمة",
"navigation_bar.blocks": "الحسابات المحجوبة", "navigation_bar.blocks": "الحسابات المحجوبة",
@ -430,14 +446,21 @@
"notification.own_poll": "انتهى استطلاعك للرأي", "notification.own_poll": "انتهى استطلاعك للرأي",
"notification.poll": "لقد انتهى استطلاع رأي شاركتَ فيه", "notification.poll": "لقد انتهى استطلاع رأي شاركتَ فيه",
"notification.reblog": "قام {name} بمشاركة منشورك", "notification.reblog": "قام {name} بمشاركة منشورك",
"notification.relationships_severance_event.learn_more": "اعرف المزيد",
"notification.status": "{name} نشر للتو", "notification.status": "{name} نشر للتو",
"notification.update": "عدّلَ {name} منشورًا", "notification.update": "عدّلَ {name} منشورًا",
"notification_requests.accept": "موافقة",
"notification_requests.dismiss": "تخطي",
"notification_requests.notifications_from": "إشعارات من {name}",
"notification_requests.title": "الإشعارات المصفاة",
"notifications.clear": "مسح الإشعارات", "notifications.clear": "مسح الإشعارات",
"notifications.clear_confirmation": "متأكد من أنك تود مسح جميع الإشعارات الخاصة بك و المتلقاة إلى حد الآن ؟", "notifications.clear_confirmation": "متأكد من أنك تود مسح جميع الإشعارات الخاصة بك و المتلقاة إلى حد الآن ؟",
"notifications.column_settings.admin.report": "التبليغات الجديدة:", "notifications.column_settings.admin.report": "التبليغات الجديدة:",
"notifications.column_settings.admin.sign_up": "التسجيلات الجديدة:", "notifications.column_settings.admin.sign_up": "التسجيلات الجديدة:",
"notifications.column_settings.alert": "إشعارات سطح المكتب", "notifications.column_settings.alert": "إشعارات سطح المكتب",
"notifications.column_settings.favourite": "المفضلة:", "notifications.column_settings.favourite": "المفضلة:",
"notifications.column_settings.filter_bar.advanced": "عرض جميع الفئات",
"notifications.column_settings.filter_bar.category": "شريط التصفية السريعة",
"notifications.column_settings.follow": "متابعُون جُدُد:", "notifications.column_settings.follow": "متابعُون جُدُد:",
"notifications.column_settings.follow_request": "الطلبات الجديد لِمتابَعتك:", "notifications.column_settings.follow_request": "الطلبات الجديد لِمتابَعتك:",
"notifications.column_settings.mention": "الإشارات:", "notifications.column_settings.mention": "الإشارات:",
@ -463,6 +486,10 @@
"notifications.permission_denied": "تنبيهات سطح المكتب غير متوفرة بسبب رفض أذونات المتصفح مسبقاً", "notifications.permission_denied": "تنبيهات سطح المكتب غير متوفرة بسبب رفض أذونات المتصفح مسبقاً",
"notifications.permission_denied_alert": "لا يمكن تفعيل إشعارات سطح المكتب، لأن إذن المتصفح قد تم رفضه سابقاً", "notifications.permission_denied_alert": "لا يمكن تفعيل إشعارات سطح المكتب، لأن إذن المتصفح قد تم رفضه سابقاً",
"notifications.permission_required": "إشعارات سطح المكتب غير متوفرة لأنه لم يتم منح الإذن المطلوب.", "notifications.permission_required": "إشعارات سطح المكتب غير متوفرة لأنه لم يتم منح الإذن المطلوب.",
"notifications.policy.filter_new_accounts_title": "حسابات جديدة",
"notifications.policy.filter_not_followers_title": "أشخاص لا يتابعونك",
"notifications.policy.filter_not_following_hint": "حتى توافق عليهم يدويا",
"notifications.policy.filter_not_following_title": "أشخاص لا تتابعهم",
"notifications_permission_banner.enable": "تفعيل إشعارات سطح المكتب", "notifications_permission_banner.enable": "تفعيل إشعارات سطح المكتب",
"notifications_permission_banner.how_to_control": "لتلقي الإشعارات عندما لا يكون ماستدون مفتوح، قم بتفعيل إشعارات سطح المكتب، يمكنك التحكم بدقة في أنواع التفاعلات التي تولد إشعارات سطح المكتب من خلال زر الـ{icon} أعلاه بمجرد تفعيلها.", "notifications_permission_banner.how_to_control": "لتلقي الإشعارات عندما لا يكون ماستدون مفتوح، قم بتفعيل إشعارات سطح المكتب، يمكنك التحكم بدقة في أنواع التفاعلات التي تولد إشعارات سطح المكتب من خلال زر الـ{icon} أعلاه بمجرد تفعيلها.",
"notifications_permission_banner.title": "لا تفوت شيئاً أبداً", "notifications_permission_banner.title": "لا تفوت شيئاً أبداً",

View File

@ -471,6 +471,7 @@
"notification.own_poll": "Ваша апытанне скончылася", "notification.own_poll": "Ваша апытанне скончылася",
"notification.poll": "Апытанне, дзе вы прынялі ўдзел, скончылася", "notification.poll": "Апытанне, дзе вы прынялі ўдзел, скончылася",
"notification.reblog": "{name} пашырыў ваш допіс", "notification.reblog": "{name} пашырыў ваш допіс",
"notification.relationships_severance_event.learn_more": "Даведацца больш",
"notification.status": "Новы допіс ад {name}", "notification.status": "Новы допіс ад {name}",
"notification.update": "Допіс {name} адрэдагаваны", "notification.update": "Допіс {name} адрэдагаваны",
"notification_requests.accept": "Прыняць", "notification_requests.accept": "Прыняць",
@ -484,6 +485,7 @@
"notifications.column_settings.alert": "Апавяшчэнні на працоўным стале", "notifications.column_settings.alert": "Апавяшчэнні на працоўным стале",
"notifications.column_settings.favourite": "Упадабанае:", "notifications.column_settings.favourite": "Упадабанае:",
"notifications.column_settings.filter_bar.advanced": "Паказаць усе катэгорыі", "notifications.column_settings.filter_bar.advanced": "Паказаць усе катэгорыі",
"notifications.column_settings.filter_bar.category": "Панэль хуткай фільтрацыі",
"notifications.column_settings.follow": "Новыя падпісчыкі:", "notifications.column_settings.follow": "Новыя падпісчыкі:",
"notifications.column_settings.follow_request": "Новыя запыты на падпіску:", "notifications.column_settings.follow_request": "Новыя запыты на падпіску:",
"notifications.column_settings.mention": "Згадванні:", "notifications.column_settings.mention": "Згадванні:",

View File

@ -472,7 +472,10 @@
"notification.poll": "Анкета, в която гласувахте, приключи", "notification.poll": "Анкета, в която гласувахте, приключи",
"notification.reblog": "{name} подсили ваша публикация", "notification.reblog": "{name} подсили ваша публикация",
"notification.relationships_severance_event": "Изгуби се връзката с {name}", "notification.relationships_severance_event": "Изгуби се връзката с {name}",
"notification.relationships_severance_event.account_suspension": "Администратор от {from} спря {target}, което значи че повече не може да получавате новости от тях или да взаимодействате с тях.",
"notification.relationships_severance_event.domain_block": "Администратор от {from} блокира {target}, вкючващо {followersCount} от последователите ви и {followingCount, plural, one {# акаунт, който} other {# акаунта, които}} следвате.",
"notification.relationships_severance_event.learn_more": "Научете повече", "notification.relationships_severance_event.learn_more": "Научете повече",
"notification.relationships_severance_event.user_domain_block": "Блокирахте {target}, премахвайки {followersCount} от последователите си и {followingCount, plural, one {# акаунт, който} other {# акаунта, които}} следвате.",
"notification.status": "{name} току-що публикува", "notification.status": "{name} току-що публикува",
"notification.update": "{name} промени публикация", "notification.update": "{name} промени публикация",
"notification_requests.accept": "Приемам", "notification_requests.accept": "Приемам",

View File

@ -222,14 +222,14 @@
"domain_pill.server": "Serveur", "domain_pill.server": "Serveur",
"domain_pill.their_handle": "Son identifiant :", "domain_pill.their_handle": "Son identifiant :",
"domain_pill.their_server": "Son foyer numérique, là où tous ses posts résident.", "domain_pill.their_server": "Son foyer numérique, là où tous ses posts résident.",
"domain_pill.their_username": "Son identifiant unique sur leur serveur. Il est possible de rencontrer des utilisateurs avec le même nom sur différents serveurs.", "domain_pill.their_username": "Son identifiant unique sur leur serveur. Il est possible de rencontrer des utilisateur·rice·s avec le même nom sur différents serveurs.",
"domain_pill.username": "Nom dutilisateur", "domain_pill.username": "Nom dutilisateur",
"domain_pill.whats_in_a_handle": "Qu'est-ce qu'un identifiant ?", "domain_pill.whats_in_a_handle": "Qu'est-ce qu'un identifiant ?",
"domain_pill.who_they_are": "Comme un identifiant contient le nom et le service hébergeant une personne, vous pouvez interagir sur <button>les plateformes sociales implémentant ActivityPub</button>.", "domain_pill.who_they_are": "Comme un identifiant contient le nom et le service hébergeant une personne, vous pouvez interagir sur <button>les plateformes sociales implémentant ActivityPub</button>.",
"domain_pill.who_you_are": "Comme un identifiant indique votre nom et le service vous hébergeant, vous pouvez interagir avec <button>les autres plateformes sociales implémentant ActivityPub</button>.", "domain_pill.who_you_are": "Comme un identifiant indique votre nom et le service vous hébergeant, vous pouvez interagir avec <button>les autres plateformes sociales implémentant ActivityPub</button>.",
"domain_pill.your_handle": "Votre identifiant :", "domain_pill.your_handle": "Votre identifiant :",
"domain_pill.your_server": "Votre foyer numérique, là où vos messages résident. Vous souhaitez changer ? Lancez un transfert vers un autre serveur quand vous le voulez et vos abonné·e·s suivront automatiquement.", "domain_pill.your_server": "Votre foyer numérique, là où vos messages résident. Vous souhaitez changer ? Lancez un transfert vers un autre serveur quand vous le voulez et vos abonné·e·s suivront automatiquement.",
"domain_pill.your_username": "Votre identifiant unique sur ce serveur. Il est possible de trouver des utilisateurs ayant le même nom d'utilisateur sur différents serveurs.", "domain_pill.your_username": "Votre identifiant unique sur ce serveur. Il est possible de rencontrer des utilisateur·rice·s ayant le même nom d'utilisateur sur différents serveurs.",
"embed.instructions": "Intégrez cette publication à votre site en copiant le code ci-dessous.", "embed.instructions": "Intégrez cette publication à votre site en copiant le code ci-dessous.",
"embed.preview": "Voici comment il apparaîtra:", "embed.preview": "Voici comment il apparaîtra:",
"emoji_button.activity": "Activité", "emoji_button.activity": "Activité",
@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Filtrer cette publication", "filter_modal.select_filter.title": "Filtrer cette publication",
"filter_modal.title.status": "Filtrer une publication", "filter_modal.title.status": "Filtrer une publication",
"filtered_notifications_banner.pending_requests": "Notifications {count, plural, =0 {de personne} one {dune personne} other {de # personnes}} que vous pouvez connaitre", "filtered_notifications_banner.pending_requests": "Notifications {count, plural, =0 {de personne} one {dune personne} other {de # personnes}} que vous pouvez connaitre",
"filtered_notifications_banner.private_mentions": "{count, plural, one {mention privée} other {mentions privées}}",
"filtered_notifications_banner.title": "Notifications filtrées", "filtered_notifications_banner.title": "Notifications filtrées",
"firehose.all": "Tout", "firehose.all": "Tout",
"firehose.local": "Ce serveur", "firehose.local": "Ce serveur",
@ -471,6 +472,11 @@
"notification.own_poll": "Votre sondage est terminé", "notification.own_poll": "Votre sondage est terminé",
"notification.poll": "Un sondage auquel vous avez participé est terminé", "notification.poll": "Un sondage auquel vous avez participé est terminé",
"notification.reblog": "{name} a boosté votre message", "notification.reblog": "{name} a boosté votre message",
"notification.relationships_severance_event": "Connexions perdues avec {name}",
"notification.relationships_severance_event.account_suspension": "Un·e administrateur·rice de {from} a suspendu {target}, ce qui signifie que vous ne pourrez plus recevoir de mises à jour ou interagir avec lui.",
"notification.relationships_severance_event.domain_block": "Un·e administrateur·rice de {from} en a bloqué {target}, comprenant {followersCount} de vos abonné·e·s et {followingCount, plural, one {# compte} other {# comptes}} vous suivez.",
"notification.relationships_severance_event.learn_more": "En savoir plus",
"notification.relationships_severance_event.user_domain_block": "Vous avez bloqué {target}, en supprimant {followersCount} de vos abonnés et {followingCount, plural, one {# compte} other {# comptes}} que vous suivez.",
"notification.status": "{name} vient de publier", "notification.status": "{name} vient de publier",
"notification.update": "{name} a modifié une publication", "notification.update": "{name} a modifié une publication",
"notification_requests.accept": "Accepter", "notification_requests.accept": "Accepter",
@ -483,6 +489,8 @@
"notifications.column_settings.admin.sign_up": "Nouvelles inscriptions:", "notifications.column_settings.admin.sign_up": "Nouvelles inscriptions:",
"notifications.column_settings.alert": "Notifications navigateur", "notifications.column_settings.alert": "Notifications navigateur",
"notifications.column_settings.favourite": "Favoris:", "notifications.column_settings.favourite": "Favoris:",
"notifications.column_settings.filter_bar.advanced": "Afficher toutes les catégories",
"notifications.column_settings.filter_bar.category": "Barre de filtre rapide",
"notifications.column_settings.follow": "Nouveaux⋅elles abonné⋅e⋅s:", "notifications.column_settings.follow": "Nouveaux⋅elles abonné⋅e⋅s:",
"notifications.column_settings.follow_request": "Nouvelles demandes dabonnement:", "notifications.column_settings.follow_request": "Nouvelles demandes dabonnement:",
"notifications.column_settings.mention": "Mentions:", "notifications.column_settings.mention": "Mentions:",

View File

@ -222,14 +222,14 @@
"domain_pill.server": "Serveur", "domain_pill.server": "Serveur",
"domain_pill.their_handle": "Son identifiant :", "domain_pill.their_handle": "Son identifiant :",
"domain_pill.their_server": "Son foyer numérique, là où tous ses posts résident.", "domain_pill.their_server": "Son foyer numérique, là où tous ses posts résident.",
"domain_pill.their_username": "Son identifiant unique sur leur serveur. Il est possible de rencontrer des utilisateurs avec le même nom sur différents serveurs.", "domain_pill.their_username": "Son identifiant unique sur leur serveur. Il est possible de rencontrer des utilisateur·rice·s avec le même nom sur différents serveurs.",
"domain_pill.username": "Nom dutilisateur", "domain_pill.username": "Nom dutilisateur",
"domain_pill.whats_in_a_handle": "Qu'est-ce qu'un identifiant ?", "domain_pill.whats_in_a_handle": "Qu'est-ce qu'un identifiant ?",
"domain_pill.who_they_are": "Comme un identifiant contient le nom et le service hébergeant une personne, vous pouvez interagir sur <button>les plateformes sociales implémentant ActivityPub</button>.", "domain_pill.who_they_are": "Comme un identifiant contient le nom et le service hébergeant une personne, vous pouvez interagir sur <button>les plateformes sociales implémentant ActivityPub</button>.",
"domain_pill.who_you_are": "Comme un identifiant indique votre nom et le service vous hébergeant, vous pouvez interagir avec <button>les autres plateformes sociales implémentant ActivityPub</button>.", "domain_pill.who_you_are": "Comme un identifiant indique votre nom et le service vous hébergeant, vous pouvez interagir avec <button>les autres plateformes sociales implémentant ActivityPub</button>.",
"domain_pill.your_handle": "Votre identifiant :", "domain_pill.your_handle": "Votre identifiant :",
"domain_pill.your_server": "Votre foyer numérique, là où vos messages résident. Vous souhaitez changer ? Lancez un transfert vers un autre serveur quand vous le voulez et vos abonné·e·s suivront automatiquement.", "domain_pill.your_server": "Votre foyer numérique, là où vos messages résident. Vous souhaitez changer ? Lancez un transfert vers un autre serveur quand vous le voulez et vos abonné·e·s suivront automatiquement.",
"domain_pill.your_username": "Votre identifiant unique sur ce serveur. Il est possible de trouver des utilisateurs ayant le même nom d'utilisateur sur différents serveurs.", "domain_pill.your_username": "Votre identifiant unique sur ce serveur. Il est possible de rencontrer des utilisateur·rice·s ayant le même nom d'utilisateur sur différents serveurs.",
"embed.instructions": "Intégrez ce message à votre site en copiant le code ci-dessous.", "embed.instructions": "Intégrez ce message à votre site en copiant le code ci-dessous.",
"embed.preview": "Il apparaîtra comme cela:", "embed.preview": "Il apparaîtra comme cela:",
"emoji_button.activity": "Activités", "emoji_button.activity": "Activités",
@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Filtrer ce message", "filter_modal.select_filter.title": "Filtrer ce message",
"filter_modal.title.status": "Filtrer un message", "filter_modal.title.status": "Filtrer un message",
"filtered_notifications_banner.pending_requests": "Notifications {count, plural, =0 {de personne} one {dune personne} other {de # personnes}} que vous pouvez connaitre", "filtered_notifications_banner.pending_requests": "Notifications {count, plural, =0 {de personne} one {dune personne} other {de # personnes}} que vous pouvez connaitre",
"filtered_notifications_banner.private_mentions": "{count, plural, one {mention privée} other {mentions privées}}",
"filtered_notifications_banner.title": "Notifications filtrées", "filtered_notifications_banner.title": "Notifications filtrées",
"firehose.all": "Tout", "firehose.all": "Tout",
"firehose.local": "Ce serveur", "firehose.local": "Ce serveur",
@ -471,6 +472,11 @@
"notification.own_poll": "Votre sondage est terminé", "notification.own_poll": "Votre sondage est terminé",
"notification.poll": "Un sondage auquel vous avez participé vient de se terminer", "notification.poll": "Un sondage auquel vous avez participé vient de se terminer",
"notification.reblog": "{name} a partagé votre message", "notification.reblog": "{name} a partagé votre message",
"notification.relationships_severance_event": "Connexions perdues avec {name}",
"notification.relationships_severance_event.account_suspension": "Un·e administrateur·rice de {from} a suspendu {target}, ce qui signifie que vous ne pourrez plus recevoir de mises à jour ou interagir avec lui.",
"notification.relationships_severance_event.domain_block": "Un·e administrateur·rice de {from} en a bloqué {target}, comprenant {followersCount} de vos abonné·e·s et {followingCount, plural, one {# compte} other {# comptes}} vous suivez.",
"notification.relationships_severance_event.learn_more": "En savoir plus",
"notification.relationships_severance_event.user_domain_block": "Vous avez bloqué {target}, en supprimant {followersCount} de vos abonnés et {followingCount, plural, one {# compte} other {# comptes}} que vous suivez.",
"notification.status": "{name} vient de publier", "notification.status": "{name} vient de publier",
"notification.update": "{name} a modifié un message", "notification.update": "{name} a modifié un message",
"notification_requests.accept": "Accepter", "notification_requests.accept": "Accepter",
@ -483,6 +489,8 @@
"notifications.column_settings.admin.sign_up": "Nouvelles inscriptions :", "notifications.column_settings.admin.sign_up": "Nouvelles inscriptions :",
"notifications.column_settings.alert": "Notifications du navigateur", "notifications.column_settings.alert": "Notifications du navigateur",
"notifications.column_settings.favourite": "Favoris :", "notifications.column_settings.favourite": "Favoris :",
"notifications.column_settings.filter_bar.advanced": "Afficher toutes les catégories",
"notifications.column_settings.filter_bar.category": "Barre de filtre rapide",
"notifications.column_settings.follow": "Nouveaux·elles abonné·e·s:", "notifications.column_settings.follow": "Nouveaux·elles abonné·e·s:",
"notifications.column_settings.follow_request": "Nouvelles demandes dabonnement :", "notifications.column_settings.follow_request": "Nouvelles demandes dabonnement :",
"notifications.column_settings.mention": "Mentions:", "notifications.column_settings.mention": "Mentions:",

View File

@ -287,6 +287,7 @@
"filter_modal.select_filter.title": "Фільтрувати цей допис", "filter_modal.select_filter.title": "Фільтрувати цей допис",
"filter_modal.title.status": "Фільтрувати допис", "filter_modal.title.status": "Фільтрувати допис",
"filtered_notifications_banner.pending_requests": "Сповіщення від {count, plural, =0 {жодної особи} one {однієї особи} few {# осіб} many {# осіб} other {# особи}}, котрих ви можете знати", "filtered_notifications_banner.pending_requests": "Сповіщення від {count, plural, =0 {жодної особи} one {однієї особи} few {# осіб} many {# осіб} other {# особи}}, котрих ви можете знати",
"filtered_notifications_banner.private_mentions": "{count, plural, one {приватна згадка} few {приватні згадки} many {приватні згадки} other {приватна згадка}}",
"filtered_notifications_banner.title": "Відфільтровані сповіщення", "filtered_notifications_banner.title": "Відфільтровані сповіщення",
"firehose.all": "Всі", "firehose.all": "Всі",
"firehose.local": "Цей сервер", "firehose.local": "Цей сервер",
@ -476,7 +477,7 @@
"notifications.column_settings.alert": "Сповіщення стільниці", "notifications.column_settings.alert": "Сповіщення стільниці",
"notifications.column_settings.favourite": "Уподобане:", "notifications.column_settings.favourite": "Уподобане:",
"notifications.column_settings.filter_bar.advanced": "Показати всі категорії", "notifications.column_settings.filter_bar.advanced": "Показати всі категорії",
"notifications.column_settings.filter_bar.category": "Панель швидкого фільтру", "notifications.column_settings.filter_bar.category": "Панель швидкого фільтра",
"notifications.column_settings.follow": "Нові підписники:", "notifications.column_settings.follow": "Нові підписники:",
"notifications.column_settings.follow_request": "Нові запити на підписку:", "notifications.column_settings.follow_request": "Нові запити на підписку:",
"notifications.column_settings.mention": "Згадки:", "notifications.column_settings.mention": "Згадки:",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "過濾此帖文", "filter_modal.select_filter.title": "過濾此帖文",
"filter_modal.title.status": "過濾一則帖文", "filter_modal.title.status": "過濾一則帖文",
"filtered_notifications_banner.pending_requests": "來自 {count, plural, =0 {0 位} other {# 位}}你可能認識的人的通知", "filtered_notifications_banner.pending_requests": "來自 {count, plural, =0 {0 位} other {# 位}}你可能認識的人的通知",
"filtered_notifications_banner.private_mentions": "{count, plural, one {則私人提及} other {則私人提及}}",
"filtered_notifications_banner.title": "已過濾之通知", "filtered_notifications_banner.title": "已過濾之通知",
"firehose.all": "全部", "firehose.all": "全部",
"firehose.local": "本伺服器", "firehose.local": "本伺服器",
@ -471,6 +472,11 @@
"notification.own_poll": "你的投票已結束", "notification.own_poll": "你的投票已結束",
"notification.poll": "你參與過的一個投票已經結束", "notification.poll": "你參與過的一個投票已經結束",
"notification.reblog": "{name} 轉推你的文章", "notification.reblog": "{name} 轉推你的文章",
"notification.relationships_severance_event": "失去與 {name} 的連結",
"notification.relationships_severance_event.account_suspension": "{from} 的管理員已將 {target} 停權,這表示你無法再收到他們的更新或與他們互動。",
"notification.relationships_severance_event.domain_block": "{from} 的管理員已封鎖 {target},包括你的 {followersCount} 位追蹤者和 {followingCount, plural, other {# 個你追蹤的帳號}}。",
"notification.relationships_severance_event.learn_more": "了解更多",
"notification.relationships_severance_event.user_domain_block": "你已封鎖 {target},並移除了你的 {followersCount} 位追蹤者和你追蹤的 {followingCount, plural, other {# 個帳號}}。",
"notification.status": "{name} 剛發表了文章", "notification.status": "{name} 剛發表了文章",
"notification.update": "{name} 編輯了帖文", "notification.update": "{name} 編輯了帖文",
"notification_requests.accept": "接受", "notification_requests.accept": "接受",
@ -483,6 +489,8 @@
"notifications.column_settings.admin.sign_up": "新註冊:", "notifications.column_settings.admin.sign_up": "新註冊:",
"notifications.column_settings.alert": "顯示桌面通知", "notifications.column_settings.alert": "顯示桌面通知",
"notifications.column_settings.favourite": "最愛:", "notifications.column_settings.favourite": "最愛:",
"notifications.column_settings.filter_bar.advanced": "顯示所有分類",
"notifications.column_settings.filter_bar.category": "快速篩選欄",
"notifications.column_settings.follow": "新追蹤者:", "notifications.column_settings.follow": "新追蹤者:",
"notifications.column_settings.follow_request": "新的追蹤請求:", "notifications.column_settings.follow_request": "新的追蹤請求:",
"notifications.column_settings.mention": "提及你:", "notifications.column_settings.mention": "提及你:",

View File

@ -1,16 +1,27 @@
import { isAction } from '@reduxjs/toolkit'; import {
isAction,
isAsyncThunkAction,
isRejectedWithValue,
} from '@reduxjs/toolkit';
import type { Action, Middleware } from '@reduxjs/toolkit'; import type { Action, Middleware } from '@reduxjs/toolkit';
import type { RootState } from '..'; import type { RootState } from '..';
import { showAlertForError } from '../../actions/alerts'; import { showAlertForError } from '../../actions/alerts';
import type { AsyncThunkRejectValue } from '../typed_functions';
const defaultFailSuffix = 'FAIL'; const defaultFailSuffix = 'FAIL';
const isFailedAction = new RegExp(`${defaultFailSuffix}$`, 'g'); const isFailedAction = new RegExp(`${defaultFailSuffix}$`, 'g');
interface ActionWithMaybeAlertParams extends Action { interface ActionWithMaybeAlertParams extends Action, AsyncThunkRejectValue {}
skipAlert?: boolean;
skipNotFound?: boolean; interface RejectedAction extends Action {
error?: unknown; payload: AsyncThunkRejectValue;
}
function isRejectedActionWithPayload(
action: unknown,
): action is RejectedAction {
return isAsyncThunkAction(action) && isRejectedWithValue(action);
} }
function isActionWithmaybeAlertParams( function isActionWithmaybeAlertParams(
@ -23,7 +34,11 @@ export const errorsMiddleware: Middleware<Record<string, never>, RootState> =
({ dispatch }) => ({ dispatch }) =>
(next) => (next) =>
(action) => { (action) => {
if ( if (isRejectedActionWithPayload(action) && !action.payload.skipAlert) {
dispatch(
showAlertForError(action.payload.error, action.payload.skipNotFound),
);
} else if (
isActionWithmaybeAlertParams(action) && isActionWithmaybeAlertParams(action) &&
!action.skipAlert && !action.skipAlert &&
action.type.match(isFailedAction) action.type.match(isFailedAction)

View File

@ -7,8 +7,14 @@ import type { AppDispatch, RootState } from './store';
export const useAppDispatch = useDispatch.withTypes<AppDispatch>(); export const useAppDispatch = useDispatch.withTypes<AppDispatch>();
export const useAppSelector = useSelector.withTypes<RootState>(); export const useAppSelector = useSelector.withTypes<RootState>();
export interface AsyncThunkRejectValue {
skipAlert?: boolean;
skipNotFound?: boolean;
error?: unknown;
}
export const createAppAsyncThunk = createAsyncThunk.withTypes<{ export const createAppAsyncThunk = createAsyncThunk.withTypes<{
state: RootState; state: RootState;
dispatch: AppDispatch; dispatch: AppDispatch;
rejectValue: string; rejectValue: AsyncThunkRejectValue;
}>(); }>();

View File

@ -2677,7 +2677,7 @@ $ui-header-logo-wordmark-width: 99px;
} }
.tabs-bar__wrapper { .tabs-bar__wrapper {
background: var(--background-color-tint); background: var(--background-color);
backdrop-filter: var(--background-filter); backdrop-filter: var(--background-filter);
position: sticky; position: sticky;
top: $ui-header-height; top: $ui-header-height;
@ -2899,7 +2899,7 @@ $ui-header-logo-wordmark-width: 99px;
.layout-single-column { .layout-single-column {
.ui__header { .ui__header {
display: flex; display: flex;
background: var(--background-color-tint); background: var(--background-color);
border-bottom: 1px solid var(--background-border-color); border-bottom: 1px solid var(--background-border-color);
} }

View File

@ -1962,7 +1962,28 @@ ar:
silence: الحساب محدود silence: الحساب محدود
suspend: الحساب مُعلَّق suspend: الحساب مُعلَّق
welcome: welcome:
apps_android_action: احصل عليه من متجر جوجل للتطبيقات
apps_ios_action: التنزيل من App Store
apps_step: تنزيل تطبيقاتنا الرسمية.
apps_title: تطبيقات مَستُدون
checklist_subtitle: 'هيا بنا نبدأ مغامرتنا على الويب الاجتماعي الجديد:'
checklist_title: الخطوات الترحيبية الأولى
edit_profile_action: تخصيص
edit_profile_step: قم بتعزيز تفاعلاتك بامتلاك مِلَفّ تعريفي كامل.
edit_profile_title: قم بتخصيص ملفك التعريفي
explanation: ها هي بعض النصائح قبل بداية الاستخدام explanation: ها هي بعض النصائح قبل بداية الاستخدام
feature_action: اعرف المزيد
follow_action: تابِع
follows_title: مَن عليك متابعته
hashtags_title: الوسوم الرائجة
hashtags_view_more: عرض المزيد من الوسوم الرائجة
post_action: إنشاء
post_step: قل مرحبا للعالَم عبر نصّ أو صور أو فيديوهات أو استطلاعات رأي.
post_title: قم بإنشاء منشورك الأول
share_action: شارِك
share_step: أخبر أصدقائك بكيفية العثور عليك على مَستُدون.
share_title: شارك مِلَفّ مَستُدون التعريفي الخاص بك
sign_in_action: تسجيل الدخول
subject: أهلًا بك على ماستدون subject: أهلًا بك على ماستدون
title: أهلاً بك، %{name}! title: أهلاً بك، %{name}!
users: users:

View File

@ -12,6 +12,7 @@ ar:
last_attempt: بإمكانك إعادة المحاولة مرة واحدة قبل أن يتم قفل حسابك. last_attempt: بإمكانك إعادة المحاولة مرة واحدة قبل أن يتم قفل حسابك.
locked: إن حسابك مقفل. locked: إن حسابك مقفل.
not_found_in_database: "%{authentication_keys} أو كلمة سر خاطئة." not_found_in_database: "%{authentication_keys} أو كلمة سر خاطئة."
omniauth_user_creation_failure: خطأ في إنشاء حساب لهذه الهُوِيَّة.
pending: إنّ حسابك في انتظار مراجعة. pending: إنّ حسابك في انتظار مراجعة.
timeout: لقد انتهت مدة صَلاحِيَة جلستك. قم بتسجيل الدخول من جديد للمواصلة. timeout: لقد انتهت مدة صَلاحِيَة جلستك. قم بتسجيل الدخول من جديد للمواصلة.
unauthenticated: يجب عليك تسجيل الدخول أو إنشاء حساب قبل المواصلة. unauthenticated: يجب عليك تسجيل الدخول أو إنشاء حساب قبل المواصلة.

View File

@ -1768,6 +1768,7 @@ fr-CA:
contrast: Mastodon (Contraste élevé) contrast: Mastodon (Contraste élevé)
default: Mastodon (Sombre) default: Mastodon (Sombre)
mastodon-light: Mastodon (Clair) mastodon-light: Mastodon (Clair)
system: Automatique (utiliser le thème système)
time: time:
formats: formats:
default: "%d %b %Y, %H:%M" default: "%d %b %Y, %H:%M"

View File

@ -1768,6 +1768,7 @@ fr:
contrast: Mastodon (Contraste élevé) contrast: Mastodon (Contraste élevé)
default: Mastodon (Sombre) default: Mastodon (Sombre)
mastodon-light: Mastodon (Clair) mastodon-light: Mastodon (Clair)
system: Automatique (utiliser le thème système)
time: time:
formats: formats:
default: "%d %b %Y, %H:%M" default: "%d %b %Y, %H:%M"

View File

@ -39,12 +39,14 @@ ar:
text: يمكنك الطعن في عقوبة مرة واحدة فقط text: يمكنك الطعن في عقوبة مرة واحدة فقط
defaults: defaults:
autofollow: سوف يتابعك تلقائيًا الأشخاص الذين يقومون بالتسجيل من خلال الدعوة autofollow: سوف يتابعك تلقائيًا الأشخاص الذين يقومون بالتسجيل من خلال الدعوة
avatar: ملف WEBP أو PNG أو GIF أو JPG. حجمه على أقصى تصدير %{size}. سيتم تقليصه إلى %{dimensions} بيكسل
bot: يقوم هذا الحساب أساسا بإجراءات آلية وقد لا يتم مراقبته bot: يقوم هذا الحساب أساسا بإجراءات آلية وقد لا يتم مراقبته
context: واحد أو أكثر من السياقات التي يجب أن ينطبق عليها عامل التصفية context: واحد أو أكثر من السياقات التي يجب أن ينطبق عليها عامل التصفية
current_password: لأسباب أمنية ، يرجى إدخال الكلمة السرية الخاصة بالحساب الحالي current_password: لأسباب أمنية ، يرجى إدخال الكلمة السرية الخاصة بالحساب الحالي
current_username: يرجى إدخال اسم المستخدم الخاص بالحساب الحالي قصد التأكيد current_username: يرجى إدخال اسم المستخدم الخاص بالحساب الحالي قصد التأكيد
digest: تُرسَل إليك بعد مُضيّ مدة مِن خمول نشاطك و فقط إذا ما تلقيت رسائل شخصية مباشِرة أثناء فترة غيابك مِن الشبكة digest: تُرسَل إليك بعد مُضيّ مدة مِن خمول نشاطك و فقط إذا ما تلقيت رسائل شخصية مباشِرة أثناء فترة غيابك مِن الشبكة
email: سوف تتلقى رسالة إلكترونية للتأكيد email: سوف تتلقى رسالة إلكترونية للتأكيد
header: ملف WEBP أو PNG أو GIF أو JPG. حجمه على أقصى تصدير %{size}. سيتم تقليصه إلى %{dimensions} بيكسل
inbox_url: نسخ العنوان الذي تريد استخدامه مِن صفحة الاستقبال للمُرحَّل inbox_url: نسخ العنوان الذي تريد استخدامه مِن صفحة الاستقبال للمُرحَّل
irreversible: المنشورات التي تم تصفيتها ستختفي لا محالة حتى و إن تمت إزالة عامِل التصفية لاحقًا irreversible: المنشورات التي تم تصفيتها ستختفي لا محالة حتى و إن تمت إزالة عامِل التصفية لاحقًا
locale: لغة واجهة المستخدم و الرسائل الإلكترونية و الإشعارات locale: لغة واجهة المستخدم و الرسائل الإلكترونية و الإشعارات
@ -114,6 +116,7 @@ ar:
sign_up_requires_approval: التسجيلات الجديدة سوف تتطلب موافقتك sign_up_requires_approval: التسجيلات الجديدة سوف تتطلب موافقتك
severity: اختر ما سيحدث مع الطلبات من هذا الـIP severity: اختر ما سيحدث مع الطلبات من هذا الـIP
rule: rule:
hint: اختياري. قدم المزيد من التفاصيل حول القاعدة
text: صِف قانون أو شرط للمستخدمين على هذا الخادم. حاول أن تُبقيه قصير وبسيط text: صِف قانون أو شرط للمستخدمين على هذا الخادم. حاول أن تُبقيه قصير وبسيط
sessions: sessions:
otp: 'قم بإدخال رمز المصادقة بخطوتين الذي قام بتوليده تطبيق جهازك أو استخدم أحد رموز النفاذ الاحتياطية:' otp: 'قم بإدخال رمز المصادقة بخطوتين الذي قام بتوليده تطبيق جهازك أو استخدم أحد رموز النفاذ الاحتياطية:'
@ -297,6 +300,7 @@ ar:
patch: إشعاري عند توفّر تحديثات التصحيح patch: إشعاري عند توفّر تحديثات التصحيح
trending_tag: المتداولة الجديدة تتطلّب مراجعة trending_tag: المتداولة الجديدة تتطلّب مراجعة
rule: rule:
hint: معلومات إضافية
text: قانون text: قانون
settings: settings:
indexable: السماح لمحركات البحث بفهرسة صفحتك التعريفية indexable: السماح لمحركات البحث بفهرسة صفحتك التعريفية

View File

@ -585,6 +585,7 @@ sk:
administration: Spravovanie administration: Spravovanie
invites: Pozvánky invites: Pozvánky
moderation: Moderácia moderation: Moderácia
special: Špeciálne
delete: Vymaž delete: Vymaž
edit: Uprav postavenie %{name} edit: Uprav postavenie %{name}
everyone: Východzie oprávnenia everyone: Východzie oprávnenia
@ -804,6 +805,7 @@ sk:
confirmations: confirmations:
clicking_this_link: kliknutím na tento odkaz clicking_this_link: kliknutím na tento odkaz
login_link: prihlás sa login_link: prihlás sa
proceed_to_login_html: Teraz môžeš pokračovať na %{login_link}.
welcome_title: Vitaj, %{name}! welcome_title: Vitaj, %{name}!
delete_account: Vymaž účet delete_account: Vymaž účet
delete_account_html: Pokiaľ chceš svoj účet odtiaľto vymazať, môžeš tak <a href="%{path}">urobiť tu</a>. Budeš požiadaný/á o potvrdenie tohto kroku. delete_account_html: Pokiaľ chceš svoj účet odtiaľto vymazať, môžeš tak <a href="%{path}">urobiť tu</a>. Budeš požiadaný/á o potvrdenie tohto kroku.
@ -822,6 +824,7 @@ sk:
or_log_in_with: Alebo prihlás s or_log_in_with: Alebo prihlás s
progress: progress:
confirm: Potvrď email confirm: Potvrď email
details: Tvoje údaje
rules: Súhlas s pravidlami rules: Súhlas s pravidlami
register: Zaregistruj sa register: Zaregistruj sa
registration_closed: "%{instance} neprijíma nových členov" registration_closed: "%{instance} neprijíma nových členov"
@ -883,6 +886,7 @@ sk:
username_unavailable: Tvoja prezývka ostane neprístupná username_unavailable: Tvoja prezývka ostane neprístupná
disputes: disputes:
strikes: strikes:
action_taken: Vykonaný zákrok
appeal: Namietni appeal: Namietni
appeals: appeals:
submit: Pošli námietku submit: Pošli námietku

View File

@ -585,6 +585,9 @@ zh-HK:
actions_description_html: 決定對此檢舉採取哪種措施。如果對被檢舉帳號採取懲罰措施,除非選取了<strong>垃圾訊息</strong>分類,否則將向他們發送一封電郵通知。 actions_description_html: 決定對此檢舉採取哪種措施。如果對被檢舉帳號採取懲罰措施,除非選取了<strong>垃圾訊息</strong>分類,否則將向他們發送一封電郵通知。
actions_description_remote_html: 決定對此檢舉採取哪種動作。這只會影響<strong>你的伺服器</strong>與此遠端帳號的通訊和處理其內容的方式。 actions_description_remote_html: 決定對此檢舉採取哪種動作。這只會影響<strong>你的伺服器</strong>與此遠端帳號的通訊和處理其內容的方式。
add_to_report: 加入更多到檢舉 add_to_report: 加入更多到檢舉
already_suspended_badges:
local: 已在此伺服器被停權
remote: 已在他們的伺服器被停權
are_you_sure: 你確認嗎? are_you_sure: 你確認嗎?
assign_to_self: 指派給自己 assign_to_self: 指派給自己
assigned: 指派版主 assigned: 指派版主
@ -1733,6 +1736,7 @@ zh-HK:
contrast: 高對比 contrast: 高對比
default: 萬象 default: 萬象
mastodon-light: 萬象(亮色主題) mastodon-light: 萬象(亮色主題)
system: 自動(使用系統主題)
time: time:
formats: formats:
default: "%Y年%-m月%d日 %H:%M" default: "%Y年%-m月%d日 %H:%M"